Skip to content

Commit

Permalink
Rollup merge of #74071 - petrochenkov:cload3, r=matthewjasper
Browse files Browse the repository at this point in the history
rustc_metadata: Make crate loading fully speculative

Instead of reporting `span_err`s on the spot crate loading errors are now wrapped into the `CrateError` enum and returned, so they are reported only at the top level `resolve_crate` call, and not reported at all if we are resolving speculatively with `maybe_resolve_crate`.

As a result we can attempt loading crates for error recovery (e.g. import suggestions) without any risk of producing extra errors.
Also, this means better separation between error reporting and actual logic.

Fixes #55103
Fixes #56590
  • Loading branch information
Manishearth committed Jul 18, 2020
2 parents f305b20 + 0a4217d commit 43ba840
Show file tree
Hide file tree
Showing 16 changed files with 474 additions and 543 deletions.
2 changes: 1 addition & 1 deletion src/librustc_error_codes/error_codes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ E0770: include_str!("./error_codes/E0770.md"),
// E0420, merged into 532
// E0421, merged into 531
// E0427, merged into 530
E0456, // plugin `..` is not available for triple `..`
// E0456, // plugin `..` is not available for triple `..`
E0457, // plugin `..` only found in rlib format, but must be available...
E0460, // found possibly newer version of crate `..`
E0461, // couldn't find crate `..` with expected target triple ..
Expand Down
Loading

0 comments on commit 43ba840

Please sign in to comment.