* If a symbol is the dynamic name of the member of an object type, get the late-bound * symbol of the member. * * For a description of late-binding, see `lateBindMember`.
(symbol)
| 57874 | * For a description of late-binding, see `lateBindMember`. |
| 57875 | */ |
| 57876 | function getLateBoundSymbol(symbol) { |
| 57877 | if (symbol.flags & 106500 /* SymbolFlags.ClassMember */ && symbol.escapedName === "__computed" /* InternalSymbolName.Computed */) { |
| 57878 | var links = getSymbolLinks(symbol); |
| 57879 | if (!links.lateSymbol && ts.some(symbol.declarations, hasLateBindableName)) { |
| 57880 | // force late binding of members/exports. This will set the late-bound symbol |
| 57881 | var parent = getMergedSymbol(symbol.parent); |
| 57882 | if (ts.some(symbol.declarations, ts.hasStaticModifier)) { |
| 57883 | getExportsOfSymbol(parent); |
| 57884 | } |
| 57885 | else { |
| 57886 | getMembersOfSymbol(parent); |
| 57887 | } |
| 57888 | } |
| 57889 | return links.lateSymbol || (links.lateSymbol = symbol); |
| 57890 | } |
| 57891 | return symbol; |
| 57892 | } |
| 57893 | function getTypeWithThisArgument(type, thisArgument, needApparentType) { |
| 57894 | if (ts.getObjectFlags(type) & 4 /* ObjectFlags.Reference */) { |
| 57895 | var target = type.target; |
no test coverage detected