about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/Linker.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-09-24 10:32:28 +0000
committerbors <bors@rust-lang.org>2024-09-24 10:32:28 +0000
commita8eaa9ed35b242c4117fbde56a5aa8cfb898ba7f (patch)
tree1fdfaefc8ee2a0e0c431df9fc50509cd8997906c /compiler/rustc_llvm/llvm-wrapper/Linker.cpp
parent80c06828a2822b9f888b2ad292502dd349810461 (diff)
parent0a259082dfc6e1bf35399b759a366db61c5f6c23 (diff)
downloadrust-a8eaa9ed35b242c4117fbde56a5aa8cfb898ba7f.tar.gz
rust-a8eaa9ed35b242c4117fbde56a5aa8cfb898ba7f.zip
Auto merge of #18160 - ChayimFriedman2:fix-18138, r=Veykril
fix: Fix name resolution when an import is resolved to some namespace and then later in the algorithm another namespace is added

The import is flagged as "indeterminate", and previously it was re-resolved, but only at the end of name resolution, when it's already too late for anything that depends on it.

This issue was tried to fix in https://github.com/rust-lang/rust-analyzer/pull/2466, but it was not fixed fully.

That PR is also why IDE features did work: the import at the end was resolved correctly, so IDE features that re-resolved the macro path resolved it correctly.

I was concerned about the performance of this, but this doesn't seem to regress `analysis-stats .`, so I guess it's fine to land this. I have no idea about the incremental perf however and I don't know how to measure that, although when typing in `zbus` (including creating a new function, which should recompute the def map) completion was fast enough.

I didn't check what rustc does, so maybe it does something more performant, like keeping track of only possibly problematic imports.

Fixes #18138.
Probably fixes #17630.
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/Linker.cpp')
0 files changed, 0 insertions, 0 deletions