Store ErrorGuaranteed in ErrorReported

This commit is contained in:
Nilstrieb 2022-10-27 21:39:57 +02:00
parent c0a7612728
commit 8d13b2a046
No known key found for this signature in database
2 changed files with 6 additions and 5 deletions

View File

@ -72,6 +72,7 @@
pub(crate) use NamedMatch::*;
pub(crate) use ParseResult::*;
use rustc_errors::ErrorGuaranteed;
use crate::mbe::{KleeneOp, TokenTree};
@ -270,7 +271,7 @@ pub(crate) enum ParseResult<T> {
Failure(Token, &'static str),
/// Fatal error (malformed macro?). Abort compilation.
Error(rustc_span::Span, String),
ErrorReported,
ErrorReported(ErrorGuaranteed),
}
/// A `ParseResult` where the `Success` variant contains a mapping of
@ -612,14 +613,14 @@ impl TtParser {
// edition-specific matching behavior for non-terminals.
let nt = match parser.to_mut().parse_nonterminal(kind) {
Err(mut err) => {
err.span_label(
let guarantee = err.span_label(
span,
format!(
"while parsing argument for this `{kind}` macro fragment"
),
)
.emit();
return ErrorReported;
return ErrorReported(guarantee);
}
Ok(nt) => nt,
};

View File

@ -333,7 +333,7 @@ fn expand_macro<'cx>(
cx.struct_span_err(span, &msg).emit();
return DummyResult::any(span);
}
ErrorReported => return DummyResult::any(sp),
ErrorReported(_) => return DummyResult::any(sp),
}
// The matcher was not `Success(..)`ful.
@ -470,7 +470,7 @@ pub fn compile_declarative_macro(
.emit();
return dummy_syn_ext();
}
ErrorReported => {
ErrorReported(_) => {
return dummy_syn_ext();
}
};