Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/sourcegen/src/lib.rs')
-rw-r--r--crates/sourcegen/src/lib.rs26
1 files changed, 12 insertions, 14 deletions
diff --git a/crates/sourcegen/src/lib.rs b/crates/sourcegen/src/lib.rs
index 72d26635c3..c5da6ceb4d 100644
--- a/crates/sourcegen/src/lib.rs
+++ b/crates/sourcegen/src/lib.rs
@@ -58,21 +58,19 @@ impl CommentBlock {
assert!(tag.starts_with(char::is_uppercase));
let tag = format!("{tag}:");
- // Would be nice if we had `.retain_mut` here!
- CommentBlock::extract_untagged(text)
- .into_iter()
- .filter_map(|mut block| {
- let first = block.contents.remove(0);
- first.strip_prefix(&tag).map(|id| {
- if block.is_doc {
- panic!("Use plain (non-doc) comments with tags like {tag}:\n {first}");
- }
+ let mut blocks = CommentBlock::extract_untagged(text);
+ blocks.retain_mut(|block| {
+ let first = block.contents.remove(0);
+ let Some(id) = first.strip_prefix(&tag) else { return false; };
+
+ if block.is_doc {
+ panic!("Use plain (non-doc) comments with tags like {tag}:\n {first}");
+ }
- block.id = id.trim().to_string();
- block
- })
- })
- .collect()
+ block.id = id.trim().to_string();
+ true
+ });
+ blocks
}
pub fn extract_untagged(text: &str) -> Vec<CommentBlock> {