diff options
| author | bohan <bohan-zhang@foxmail.com> | 2023-11-15 15:28:38 +0800 |
|---|---|---|
| committer | bohan <bohan-zhang@foxmail.com> | 2023-11-15 15:28:38 +0800 |
| commit | 4138702621f32528fee8bf55eb1b8c0b99ac369b (patch) | |
| tree | f2f0d7a8346aaf12db6e63db11ea69b53d526c2c /compiler/rustc_parse/src | |
| parent | 6d069a0ac7a423db87d86320edd39974f9f0c492 (diff) | |
| download | rust-4138702621f32528fee8bf55eb1b8c0b99ac369b.tar.gz rust-4138702621f32528fee8bf55eb1b8c0b99ac369b.zip | |
discard invalid spans in external blocks
Diffstat (limited to 'compiler/rustc_parse/src')
| -rw-r--r-- | compiler/rustc_parse/src/errors.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_parse/src/parser/item.rs | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/compiler/rustc_parse/src/errors.rs b/compiler/rustc_parse/src/errors.rs index 8ab1ec298a1..3270490d757 100644 --- a/compiler/rustc_parse/src/errors.rs +++ b/compiler/rustc_parse/src/errors.rs @@ -1676,7 +1676,7 @@ pub(crate) struct ExternItemCannotBeConst { #[primary_span] pub ident_span: Span, #[suggestion(code = "static ", applicability = "machine-applicable")] - pub const_span: Span, + pub const_span: Option<Span>, } #[derive(Diagnostic)] diff --git a/compiler/rustc_parse/src/parser/item.rs b/compiler/rustc_parse/src/parser/item.rs index 801860c2123..0931facca98 100644 --- a/compiler/rustc_parse/src/parser/item.rs +++ b/compiler/rustc_parse/src/parser/item.rs @@ -1143,9 +1143,11 @@ impl<'a> Parser<'a> { Ok(kind) => kind, Err(kind) => match kind { ItemKind::Const(box ConstItem { ty, expr, .. }) => { + let const_span = Some(span.with_hi(ident.span.lo())) + .filter(|span| span.can_be_used_for_suggestions()); self.sess.emit_err(errors::ExternItemCannotBeConst { ident_span: ident.span, - const_span: span.with_hi(ident.span.lo()), + const_span, }); ForeignItemKind::Static(ty, Mutability::Not, expr) } |
