1
Fork 0

Auto merge of #115677 - matthewjasper:let-expr-recovery, r=b-naber

Improve invalid let expression handling

- Move all of the checks for valid let expression positions to parsing.
- Add a field to ExprKind::Let in AST/HIR to mark whether it's in a valid location.
- Suppress some later errors and MIR construction for invalid let expressions.
- Fix a (drop) scope issue that was also responsible for #104172.

Fixes #104172
Fixes #104868
This commit is contained in:
bors 2023-09-14 19:56:55 +00:00
commit dac91a82e1
48 changed files with 2475 additions and 2287 deletions

View file

@ -4180,7 +4180,7 @@ impl<'a: 'ast, 'b, 'ast, 'tcx> LateResolutionVisitor<'a, 'b, 'ast, 'tcx> {
self.resolve_expr(e, Some(&expr));
}
ExprKind::Let(ref pat, ref scrutinee, _) => {
ExprKind::Let(ref pat, ref scrutinee, _, _) => {
self.visit_expr(scrutinee);
self.resolve_pattern_top(pat, PatternSource::Let);
}