Unnamed repository; edit this file 'description' to name the repository.
internal: simplify
Aleksey Kladov 2021-09-13
parent 940b3af · commit c56f041
-rw-r--r--crates/parser/src/grammar/patterns.rs7
-rw-r--r--crates/sourcegen/src/lib.rs26
2 files changed, 17 insertions, 16 deletions
diff --git a/crates/parser/src/grammar/patterns.rs b/crates/parser/src/grammar/patterns.rs
index fed5cca512..81e2051abb 100644
--- a/crates/parser/src/grammar/patterns.rs
+++ b/crates/parser/src/grammar/patterns.rs
@@ -17,7 +17,7 @@ pub(crate) fn pattern(p: &mut Parser) {
pattern_r(p, PAT_RECOVERY_SET);
}
-/// Parses a pattern list separated by pipes `|`
+/// Parses a pattern list separated by pipes `|`.
pub(super) fn pattern_top(p: &mut Parser) {
pattern_top_r(p, PAT_RECOVERY_SET)
}
@@ -27,14 +27,15 @@ pub(crate) fn pattern_single(p: &mut Parser) {
}
/// Parses a pattern list separated by pipes `|`
-/// using the given `recovery_set`
+/// using the given `recovery_set`.
pub(super) fn pattern_top_r(p: &mut Parser, recovery_set: TokenSet) {
p.eat(T![|]);
pattern_r(p, recovery_set);
}
/// Parses a pattern list separated by pipes `|`, with no leading `|`,using the
-/// given `recovery_set`
+/// given `recovery_set`.
+
// test or_pattern
// fn main() {
// match () {
diff --git a/crates/sourcegen/src/lib.rs b/crates/sourcegen/src/lib.rs
index d9226d0681..ae07190f86 100644
--- a/crates/sourcegen/src/lib.rs
+++ b/crates/sourcegen/src/lib.rs
@@ -71,25 +71,25 @@ impl CommentBlock {
pub fn extract_untagged(text: &str) -> Vec<CommentBlock> {
let mut res = Vec::new();
- let prefix = "// ";
let lines = text.lines().map(str::trim_start);
let dummy_block = CommentBlock { id: String::new(), line: 0, contents: Vec::new() };
let mut block = dummy_block.clone();
for (line_num, line) in lines.enumerate() {
- if line == "//" {
- block.contents.push(String::new());
- continue;
- }
-
- let is_comment = line.starts_with(prefix);
- if is_comment {
- block.contents.push(line[prefix.len()..].to_string());
- } else {
- if !block.contents.is_empty() {
- res.push(mem::replace(&mut block, dummy_block.clone()));
+ match line.strip_prefix("//") {
+ Some(mut contents) => {
+ if let Some(' ') = contents.chars().next() {
+ contents = &contents[1..];
+ }
+ block.contents.push(contents.to_string());
+ }
+ None => {
+ if !block.contents.is_empty() {
+ let block = mem::replace(&mut block, dummy_block.clone());
+ res.push(block);
+ }
+ block.line = line_num + 2;
}
- block.line = line_num + 2;
}
}
if !block.contents.is_empty() {