Skip to content

Commit a24e61e

Browse files
shlomiassafaciccarello
authored andcommitted
make traverse safe for delete operations (#640)
1 parent 53ee61b commit a24e61e

File tree

3 files changed

+5
-5
lines changed

3 files changed

+5
-5
lines changed

src/lib/models/reflections/container.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export class ContainerReflection extends Reflection {
4646
*/
4747
traverse(callback: TraverseCallback) {
4848
if (this.children) {
49-
this.children.forEach((child: DeclarationReflection) => {
49+
this.children.slice().forEach((child: DeclarationReflection) => {
5050
callback(child, TraverseProperty.Children);
5151
});
5252
}

src/lib/models/reflections/declaration.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,15 +153,15 @@ export class DeclarationReflection extends ContainerReflection implements Defaul
153153
*/
154154
traverse(callback: TraverseCallback) {
155155
if (this.typeParameters) {
156-
this.typeParameters.forEach((parameter) => callback(parameter, TraverseProperty.TypeParameter));
156+
this.typeParameters.slice().forEach((parameter) => callback(parameter, TraverseProperty.TypeParameter));
157157
}
158158

159159
if (this.type instanceof ReflectionType) {
160160
callback((<ReflectionType> this.type).declaration, TraverseProperty.TypeLiteral);
161161
}
162162

163163
if (this.signatures) {
164-
this.signatures.forEach((signature) => callback(signature, TraverseProperty.Signatures));
164+
this.signatures.slice().forEach((signature) => callback(signature, TraverseProperty.Signatures));
165165
}
166166

167167
if (this.indexSignature) {

src/lib/models/reflections/signature.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,11 @@ export class SignatureReflection extends Reflection implements TypeContainer, Ty
5858
}
5959

6060
if (this.typeParameters) {
61-
this.typeParameters.forEach((parameter) => callback(parameter, TraverseProperty.TypeParameter));
61+
this.typeParameters.slice().forEach((parameter) => callback(parameter, TraverseProperty.TypeParameter));
6262
}
6363

6464
if (this.parameters) {
65-
this.parameters.forEach((parameter) => callback(parameter, TraverseProperty.Parameters));
65+
this.parameters.slice().forEach((parameter) => callback(parameter, TraverseProperty.Parameters));
6666
}
6767

6868
super.traverse(callback);

0 commit comments

Comments
 (0)