Auto merge of #109602 - bvanjoi:fix-issue-109343, r=petrochenkov

fix(resolve): replace bindings to dummy for unresolved imports

close #109343

In #109343, `f` in `pub use f as g` points to:

|namespace| binding|
|-|-|
|type| `external crate f`|
|value| `None` |
|macro| `None` |

When resolve `value_ns` during `resolve_doc_links`, the value of the binding of single_import `pub use f as g` goes to `pub use inner::f`, and since it does not satisfy [!self.is_accessible_from(binding.vis, single_import.parent_scope.module)](https://github.com/rust-lang/rust/blob/master/compiler/rustc_resolve/src/ident.rs#L971) and returns `Err(Undetermined)`, which eventually goes to `PathResult::Indeterminate => unreachable!`.

This PR replace all namespace binding to `dummy_binding` for indeterminate import, so, the bindings of `pub use f as g` had been changed to followings after finalize:

|namespace| binding|
|-|-|
|type| `dummy`|
|value| `dummy` |
|macro| `dummy` |

r?`@petrochenkov`
This commit is contained in:
bors 2023-05-19 00:41:32 +00:00
commit 92f5dea0eb
5 changed files with 29 additions and 6 deletions

View file

@ -85,6 +85,7 @@ pub mod rustdoc;
fluent_messages! { "../messages.ftl" }
#[derive(Debug)]
enum Weak {
Yes,
No,