Skip to content

InternalError: panic handling request textDocument/foldingRange with jsx using dot notation #2198

@dsafa

Description

@dsafa

Stack trace

panic handling request textDocument/foldingRange Unhandled case in Node.Text: *ast.PropertyAccessExpression goroutine 178230 [running]:
runtime/debug.Stack()
	runtime/debug/stack.go:26 +0x5e
github.com/microsoft/typescript-go/internal/lsp.(*Server).recover(0xc0001bc008, 0xc07268fb30)
	github.com/microsoft/typescript-go/internal/lsp/server.go:870 +0x58
panic({0x7ff7e9b42400?, 0xc08502fc00?})
	runtime/panic.go:783 +0x132
github.com/microsoft/typescript-go/internal/ast.(*Node).Text(0xc072417e60?)
	github.com/microsoft/typescript-go/internal/ast/ast.go:338 +0x42d
github.com/microsoft/typescript-go/internal/ls.spanForJSXElement(0x7ff7e9b740e0?, 0xc05faf6c08, 0xc072417e60)
	github.com/microsoft/typescript-go/internal/ls/folding.go:433 +0xad
github.com/microsoft/typescript-go/internal/ls.getOutliningSpanForNode(0x0?, 0x0?, 0x0?)
	github.com/microsoft/typescript-go/internal/ls/folding.go:351 +0x54c
github.com/microsoft/typescript-go/internal/ls.visitNode({0x7ff7ea021848, 0xc072417e00}, 0xc08f6d3ae0, 0x22, 0xc05faf6c08, 0xc072417e60)
	github.com/microsoft/typescript-go/internal/ls/folding.go:151 +0x8d8
github.com/microsoft/typescript-go/internal/ls.visitNode.func1(0xc072417e01?)
	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.(*ReturnStatement).ForEachChild(0x7ff7ea021848?, 0xc072417e00?)
	github.com/microsoft/typescript-go/internal/ast/ast.go:3229 +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({0x7ff7ea021848, 0xc072417e00}, 0xc032782f30, 0x23, 0xc05faf6c08, 0xc072417e60)
	github.com/microsoft/typescript-go/internal/ls/folding.go:200 +0xff7
github.com/microsoft/typescript-go/internal/ls.visitNode.func1(0x7ff7e93a71a5?)
	github.com/microsoft/typescript-go/internal/ls/folding.go:194 +0x3d
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(0x7ff7ea021848?, 0xc050809700)
	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/ls.visitNode({0x7ff7ea021848, 0xc072417e00}, 0xc0255d0240, 0x24, 0xc05faf6c08, 0xc072417e60)
	github.com/microsoft/typescript-go/internal/ls/folding.go:200 +0xff7
github.com/microsoft/typescript-go/internal/ls.visitNode.func1(0x7ff7e9c32d00?)
	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(0xc0060c65a0, 0xc050809600)
	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({0x7ff7ea021848, 0xc072417e00}, 0xc0060c65a0, 0x25, 0xc05faf6c08, 0xc072417e60)
	github.com/microsoft/typescript-go/internal/ls/folding.go:200 +0xff7
github.com/microsoft/typescript-go/internal/ls.visitNode.func1(0xc072417e01?)
	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.(*VariableDeclaration).ForEachChild(0xc02b0ab588, 0xc050809580)
	github.com/microsoft/typescript-go/internal/ast/ast.go:3776 +0xc2
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({0x7ff7ea021848, 0xc072417e00}, 0xc02b0ab588, 0x26, 0xc05faf6c08, 0xc072417e60)
	github.com/microsoft/typescript-go/internal/ls/folding.go:200 +0xff7
github.com/microsoft/typescript-go/internal/ls.visitNode.func1(0x7ff7e93a71a5?)
	github.com/microsoft/typescript-go/internal/ls/folding.go:194 +0x3d
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.(*VariableDeclarationList).ForEachChild(0x0?, 0xc050809540)
	github.com/microsoft/typescript-go/internal/ast/ast.go:3826 +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/ls.visitNode({0x7ff7ea021848, 0xc072417e00}, 0xc02ad446c0, 0x27, 0xc05faf6c08, 0xc072417e60)
	github.com/microsoft/typescript-go/internal/ls/folding.go:200 +0xff7
github.com/microsoft/typescript-go/internal/ls.visitNode.func1(0x7ff7e93a71a5?)
	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.(*VariableStatement).ForEachChild(0xc0060c6550?, 0xc0508094c0?)
	github.com/microsoft/typescript-go/internal/ast/ast.go:3722 +0x62
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({0x7ff7ea021848, 0xc072417e00}, 0xc0060c6550, 0x28, 0xc05faf6c08, 0xc072417e60)
	github.com/microsoft/typescript-go/internal/ls/folding.go:200 +0xff7
github.com/microsoft/typescript-go/internal/ls.(*LanguageService).addNodeOutliningSpans(0xc072417e60, {0x7ff7ea021848, 0xc072417e00}, 0xc05faf6c08)
	github.com/microsoft/typescript-go/internal/ls/folding.go:40 +0x41b
github.com/microsoft/typescript-go/internal/ls.(*LanguageService).ProvideFoldingRange(0xc072417e60, {0x7ff7ea021848, 0xc072417e00}, {0xc03e80e7e0?, 0x90?})
	github.com/microsoft/typescript-go/internal/ls/folding.go:20 +0x6f
github.com/microsoft/typescript-go/internal/lsp.(*Server).handleFoldingRange(0x7ff7e9405c85?, {0x7ff7ea021848?, 0xc072417e00?}, 0xc03e80e7e0?, 0xc0001d1ea8?)
	github.com/microsoft/typescript-go/internal/lsp/server.go:1166 +0x2b
github.com/microsoft/typescript-go/internal/lsp.init.func1.registerLanguageServiceDocumentRequestHandler[...].29({0x7ff7ea021848, 0xc072417e00}, 0xc07268fb30)
	github.com/microsoft/typescript-go/internal/lsp/server.go:619 +0x11a
github.com/microsoft/typescript-go/internal/lsp.(*Server).handleRequestOrNotification(0xc0001bc008, {0x7ff7ea021880?, 0xc02c923db0?}, 0xc07268fb30)
	github.com/microsoft/typescript-go/internal/lsp/server.go:500 +0x153
github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop.func1()
	github.com/microsoft/typescript-go/internal/lsp/server.go:403 +0x3a
created by github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop in goroutine 10
	github.com/microsoft/typescript-go/internal/lsp/server.go:423 +0x9ad

Steps to reproduce

  1. Use jsx with the dot notation for the component
const Components = {
  Nested: () => null
};

export const Test = () => {
  return <Components.Nested></Components.Nested>;
};

This shows up using the vscode typescript native preview extension 0.20251203.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions