diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 829d11bd09..2bb112d6c4 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -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(