Rollup merge of #88411 - Aaron1011:remove-session-if-let, r=estebank
Remove `Session.if_let_suggestions` We can instead if either the LHS or RHS types contain `TyKind::Error`. In addition to covering the case where we would have previously updated `if_let_suggestions`, this might also prevent redundant errors in other cases as well.
This commit is contained in:
commit
b7388024eb
5 changed files with 17 additions and 9 deletions
|
@ -215,7 +215,6 @@ impl<'a: 'ast, 'ast> LateResolutionVisitor<'a, '_, 'ast> {
|
|||
"let ".to_string(),
|
||||
Applicability::MaybeIncorrect,
|
||||
);
|
||||
self.r.session.if_let_suggestions.borrow_mut().insert(*span);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
|
|
@ -209,9 +209,6 @@ pub struct Session {
|
|||
|
||||
/// Set of enabled features for the current target.
|
||||
pub target_features: FxHashSet<Symbol>,
|
||||
|
||||
/// `Span`s for `if` conditions that we have suggested turning into `if let`.
|
||||
pub if_let_suggestions: Lock<FxHashSet<Span>>,
|
||||
}
|
||||
|
||||
pub struct PerfStats {
|
||||
|
@ -1328,7 +1325,6 @@ pub fn build_session(
|
|||
miri_unleashed_features: Lock::new(Default::default()),
|
||||
asm_arch,
|
||||
target_features: FxHashSet::default(),
|
||||
if_let_suggestions: Default::default(),
|
||||
};
|
||||
|
||||
validate_commandline_args_with_session_available(&sess);
|
||||
|
|
|
@ -919,9 +919,10 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||
);
|
||||
}
|
||||
|
||||
if self.sess().if_let_suggestions.borrow().get(&expr.span).is_some() {
|
||||
// We already emitted an `if let` suggestion due to an identifier not found.
|
||||
err.delay_as_bug();
|
||||
// If the assignment expression itself is ill-formed, don't
|
||||
// bother emitting another error
|
||||
if lhs_ty.references_error() || rhs_ty.references_error() {
|
||||
err.delay_as_bug()
|
||||
} else {
|
||||
err.emit();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue