Use full isReadonlySymbol
check rather than declaration flags
#48064
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.
When comparing property readonly-ness for subtype checks. This fixes comparing a mapped type
readonly
prop (which gets aReadonly
check flag) with a declaredreadonly
prop (which has aReadonly
modifier flag, but no check flag).That alone fixes #47940 with the caveat that the type guard should look for a
readonly
field rather than a mutable one (since narrowing is by subtype and not assignability, andArrayLike
has areadonly
length property).In addition, I also limit the new subtype check to only the
strictSubtypeRelation
, as used by subtype reduction, so as to not change behavior in control flow, and thus fixes #47940 completely.