Skip to content

Commit 1a20b6a

Browse files
committed
Add support for walking IndexTypes, IndexedAccessTypes, and MappedTypes.
1 parent d7ace20 commit 1a20b6a

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/compiler/symbolWalker.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ namespace ts {
5353
if (objectFlags & ObjectFlags.Reference) {
5454
visitTypeReference(type as TypeReference);
5555
}
56+
if (objectFlags & ObjectFlags.Mapped) {
57+
visitMappedType(type as MappedType);
58+
}
5659
if (objectFlags & (ObjectFlags.Class | ObjectFlags.Interface)) {
5760
visitInterfaceType(type as InterfaceType);
5861
}
@@ -66,6 +69,12 @@ namespace ts {
6669
if (type.flags & TypeFlags.UnionOrIntersection) {
6770
visitUnionOrIntersectionType(type as UnionOrIntersectionType);
6871
}
72+
if (type.flags & TypeFlags.Index) {
73+
visitIndexType(type as IndexType);
74+
}
75+
if (type.flags & TypeFlags.IndexedAccess) {
76+
visitIndexedAccessType(type as IndexedAccessType);
77+
}
6978
}
7079

7180
function visitTypeList(types: Type[]): void {
@@ -90,6 +99,23 @@ namespace ts {
9099
visitTypeList(type.types);
91100
}
92101

102+
function visitIndexType(type: IndexType): void {
103+
visitType(type.type);
104+
}
105+
106+
function visitIndexedAccessType(type: IndexedAccessType): void {
107+
visitType(type.objectType);
108+
visitType(type.indexType);
109+
visitType(type.constraint);
110+
}
111+
112+
function visitMappedType(type: MappedType): void {
113+
visitType(type.typeParameter);
114+
visitType(type.constraintType);
115+
visitType(type.templateType);
116+
visitType(type.modifiersType);
117+
}
118+
93119
function visitSignature(signature: Signature): void {
94120
if (signature.typePredicate) {
95121
visitType(signature.typePredicate.type);

0 commit comments

Comments
 (0)