Skip to content

Commit 5eefc42

Browse files
Merge pull request #2964 from Microsoft/checkerSimplification
Restore checker simplification that was reverted due to a bad merge.
2 parents 270a149 + 85d0c22 commit 5eefc42

File tree

1 file changed

+6
-14
lines changed

1 file changed

+6
-14
lines changed

src/compiler/checker.ts

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2473,7 +2473,7 @@ module ts {
24732473
let declaration = <ClassDeclaration>getDeclarationOfKind(type.symbol, SyntaxKind.ClassDeclaration);
24742474
let baseTypeNode = getClassExtendsHeritageClauseElement(declaration);
24752475
if (baseTypeNode) {
2476-
let baseType = getTypeFromExpressionWithTypeArguments(baseTypeNode);
2476+
let baseType = getTypeFromTypeNode(baseTypeNode);
24772477
if (baseType !== unknownType) {
24782478
if (getTargetType(baseType).flags & TypeFlags.Class) {
24792479
if (type !== baseType && !hasBaseType(<InterfaceType>baseType, type)) {
@@ -2495,7 +2495,7 @@ module ts {
24952495
for (let declaration of type.symbol.declarations) {
24962496
if (declaration.kind === SyntaxKind.InterfaceDeclaration && getInterfaceBaseTypeNodes(<InterfaceDeclaration>declaration)) {
24972497
for (let node of getInterfaceBaseTypeNodes(<InterfaceDeclaration>declaration)) {
2498-
let baseType = getTypeFromExpressionWithTypeArguments(node);
2498+
let baseType = getTypeFromTypeNode(node);
24992499

25002500
if (baseType !== unknownType) {
25012501
if (getTargetType(baseType).flags & (TypeFlags.Class | TypeFlags.Interface)) {
@@ -3359,14 +3359,6 @@ module ts {
33593359
}
33603360
}
33613361

3362-
function getTypeFromTypeReference(node: TypeReferenceNode): Type {
3363-
return getTypeFromTypeReferenceOrExpressionWithTypeArguments(node);
3364-
}
3365-
3366-
function getTypeFromExpressionWithTypeArguments(node: ExpressionWithTypeArguments): Type {
3367-
return getTypeFromTypeReferenceOrExpressionWithTypeArguments(node);
3368-
}
3369-
33703362
function getTypeFromTypeReferenceOrExpressionWithTypeArguments(node: TypeReferenceNode | ExpressionWithTypeArguments): Type {
33713363
let links = getNodeLinks(node);
33723364
if (!links.resolvedType) {
@@ -3667,9 +3659,9 @@ module ts {
36673659
case SyntaxKind.StringLiteral:
36683660
return getTypeFromStringLiteral(<StringLiteral>node);
36693661
case SyntaxKind.TypeReference:
3670-
return getTypeFromTypeReference(<TypeReferenceNode>node);
3662+
return getTypeFromTypeReferenceOrExpressionWithTypeArguments(<TypeReferenceNode>node);
36713663
case SyntaxKind.ExpressionWithTypeArguments:
3672-
return getTypeFromExpressionWithTypeArguments(<ExpressionWithTypeArguments>node);
3664+
return getTypeFromTypeReferenceOrExpressionWithTypeArguments(<ExpressionWithTypeArguments>node);
36733665
case SyntaxKind.TypeQuery:
36743666
return getTypeFromTypeQueryNode(<TypeQueryNode>node);
36753667
case SyntaxKind.ArrayType:
@@ -9997,7 +9989,7 @@ module ts {
99979989

99989990
checkExpressionWithTypeArguments(typeRefNode);
99999991
if (produceDiagnostics) {
10000-
let t = getTypeFromExpressionWithTypeArguments(typeRefNode);
9992+
let t = getTypeFromTypeNode(typeRefNode);
100019993
if (t !== unknownType) {
100029994
let declaredType = (t.flags & TypeFlags.Reference) ? (<TypeReference>t).target : t;
100039995
if (declaredType.flags & (TypeFlags.Class | TypeFlags.Interface)) {
@@ -11695,7 +11687,7 @@ module ts {
1169511687
// * The serialized type of a TypeReference with a value declaration is its entity name.
1169611688
// * The serialized type of a TypeReference with a call or construct signature is "Function".
1169711689
// * The serialized type of any other type is "Object".
11698-
let type = getTypeFromTypeReference(node);
11690+
let type = getTypeFromTypeNode(node);
1169911691
if (type.flags & TypeFlags.Void) {
1170011692
return "void 0";
1170111693
}

0 commit comments

Comments
 (0)