@@ -597,7 +597,7 @@ module ts {
597597 if (moduleSymbol.flags & SymbolFlags.Variable) {
598598 let typeAnnotation = (<VariableDeclaration>moduleSymbol.valueDeclaration).type;
599599 if (typeAnnotation) {
600- return getPropertyOfType(getTypeFromTypeNodeOrHeritageClauseElement (typeAnnotation), name);
600+ return getPropertyOfType(getTypeFromTypeNode (typeAnnotation), name);
601601 }
602602 }
603603 }
@@ -646,7 +646,7 @@ module ts {
646646 if (symbol.flags & SymbolFlags.Variable) {
647647 var typeAnnotation = (<VariableDeclaration>symbol.valueDeclaration).type;
648648 if (typeAnnotation) {
649- return resolveSymbol(getPropertyOfType(getTypeFromTypeNodeOrHeritageClauseElement (typeAnnotation), name));
649+ return resolveSymbol(getPropertyOfType(getTypeFromTypeNode (typeAnnotation), name));
650650 }
651651 }
652652 }
@@ -2127,7 +2127,7 @@ module ts {
21272127 }
21282128 // Use type from type annotation if one is present
21292129 if (declaration.type) {
2130- return getTypeFromTypeNodeOrHeritageClauseElement (declaration.type);
2130+ return getTypeFromTypeNode (declaration.type);
21312131 }
21322132 if (declaration.kind === SyntaxKind.Parameter) {
21332133 let func = <FunctionLikeDeclaration>declaration.parent;
@@ -2289,18 +2289,18 @@ module ts {
22892289 return links.type;
22902290 }
22912291
2292- function getSetAccessorTypeAnnotationNode(accessor: AccessorDeclaration): TypeNode | LiteralExpression {
2292+ function getSetAccessorTypeAnnotationNode(accessor: AccessorDeclaration): TypeNode {
22932293 return accessor && accessor.parameters.length > 0 && accessor.parameters[0].type;
22942294 }
22952295
22962296 function getAnnotatedAccessorType(accessor: AccessorDeclaration): Type {
22972297 if (accessor) {
22982298 if (accessor.kind === SyntaxKind.GetAccessor) {
2299- return accessor.type && getTypeFromTypeNodeOrHeritageClauseElement (accessor.type);
2299+ return accessor.type && getTypeFromTypeNode (accessor.type);
23002300 }
23012301 else {
23022302 let setterTypeAnnotation = getSetAccessorTypeAnnotationNode(accessor);
2303- return setterTypeAnnotation && getTypeFromTypeNodeOrHeritageClauseElement (setterTypeAnnotation);
2303+ return setterTypeAnnotation && getTypeFromTypeNode (setterTypeAnnotation);
23042304 }
23052305 }
23062306 return undefined;
@@ -2541,7 +2541,7 @@ module ts {
25412541 if (!links.declaredType) {
25422542 links.declaredType = resolvingType;
25432543 let declaration = <TypeAliasDeclaration>getDeclarationOfKind(symbol, SyntaxKind.TypeAliasDeclaration);
2544- let type = getTypeFromTypeNodeOrHeritageClauseElement (declaration.type);
2544+ let type = getTypeFromTypeNode (declaration.type);
25452545 if (links.declaredType === resolvingType) {
25462546 links.declaredType = type;
25472547 }
@@ -3083,7 +3083,7 @@ module ts {
30833083 returnType = classType;
30843084 }
30853085 else if (declaration.type) {
3086- returnType = getTypeFromTypeNodeOrHeritageClauseElement (declaration.type);
3086+ returnType = getTypeFromTypeNode (declaration.type);
30873087 }
30883088 else {
30893089 // TypeScript 1.0 spec (April 2014):
@@ -3241,7 +3241,7 @@ module ts {
32413241 function getIndexTypeOfSymbol(symbol: Symbol, kind: IndexKind): Type {
32423242 let declaration = getIndexDeclarationOfSymbol(symbol, kind);
32433243 return declaration
3244- ? declaration.type ? getTypeFromTypeNodeOrHeritageClauseElement (declaration.type) : anyType
3244+ ? declaration.type ? getTypeFromTypeNode (declaration.type) : anyType
32453245 : undefined;
32463246 }
32473247
@@ -3252,7 +3252,7 @@ module ts {
32523252 type.constraint = targetConstraint ? instantiateType(targetConstraint, type.mapper) : noConstraintType;
32533253 }
32543254 else {
3255- type.constraint = getTypeFromTypeNodeOrHeritageClauseElement ((<TypeParameterDeclaration>getDeclarationOfKind(type.symbol, SyntaxKind.TypeParameter)).constraint);
3255+ type.constraint = getTypeFromTypeNode ((<TypeParameterDeclaration>getDeclarationOfKind(type.symbol, SyntaxKind.TypeParameter)).constraint);
32563256 }
32573257 }
32583258 return type.constraint === noConstraintType ? undefined : type.constraint;
@@ -3383,7 +3383,7 @@ module ts {
33833383 if (type.flags & (TypeFlags.Class | TypeFlags.Interface) && type.flags & TypeFlags.Reference) {
33843384 let typeParameters = (<InterfaceType>type).typeParameters;
33853385 if (node.typeArguments && node.typeArguments.length === typeParameters.length) {
3386- type = createTypeReference(<GenericType>type, map(node.typeArguments, getTypeFromTypeNodeOrHeritageClauseElement ));
3386+ type = createTypeReference(<GenericType>type, map(node.typeArguments, getTypeFromTypeNode ));
33873387 }
33883388 else {
33893389 error(node, Diagnostics.Generic_type_0_requires_1_type_argument_s, typeToString(type, /*enclosingDeclaration*/ undefined, TypeFormatFlags.WriteArrayAsGenericType), typeParameters.length);
@@ -3481,7 +3481,7 @@ module ts {
34813481 function getTypeFromArrayTypeNode(node: ArrayTypeNode): Type {
34823482 let links = getNodeLinks(node);
34833483 if (!links.resolvedType) {
3484- links.resolvedType = createArrayType(getTypeFromTypeNodeOrHeritageClauseElement (node.elementType));
3484+ links.resolvedType = createArrayType(getTypeFromTypeNode (node.elementType));
34853485 }
34863486 return links.resolvedType;
34873487 }
@@ -3499,7 +3499,7 @@ module ts {
34993499 function getTypeFromTupleTypeNode(node: TupleTypeNode): Type {
35003500 let links = getNodeLinks(node);
35013501 if (!links.resolvedType) {
3502- links.resolvedType = createTupleType(map(node.elementTypes, getTypeFromTypeNodeOrHeritageClauseElement ));
3502+ links.resolvedType = createTupleType(map(node.elementTypes, getTypeFromTypeNode ));
35033503 }
35043504 return links.resolvedType;
35053505 }
@@ -3608,7 +3608,7 @@ module ts {
36083608 function getTypeFromUnionTypeNode(node: UnionTypeNode): Type {
36093609 let links = getNodeLinks(node);
36103610 if (!links.resolvedType) {
3611- links.resolvedType = getUnionType(map(node.types, getTypeFromTypeNodeOrHeritageClauseElement ), /*noSubtypeReduction*/ true);
3611+ links.resolvedType = getUnionType(map(node.types, getTypeFromTypeNode ), /*noSubtypeReduction*/ true);
36123612 }
36133613 return links.resolvedType;
36143614 }
@@ -3622,7 +3622,7 @@ module ts {
36223622 return links.resolvedType;
36233623 }
36243624
3625- function getStringLiteralType(node: LiteralExpression ): StringLiteralType {
3625+ function getStringLiteralType(node: StringLiteralExpression ): StringLiteralType {
36263626 if (hasProperty(stringLiteralTypes, node.text)) {
36273627 return stringLiteralTypes[node.text];
36283628 }
@@ -3632,15 +3632,15 @@ module ts {
36323632 return type;
36333633 }
36343634
3635- function getTypeFromStringLiteral(node: LiteralExpression ): Type {
3635+ function getTypeFromStringLiteral(node: StringLiteralExpression ): Type {
36363636 let links = getNodeLinks(node);
36373637 if (!links.resolvedType) {
36383638 links.resolvedType = getStringLiteralType(node);
36393639 }
36403640 return links.resolvedType;
36413641 }
36423642
3643- function getTypeFromTypeNodeOrHeritageClauseElement (node: TypeNode | LiteralExpression | HeritageClauseElement ): Type {
3643+ function getTypeFromTypeNode (node: TypeNode): Type {
36443644 switch (node.kind) {
36453645 case SyntaxKind.AnyKeyword:
36463646 return anyType;
@@ -3655,7 +3655,7 @@ module ts {
36553655 case SyntaxKind.VoidKeyword:
36563656 return voidType;
36573657 case SyntaxKind.StringLiteral:
3658- return getTypeFromStringLiteral(<LiteralExpression >node);
3658+ return getTypeFromStringLiteral(<StringLiteralExpression >node);
36593659 case SyntaxKind.TypeReference:
36603660 return getTypeFromTypeReference(<TypeReferenceNode>node);
36613661 case SyntaxKind.HeritageClauseElement:
@@ -3669,7 +3669,7 @@ module ts {
36693669 case SyntaxKind.UnionType:
36703670 return getTypeFromUnionTypeNode(<UnionTypeNode>node);
36713671 case SyntaxKind.ParenthesizedType:
3672- return getTypeFromTypeNodeOrHeritageClauseElement ((<ParenthesizedTypeNode>node).type);
3672+ return getTypeFromTypeNode ((<ParenthesizedTypeNode>node).type);
36733673 case SyntaxKind.FunctionType:
36743674 case SyntaxKind.ConstructorType:
36753675 case SyntaxKind.TypeLiteral:
@@ -5680,7 +5680,7 @@ module ts {
56805680 let declaration = <VariableLikeDeclaration>node.parent;
56815681 if (node === declaration.initializer) {
56825682 if (declaration.type) {
5683- return getTypeFromTypeNodeOrHeritageClauseElement (declaration.type);
5683+ return getTypeFromTypeNode (declaration.type);
56845684 }
56855685 if (declaration.kind === SyntaxKind.Parameter) {
56865686 let type = getContextuallyTypedParameterType(<ParameterDeclaration>declaration);
@@ -5883,7 +5883,7 @@ module ts {
58835883 case SyntaxKind.NewExpression:
58845884 return getContextualTypeForArgument(<CallExpression>parent, node);
58855885 case SyntaxKind.TypeAssertionExpression:
5886- return getTypeFromTypeNodeOrHeritageClauseElement ((<TypeAssertion>parent).type);
5886+ return getTypeFromTypeNode ((<TypeAssertion>parent).type);
58875887 case SyntaxKind.BinaryExpression:
58885888 return getContextualTypeForBinaryOperand(node);
58895889 case SyntaxKind.PropertyAssignment:
@@ -6705,7 +6705,7 @@ module ts {
67056705 let typeArgumentsAreAssignable = true;
67066706 for (let i = 0; i < typeParameters.length; i++) {
67076707 let typeArgNode = typeArguments[i];
6708- let typeArgument = getTypeFromTypeNodeOrHeritageClauseElement (typeArgNode);
6708+ let typeArgument = getTypeFromTypeNode (typeArgNode);
67096709 // Do not push on this array! It has a preallocated length
67106710 typeArgumentResultTypes[i] = typeArgument;
67116711 if (typeArgumentsAreAssignable /* so far */) {
@@ -6727,9 +6727,12 @@ module ts {
67276727 let paramType = getTypeAtPosition(signature, i);
67286728 // A tagged template expression provides a special first argument, and string literals get string literal types
67296729 // unless we're reporting errors
6730- let argType = i === 0 && node.kind === SyntaxKind.TaggedTemplateExpression ? globalTemplateStringsArrayType :
6731- arg.kind === SyntaxKind.StringLiteral && !reportErrors ? getStringLiteralType(<LiteralExpression>arg) :
6732- checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined);
6730+ let argType = i === 0 && node.kind === SyntaxKind.TaggedTemplateExpression
6731+ ? globalTemplateStringsArrayType
6732+ : arg.kind === SyntaxKind.StringLiteral && !reportErrors
6733+ ? getStringLiteralType(<StringLiteralExpression>arg)
6734+ : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined);
6735+
67336736 // Use argument expression as error location when reporting errors
67346737 if (!checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined,
67356738 Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1)) {
@@ -7187,7 +7190,7 @@ module ts {
71877190
71887191 function checkTypeAssertion(node: TypeAssertion): Type {
71897192 let exprType = checkExpression(node.expression);
7190- let targetType = getTypeFromTypeNodeOrHeritageClauseElement (node.type);
7193+ let targetType = getTypeFromTypeNode (node.type);
71917194 if (produceDiagnostics && targetType !== unknownType) {
71927195 let widenedType = getWidenedType(exprType);
71937196 if (!(isTypeAssignableTo(targetType, widenedType))) {
@@ -7361,7 +7364,7 @@ module ts {
73617364 function checkFunctionExpressionOrObjectLiteralMethodBody(node: FunctionExpression | MethodDeclaration) {
73627365 Debug.assert(node.kind !== SyntaxKind.MethodDeclaration || isObjectLiteralMethod(node));
73637366 if (node.type && !node.asteriskToken) {
7364- checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNodeOrHeritageClauseElement (node.type));
7367+ checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode (node.type));
73657368 }
73667369
73677370 if (node.body) {
@@ -7371,7 +7374,7 @@ module ts {
73717374 else {
73727375 let exprType = checkExpression(<Expression>node.body);
73737376 if (node.type) {
7374- checkTypeAssignableTo(exprType, getTypeFromTypeNodeOrHeritageClauseElement (node.type), node.body, /*headMessage*/ undefined);
7377+ checkTypeAssignableTo(exprType, getTypeFromTypeNode (node.type), node.body, /*headMessage*/ undefined);
73757378 }
73767379 checkFunctionExpressionBodies(node.body);
73777380 }
@@ -8800,12 +8803,12 @@ module ts {
88008803 }
88018804
88028805 /** Checks a type reference node as an expression. */
8803- function checkTypeNodeAsExpression(node: TypeNode | LiteralExpression ) {
8806+ function checkTypeNodeAsExpression(node: TypeNode) {
88048807 // When we are emitting type metadata for decorators, we need to try to check the type
88058808 // as if it were an expression so that we can emit the type in a value position when we
88068809 // serialize the type metadata.
88078810 if (node && node.kind === SyntaxKind.TypeReference) {
8808- let type = getTypeFromTypeNodeOrHeritageClauseElement (node);
8811+ let type = getTypeFromTypeNode (node);
88098812 let shouldCheckIfUnknownType = type === unknownType && compilerOptions.separateCompilation;
88108813 if (!type || (!shouldCheckIfUnknownType && type.flags & (TypeFlags.Intrinsic | TypeFlags.NumberLike | TypeFlags.StringLike))) {
88118814 return;
@@ -8825,7 +8828,8 @@ module ts {
88258828 case SyntaxKind.PropertyDeclaration:
88268829 checkTypeNodeAsExpression((<PropertyDeclaration>node).type);
88278830 break;
8828- case SyntaxKind.Parameter: checkTypeNodeAsExpression((<ParameterDeclaration>node).type);
8831+ case SyntaxKind.Parameter:
8832+ checkTypeNodeAsExpression((<ParameterDeclaration>node).type);
88298833 break;
88308834 case SyntaxKind.MethodDeclaration:
88318835 checkTypeNodeAsExpression((<MethodDeclaration>node).type);
@@ -8941,7 +8945,7 @@ module ts {
89418945
89428946 checkSourceElement(node.body);
89438947 if (node.type && !isAccessor(node.kind) && !node.asteriskToken) {
8944- checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNodeOrHeritageClauseElement (node.type));
8948+ checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode (node.type));
89458949 }
89468950
89478951 // Report an implicit any error if there is no body, no explicit return type, and node is not a private method
@@ -10105,7 +10109,7 @@ module ts {
1010510109 if (!tp1.constraint || !tp2.constraint) {
1010610110 return false;
1010710111 }
10108- if (!isTypeIdenticalTo(getTypeFromTypeNodeOrHeritageClauseElement (tp1.constraint), getTypeFromTypeNodeOrHeritageClauseElement (tp2.constraint))) {
10112+ if (!isTypeIdenticalTo(getTypeFromTypeNode (tp1.constraint), getTypeFromTypeNode (tp2.constraint))) {
1010910113 return false;
1011010114 }
1011110115 }
@@ -11136,7 +11140,7 @@ module ts {
1113611140 return node.parent && node.parent.kind === SyntaxKind.HeritageClauseElement;
1113711141 }
1113811142
11139- function isTypeNodeOrHeritageClauseElement (node: Node): boolean {
11143+ function isTypeNode (node: Node): boolean {
1114011144 if (SyntaxKind.FirstTypeNode <= node.kind && node.kind <= SyntaxKind.LastTypeNode) {
1114111145 return true;
1114211146 }
@@ -11385,8 +11389,8 @@ module ts {
1138511389 return unknownType;
1138611390 }
1138711391
11388- if (isTypeNodeOrHeritageClauseElement (node)) {
11389- return getTypeFromTypeNodeOrHeritageClauseElement (<TypeNode | HeritageClauseElement >node);
11392+ if (isTypeNode (node)) {
11393+ return getTypeFromTypeNode (<TypeNode>node);
1139011394 }
1139111395
1139211396 if (isExpression(node)) {
0 commit comments