(type)
| 47813 | }, |
| 47814 | }; |
| 47815 | function visitType(type) { |
| 47816 | if (!type) { |
| 47817 | return; |
| 47818 | } |
| 47819 | if (visitedTypes[type.id]) { |
| 47820 | return; |
| 47821 | } |
| 47822 | visitedTypes[type.id] = type; |
| 47823 | // Reuse visitSymbol to visit the type's symbol, |
| 47824 | // but be sure to bail on recuring into the type if accept declines the symbol. |
| 47825 | var shouldBail = visitSymbol(type.symbol); |
| 47826 | if (shouldBail) |
| 47827 | return; |
| 47828 | // Visit the type's related types, if any |
| 47829 | if (type.flags & 524288 /* TypeFlags.Object */) { |
| 47830 | var objectType = type; |
| 47831 | var objectFlags = objectType.objectFlags; |
| 47832 | if (objectFlags & 4 /* ObjectFlags.Reference */) { |
| 47833 | visitTypeReference(type); |
| 47834 | } |
| 47835 | if (objectFlags & 32 /* ObjectFlags.Mapped */) { |
| 47836 | visitMappedType(type); |
| 47837 | } |
| 47838 | if (objectFlags & (1 /* ObjectFlags.Class */ | 2 /* ObjectFlags.Interface */)) { |
| 47839 | visitInterfaceType(type); |
| 47840 | } |
| 47841 | if (objectFlags & (8 /* ObjectFlags.Tuple */ | 16 /* ObjectFlags.Anonymous */)) { |
| 47842 | visitObjectType(objectType); |
| 47843 | } |
| 47844 | } |
| 47845 | if (type.flags & 262144 /* TypeFlags.TypeParameter */) { |
| 47846 | visitTypeParameter(type); |
| 47847 | } |
| 47848 | if (type.flags & 3145728 /* TypeFlags.UnionOrIntersection */) { |
| 47849 | visitUnionOrIntersectionType(type); |
| 47850 | } |
| 47851 | if (type.flags & 4194304 /* TypeFlags.Index */) { |
| 47852 | visitIndexType(type); |
| 47853 | } |
| 47854 | if (type.flags & 8388608 /* TypeFlags.IndexedAccess */) { |
| 47855 | visitIndexedAccessType(type); |
| 47856 | } |
| 47857 | } |
| 47858 | function visitTypeReference(type) { |
| 47859 | visitType(type.target); |
| 47860 | ts.forEach(getTypeArguments(type), visitType); |
no test coverage detected
searching dependent graphs…