summaryrefslogtreecommitdiff
path: root/src/parse/parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/parser.rs')
-rw-r--r--src/parse/parser.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/parse/parser.rs b/src/parse/parser.rs
index 6c73d7dd..e495dbd0 100644
--- a/src/parse/parser.rs
+++ b/src/parse/parser.rs
@@ -267,11 +267,6 @@ impl<'s> Parser<'s> {
/// This panics if no group was started.
#[track_caller]
pub fn end_group(&mut self) {
- // If another group closes after a group with the missing terminator,
- // its scope of influence ends here and no longer taints the rest of the
- // reparse.
- self.unterminated_group = false;
-
let group_mode = self.tokens.mode();
let group = self.groups.pop().expect("no started group");
self.tokens.set_mode(group.prev_mode);
@@ -289,6 +284,11 @@ impl<'s> Parser<'s> {
Group::Imports => None,
} {
if self.current.as_ref() == Some(&end) {
+ // If another group closes after a group with the missing terminator,
+ // its scope of influence ends here and no longer taints the rest of the
+ // reparse.
+ self.unterminated_group = false;
+
// Bump the delimeter and return. No need to rescan in this
// case. Also, we know that the delimiter is not stray even
// though we already removed the group.