(symbol)
| 138811 | var seen = new ts.Map(); |
| 138812 | return recur(symbol); |
| 138813 | function recur(symbol) { |
| 138814 | // Use `addToSeen` to ensure we don't infinitely recurse in this situation: |
| 138815 | // interface C extends C { |
| 138816 | // /*findRef*/propName: string; |
| 138817 | // } |
| 138818 | if (!(symbol.flags & (32 /* SymbolFlags.Class */ | 64 /* SymbolFlags.Interface */)) || !ts.addToSeen(seen, ts.getSymbolId(symbol))) |
| 138819 | return; |
| 138820 | return ts.firstDefined(symbol.declarations, function (declaration) { return ts.firstDefined(ts.getAllSuperTypeNodes(declaration), function (typeReference) { |
| 138821 | var type = checker.getTypeAtLocation(typeReference); |
| 138822 | var propertySymbol = type && type.symbol && checker.getPropertyOfType(type, propertyName); |
| 138823 | // Visit the typeReference as well to see if it directly or indirectly uses that property |
| 138824 | return type && propertySymbol && (ts.firstDefined(checker.getRootSymbols(propertySymbol), cb) || recur(type.symbol)); |
| 138825 | }); }); |
| 138826 | } |
| 138827 | } |
| 138828 | function isStaticSymbol(symbol) { |
| 138829 | if (!symbol.valueDeclaration) |
no test coverage detected