about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src/errors.rs
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2024-12-05 21:19:08 +0000
committerEsteban Küber <esteban@kuber.com.ar>2024-12-10 18:17:24 +0000
commit69fb612608f6b3d7f21a4efae869e69ca949955f (patch)
tree7ccfffcd5eaa17872e697268c7be73985c42a25b /compiler/rustc_codegen_llvm/src/errors.rs
parent3f52583c6a85f243e8444145e533fa799a40f777 (diff)
downloadrust-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