Check SymbolFlags instead

This commit is contained in:
Nathan Shively-Sanders 2018-08-16 08:38:41 -07:00
parent 178f792f18
commit 56f82563ae

View file

@ -17739,12 +17739,6 @@ namespace ts {
}
}
// If a symbol is a synthesized symbol with no value declaration, we assume it is a property. Example of this are the synthesized
// '.prototype' property as well as synthesized tuple index properties.
function getDeclarationKindFromSymbol(s: Symbol) {
return s.valueDeclaration ? s.valueDeclaration.kind : SyntaxKind.PropertyDeclaration;
}
function getDeclarationNodeFlagsFromSymbol(s: Symbol): NodeFlags {
return s.valueDeclaration ? getCombinedNodeFlags(s.valueDeclaration) : 0;
}
@ -17881,10 +17875,7 @@ namespace ts {
}
function symbolHasNonMethodDeclaration(symbol: Symbol) {
return forEachProperty(symbol, prop => {
const propKind = getDeclarationKindFromSymbol(prop);
return propKind !== SyntaxKind.MethodDeclaration && propKind !== SyntaxKind.MethodSignature;
});
return !!forEachProperty(symbol, prop => !(prop.flags & SymbolFlags.Method));
}
function checkNonNullExpression(