Rollup merge of #105078 - TaKO8Ki:fix-105011, r=nnethercote
Fix `expr_to_spanned_string` ICE Fixes #105011
This commit is contained in:
commit
741f8c9166
@ -16,6 +16,7 @@ use rustc_errors::{
|
||||
use rustc_lint_defs::builtin::PROC_MACRO_BACK_COMPAT;
|
||||
use rustc_lint_defs::{BufferedEarlyLint, BuiltinLintDiagnostics};
|
||||
use rustc_parse::{self, parser, MACRO_ARGUMENTS};
|
||||
use rustc_session::errors::report_lit_error;
|
||||
use rustc_session::{parse::ParseSess, Limit, Session};
|
||||
use rustc_span::def_id::{CrateNum, DefId, LocalDefId};
|
||||
use rustc_span::edition::Edition;
|
||||
@ -1245,7 +1246,10 @@ pub fn expr_to_spanned_string<'a>(
|
||||
Some((err, true))
|
||||
}
|
||||
Ok(ast::LitKind::Err) => None,
|
||||
Err(_) => None,
|
||||
Err(err) => {
|
||||
report_lit_error(&cx.sess.parse_sess, err, token_lit, expr.span);
|
||||
None
|
||||
}
|
||||
_ => Some((cx.struct_span_err(expr.span, err_msg), false)),
|
||||
},
|
||||
ast::ExprKind::Err => None,
|
||||
|
@ -197,12 +197,12 @@ pub enum UnleashedFeatureHelp {
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag(session_invalid_literal_suffix)]
|
||||
pub(crate) struct InvalidLiteralSuffix {
|
||||
pub(crate) struct InvalidLiteralSuffix<'a> {
|
||||
#[primary_span]
|
||||
#[label]
|
||||
pub span: Span,
|
||||
// FIXME(#100717)
|
||||
pub kind: String,
|
||||
pub kind: &'a str,
|
||||
pub suffix: Symbol,
|
||||
}
|
||||
|
||||
@ -311,11 +311,7 @@ pub fn report_lit_error(sess: &ParseSess, err: LitError, lit: token::Lit, span:
|
||||
LitError::LexerError => {}
|
||||
LitError::InvalidSuffix => {
|
||||
if let Some(suffix) = suffix {
|
||||
sess.emit_err(InvalidLiteralSuffix {
|
||||
span,
|
||||
kind: format!("{}", kind.descr()),
|
||||
suffix,
|
||||
});
|
||||
sess.emit_err(InvalidLiteralSuffix { span, kind: kind.descr(), suffix });
|
||||
}
|
||||
}
|
||||
LitError::InvalidIntSuffix => {
|
||||
|
3
src/test/ui/macros/issue-105011.rs
Normal file
3
src/test/ui/macros/issue-105011.rs
Normal file
@ -0,0 +1,3 @@
|
||||
fn main() {
|
||||
println!(""y); //~ ERROR suffixes on string literals are invalid
|
||||
}
|
8
src/test/ui/macros/issue-105011.stderr
Normal file
8
src/test/ui/macros/issue-105011.stderr
Normal file
@ -0,0 +1,8 @@
|
||||
error: suffixes on string literals are invalid
|
||||
--> $DIR/issue-105011.rs:2:14
|
||||
|
|
||||
LL | println!(""y);
|
||||
| ^^^ invalid suffix `y`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
Loading…
x
Reference in New Issue
Block a user