@@ -7229,7 +7229,8 @@ namespace ts {
7229
7229
spreadTypes.set(id, type = createTypeSpreadType(tuple));
7230
7230
}
7231
7231
return [type];
7232
- } else {
7232
+ }
7233
+ else {
7233
7234
// const type = getApparentType(nodeType);
7234
7235
if (allowSyntheticDefaultImports) {
7235
7236
console.log("type", typeToString(tuple));
@@ -7268,7 +7269,7 @@ namespace ts {
7268
7269
if (node.kind === SyntaxKind.TypeSpread) {
7269
7270
const links = getNodeLinks(node);
7270
7271
if (!links.resolvedType) {
7271
- links.resolvedType = getTypeFromTypeNode((node as TypeSpreadTypeNode).type)
7272
+ links.resolvedType = getTypeFromTypeNode((node as TypeSpreadTypeNode).type);
7272
7273
}
7273
7274
return getTypeSpreadTypes(links.resolvedType);
7274
7275
}
@@ -7615,6 +7616,7 @@ namespace ts {
7615
7616
}
7616
7617
7617
7618
function createTypeSpreadType(tuple: Type) {
7619
+ console.log("createTypeSpreadType");
7618
7620
const type = <TypeSpreadType>createType(TypeFlags.TypeSpread);
7619
7621
type.type = tuple;
7620
7622
return type;
@@ -18837,13 +18839,22 @@ namespace ts {
18837
18839
forEach(node.elementTypes, checkSourceElement);
18838
18840
}
18839
18841
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));
18842
18846
if (!isArrayLikeType(type)) { // isTupleLikeType
18843
18847
grammarErrorOnNode(node, Diagnostics.Tuple_type_spreads_may_only_be_created_from_tuple_types);
18844
18848
}
18845
18849
}
18846
18850
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
+
18847
18858
function checkUnionOrIntersectionType(node: UnionOrIntersectionTypeNode) {
18848
18859
forEach(node.types, checkSourceElement);
18849
18860
}
@@ -22380,7 +22391,7 @@ namespace ts {
22380
22391
case SyntaxKind.TupleType:
22381
22392
return checkTupleType(<TupleTypeNode>node);
22382
22393
case SyntaxKind.TypeSpread:
22383
- return checkTypeSpread (<TypeSpreadTypeNode>node);
22394
+ return checkTypeSpreadTypeNode (<TypeSpreadTypeNode>node);
22384
22395
case SyntaxKind.UnionType:
22385
22396
case SyntaxKind.IntersectionType:
22386
22397
return checkUnionOrIntersectionType(<UnionOrIntersectionTypeNode>node);
0 commit comments