diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index bb8eb73c018..4f2e77a0346 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2473,7 +2473,7 @@ module ts { let declaration = getDeclarationOfKind(type.symbol, SyntaxKind.ClassDeclaration); let baseTypeNode = getClassExtendsHeritageClauseElement(declaration); if (baseTypeNode) { - let baseType = getTypeFromExpressionWithTypeArguments(baseTypeNode); + let baseType = getTypeFromTypeNode(baseTypeNode); if (baseType !== unknownType) { if (getTargetType(baseType).flags & TypeFlags.Class) { if (type !== baseType && !hasBaseType(baseType, type)) { @@ -2495,7 +2495,7 @@ module ts { for (let declaration of type.symbol.declarations) { if (declaration.kind === SyntaxKind.InterfaceDeclaration && getInterfaceBaseTypeNodes(declaration)) { for (let node of getInterfaceBaseTypeNodes(declaration)) { - let baseType = getTypeFromExpressionWithTypeArguments(node); + let baseType = getTypeFromTypeNode(node); if (baseType !== unknownType) { if (getTargetType(baseType).flags & (TypeFlags.Class | TypeFlags.Interface)) { @@ -3359,14 +3359,6 @@ module ts { } } - function getTypeFromTypeReference(node: TypeReferenceNode): Type { - return getTypeFromTypeReferenceOrExpressionWithTypeArguments(node); - } - - function getTypeFromExpressionWithTypeArguments(node: ExpressionWithTypeArguments): Type { - return getTypeFromTypeReferenceOrExpressionWithTypeArguments(node); - } - function getTypeFromTypeReferenceOrExpressionWithTypeArguments(node: TypeReferenceNode | ExpressionWithTypeArguments): Type { let links = getNodeLinks(node); if (!links.resolvedType) { @@ -3667,9 +3659,9 @@ module ts { case SyntaxKind.StringLiteral: return getTypeFromStringLiteral(node); case SyntaxKind.TypeReference: - return getTypeFromTypeReference(node); + return getTypeFromTypeReferenceOrExpressionWithTypeArguments(node); case SyntaxKind.ExpressionWithTypeArguments: - return getTypeFromExpressionWithTypeArguments(node); + return getTypeFromTypeReferenceOrExpressionWithTypeArguments(node); case SyntaxKind.TypeQuery: return getTypeFromTypeQueryNode(node); case SyntaxKind.ArrayType: @@ -9997,7 +9989,7 @@ module ts { checkExpressionWithTypeArguments(typeRefNode); if (produceDiagnostics) { - let t = getTypeFromExpressionWithTypeArguments(typeRefNode); + let t = getTypeFromTypeNode(typeRefNode); if (t !== unknownType) { let declaredType = (t.flags & TypeFlags.Reference) ? (t).target : t; if (declaredType.flags & (TypeFlags.Class | TypeFlags.Interface)) { @@ -11695,7 +11687,7 @@ module ts { // * The serialized type of a TypeReference with a value declaration is its entity name. // * The serialized type of a TypeReference with a call or construct signature is "Function". // * The serialized type of any other type is "Object". - let type = getTypeFromTypeReference(node); + let type = getTypeFromTypeNode(node); if (type.flags & TypeFlags.Void) { return "void 0"; }