fix(resolve): skip assertion judgment when NonModule is dummy #113168
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #85992
Why #85992 panic
During
resolve_imports
, thepath_res
of the importissue_85992_extern_2::Outcome
is pointing toexternal::issue_85992_extern_2
instead ofcrate::issue_85992_extern_2
. As a resultimport.imported_module.set
had been executed.Attached 1: the state of
early_resolve_ident_in_lexical_scope
during theresolve_imports
foruse issue_85992_extern_2::Outcome
is as follows:visit_scopes
scope
result.binding
CrateRoot
ExternPrelude
issue_85992_extern_2
(external)However, during finalization for
issue_85992_extern_2::Outcome
, theinnermost_result
was pointed tocrate::issue_85992_extern_2
and no ambiguity was generated, leading to a panic.Attached 2: the state of
early_resolve_ident_in_lexical_scope
during thefinalize_import
foruse issue_85992_extern_2::Outcome
is as follows:visit_scopes
scope
result.binding
innermost_result
None
CrateRoot
use crate::issue_85992_extern_2
(introdcued by dummy)result
but with aSome
wapperExternPrelude
issue_85992_extern_2
(external)Try to solve
Skip assertion judgment when
NonModule
is dummyr? @petrochenkov