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:
commit
aab7b145d0
17 changed files with 225 additions and 15 deletions
|
@ -617,6 +617,8 @@ hir_analysis_variances_of = {$variances}
|
|||
hir_analysis_where_clause_on_main = `main` function is not allowed to have a `where` clause
|
||||
.label = `main` cannot have a `where` clause
|
||||
|
||||
hir_analysis_within_macro = due to this macro variable
|
||||
|
||||
hir_analysis_wrong_number_of_generic_arguments_to_intrinsic =
|
||||
intrinsic has wrong number of {$descr} parameters: found {$found}, expected {$expected}
|
||||
.label = expected {$expected} {$descr} {$expected ->
|
||||
|
|
|
@ -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)]
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue