From edbc18516d211c8dbf07539358c7d8aeca24bb30 Mon Sep 17 00:00:00 2001 From: pcpthm Date: Fri, 22 Mar 2019 04:33:05 +0900 Subject: Fix reparsing bug on "{}{}" --- crates/ra_syntax/src/parsing/reparsing.rs | 2 +- crates/ra_syntax/tests/data/reparse/fuzz-failures/0004.rs | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 crates/ra_syntax/tests/data/reparse/fuzz-failures/0004.rs (limited to 'crates') diff --git a/crates/ra_syntax/src/parsing/reparsing.rs b/crates/ra_syntax/src/parsing/reparsing.rs index 3b5471bf8..d54669a95 100644 --- a/crates/ra_syntax/src/parsing/reparsing.rs +++ b/crates/ra_syntax/src/parsing/reparsing.rs @@ -111,7 +111,7 @@ fn is_balanced(tokens: &[Token]) -> bool { return false; } let mut balance = 0usize; - for t in tokens.iter() { + for t in &tokens[1..tokens.len() - 1] { match t.kind { L_CURLY => balance += 1, R_CURLY => { diff --git a/crates/ra_syntax/tests/data/reparse/fuzz-failures/0004.rs b/crates/ra_syntax/tests/data/reparse/fuzz-failures/0004.rs new file mode 100644 index 000000000..481617a70 --- /dev/null +++ b/crates/ra_syntax/tests/data/reparse/fuzz-failures/0004.rs @@ -0,0 +1,4 @@ +0 +0 +} +{; \ No newline at end of file -- cgit v1.2.3