errors: only eagerly translate subdiagnostics
Subdiagnostics don't need to be lazily translated, they can always be eagerly translated. Eager translation is slightly more complex as we need to have a `DiagCtxt` available to perform the translation, which involves slightly more threading of that context. This slight increase in complexity should enable later simplifications - like passing `DiagCtxt` into `AddToDiagnostic` and moving Fluent messages into the diagnostic structs rather than having them in separate files (working on that was what led to this change). Signed-off-by: David Wood <david@davidtw.co>
This commit is contained in:
parent
bb89df6903
commit
b80fc5d4e8
43 changed files with 532 additions and 388 deletions
|
@ -1095,11 +1095,14 @@ impl<'a: 'ast, 'ast, 'tcx> LateResolutionVisitor<'a, '_, 'ast, 'tcx> {
|
|||
Side::Start => (segment.ident.span.between(range.span), " @ ".into()),
|
||||
Side::End => (range.span.to(segment.ident.span), format!("{} @ ..", segment.ident)),
|
||||
};
|
||||
err.subdiagnostic(errors::UnexpectedResUseAtOpInSlicePatWithRangeSugg {
|
||||
span,
|
||||
ident: segment.ident,
|
||||
snippet,
|
||||
});
|
||||
err.subdiagnostic(
|
||||
self.r.dcx(),
|
||||
errors::UnexpectedResUseAtOpInSlicePatWithRangeSugg {
|
||||
span,
|
||||
ident: segment.ident,
|
||||
snippet,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
enum Side {
|
||||
|
@ -1191,10 +1194,13 @@ impl<'a: 'ast, 'ast, 'tcx> LateResolutionVisitor<'a, '_, 'ast, 'tcx> {
|
|||
});
|
||||
|
||||
if let Some(param) = param {
|
||||
err.subdiagnostic(errors::UnexpectedResChangeTyToConstParamSugg {
|
||||
span: param.shrink_to_lo(),
|
||||
applicability,
|
||||
});
|
||||
err.subdiagnostic(
|
||||
self.r.dcx(),
|
||||
errors::UnexpectedResChangeTyToConstParamSugg {
|
||||
span: param.shrink_to_lo(),
|
||||
applicability,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue