@@ -8379,7 +8379,7 @@ namespace ts {
83798379 unknownType;
83808380 }
83818381
8382- function getTypeOfDestructuredSpreadElement (type: Type) {
8382+ function getTypeOfDestructuredSpreadExpression (type: Type) {
83838383 return createArrayType(checkIteratedTypeOrElementType(type, /*errorNode*/ undefined, /*allowStringInput*/ false) || unknownType);
83848384 }
83858385
@@ -8393,8 +8393,8 @@ namespace ts {
83938393 return getTypeOfDestructuredArrayElement(getAssignedType(node), indexOf(node.elements, element));
83948394 }
83958395
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));
83988398 }
83998399
84008400 function getAssignedTypeOfPropertyAssignment(node: PropertyAssignment | ShorthandPropertyAssignment): Type {
@@ -8418,8 +8418,8 @@ namespace ts {
84188418 return undefinedType;
84198419 case SyntaxKind.ArrayLiteralExpression:
84208420 return getAssignedTypeOfArrayLiteralElement(<ArrayLiteralExpression>parent, node);
8421- case SyntaxKind.SpreadElementExpression :
8422- return getAssignedTypeOfSpreadElement(<SpreadElementExpression >parent);
8421+ case SyntaxKind.SpreadExpression :
8422+ return getAssignedTypeOfSpreadExpression(<SpreadExpression >parent);
84238423 case SyntaxKind.PropertyAssignment:
84248424 return getAssignedTypeOfPropertyAssignment(<PropertyAssignment>parent);
84258425 case SyntaxKind.ShorthandPropertyAssignment:
@@ -8435,7 +8435,7 @@ namespace ts {
84358435 getTypeOfDestructuredProperty(parentType, node.propertyName || <Identifier>node.name) :
84368436 !node.dotDotDotToken ?
84378437 getTypeOfDestructuredArrayElement(parentType, indexOf(pattern.elements, node)) :
8438- getTypeOfDestructuredSpreadElement (parentType);
8438+ getTypeOfDestructuredSpreadExpression (parentType);
84398439 return getTypeWithDefault(type, node.initializer);
84408440 }
84418441
@@ -10221,7 +10221,7 @@ namespace ts {
1022110221 return mapper && mapper.context;
1022210222 }
1022310223
10224- function checkSpreadElementExpression (node: SpreadElementExpression , contextualMapper?: TypeMapper): Type {
10224+ function checkSpreadExpression (node: SpreadExpression , contextualMapper?: TypeMapper): Type {
1022510225 // It is usually not safe to call checkExpressionCached if we can be contextually typing.
1022610226 // You can tell that we are contextually typing because of the contextualMapper parameter.
1022710227 // While it is true that a spread element can have a contextual type, it does not do anything
@@ -10243,7 +10243,7 @@ namespace ts {
1024310243 const elementTypes: Type[] = [];
1024410244 const inDestructuringPattern = isAssignmentTarget(node);
1024510245 for (const e of elements) {
10246- if (inDestructuringPattern && e.kind === SyntaxKind.SpreadElementExpression ) {
10246+ if (inDestructuringPattern && e.kind === SyntaxKind.SpreadExpression ) {
1024710247 // Given the following situation:
1024810248 // var c: {};
1024910249 // [...c] = ["", 0];
@@ -10256,7 +10256,7 @@ namespace ts {
1025610256 // get the contextual element type from it. So we do something similar to
1025710257 // getContextualTypeForElementExpression, which will crucially not error
1025810258 // if there is no index type / iterated type.
10259- const restArrayType = checkExpression((<SpreadElementExpression >e).expression, contextualMapper);
10259+ const restArrayType = checkExpression((<SpreadExpression >e).expression, contextualMapper);
1026010260 const restElementType = getIndexTypeOfType(restArrayType, IndexKind.Number) ||
1026110261 (languageVersion >= ScriptTarget.ES6 ? getElementTypeOfIterable(restArrayType, /*errorNode*/ undefined) : undefined);
1026210262 if (restElementType) {
@@ -10267,7 +10267,7 @@ namespace ts {
1026710267 const type = checkExpressionForMutableLocation(e, contextualMapper);
1026810268 elementTypes.push(type);
1026910269 }
10270- hasSpreadElement = hasSpreadElement || e.kind === SyntaxKind.SpreadElementExpression ;
10270+ hasSpreadElement = hasSpreadElement || e.kind === SyntaxKind.SpreadExpression ;
1027110271 }
1027210272 if (!hasSpreadElement) {
1027310273 // If array literal is actually a destructuring pattern, mark it as an implied type. We do this such
@@ -10456,7 +10456,7 @@ namespace ts {
1045610456 prop.target = member;
1045710457 member = prop;
1045810458 }
10459- else if (memberDecl.kind === SyntaxKind.SpreadElement ) {
10459+ else if (memberDecl.kind === SyntaxKind.SpreadElementExpression ) {
1046010460 if (propertiesArray.length > 0) {
1046110461 const t = createObjectLiteralType(node, hasComputedStringProperty, hasComputedNumberProperty, propertiesArray, propertiesTable, typeFlags, patternWithComputedProperties, inDestructuringPattern) as SpreadElementType;
1046210462 t.isDeclaredProperty = true;
@@ -10466,7 +10466,7 @@ namespace ts {
1046610466 hasComputedStringProperty = false;
1046710467 hasComputedNumberProperty = false;
1046810468 }
10469- spreads.push(checkExpression((memberDecl as SpreadElement).target ) as SpreadElementType);
10469+ spreads.push(checkExpression((memberDecl as SpreadElementExpression).expression ) as SpreadElementType);
1047010470 continue;
1047110471 }
1047210472 else {
@@ -11503,7 +11503,7 @@ namespace ts {
1150311503 function getSpreadArgumentIndex(args: Expression[]): number {
1150411504 for (let i = 0; i < args.length; i++) {
1150511505 const arg = args[i];
11506- if (arg && arg.kind === SyntaxKind.SpreadElementExpression ) {
11506+ if (arg && arg.kind === SyntaxKind.SpreadExpression ) {
1150711507 return i;
1150811508 }
1150911509 }
@@ -13474,7 +13474,7 @@ namespace ts {
1347413474 const elements = node.elements;
1347513475 const element = elements[elementIndex];
1347613476 if (element.kind !== SyntaxKind.OmittedExpression) {
13477- if (element.kind !== SyntaxKind.SpreadElementExpression ) {
13477+ if (element.kind !== SyntaxKind.SpreadExpression ) {
1347813478 const propName = "" + elementIndex;
1347913479 const type = isTypeAny(sourceType)
1348013480 ? sourceType
@@ -13501,7 +13501,7 @@ namespace ts {
1350113501 error(element, Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern);
1350213502 }
1350313503 else {
13504- const restExpression = (<SpreadElementExpression >element).expression;
13504+ const restExpression = (<SpreadExpression >element).expression;
1350513505 if (restExpression.kind === SyntaxKind.BinaryExpression && (<BinaryExpression>restExpression).operatorToken.kind === SyntaxKind.EqualsToken) {
1350613506 error((<BinaryExpression>restExpression).operatorToken, Diagnostics.A_rest_element_cannot_have_an_initializer);
1350713507 }
@@ -14137,8 +14137,8 @@ namespace ts {
1413714137 return checkBinaryExpression(<BinaryExpression>node, contextualMapper);
1413814138 case SyntaxKind.ConditionalExpression:
1413914139 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);
1414214142 case SyntaxKind.OmittedExpression:
1414314143 return undefinedWideningType;
1414414144 case SyntaxKind.YieldExpression:
@@ -20048,8 +20048,8 @@ namespace ts {
2004820048 const GetOrSetAccessor = GetAccessor | SetAccessor;
2004920049
2005020050 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 ;
2005320053 switch (target.kind) {
2005420054 case SyntaxKind.Identifier:
2005520055 case SyntaxKind.PropertyAccessExpression:
0 commit comments