Keep track of patterns that could have introduced a binding, but didn't
When we recover from a pattern parse error, or a pattern uses `..`, we keep track of that and affect resolution error for missing bindings that could have been provided by that pattern. We differentiate between `..` and parse recovery. We silence resolution errors likely caused by the pattern parse error.
```
error[E0425]: cannot find value `title` in this scope
--> $DIR/struct-pattern-with-missing-fields-resolve-error.rs:18:30
|
LL | if let Website { url, .. } = website {
| ------------------- this pattern doesn't include `title`, which is available in `Website`
LL | println!("[{}]({})", title, url);
| ^^^^^ not found in this scope
```
Fix #74863.
|
||
|---|---|---|
| .. | ||
| late | ||
| build_reduced_graph.rs | ||
| check_unused.rs | ||
| def_collector.rs | ||
| diagnostics.rs | ||
| effective_visibilities.rs | ||
| errors.rs | ||
| ident.rs | ||
| imports.rs | ||
| late.rs | ||
| lib.rs | ||
| macros.rs | ||
| rustdoc.rs | ||