@@ -158,28 +158,37 @@ func GetWellKnownSymbolPropertyOfType(t *checker.Type, name string, typeChecker
158158 return checker .Checker_getPropertyOfType (typeChecker , t , checker .Checker_getPropertyNameForKnownSymbolName (typeChecker , name ))
159159}
160160
161+ // getChildrenFromNonJSDocNode from github.com/microsoft/typescript-go/internal/ls/utilities.go
161162func 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
165164 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 ()
177179 }
178-
179180 children = append (children , child )
180181 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+ }
183192 return children
184193}
185194
0 commit comments