diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2024-12-05 21:19:08 +0000 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2024-12-10 18:17:24 +0000 |
| commit | 69fb612608f6b3d7f21a4efae869e69ca949955f (patch) | |
| tree | 7ccfffcd5eaa17872e697268c7be73985c42a25b /compiler/rustc_codegen_llvm/src/errors.rs | |
| parent | 3f52583c6a85f243e8444145e533fa799a40f777 (diff) | |
| download | rust-69fb612608f6b3d7f21a4efae869e69ca949955f.tar.gz rust-69fb612608f6b3d7f21a4efae869e69ca949955f.zip | |
Keep track of parse errors in `mod`s and don't emit resolve errors for paths involving them
When we expand a `mod foo;` and parse `foo.rs`, we now track whether that file had an unrecovered parse error that reached the end of the file. If so, we keep that information around. When resolving a path like `foo::bar`, we do not emit any errors for "`bar` not found in `foo`", as we know that the parse error might have caused `bar` to not be parsed and accounted for. When this happens in an existing project, every path referencing `foo` would be an irrelevant compile error. Instead, we now skip emitting anything until `foo.rs` is fixed. Tellingly enough, we didn't have any test for errors caused by `mod` expansion. Fix #97734.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/errors.rs')
0 files changed, 0 insertions, 0 deletions
