Skip to content

Panic compiling webpack #890

Closed
Closed
@DanielRosenwasser

Description

@DanielRosenwasser
Member
panic: Unhandled case in Node.Text: *ast.ElementAccessExpression

goroutine 1915 [running]:
github.com/microsoft/typescript-go/internal/ast.(*Node).Text(0x4002ee0de0?)
        D:/typescript-go/internal/ast/ast.go:293 +0x2ec
github.com/microsoft/typescript-go/internal/ast.GetElementOrPropertyAccessName(0x400c949938?)
        D:/typescript-go/internal/ast/utilities.go:1314 +0x24
github.com/microsoft/typescript-go/internal/checker.isModuleExportsAccessExpression(0x4002ee0de0?)
        D:/typescript-go/internal/checker/utilities.go:1636 +0xa4
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkTestingKnownTruthyType(0x400c4fb008, 0x4002ee0de0, 0x400cace000, 0x4002edfcc0)
        D:/typescript-go/internal/checker/checker.go:3578 +0x90
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkTestingKnownTruthyTypes(0x400c4fb008, 0x4002ee0de0?, 0x400cace000, 0x4002edfcc0)
        D:/typescript-go/internal/checker/checker.go:3566 +0x4c
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(...)
        D:/typescript-go/internal/checker/checker.go:3561
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkConditionalExpression(0x400c4fb008, 0x7ff72be079a0?, 0x0)
        D:/typescript-go/internal/checker/checker.go:10325 +0x6c
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkExpressionWorker(0x400c4fb008, 0x7ff72b922f28?, 0xc4fb008?)
        D:/typescript-go/internal/checker/checker.go:7320 +0x49c
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkExpressionEx(0x400c4fb008, 0x4002ee0e40, 0x0)
        D:/typescript-go/internal/checker/checker.go:7073 +0x50
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkParenthesizedExpression(0x400c4fb008, 0x7ff72b9ed72c?, 0x0)
        D:/typescript-go/internal/checker/checker.go:9609 +0x38
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkExpressionWorker(0x400c4fb008, 0x7ff72b915b8c?, 0x2bb86680?)
        D:/typescript-go/internal/checker/checker.go:7290 +0x378
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkExpressionEx(0x400c4fb008, 0x4002b95900, 0x0)
        D:/typescript-go/internal/checker/checker.go:7073 +0x50
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkExpressionCachedEx(0x400c4fb008, 0x4002b95900, 0xc949c38?)
        D:/typescript-go/internal/checker/checker.go:7042 +0xb0
github.com/microsoft/typescript-go/internal/checker.(*Checker).getReturnTypeFromBody(0x400c4fb008, 0x4002e8f9a0, 0x0)
        D:/typescript-go/internal/checker/checker.go:18622 +0x2a0
github.com/microsoft/typescript-go/internal/checker.(*Checker).getReturnTypeOfSignature(0x400c4fb008, 0x4012033580)
        D:/typescript-go/internal/checker/checker.go:18517 +0x148
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkFunctionExpressionOrObjectLiteralMethodDeferred(0x400c4fb008, 0x4002e8f9a0)
        D:/typescript-go/internal/checker/checker.go:9722 +0x9c
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkDeferredNode(0x400c4fb008, 0x7ff72be06da0?)
        D:/typescript-go/internal/checker/checker.go:2283 +0xcc
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkDeferredNodes-range1(...)
        D:/typescript-go/internal/checker/checker.go:2268
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkDeferredNodes.(*OrderedSet[...]).Keys.func1(...)
        D:/typescript-go/internal/collections/ordered_map.go:117
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkDeferredNodes(0x400c4fb008, 0x4003183208?)
        D:/typescript-go/internal/checker/checker.go:2264 +0xc0
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkSourceFile(0x400c4fb008, {0x7ff72be013f8, 0x7ff72c2e36e0}, 0x4002297608)
        D:/typescript-go/internal/checker/checker.go:2071 +0x100
github.com/microsoft/typescript-go/internal/checker.(*Checker).CheckSourceFile(0x400c4fb008, {0x7ff72be013f8, 0x7ff72c2e36e0}, 0x4002297608)
        D:/typescript-go/internal/checker/checker.go:2059 +0x58
github.com/microsoft/typescript-go/internal/compiler.(*Program).CheckSourceFiles.func1-range1(0x400b823f38?)
        D:/typescript-go/internal/compiler/program.go:297 +0x44
github.com/microsoft/typescript-go/internal/compiler.(*checkerPool).Files.func1(0x400d10a450)
        D:/typescript-go/internal/compiler/checkerpool.go:82 +0x7c
github.com/microsoft/typescript-go/internal/compiler.(*Program).CheckSourceFiles.func1()
        D:/typescript-go/internal/compiler/program.go:296 +0xc4
github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue.func1()
        D:/typescript-go/internal/core/workgroup.go:39 +0x50
created by github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue in goroutine 1
        D:/typescript-go/internal/core/workgroup.go:37 +0x7c

Activity

DanielRosenwasser

DanielRosenwasser commented on May 21, 2025

@DanielRosenwasser
MemberAuthor

I think that the problem is that GetElementOrPropertyAccessName was not correctly ported.

The new one is

func GetElementOrPropertyAccessName(node *Node) string {
	name := GetElementOrPropertyAccessArgumentExpressionOrName(node)
	if name == nil {
		return ""
	}
	return name.Text()
}

The original is

export function getElementOrPropertyAccessName(node: AccessExpression): __String | undefined {
    const name = getElementOrPropertyAccessArgumentExpressionOrName(node);
    if (name) {
        if (isIdentifier(name)) {
            return name.escapedText;
        }
        if (isStringLiteralLike(name) || isNumericLiteral(name)) {
            return escapeLeadingUnderscores(name.text);
        }
    }
    return undefined;
}

To be honest, I don't know why GetElementOrPropertyAccessArgumentExpressionOrName really needs to exist, but that's another story.

added a commit that references this issue on May 27, 2025
bcf2280
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Participants

    @sandersn@DanielRosenwasser

    Issue actions

      Panic compiling webpack · Issue #890 · microsoft/typescript-go