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/tparallel@v0.3.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/go/ssa/lvalue.go:40 +0x4c
golang.org/x/tools/go/ssa.(*storebuf).emit(...)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/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/tools@v0.7.0/go/ssa/builder.go:2326 +0x30
golang.org/x/tools/go/ssa.(*builder).buildCreated(0x140010e99f8)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/tools@v0.7.0/go/ssa/builder.go:2413 +0x28
golang.org/x/tools/go/ssa.(*Package).build(0x140010a0e00)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/tools@v0.7.0/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/tools@v0.7.0/go/ssa/builder.go:2477
golang.org/x/tools/go/analysis/passes/buildssa.run(0x140029aeea0)
        /Users/anthony/golang_workspace/pkg/mod/golang.org/x/tools@v0.7.0/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