typescript-go icon indicating copy to clipboard operation
typescript-go copied to clipboard

"Token cache mismatch: parent" in inlay hints

Open jakebailey opened this issue 3 weeks ago • 1 comments

Got this new variant: Token cache mismatch: parent.

panic handling request textDocument/inlayHint Token cache mismatch: parent. Expected parent of kind KindFunctionExpression, got KindFunctionExpression goroutine 664300 [running]:
runtime/debug.Stack()
	runtime/debug/stack.go:26 +0x64
github.com/microsoft/typescript-go/internal/lsp.(*Server).recover(0x140001a8008, 0x14151ad59e0)
	github.com/microsoft/typescript-go/internal/lsp/server.go:844 +0x44
panic({0x101850940?, 0x1415613f530?})
	runtime/panic.go:783 +0x120
github.com/microsoft/typescript-go/internal/ast.(*SourceFile).GetOrCreateToken(0x14143a30308, 0x63, 0xe2, 0xeb, 0x14140063810)
	github.com/microsoft/typescript-go/internal/ast/ast.go:10957 +0x29c
github.com/microsoft/typescript-go/internal/ls.findChildOfKind.func1(0x141438e8540)
	github.com/microsoft/typescript-go/internal/ls/utilities.go:187 +0xcc
github.com/microsoft/typescript-go/internal/ast.visitNodes(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:28
github.com/microsoft/typescript-go/internal/ast.visitNodeList(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:37
github.com/microsoft/typescript-go/internal/ast.(*FunctionExpression).ForEachChild(0x14140063810, 0x141561363c0)
	github.com/microsoft/typescript-go/internal/ast/ast.go:6529 +0x1dc
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ast.ForEachChildAndJSDoc(0x14143a30308?, 0xe2?, 0x10146e5f0?)
	github.com/microsoft/typescript-go/internal/ast/utilities.go:2871 +0x44
github.com/microsoft/typescript-go/internal/ls.findChildOfKind(0x14140063810, 0x15, 0x14143a30308)
	github.com/microsoft/typescript-go/internal/ls/utilities.go:205 +0xdc
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).getTypeAnnotationPosition(0x14155cab860?, 0x14140063810)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:892 +0x2c
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).visitFunctionDeclarationLikeForReturnType(0x14155cab860, 0x14140063810)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:136 +0x154
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).visit(0x14155cab860, 0x14140063810)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:98 +0x334
github.com/microsoft/typescript-go/internal/ast.visit(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:21
github.com/microsoft/typescript-go/internal/ast.(*BinaryExpression).ForEachChild(0x14143a26750, 0x1415613f440)
	github.com/microsoft/typescript-go/internal/ast/ast.go:6280 +0x110
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).visit(0x14155cab860, 0x14143a26750)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:101 +0x390
github.com/microsoft/typescript-go/internal/ast.visit(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:21
github.com/microsoft/typescript-go/internal/ast.(*ExpressionStatement).ForEachChild(0x141438f9680?, 0x1415613f250?)
	github.com/microsoft/typescript-go/internal/ast/ast.go:3635 +0x34
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).visit(0x14155cab860, 0x14143832f40)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:101 +0x390
github.com/microsoft/typescript-go/internal/ast.visitNodes(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:28
github.com/microsoft/typescript-go/internal/ast.visitNodeList(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:37
github.com/microsoft/typescript-go/internal/ast.(*SourceFile).ForEachChild(0x14143a30308, 0x1415613f050)
	github.com/microsoft/typescript-go/internal/ast/ast.go:10862 +0xa4
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).visit(0x14155cab860, 0x14143a30308)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:101 +0x390
github.com/microsoft/typescript-go/internal/ls.(*LanguageService).ProvideInlayHint(0x14156134990, {0x101a8f7a8, 0x14156134930}, 0x14151ad59b0)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:45 +0x1cc
github.com/microsoft/typescript-go/internal/lsp.(*Server).handleInlayHint(0x140725f0ee8?, {0x101a8f7a8?, 0x14156134930?}, 0x14151af5080?, 0x140725f0ea8?)
	github.com/microsoft/typescript-go/internal/lsp/server.go:1297 +0x2c
github.com/microsoft/typescript-go/internal/lsp.init.func1.registerLanguageServiceDocumentRequestHandler[...].25({0x101a8f7a8, 0x14156134930}, 0x14151ad59e0)
	github.com/microsoft/typescript-go/internal/lsp/server.go:593 +0xe0
github.com/microsoft/typescript-go/internal/lsp.(*Server).handleRequestOrNotification(0x140001a8008, {0x101a8f7e0?, 0x14155bf4960?}, 0x14151ad59e0)
	github.com/microsoft/typescript-go/internal/lsp/server.go:478 +0x128
github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop.func1()
	github.com/microsoft/typescript-go/internal/lsp/server.go:381 +0x34
created by github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop in goroutine 19
	github.com/microsoft/typescript-go/internal/lsp/server.go:401 +0x7a0

[Error - 8:48:51 PM] Request textDocument/inlayHint failed.
  Message: InternalError: panic handling request textDocument/inlayHint: Token cache mismatch: parent. Expected parent of kind KindFunctionExpression, got KindFunctionExpression
  Code: -32603 
panic handling request textDocument/inlayHint Token cache mismatch: parent. Expected parent of kind KindFunctionExpression, got KindFunctionExpression goroutine 665324 [running]:
runtime/debug.Stack()
	runtime/debug/stack.go:26 +0x64
github.com/microsoft/typescript-go/internal/lsp.(*Server).recover(0x140001a8008, 0x14154aa9560)
	github.com/microsoft/typescript-go/internal/lsp/server.go:844 +0x44
panic({0x101850940?, 0x14154a8fac0?})
	runtime/panic.go:783 +0x120
github.com/microsoft/typescript-go/internal/ast.(*SourceFile).GetOrCreateToken(0x14143a30308, 0x63, 0xe2, 0xeb, 0x14140063810)
	github.com/microsoft/typescript-go/internal/ast/ast.go:10957 +0x29c
github.com/microsoft/typescript-go/internal/ls.findChildOfKind.func1(0x141438e8540)
	github.com/microsoft/typescript-go/internal/ls/utilities.go:187 +0xcc
github.com/microsoft/typescript-go/internal/ast.visitNodes(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:28
github.com/microsoft/typescript-go/internal/ast.visitNodeList(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:37
github.com/microsoft/typescript-go/internal/ast.(*FunctionExpression).ForEachChild(0x14140063810, 0x14154867a00)
	github.com/microsoft/typescript-go/internal/ast/ast.go:6529 +0x1dc
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ast.ForEachChildAndJSDoc(0x14143a30308?, 0xe2?, 0x10146e5f0?)
	github.com/microsoft/typescript-go/internal/ast/utilities.go:2871 +0x44
github.com/microsoft/typescript-go/internal/ls.findChildOfKind(0x14140063810, 0x15, 0x14143a30308)
	github.com/microsoft/typescript-go/internal/ls/utilities.go:205 +0xdc
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).getTypeAnnotationPosition(0x14154a4fce0?, 0x14140063810)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:892 +0x2c
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).visitFunctionDeclarationLikeForReturnType(0x14154a4fce0, 0x14140063810)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:136 +0x154
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).visit(0x14154a4fce0, 0x14140063810)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:98 +0x334
github.com/microsoft/typescript-go/internal/ast.visit(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:21
github.com/microsoft/typescript-go/internal/ast.(*BinaryExpression).ForEachChild(0x14143a26750, 0x14154a8f9d0)
	github.com/microsoft/typescript-go/internal/ast/ast.go:6280 +0x110
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).visit(0x14154a4fce0, 0x14143a26750)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:101 +0x390
github.com/microsoft/typescript-go/internal/ast.visit(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:21
github.com/microsoft/typescript-go/internal/ast.(*ExpressionStatement).ForEachChild(0x141438f9680?, 0x14154a8f7e0?)
	github.com/microsoft/typescript-go/internal/ast/ast.go:3635 +0x34
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).visit(0x14154a4fce0, 0x14143832f40)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:101 +0x390
github.com/microsoft/typescript-go/internal/ast.visitNodes(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:28
github.com/microsoft/typescript-go/internal/ast.visitNodeList(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:37
github.com/microsoft/typescript-go/internal/ast.(*SourceFile).ForEachChild(0x14143a30308, 0x14154a8f5e0)
	github.com/microsoft/typescript-go/internal/ast/ast.go:10862 +0xa4
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ls.(*inlayHintState).visit(0x14154a4fce0, 0x14143a30308)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:101 +0x390
github.com/microsoft/typescript-go/internal/ls.(*LanguageService).ProvideInlayHint(0x14154aa9680, {0x101a8f7a8, 0x14154aa9620}, 0x14154aa9530)
	github.com/microsoft/typescript-go/internal/ls/inlay_hints.go:45 +0x1cc
github.com/microsoft/typescript-go/internal/lsp.(*Server).handleInlayHint(0x14073f07ee8?, {0x101a8f7a8?, 0x14154aa9620?}, 0x1414f45c600?, 0x14073f07ea8?)
	github.com/microsoft/typescript-go/internal/lsp/server.go:1297 +0x2c
github.com/microsoft/typescript-go/internal/lsp.init.func1.registerLanguageServiceDocumentRequestHandler[...].25({0x101a8f7a8, 0x14154aa9620}, 0x14154aa9560)
	github.com/microsoft/typescript-go/internal/lsp/server.go:593 +0xe0
github.com/microsoft/typescript-go/internal/lsp.(*Server).handleRequestOrNotification(0x140001a8008, {0x101a8f7e0?, 0x141541e8820?}, 0x14154aa9560)
	github.com/microsoft/typescript-go/internal/lsp/server.go:478 +0x128
github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop.func1()
	github.com/microsoft/typescript-go/internal/lsp/server.go:381 +0x34
created by github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop in goroutine 19
	github.com/microsoft/typescript-go/internal/lsp/server.go:401 +0x7a0

[Error - 8:48:54 PM] Request textDocument/inlayHint failed.
  Message: InternalError: panic handling request textDocument/inlayHint: Token cache mismatch: parent. Expected parent of kind KindFunctionExpression, got KindFunctionExpression
  Code: -32603 

Originally posted by @rubnogueira in #2077

jakebailey avatar Dec 03 '25 16:12 jakebailey

I get two errors in pairs at the same time: one as above for textDocument/inlayHint, but also

Request textDocument/foldingRange failed.
  Message: InternalError: panic handling request textDocument/foldingRange: Token cache mismatch: parent. Expected parent of kind KindBlock, got KindBlock
Full trace
panic handling request textDocument/foldingRange Token cache mismatch: parent. Expected parent of kind KindBlock, got KindBlock goroutine 66948 [running]:
runtime/debug.Stack()
	runtime/debug/stack.go:26 +0x5e
github.com/microsoft/typescript-go/internal/lsp.(*Server).recover(0xc000196008, 0xc0431b05a0)
	github.com/microsoft/typescript-go/internal/lsp/server.go:880 +0x58
panic({0x7ff71b8e36c0?, 0xc018614140?})
	runtime/panic.go:783 +0x132
github.com/microsoft/typescript-go/internal/ast.(*SourceFile).GetOrCreateToken(0xc039577808, 0x12, 0x5b, 0x5d, 0xc04201a180)
	github.com/microsoft/typescript-go/internal/ast/ast.go:10957 +0x305
github.com/microsoft/typescript-go/internal/astnav.FindChildOfKind.func1(0xc0432f4550)
	github.com/microsoft/typescript-go/internal/astnav/tokens.go:693 +0xce
github.com/microsoft/typescript-go/internal/ast.visitNodes(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:28
github.com/microsoft/typescript-go/internal/ast.visitNodeList(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:37
github.com/microsoft/typescript-go/internal/ast.(*Block).ForEachChild(0xc0431b6101?, 0xc004f12f80)
	github.com/microsoft/typescript-go/internal/ast/ast.go:3679 +0x67
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ast.ForEachChildAndJSDoc(0xc039577808?, 0x5b?, 0xc039577808?)
	github.com/microsoft/typescript-go/internal/ast/utilities.go:2871 +0x43
github.com/microsoft/typescript-go/internal/astnav.FindChildOfKind(0xc04201a180, 0x12, 0xc039577808)
	github.com/microsoft/typescript-go/internal/astnav/tokens.go:711 +0xf9
github.com/microsoft/typescript-go/internal/ls.tryGetFunctionOpenToken(0xc0432f45a0, 0xc04201a180, 0xc039577808)
	github.com/microsoft/typescript-go/internal/ls/folding.go:525 +0x79
github.com/microsoft/typescript-go/internal/ls.functionSpan(0xc02c8e8bc0?, 0xc04201a180, 0xc039577808, 0xc02a59ced0)
	github.com/microsoft/typescript-go/internal/ls/folding.go:510 +0x25
github.com/microsoft/typescript-go/internal/ls.getOutliningSpanForNode(0x7ff71bdc3b08?, 0xc02a59ce70?, 0x286?)
	github.com/microsoft/typescript-go/internal/ls/folding.go:314 +0x285
github.com/microsoft/typescript-go/internal/ls.visitNode({0x7ff71bdc3b08, 0xc02a59ce70}, 0xc04201a180, 0x25, 0xc039577808, 0xc02a59ced0)
	github.com/microsoft/typescript-go/internal/ls/folding.go:151 +0x8d8
github.com/microsoft/typescript-go/internal/ls.visitNode.func1(0x7ff71b9d4480?)
	github.com/microsoft/typescript-go/internal/ls/folding.go:194 +0x3d
github.com/microsoft/typescript-go/internal/ast.visit(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:21
github.com/microsoft/typescript-go/internal/ast.(*ArrowFunction).ForEachChild(0xc0432f45a0, 0xc004f12e40)
	github.com/microsoft/typescript-go/internal/ast/ast.go:6461 +0x152
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ls.visitNode({0x7ff71bdc3b08, 0xc02a59ce70}, 0xc0432f45a0, 0x26, 0xc039577808, 0xc02a59ced0)
	github.com/microsoft/typescript-go/internal/ls/folding.go:200 +0xff7
github.com/microsoft/typescript-go/internal/ls.visitNode.func1(0x7ff71b1471a5?)
	github.com/microsoft/typescript-go/internal/ls/folding.go:194 +0x3d
github.com/microsoft/typescript-go/internal/ast.visit(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:21
github.com/microsoft/typescript-go/internal/ast.(*BinaryExpression).ForEachChild(0xc045bba7b8, 0xc004cdca00)
	github.com/microsoft/typescript-go/internal/ast/ast.go:6280 +0xf1
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ls.visitNode({0x7ff71bdc3b08, 0xc02a59ce70}, 0xc045bba7b8, 0x27, 0xc039577808, 0xc02a59ced0)
	github.com/microsoft/typescript-go/internal/ls/folding.go:200 +0xff7
github.com/microsoft/typescript-go/internal/ls.visitNode.func1(0xc02a59ce01?)
	github.com/microsoft/typescript-go/internal/ls/folding.go:194 +0x3d
github.com/microsoft/typescript-go/internal/ast.visit(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:21
github.com/microsoft/typescript-go/internal/ast.(*ExpressionStatement).ForEachChild(0xc0431b2120?, 0xc0027ad1c0?)
	github.com/microsoft/typescript-go/internal/ast/ast.go:3635 +0x23
github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild(...)
	github.com/microsoft/typescript-go/internal/ast/ast.go:242
github.com/microsoft/typescript-go/internal/ls.visitNode({0x7ff71bdc3b08, 0xc02a59ce70}, 0xc0469381c0, 0x28, 0xc039577808, 0xc02a59ced0)
	github.com/microsoft/typescript-go/internal/ls/folding.go:200 +0xff7
github.com/microsoft/typescript-go/internal/ls.(*LanguageService).addNodeOutliningSpans(0xc02a59ced0, {0x7ff71bdc3b08, 0xc02a59ce70}, 0xc039577808)
	github.com/microsoft/typescript-go/internal/ls/folding.go:40 +0x41b
github.com/microsoft/typescript-go/internal/ls.(*LanguageService).ProvideFoldingRange(0xc02a59ced0, {0x7ff71bdc3b08, 0xc02a59ce70}, {0xc0449da040?, 0x37?})
	github.com/microsoft/typescript-go/internal/ls/folding.go:20 +0x6f
github.com/microsoft/typescript-go/internal/lsp.(*Server).handleFoldingRange(0x7ff71b1a5c85?, {0x7ff71bdc3b08?, 0xc02a59ce70?}, 0xc0449da040?, 0xc00031ac60?)
	github.com/microsoft/typescript-go/internal/lsp/server.go:1177 +0x2b
github.com/microsoft/typescript-go/internal/lsp.init.func1.registerLanguageServiceDocumentRequestHandler[...].29({0x7ff71bdc3b08, 0xc02a59ce70}, 0xc0431b05a0)
	github.com/microsoft/typescript-go/internal/lsp/server.go:629 +0x11a
github.com/microsoft/typescript-go/internal/lsp.(*Server).handleRequestOrNotification(0xc000196008, {0x7ff71bdc3b40?, 0xc0432f1bd0?}, 0xc0431b05a0)
	github.com/microsoft/typescript-go/internal/lsp/server.go:510 +0x153
github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop.func1()
	github.com/microsoft/typescript-go/internal/lsp/server.go:413 +0x3a
created by github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop in goroutine 10
	github.com/microsoft/typescript-go/internal/lsp/server.go:433 +0x9ad

Let me know if it should be separate issue, but it looked related to provide more info here

IllusionMH avatar Dec 04 '25 12:12 IllusionMH