@@ -598,7 +598,7 @@ module ts {
598598 if (moduleSymbol.flags & SymbolFlags.Variable) {
599599 let typeAnnotation = (<VariableDeclaration>moduleSymbol.valueDeclaration).type;
600600 if (typeAnnotation) {
601- return getPropertyOfType(getTypeFromTypeNodeOrHeritageClauseElement (typeAnnotation), name);
601+ return getPropertyOfType(getTypeFromTypeNode (typeAnnotation), name);
602602 }
603603 }
604604 }
@@ -647,7 +647,7 @@ module ts {
647647 if (symbol.flags & SymbolFlags.Variable) {
648648 var typeAnnotation = (<VariableDeclaration>symbol.valueDeclaration).type;
649649 if (typeAnnotation) {
650- return resolveSymbol(getPropertyOfType(getTypeFromTypeNodeOrHeritageClauseElement (typeAnnotation), name));
650+ return resolveSymbol(getPropertyOfType(getTypeFromTypeNode (typeAnnotation), name));
651651 }
652652 }
653653 }
@@ -2128,7 +2128,7 @@ module ts {
21282128 }
21292129 // Use type from type annotation if one is present
21302130 if (declaration.type) {
2131- return getTypeFromTypeNodeOrHeritageClauseElement (declaration.type);
2131+ return getTypeFromTypeNode (declaration.type);
21322132 }
21332133 if (declaration.kind === SyntaxKind.Parameter) {
21342134 let func = <FunctionLikeDeclaration>declaration.parent;
@@ -2290,18 +2290,18 @@ module ts {
22902290 return links.type;
22912291 }
22922292
2293- function getSetAccessorTypeAnnotationNode(accessor: AccessorDeclaration): TypeNode | LiteralExpression {
2293+ function getSetAccessorTypeAnnotationNode(accessor: AccessorDeclaration): TypeNode {
22942294 return accessor && accessor.parameters.length > 0 && accessor.parameters[0].type;
22952295 }
22962296
22972297 function getAnnotatedAccessorType(accessor: AccessorDeclaration): Type {
22982298 if (accessor) {
22992299 if (accessor.kind === SyntaxKind.GetAccessor) {
2300- return accessor.type && getTypeFromTypeNodeOrHeritageClauseElement (accessor.type);
2300+ return accessor.type && getTypeFromTypeNode (accessor.type);
23012301 }
23022302 else {
23032303 let setterTypeAnnotation = getSetAccessorTypeAnnotationNode(accessor);
2304- return setterTypeAnnotation && getTypeFromTypeNodeOrHeritageClauseElement (setterTypeAnnotation);
2304+ return setterTypeAnnotation && getTypeFromTypeNode (setterTypeAnnotation);
23052305 }
23062306 }
23072307 return undefined;
@@ -2542,7 +2542,7 @@ module ts {
25422542 if (!links.declaredType) {
25432543 links.declaredType = resolvingType;
25442544 let declaration = <TypeAliasDeclaration>getDeclarationOfKind(symbol, SyntaxKind.TypeAliasDeclaration);
2545- let type = getTypeFromTypeNodeOrHeritageClauseElement (declaration.type);
2545+ let type = getTypeFromTypeNode (declaration.type);
25462546 if (links.declaredType === resolvingType) {
25472547 links.declaredType = type;
25482548 }
@@ -3084,7 +3084,7 @@ module ts {
30843084 returnType = classType;
30853085 }
30863086 else if (declaration.type) {
3087- returnType = getTypeFromTypeNodeOrHeritageClauseElement (declaration.type);
3087+ returnType = getTypeFromTypeNode (declaration.type);
30883088 }
30893089 else {
30903090 // TypeScript 1.0 spec (April 2014):
@@ -3242,7 +3242,7 @@ module ts {
32423242 function getIndexTypeOfSymbol(symbol: Symbol, kind: IndexKind): Type {
32433243 let declaration = getIndexDeclarationOfSymbol(symbol, kind);
32443244 return declaration
3245- ? declaration.type ? getTypeFromTypeNodeOrHeritageClauseElement (declaration.type) : anyType
3245+ ? declaration.type ? getTypeFromTypeNode (declaration.type) : anyType
32463246 : undefined;
32473247 }
32483248
@@ -3253,7 +3253,7 @@ module ts {
32533253 type.constraint = targetConstraint ? instantiateType(targetConstraint, type.mapper) : noConstraintType;
32543254 }
32553255 else {
3256- type.constraint = getTypeFromTypeNodeOrHeritageClauseElement ((<TypeParameterDeclaration>getDeclarationOfKind(type.symbol, SyntaxKind.TypeParameter)).constraint);
3256+ type.constraint = getTypeFromTypeNode ((<TypeParameterDeclaration>getDeclarationOfKind(type.symbol, SyntaxKind.TypeParameter)).constraint);
32573257 }
32583258 }
32593259 return type.constraint === noConstraintType ? undefined : type.constraint;
@@ -3384,7 +3384,7 @@ module ts {
33843384 if (type.flags & (TypeFlags.Class | TypeFlags.Interface) && type.flags & TypeFlags.Reference) {
33853385 let typeParameters = (<InterfaceType>type).typeParameters;
33863386 if (node.typeArguments && node.typeArguments.length === typeParameters.length) {
3387- type = createTypeReference(<GenericType>type, map(node.typeArguments, getTypeFromTypeNodeOrHeritageClauseElement ));
3387+ type = createTypeReference(<GenericType>type, map(node.typeArguments, getTypeFromTypeNode ));
33883388 }
33893389 else {
33903390 error(node, Diagnostics.Generic_type_0_requires_1_type_argument_s, typeToString(type, /*enclosingDeclaration*/ undefined, TypeFormatFlags.WriteArrayAsGenericType), typeParameters.length);
@@ -3482,7 +3482,7 @@ module ts {
34823482 function getTypeFromArrayTypeNode(node: ArrayTypeNode): Type {
34833483 let links = getNodeLinks(node);
34843484 if (!links.resolvedType) {
3485- links.resolvedType = createArrayType(getTypeFromTypeNodeOrHeritageClauseElement (node.elementType));
3485+ links.resolvedType = createArrayType(getTypeFromTypeNode (node.elementType));
34863486 }
34873487 return links.resolvedType;
34883488 }
@@ -3500,7 +3500,7 @@ module ts {
35003500 function getTypeFromTupleTypeNode(node: TupleTypeNode): Type {
35013501 let links = getNodeLinks(node);
35023502 if (!links.resolvedType) {
3503- links.resolvedType = createTupleType(map(node.elementTypes, getTypeFromTypeNodeOrHeritageClauseElement ));
3503+ links.resolvedType = createTupleType(map(node.elementTypes, getTypeFromTypeNode ));
35043504 }
35053505 return links.resolvedType;
35063506 }
@@ -3609,7 +3609,7 @@ module ts {
36093609 function getTypeFromUnionTypeNode(node: UnionTypeNode): Type {
36103610 let links = getNodeLinks(node);
36113611 if (!links.resolvedType) {
3612- links.resolvedType = getUnionType(map(node.types, getTypeFromTypeNodeOrHeritageClauseElement ), /*noSubtypeReduction*/ true);
3612+ links.resolvedType = getUnionType(map(node.types, getTypeFromTypeNode ), /*noSubtypeReduction*/ true);
36133613 }
36143614 return links.resolvedType;
36153615 }
@@ -3623,7 +3623,7 @@ module ts {
36233623 return links.resolvedType;
36243624 }
36253625
3626- function getStringLiteralType(node: LiteralExpression ): StringLiteralType {
3626+ function getStringLiteralType(node: StringLiteral ): StringLiteralType {
36273627 if (hasProperty(stringLiteralTypes, node.text)) {
36283628 return stringLiteralTypes[node.text];
36293629 }
@@ -3633,15 +3633,15 @@ module ts {
36333633 return type;
36343634 }
36353635
3636- function getTypeFromStringLiteral(node: LiteralExpression ): Type {
3636+ function getTypeFromStringLiteral(node: StringLiteral ): Type {
36373637 let links = getNodeLinks(node);
36383638 if (!links.resolvedType) {
36393639 links.resolvedType = getStringLiteralType(node);
36403640 }
36413641 return links.resolvedType;
36423642 }
36433643
3644- function getTypeFromTypeNodeOrHeritageClauseElement (node: TypeNode | LiteralExpression | HeritageClauseElement ): Type {
3644+ function getTypeFromTypeNode (node: TypeNode): Type {
36453645 switch (node.kind) {
36463646 case SyntaxKind.AnyKeyword:
36473647 return anyType;
@@ -3656,7 +3656,7 @@ module ts {
36563656 case SyntaxKind.VoidKeyword:
36573657 return voidType;
36583658 case SyntaxKind.StringLiteral:
3659- return getTypeFromStringLiteral(<LiteralExpression >node);
3659+ return getTypeFromStringLiteral(<StringLiteral >node);
36603660 case SyntaxKind.TypeReference:
36613661 return getTypeFromTypeReference(<TypeReferenceNode>node);
36623662 case SyntaxKind.HeritageClauseElement:
@@ -3670,7 +3670,7 @@ module ts {
36703670 case SyntaxKind.UnionType:
36713671 return getTypeFromUnionTypeNode(<UnionTypeNode>node);
36723672 case SyntaxKind.ParenthesizedType:
3673- return getTypeFromTypeNodeOrHeritageClauseElement ((<ParenthesizedTypeNode>node).type);
3673+ return getTypeFromTypeNode ((<ParenthesizedTypeNode>node).type);
36743674 case SyntaxKind.FunctionType:
36753675 case SyntaxKind.ConstructorType:
36763676 case SyntaxKind.TypeLiteral:
@@ -5681,7 +5681,7 @@ module ts {
56815681 let declaration = <VariableLikeDeclaration>node.parent;
56825682 if (node === declaration.initializer) {
56835683 if (declaration.type) {
5684- return getTypeFromTypeNodeOrHeritageClauseElement (declaration.type);
5684+ return getTypeFromTypeNode (declaration.type);
56855685 }
56865686 if (declaration.kind === SyntaxKind.Parameter) {
56875687 let type = getContextuallyTypedParameterType(<ParameterDeclaration>declaration);
@@ -5884,7 +5884,7 @@ module ts {
58845884 case SyntaxKind.NewExpression:
58855885 return getContextualTypeForArgument(<CallExpression>parent, node);
58865886 case SyntaxKind.TypeAssertionExpression:
5887- return getTypeFromTypeNodeOrHeritageClauseElement ((<TypeAssertion>parent).type);
5887+ return getTypeFromTypeNode ((<TypeAssertion>parent).type);
58885888 case SyntaxKind.BinaryExpression:
58895889 return getContextualTypeForBinaryOperand(node);
58905890 case SyntaxKind.PropertyAssignment:
@@ -6706,7 +6706,7 @@ module ts {
67066706 let typeArgumentsAreAssignable = true;
67076707 for (let i = 0; i < typeParameters.length; i++) {
67086708 let typeArgNode = typeArguments[i];
6709- let typeArgument = getTypeFromTypeNodeOrHeritageClauseElement (typeArgNode);
6709+ let typeArgument = getTypeFromTypeNode (typeArgNode);
67106710 // Do not push on this array! It has a preallocated length
67116711 typeArgumentResultTypes[i] = typeArgument;
67126712 if (typeArgumentsAreAssignable /* so far */) {
@@ -6728,9 +6728,12 @@ module ts {
67286728 let paramType = getTypeAtPosition(signature, i);
67296729 // A tagged template expression provides a special first argument, and string literals get string literal types
67306730 // unless we're reporting errors
6731- let argType = i === 0 && node.kind === SyntaxKind.TaggedTemplateExpression ? globalTemplateStringsArrayType :
6732- arg.kind === SyntaxKind.StringLiteral && !reportErrors ? getStringLiteralType(<LiteralExpression>arg) :
6733- checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined);
6731+ let argType = i === 0 && node.kind === SyntaxKind.TaggedTemplateExpression
6732+ ? globalTemplateStringsArrayType
6733+ : arg.kind === SyntaxKind.StringLiteral && !reportErrors
6734+ ? getStringLiteralType(<StringLiteral>arg)
6735+ : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined);
6736+
67346737 // Use argument expression as error location when reporting errors
67356738 if (!checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined,
67366739 Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1)) {
@@ -7188,7 +7191,7 @@ module ts {
71887191
71897192 function checkTypeAssertion(node: TypeAssertion): Type {
71907193 let exprType = checkExpression(node.expression);
7191- let targetType = getTypeFromTypeNodeOrHeritageClauseElement (node.type);
7194+ let targetType = getTypeFromTypeNode (node.type);
71927195 if (produceDiagnostics && targetType !== unknownType) {
71937196 let widenedType = getWidenedType(exprType);
71947197 if (!(isTypeAssignableTo(targetType, widenedType))) {
@@ -7362,7 +7365,7 @@ module ts {
73627365 function checkFunctionExpressionOrObjectLiteralMethodBody(node: FunctionExpression | MethodDeclaration) {
73637366 Debug.assert(node.kind !== SyntaxKind.MethodDeclaration || isObjectLiteralMethod(node));
73647367 if (node.type && !node.asteriskToken) {
7365- checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNodeOrHeritageClauseElement (node.type));
7368+ checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode (node.type));
73667369 }
73677370
73687371 if (node.body) {
@@ -7372,7 +7375,7 @@ module ts {
73727375 else {
73737376 let exprType = checkExpression(<Expression>node.body);
73747377 if (node.type) {
7375- checkTypeAssignableTo(exprType, getTypeFromTypeNodeOrHeritageClauseElement (node.type), node.body, /*headMessage*/ undefined);
7378+ checkTypeAssignableTo(exprType, getTypeFromTypeNode (node.type), node.body, /*headMessage*/ undefined);
73767379 }
73777380 checkFunctionExpressionBodies(node.body);
73787381 }
@@ -8801,12 +8804,12 @@ module ts {
88018804 }
88028805
88038806 /** Checks a type reference node as an expression. */
8804- function checkTypeNodeAsExpression(node: TypeNode | LiteralExpression ) {
8807+ function checkTypeNodeAsExpression(node: TypeNode) {
88058808 // When we are emitting type metadata for decorators, we need to try to check the type
88068809 // as if it were an expression so that we can emit the type in a value position when we
88078810 // serialize the type metadata.
88088811 if (node && node.kind === SyntaxKind.TypeReference) {
8809- let type = getTypeFromTypeNodeOrHeritageClauseElement (node);
8812+ let type = getTypeFromTypeNode (node);
88108813 let shouldCheckIfUnknownType = type === unknownType && compilerOptions.separateCompilation;
88118814 if (!type || (!shouldCheckIfUnknownType && type.flags & (TypeFlags.Intrinsic | TypeFlags.NumberLike | TypeFlags.StringLike))) {
88128815 return;
@@ -8826,7 +8829,8 @@ module ts {
88268829 case SyntaxKind.PropertyDeclaration:
88278830 checkTypeNodeAsExpression((<PropertyDeclaration>node).type);
88288831 break;
8829- case SyntaxKind.Parameter: checkTypeNodeAsExpression((<ParameterDeclaration>node).type);
8832+ case SyntaxKind.Parameter:
8833+ checkTypeNodeAsExpression((<ParameterDeclaration>node).type);
88308834 break;
88318835 case SyntaxKind.MethodDeclaration:
88328836 checkTypeNodeAsExpression((<MethodDeclaration>node).type);
@@ -8942,7 +8946,7 @@ module ts {
89428946
89438947 checkSourceElement(node.body);
89448948 if (node.type && !isAccessor(node.kind) && !node.asteriskToken) {
8945- checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNodeOrHeritageClauseElement (node.type));
8949+ checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode (node.type));
89468950 }
89478951
89488952 // Report an implicit any error if there is no body, no explicit return type, and node is not a private method
@@ -10106,7 +10110,7 @@ module ts {
1010610110 if (!tp1.constraint || !tp2.constraint) {
1010710111 return false;
1010810112 }
10109- if (!isTypeIdenticalTo(getTypeFromTypeNodeOrHeritageClauseElement (tp1.constraint), getTypeFromTypeNodeOrHeritageClauseElement (tp2.constraint))) {
10113+ if (!isTypeIdenticalTo(getTypeFromTypeNode (tp1.constraint), getTypeFromTypeNode (tp2.constraint))) {
1011010114 return false;
1011110115 }
1011210116 }
@@ -11137,7 +11141,7 @@ module ts {
1113711141 return node.parent && node.parent.kind === SyntaxKind.HeritageClauseElement;
1113811142 }
1113911143
11140- function isTypeNodeOrHeritageClauseElement (node: Node): boolean {
11144+ function isTypeNode (node: Node): boolean {
1114111145 if (SyntaxKind.FirstTypeNode <= node.kind && node.kind <= SyntaxKind.LastTypeNode) {
1114211146 return true;
1114311147 }
@@ -11386,8 +11390,8 @@ module ts {
1138611390 return unknownType;
1138711391 }
1138811392
11389- if (isTypeNodeOrHeritageClauseElement (node)) {
11390- return getTypeFromTypeNodeOrHeritageClauseElement (<TypeNode | HeritageClauseElement >node);
11393+ if (isTypeNode (node)) {
11394+ return getTypeFromTypeNode (<TypeNode>node);
1139111395 }
1139211396
1139311397 if (isExpression(node)) {
0 commit comments