Skip to content
Open
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
10a9bb6
Infer from filtering mapped types
Andarist Feb 25, 2023
22fec49
Merge remote-tracking branch 'origin/main' into infer-from-filterin-m…
Andarist Mar 19, 2023
e8676f2
Merge remote-tracking branch 'origin/main' into infer-from-filterin-m…
Andarist Jun 13, 2023
fe90e8a
Merge remote-tracking branch 'origin/main' into infer-from-filterin-m…
Andarist Sep 20, 2023
17618ea
Merge remote-tracking branch 'origin/main' into infer-from-filterin-m…
Andarist Dec 1, 2023
cb96fc1
Add more tests
Andarist Dec 1, 2023
3a44904
Limit inferred keys based on `nameType` too
Andarist Dec 30, 2023
55bb333
Merge remote-tracking branch 'origin/main' into infer-from-filterin-m…
Andarist Dec 30, 2023
9dfeab2
fix format
Andarist Dec 30, 2023
602d628
grab the constraint of limited constraint
Andarist Dec 30, 2023
d1f9006
fix the get base constraint call
Andarist Dec 31, 2023
1271786
add extra test cases to showcase how constraint limiting is important…
Andarist Dec 31, 2023
6c74957
showcase additional fix with mixed union and intersection
Andarist Dec 31, 2023
998b96b
add tests for combined intersection limiting and name type limiting
Andarist Dec 31, 2023
171ee93
improve comments and variable names
Andarist Dec 31, 2023
5f3cf18
replace record with object
Andarist Dec 31, 2023
59b6549
fix format
Andarist Dec 31, 2023
37521a7
Remove what got carved out to a separate bug fixing PR
Andarist Dec 31, 2023
fde40d5
Merge remote-tracking branch 'origin/main' into infer-from-filterin-m…
Andarist Nov 26, 2024
9deef9d
Merge remote-tracking branch 'origin/main' into infer-from-filterin-m…
Andarist Jan 11, 2025
9851814
Merge remote-tracking branch 'origin/main' into infer-from-filterin-m…
Andarist Dec 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
grab the constraint of limited constraint
  • Loading branch information
Andarist committed Dec 30, 2023
commit 602d628f5a13707b2a3241ca7bc3988e41c72ea5
4 changes: 2 additions & 2 deletions src/compiler/checker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13682,7 +13682,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
const keyofConstraintRecord = getTypeAliasInstantiation(recordSymbol, [keyofConstraintType, unknownType]);
const mapper = appendTypeMapping(type.mappedType.mapper, type.constraintType.type, keyofConstraintRecord);
return instantiateType(constraint, mapper);
return getBaseConstraintOfType(instantiateType(constraint, mapper));
}

function resolveReverseMappedTypeMembers(type: ReverseMappedType) {
Expand Down Expand Up @@ -25761,7 +25761,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
function inferToMappedType(source: Type, target: MappedType, constraintType: Type): boolean {
if (constraintType.flags & TypeFlags.UnionOrIntersection) {
let result = false;
for (const type of (constraintType as (UnionOrIntersectionType)).types) {
for (const type of (constraintType as UnionOrIntersectionType).types) {
result = inferToMappedType(source, target, type) || result;
}
return result;
Expand Down