wip-fix resolveEntityName with parenthesizedExpression
This commit is contained in:
parent
4b3cd6a1db
commit
1c90ef5aad
|
@ -1511,6 +1511,9 @@ namespace ts {
|
|||
return undefined;
|
||||
}
|
||||
}
|
||||
else if (name.kind === SyntaxKind.ParenthesizedExpression) {
|
||||
return getSymbolOfNode(name.expression);
|
||||
}
|
||||
else {
|
||||
Debug.fail("Unknown entity name kind.");
|
||||
}
|
||||
|
@ -21069,7 +21072,6 @@ namespace ts {
|
|||
|
||||
if (isHeritageClauseElementIdentifier(<EntityName>entityName)) {
|
||||
let meaning = SymbolFlags.None;
|
||||
|
||||
// In an interface or class, we're definitely interested in a type.
|
||||
if (entityName.parent.kind === SyntaxKind.ExpressionWithTypeArguments) {
|
||||
meaning = SymbolFlags.Type;
|
||||
|
@ -21084,9 +21086,13 @@ namespace ts {
|
|||
}
|
||||
|
||||
meaning |= SymbolFlags.Alias;
|
||||
return resolveEntityName(<EntityName>entityName, meaning);
|
||||
const entityNameSymbol = resolveEntityName(<EntityName>entityName, meaning);
|
||||
if (entityNameSymbol) {
|
||||
return entityNameSymbol;
|
||||
}
|
||||
}
|
||||
else if (isPartOfExpression(entityName)) {
|
||||
|
||||
if (isPartOfExpression(entityName)) {
|
||||
if (nodeIsMissing(entityName)) {
|
||||
// Missing entity name.
|
||||
return undefined;
|
||||
|
|
|
@ -1395,7 +1395,7 @@ namespace ts {
|
|||
multiLine?: boolean;
|
||||
}
|
||||
|
||||
export type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression;
|
||||
export type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression | ParenthesizedExpression;
|
||||
export type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
|
||||
|
||||
export interface PropertyAccessExpression extends MemberExpression, Declaration {
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
interface I {}
|
||||
interface CTor {
|
||||
new (hour: number, minute: number): I
|
||||
}
|
||||
var x: {
|
||||
B : CTor
|
||||
};
|
||||
class B {}
|
||||
function foo() {
|
||||
return {B: B};
|
||||
}
|
||||
class C extends (foo()).B {}
|
Loading…
Reference in a new issue