@@ -8379,7 +8379,7 @@ namespace ts {
8379
8379
unknownType;
8380
8380
}
8381
8381
8382
- function getTypeOfDestructuredSpreadElement (type: Type) {
8382
+ function getTypeOfDestructuredSpreadExpression (type: Type) {
8383
8383
return createArrayType(checkIteratedTypeOrElementType(type, /*errorNode*/ undefined, /*allowStringInput*/ false) || unknownType);
8384
8384
}
8385
8385
@@ -8393,8 +8393,8 @@ namespace ts {
8393
8393
return getTypeOfDestructuredArrayElement(getAssignedType(node), indexOf(node.elements, element));
8394
8394
}
8395
8395
8396
- function getAssignedTypeOfSpreadElement (node: SpreadElementExpression ): Type {
8397
- return getTypeOfDestructuredSpreadElement (getAssignedType(<ArrayLiteralExpression>node.parent));
8396
+ function getAssignedTypeOfSpreadExpression (node: SpreadExpression ): Type {
8397
+ return getTypeOfDestructuredSpreadExpression (getAssignedType(<ArrayLiteralExpression>node.parent));
8398
8398
}
8399
8399
8400
8400
function getAssignedTypeOfPropertyAssignment(node: PropertyAssignment | ShorthandPropertyAssignment): Type {
@@ -8418,8 +8418,8 @@ namespace ts {
8418
8418
return undefinedType;
8419
8419
case SyntaxKind.ArrayLiteralExpression:
8420
8420
return getAssignedTypeOfArrayLiteralElement(<ArrayLiteralExpression>parent, node);
8421
- case SyntaxKind.SpreadElementExpression :
8422
- return getAssignedTypeOfSpreadElement(<SpreadElementExpression >parent);
8421
+ case SyntaxKind.SpreadExpression :
8422
+ return getAssignedTypeOfSpreadExpression(<SpreadExpression >parent);
8423
8423
case SyntaxKind.PropertyAssignment:
8424
8424
return getAssignedTypeOfPropertyAssignment(<PropertyAssignment>parent);
8425
8425
case SyntaxKind.ShorthandPropertyAssignment:
@@ -8435,7 +8435,7 @@ namespace ts {
8435
8435
getTypeOfDestructuredProperty(parentType, node.propertyName || <Identifier>node.name) :
8436
8436
!node.dotDotDotToken ?
8437
8437
getTypeOfDestructuredArrayElement(parentType, indexOf(pattern.elements, node)) :
8438
- getTypeOfDestructuredSpreadElement (parentType);
8438
+ getTypeOfDestructuredSpreadExpression (parentType);
8439
8439
return getTypeWithDefault(type, node.initializer);
8440
8440
}
8441
8441
@@ -10221,7 +10221,7 @@ namespace ts {
10221
10221
return mapper && mapper.context;
10222
10222
}
10223
10223
10224
- function checkSpreadElementExpression (node: SpreadElementExpression , contextualMapper?: TypeMapper): Type {
10224
+ function checkSpreadExpression (node: SpreadExpression , contextualMapper?: TypeMapper): Type {
10225
10225
// It is usually not safe to call checkExpressionCached if we can be contextually typing.
10226
10226
// You can tell that we are contextually typing because of the contextualMapper parameter.
10227
10227
// While it is true that a spread element can have a contextual type, it does not do anything
@@ -10243,7 +10243,7 @@ namespace ts {
10243
10243
const elementTypes: Type[] = [];
10244
10244
const inDestructuringPattern = isAssignmentTarget(node);
10245
10245
for (const e of elements) {
10246
- if (inDestructuringPattern && e.kind === SyntaxKind.SpreadElementExpression ) {
10246
+ if (inDestructuringPattern && e.kind === SyntaxKind.SpreadExpression ) {
10247
10247
// Given the following situation:
10248
10248
// var c: {};
10249
10249
// [...c] = ["", 0];
@@ -10256,7 +10256,7 @@ namespace ts {
10256
10256
// get the contextual element type from it. So we do something similar to
10257
10257
// getContextualTypeForElementExpression, which will crucially not error
10258
10258
// if there is no index type / iterated type.
10259
- const restArrayType = checkExpression((<SpreadElementExpression >e).expression, contextualMapper);
10259
+ const restArrayType = checkExpression((<SpreadExpression >e).expression, contextualMapper);
10260
10260
const restElementType = getIndexTypeOfType(restArrayType, IndexKind.Number) ||
10261
10261
(languageVersion >= ScriptTarget.ES6 ? getElementTypeOfIterable(restArrayType, /*errorNode*/ undefined) : undefined);
10262
10262
if (restElementType) {
@@ -10267,7 +10267,7 @@ namespace ts {
10267
10267
const type = checkExpressionForMutableLocation(e, contextualMapper);
10268
10268
elementTypes.push(type);
10269
10269
}
10270
- hasSpreadElement = hasSpreadElement || e.kind === SyntaxKind.SpreadElementExpression ;
10270
+ hasSpreadElement = hasSpreadElement || e.kind === SyntaxKind.SpreadExpression ;
10271
10271
}
10272
10272
if (!hasSpreadElement) {
10273
10273
// If array literal is actually a destructuring pattern, mark it as an implied type. We do this such
@@ -10456,7 +10456,7 @@ namespace ts {
10456
10456
prop.target = member;
10457
10457
member = prop;
10458
10458
}
10459
- else if (memberDecl.kind === SyntaxKind.SpreadElement ) {
10459
+ else if (memberDecl.kind === SyntaxKind.SpreadElementExpression ) {
10460
10460
if (propertiesArray.length > 0) {
10461
10461
const t = createObjectLiteralType(node, hasComputedStringProperty, hasComputedNumberProperty, propertiesArray, propertiesTable, typeFlags, patternWithComputedProperties, inDestructuringPattern) as SpreadElementType;
10462
10462
t.isDeclaredProperty = true;
@@ -10466,7 +10466,7 @@ namespace ts {
10466
10466
hasComputedStringProperty = false;
10467
10467
hasComputedNumberProperty = false;
10468
10468
}
10469
- spreads.push(checkExpression((memberDecl as SpreadElement).target ) as SpreadElementType);
10469
+ spreads.push(checkExpression((memberDecl as SpreadElementExpression).expression ) as SpreadElementType);
10470
10470
continue;
10471
10471
}
10472
10472
else {
@@ -11503,7 +11503,7 @@ namespace ts {
11503
11503
function getSpreadArgumentIndex(args: Expression[]): number {
11504
11504
for (let i = 0; i < args.length; i++) {
11505
11505
const arg = args[i];
11506
- if (arg && arg.kind === SyntaxKind.SpreadElementExpression ) {
11506
+ if (arg && arg.kind === SyntaxKind.SpreadExpression ) {
11507
11507
return i;
11508
11508
}
11509
11509
}
@@ -13474,7 +13474,7 @@ namespace ts {
13474
13474
const elements = node.elements;
13475
13475
const element = elements[elementIndex];
13476
13476
if (element.kind !== SyntaxKind.OmittedExpression) {
13477
- if (element.kind !== SyntaxKind.SpreadElementExpression ) {
13477
+ if (element.kind !== SyntaxKind.SpreadExpression ) {
13478
13478
const propName = "" + elementIndex;
13479
13479
const type = isTypeAny(sourceType)
13480
13480
? sourceType
@@ -13501,7 +13501,7 @@ namespace ts {
13501
13501
error(element, Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern);
13502
13502
}
13503
13503
else {
13504
- const restExpression = (<SpreadElementExpression >element).expression;
13504
+ const restExpression = (<SpreadExpression >element).expression;
13505
13505
if (restExpression.kind === SyntaxKind.BinaryExpression && (<BinaryExpression>restExpression).operatorToken.kind === SyntaxKind.EqualsToken) {
13506
13506
error((<BinaryExpression>restExpression).operatorToken, Diagnostics.A_rest_element_cannot_have_an_initializer);
13507
13507
}
@@ -14137,8 +14137,8 @@ namespace ts {
14137
14137
return checkBinaryExpression(<BinaryExpression>node, contextualMapper);
14138
14138
case SyntaxKind.ConditionalExpression:
14139
14139
return checkConditionalExpression(<ConditionalExpression>node, contextualMapper);
14140
- case SyntaxKind.SpreadElementExpression :
14141
- return checkSpreadElementExpression(<SpreadElementExpression >node, contextualMapper);
14140
+ case SyntaxKind.SpreadExpression :
14141
+ return checkSpreadExpression(<SpreadExpression >node, contextualMapper);
14142
14142
case SyntaxKind.OmittedExpression:
14143
14143
return undefinedWideningType;
14144
14144
case SyntaxKind.YieldExpression:
@@ -20048,8 +20048,8 @@ namespace ts {
20048
20048
const GetOrSetAccessor = GetAccessor | SetAccessor;
20049
20049
20050
20050
for (const prop of node.properties) {
20051
- if (prop.kind === SyntaxKind.SpreadElement ) {
20052
- const target = (prop as SpreadElement).target ;
20051
+ if (prop.kind === SyntaxKind.SpreadElementExpression ) {
20052
+ const target = (prop as SpreadElementExpression).expression ;
20053
20053
switch (target.kind) {
20054
20054
case SyntaxKind.Identifier:
20055
20055
case SyntaxKind.PropertyAccessExpression:
0 commit comments