fix: initial mapped-selector infer with experimentalSelectorInference #2908
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.
This PR fixes the initial inferred selector for the transform/resolve process for a mapped selector that is created using a
@custom-selector
with the newexperimentalSelectorInference=true
(only in flat-mode and not the new structure-mode).The difference between the old and new inference is that with the old mode the default context was the
root
of the stylesheet, so any internal custom states/parts were inferred against the root, and that worked fine because only flat structured were allowed, so any custom selector mapping that started with::part
would refer to a part of theroot
.With the new
experimentalSelectorInference
, the selector context defaults to*
(universal selector), making::part
unknown. So to handle mapping to::part
, it is assumed that any mapped-selector from a pseudo-element starts with an inferredroot
, while keeping the context after combinators as*
.