Skip to content

buildssa.Analyzer: panic: cannot convert *t0 (M) to PM #3711

Closed
@Antonboom

Description

@Antonboom

Description of the problem

This issue is continuation of #3086.
We are waiting for golang/go#58633

Stack trace example
ERRO [linters_context/goanalysis] tparallel: panic during analysis: interface conversion: interface {} is nil, not *buildssa.SSA, goroutine 1068 [running]:
runtime/debug.Stack()
        /usr/local/go/src/runtime/debug/stack.go:24 +0x64
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_action.go:101 +0x40
panic({0x104e72020, 0x1400370e030})
        /usr/local/go/src/runtime/panic.go:884 +0x1f4
github.com/moricho/tparallel.run(0x140037100d0)
        /Users/anthony/golang_workspace/pkg/mod/github.com/moricho/[email protected]/tparallel.go:27 +0x3e0
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0x1400077daa0)
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_action.go:190 +0x94c
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_action.go:108 +0x20
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0x14000697720, {0x104ae4c3f, 0x9}, 0x14000117730)
        /Users/anthony/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x44
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0x10450e7f0?)
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_action.go:107 +0x74
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0x1400077daa0)
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb0
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x17c 


ERRO [linters_context/goanalysis] buildssa: panic during analysis: in github.com/Antonboom/golangci-vs-ent-generics/ent.withHooks$1: cannot convert *t0 (M) to PM, goroutine 1067 [running]:
runtime/debug.Stack()
        /usr/local/go/src/runtime/debug/stack.go:24 +0x64
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func1()
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_action.go:101 +0x40
panic({0x104de09a0, 0x140022dc7f0})
        /usr/local/go/src/runtime/panic.go:884 +0x1f4
golang.org/x/tools/go/ssa.emitConv(0x140022de000, {0x104fc3f00, 0x140022d5aa0}, {0x104fbb4a0?, 0x1400234aa20})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/emit.go:286 +0xb40
golang.org/x/tools/go/ssa.emitStore(0x140022de000, {0x104fc3f00, 0x140022d59e0}, {0x104fc3f00, 0x140022d5aa0}, 0x2ab36cb)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/emit.go:377 +0x58
golang.org/x/tools/go/ssa.(*address).store(0x140022d1710, 0x140022de000?, {0x104fc3f00?, 0x140022d5aa0?})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/lvalue.go:40 +0x4c
golang.org/x/tools/go/ssa.(*storebuf).emit(...)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:533
golang.org/x/tools/go/ssa.(*builder).assignStmt(0x140022de000?, 0x140022de000, {0x14001db79a0, 0x1, 0x104f57fc0?}, {0x14001db79b0, 0x1, 0x104020290?}, 0x0)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:1207 +0x370
golang.org/x/tools/go/ssa.(*builder).stmt(0x140010e8838?, 0x140022de000, {0x104fbe350?, 0x14001dee540?})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2181 +0x380
golang.org/x/tools/go/ssa.(*builder).stmtList(0x140022d1500?, 0x0?, {0x14001dee580?, 0x4, 0x30?})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:946 +0x48
golang.org/x/tools/go/ssa.(*builder).stmt(0x140022de000?, 0x140022de000, {0x104fbe470?, 0x14001ddf350?})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2277 +0x718
golang.org/x/tools/go/ssa.(*builder).buildFunctionBody(0x0?, 0x140022de000)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2391 +0x354
golang.org/x/tools/go/ssa.(*builder).expr0(0x140010e99f8, 0x14000b19800, {0x104fbe710?, 0x14001db79e0?}, {0x7, {0x104fbb3b0, 0x14002653180}, {0x0, 0x0}})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:656 +0x42c
golang.org/x/tools/go/ssa.(*builder).expr(0x104e4f900?, 0x14000b19800, {0x104fbe710, 0x14001db79e0})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:625 +0x11c
golang.org/x/tools/go/ssa.(*builder).expr0(0x140010e99f8, 0x14000b19800, {0x104fbe4d0?, 0x14001dee600?}, {0x7, {0x104fbb338, 0x14000acdea0}, {0x0, 0x0}})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:676 +0x5f8
golang.org/x/tools/go/ssa.(*builder).expr(0x104f4a2e0?, 0x14000b19800, {0x104fbe4d0, 0x14001dee600})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:625 +0x11c
golang.org/x/tools/go/ssa.(*builder).assign(0x14000b19800?, 0x14000b19800?, {0x104fc0de8?, 0x140022d1470}, {0x104fbe4d0?, 0x14001dee600?}, 0x8?, 0x0)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:598 +0x30c
golang.org/x/tools/go/ssa.(*builder).localValueSpec(0x14000b19800?, 0x14000b19800, 0x14001d973b0)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:1147 +0xb8
golang.org/x/tools/go/ssa.(*builder).stmt(0x140010e9548?, 0x14000b19800, {0x104fbe5c0?, 0x14001db7a20?})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2147 +0x14b0
golang.org/x/tools/go/ssa.(*builder).stmtList(0x140010e95c8?, 0x10405b800?, {0x14001b79b80?, 0x8, 0x10?})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:946 +0x48
golang.org/x/tools/go/ssa.(*builder).stmt(0x14000b19800?, 0x14000b19800, {0x104fbe470?, 0x14001ddf590?})
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2277 +0x718
golang.org/x/tools/go/ssa.(*builder).buildFunctionBody(0x14000a76f00?, 0x14000b19800)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2391 +0x354
golang.org/x/tools/go/ssa.(*builder).buildFunction(0x10454b0f0?, 0x14000b19800)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2326 +0x30
golang.org/x/tools/go/ssa.(*builder).buildCreated(0x140010e99f8)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2413 +0x28
golang.org/x/tools/go/ssa.(*Package).build(0x140010a0e00)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2606 +0xa60
sync.(*Once).doSlow(0x14001c08300?, 0x140020ac460?)
        /usr/local/go/src/sync/once.go:74 +0x100
sync.(*Once).Do(...)
        /usr/local/go/src/sync/once.go:65
golang.org/x/tools/go/ssa.(*Package).Build(...)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/ssa/builder.go:2477
golang.org/x/tools/go/analysis/passes/buildssa.run(0x140029aeea0)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/[email protected]/go/analysis/passes/buildssa/buildssa.go:73 +0x13c
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyze(0x1400077db30)
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_action.go:190 +0x94c
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe.func2()
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_action.go:108 +0x20
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0x14000697720, {0x104acb6c8, 0x8}, 0x14001163f30)
        /Users/anthony/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x44
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*action).analyzeSafe(0x10450e7f0?)
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_action.go:107 +0x74
github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze.func2(0x1400077db30)
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:80 +0xb0
created by github.com/golangci/golangci-lint/pkg/golinters/goanalysis.(*loadingPackage).analyze
        /Users/anthony/golangci-lint/pkg/golinters/goanalysis/runner_loadingpackage.go:75 +0x17c 

Version of golangci-lint

$ golangci-lint version
golangci-lint has version 1.52.0 built with go1.20.2 from a12be2d5 on 2023-03-18T10:38:44Z

Code example or link to a public repository

https://github.com/Antonboom/golangci-vs-ent-generics/tree/golangci-lint-v1.52.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdependenciesRelates to an upstream dependency

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions