@@ -158,28 +158,37 @@ func GetWellKnownSymbolPropertyOfType(t *checker.Type, name string, typeChecker
158
158
return checker .Checker_getPropertyOfType (typeChecker , t , checker .Checker_getPropertyNameForKnownSymbolName (typeChecker , name ))
159
159
}
160
160
161
+ // getChildrenFromNonJSDocNode from github.com/microsoft/typescript-go/internal/ls/utilities.go
161
162
func GetChildren (node * ast.Node , sourceFile * ast.SourceFile ) []* ast.Node {
162
- children := make ([]* ast.Node , 0 )
163
-
164
- pos := node .Pos ()
163
+ var childNodes []* ast.Node
165
164
node .ForEachChild (func (child * ast.Node ) bool {
166
- childPos := child .Pos ()
167
- if pos < childPos {
168
- scanner := scanner .GetScannerForSourceFile (sourceFile , pos )
169
- for pos < childPos {
170
- token := scanner .Token ()
171
- tokenFullStart := scanner .TokenFullStart ()
172
- tokenEnd := scanner .TokenEnd ()
173
- children = append (children , sourceFile .GetOrCreateToken (token , tokenFullStart , tokenEnd , node ))
174
- pos = tokenEnd
175
- scanner .Scan ()
176
- }
165
+ childNodes = append (childNodes , child )
166
+ return false
167
+ })
168
+ var children []* ast.Node
169
+ pos := node .Pos ()
170
+ for _ , child := range childNodes {
171
+ scanner := scanner .GetScannerForSourceFile (sourceFile , pos )
172
+ for pos < child .Pos () {
173
+ token := scanner .Token ()
174
+ tokenFullStart := scanner .TokenFullStart ()
175
+ tokenEnd := scanner .TokenEnd ()
176
+ children = append (children , sourceFile .GetOrCreateToken (token , tokenFullStart , tokenEnd , node ))
177
+ pos = tokenEnd
178
+ scanner .Scan ()
177
179
}
178
-
179
180
children = append (children , child )
180
181
pos = child .End ()
181
- return false
182
- })
182
+ }
183
+ scanner := scanner .GetScannerForSourceFile (sourceFile , pos )
184
+ for pos < node .End () {
185
+ token := scanner .Token ()
186
+ tokenFullStart := scanner .TokenFullStart ()
187
+ tokenEnd := scanner .TokenEnd ()
188
+ children = append (children , sourceFile .GetOrCreateToken (token , tokenFullStart , tokenEnd , node ))
189
+ pos = tokenEnd
190
+ scanner .Scan ()
191
+ }
183
192
return children
184
193
}
185
194
0 commit comments