Skip to content

Commit 568b899

Browse files
fix check
1 parent e89096d commit 568b899

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

src/compiler/checker.ts

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7229,7 +7229,8 @@ namespace ts {
72297229
spreadTypes.set(id, type = createTypeSpreadType(tuple));
72307230
}
72317231
return [type];
7232-
} else {
7232+
}
7233+
else {
72337234
// const type = getApparentType(nodeType);
72347235
if (allowSyntheticDefaultImports) {
72357236
console.log("type", typeToString(tuple));
@@ -7268,7 +7269,7 @@ namespace ts {
72687269
if (node.kind === SyntaxKind.TypeSpread) {
72697270
const links = getNodeLinks(node);
72707271
if (!links.resolvedType) {
7271-
links.resolvedType = getTypeFromTypeNode((node as TypeSpreadTypeNode).type)
7272+
links.resolvedType = getTypeFromTypeNode((node as TypeSpreadTypeNode).type);
72727273
}
72737274
return getTypeSpreadTypes(links.resolvedType);
72747275
}
@@ -7615,6 +7616,7 @@ namespace ts {
76157616
}
76167617

76177618
function createTypeSpreadType(tuple: Type) {
7619+
console.log("createTypeSpreadType");
76187620
const type = <TypeSpreadType>createType(TypeFlags.TypeSpread);
76197621
type.type = tuple;
76207622
return type;
@@ -18837,13 +18839,22 @@ namespace ts {
1883718839
forEach(node.elementTypes, checkSourceElement);
1883818840
}
1883918841

18840-
function checkTypeSpread(node: TypeSpreadTypeNode) {
18841-
const type = getApparentType(getTypeFromTypeNode(node.type as TypeNode));
18842+
function checkTypeSpreadTypeNode(node: TypeSpreadTypeNode) {
18843+
checkSourceElement(node.type);
18844+
// checkTypeSpreadType(<TypeSpreadType> getTypeFromTypeNode(node.type), node);
18845+
const type = getApparentType(getTypeFromTypeNode(node.type));
1884218846
if (!isArrayLikeType(type)) { // isTupleLikeType
1884318847
grammarErrorOnNode(node, Diagnostics.Tuple_type_spreads_may_only_be_created_from_tuple_types);
1884418848
}
1884518849
}
1884618850

18851+
// function checkTypeSpreadType(spread: TypeSpreadType, node: TypeSpreadTypeNode) {
18852+
// const type = getApparentType(spread.type);
18853+
// if (!isArrayLikeType(type)) { // isTupleLikeType
18854+
// grammarErrorOnNode(node, Diagnostics.Tuple_type_spreads_may_only_be_created_from_tuple_types);
18855+
// }
18856+
// }
18857+
1884718858
function checkUnionOrIntersectionType(node: UnionOrIntersectionTypeNode) {
1884818859
forEach(node.types, checkSourceElement);
1884918860
}
@@ -22380,7 +22391,7 @@ namespace ts {
2238022391
case SyntaxKind.TupleType:
2238122392
return checkTupleType(<TupleTypeNode>node);
2238222393
case SyntaxKind.TypeSpread:
22383-
return checkTypeSpread(<TypeSpreadTypeNode>node);
22394+
return checkTypeSpreadTypeNode(<TypeSpreadTypeNode>node);
2238422395
case SyntaxKind.UnionType:
2238522396
case SyntaxKind.IntersectionType:
2238622397
return checkUnionOrIntersectionType(<UnionOrIntersectionTypeNode>node);

src/compiler/factory.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2186,6 +2186,7 @@ namespace ts {
21862186
}
21872187

21882188
export function createTypeSpread(type: TypeNode) {
2189+
console.log("createTypeSpread");
21892190
const node = <TypeSpreadTypeNode>createSynthesizedNode(SyntaxKind.TypeSpread);
21902191
node.type = type !== undefined ? parenthesizeElementTypeMember(type) : undefined;
21912192
return node;

0 commit comments

Comments
 (0)