1
Fork 0

Rollup merge of #137565 - compiler-errors:macro-ex, r=estebank

Try to point of macro expansion from resolver and method errors if it involves macro var

In the case that a macro caller passes an identifier into a macro generating a path or method expression, point out that identifier in the context of the *macro* so it's a bit more clear how the macro is involved in causing the error.

r? ``````````@estebank`````````` or reassign
This commit is contained in:
Michael Goulet 2025-03-06 12:22:13 -05:00 committed by GitHub
commit aab7b145d0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 225 additions and 15 deletions

View file

@ -82,6 +82,8 @@ pub(crate) struct AssocItemNotFound<'a> {
pub label: Option<AssocItemNotFoundLabel<'a>>,
#[subdiagnostic]
pub sugg: Option<AssocItemNotFoundSugg<'a>>,
#[label(hir_analysis_within_macro)]
pub within_macro_span: Option<Span>,
}
#[derive(Subdiagnostic)]

View file

@ -151,6 +151,9 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
qself: &qself_str,
label: None,
sugg: None,
// Try to get the span of the identifier within the path's syntax context
// (if that's different).
within_macro_span: assoc_name.span.within_macro(span, tcx.sess.source_map()),
};
if is_dummy {