diff options
| author | bors <bors@rust-lang.org> | 2023-12-03 03:05:17 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-12-03 03:05:17 +0000 |
| commit | 225e36cff9809948d6567ab16f75d7b087ea83a7 (patch) | |
| tree | dcd6c7732158c8cc0578399b68c3f941ac960e59 /compiler/rustc_parse/src/parser | |
| parent | 1ca8b71cff69b0c48e40ceb66d01b9f8d30b2492 (diff) | |
| parent | 5ff428c1ff81a635628a2b67c96999b6098f3fa8 (diff) | |
| download | rust-225e36cff9809948d6567ab16f75d7b087ea83a7.tar.gz rust-225e36cff9809948d6567ab16f75d7b087ea83a7.zip | |
Auto merge of #118542 - chenyukang:yukang-fix-parser-ice-118531, r=cjgillot
Fix parser ICE from attrs Fixes #118531, Fixes #118530.
Diffstat (limited to 'compiler/rustc_parse/src/parser')
| -rw-r--r-- | compiler/rustc_parse/src/parser/diagnostics.rs | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs index a4eb36dd92c..98e68e682ab 100644 --- a/compiler/rustc_parse/src/parser/diagnostics.rs +++ b/compiler/rustc_parse/src/parser/diagnostics.rs @@ -18,7 +18,6 @@ use crate::errors::{ UnexpectedConstParamDeclaration, UnexpectedConstParamDeclarationSugg, UnmatchedAngleBrackets, UseEqInstead, WrapType, }; - use crate::fluent_generated as fluent; use crate::parser; use crate::parser::attr::InnerAttrPolicy; @@ -772,8 +771,10 @@ impl<'a> Parser<'a> { && let ast::AttrKind::Normal(attr_kind) = &attr.kind && let [segment] = &attr_kind.item.path.segments[..] && segment.ident.name == sym::cfg + && let Some(args_span) = attr_kind.item.args.span() && let Ok(next_attr) = snapshot.parse_attribute(InnerAttrPolicy::Forbidden(None)) && let ast::AttrKind::Normal(next_attr_kind) = next_attr.kind + && let Some(next_attr_args_span) = next_attr_kind.item.args.span() && let [next_segment] = &next_attr_kind.item.path.segments[..] && segment.ident.name == sym::cfg && let Ok(next_expr) = snapshot.parse_expr() @@ -787,23 +788,14 @@ impl<'a> Parser<'a> { let margin = self.sess.source_map().span_to_margin(next_expr.span).unwrap_or(0); let sugg = vec