Skip to content

Commit 48de0b6

Browse files
Account for interface extends clauses.
1 parent 091e234 commit 48de0b6

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

src/compiler/checker.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14054,9 +14054,20 @@ namespace ts {
1405414054
}
1405514055

1405614056
if (isHeritageClauseElementIdentifier(<EntityName>entityName)) {
14057-
let meaning = entityName.parent.kind === SyntaxKind.ExpressionWithTypeArguments ?
14058-
(SymbolFlags.Value | SymbolFlags.Type) :
14059-
SymbolFlags.Namespace;
14057+
let meaning = SymbolFlags.None;
14058+
14059+
// In an interface or class, we're definitely interested in a type.
14060+
if (entityName.parent.kind === SyntaxKind.ExpressionWithTypeArguments) {
14061+
meaning = SymbolFlags.Type;
14062+
14063+
// In a class 'extends' clause we are also looking for a value.
14064+
if (isExpressionWithTypeArgumentsInClassExtendsClause(entityName.parent)) {
14065+
meaning |= SymbolFlags.Value;
14066+
}
14067+
}
14068+
else {
14069+
meaning = SymbolFlags.Namespace;
14070+
}
1406014071

1406114072
meaning |= SymbolFlags.Alias;
1406214073
return resolveEntityName(<EntityName>entityName, meaning);

0 commit comments

Comments
 (0)