#!stacks
"runtime.sigpanic" && "satisfy.(*Finder).expr:+75"
Issue created by stacks.
case *ast.SelectorExpr:
if _, ok := f.info.Selections[e]; ok {
f.expr(e.X) // selection
} else {
return f.info.Uses[e.Sel].Type() // qualified identifier <----------- panic
}
This is related to https://github.com/golang/go/issues/71572 and https://github.com/golang/go/issues/73109: satisfy was called on ill-typed code; and the resolution is the same: wait for https://github.com/golang/go/issues/70638.
This stack kscqug
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+53
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+30
golang.org/x/tools/refactor/satisfy.(*Finder).call:+26
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+19
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+99
golang.org/x/tools/gopls@v0.17.1 go1.23.2 darwin/arm64 vscode (1)
Dups: bgW9pQ aibuLA aJ9H_w x0Q4yQ 7x8J4g 9tBQQA EqiNlQ ae1P8Q jxCFrw lpgZrA P3nHGA CjT0cQ
Comment From: gabyhelp
Related Issues
- x/tools/gopls: Rename: "unexpected composite literal type %T: %v" panic in satisfy.(*Finder).Find #71538
- x/tools/gopls: Rename: "no type for %T" panic in satisfy #71572
- x/tools/gopls: Rename: crash due to Info.Defs[id]=nil bug in checkStructField #70968
- x/tools/gopls: Rename: type assertion panics in renameImports #71656
- x/tools/gopls: crash when renaming in a package using builtins with type parameters #52940 (closed)
- x/tools/gopls: rename fails on struct method that references bad struct field #32882 (closed)
- x/tools/gopls: gopls fails to rename all uses of instantiated struct field #61640 (closed)
- x/tools/gopls: crash during renaming #53277 (closed)
- x/tools/gopls: "edit does not belong to syntax of package %q" bug in golang.Rename #70049
- x/tools/gopls: crash in renaming inside packages that use type param composite lits #61614 (closed)
(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)
Comment From: jba
Although this issue is in the gopls/backlog milestone, it belongs in the hypothetical milestone "first gopls release after the next Go release (1.25)," since the next Go release should have implemented #70638.
Comment From: adonovan
This stack bgW9pQ
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+47
golang.org/x/tools/refactor/satisfy.(*Finder).valueSpec:+8
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+12
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+99
golang.org/x/tools/gopls/internal/golang.Rename:+24
golang.org/x/tools/gopls/internal/server.(*server).Rename:+17
golang.org/x/tools/gopls/internal/protocol.serverDispatch:+489
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.ServerHandler.func3:+5
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.handshaker.func4:+52
golang.org/x/tools/gopls@v0.17.1 go1.23.4 darwin/arm64 other,vscode (1)
Comment From: adonovan
This stack aibuLA
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).call:+26
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+19
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameExported:+56
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+157
golang.org/x/tools/gopls/internal/golang.Rename:+24
golang.org/x/tools/gopls/internal/server.(*server).Rename:+17
golang.org/x/tools/gopls@v0.17.1 go1.23.3 linux/amd64 vscode (1)
Comment From: adonovan
This stack aJ9H_w
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).call:+26
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+38
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+145
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+75
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameExported:+56
golang.org/x/tools/gopls@v0.18.1 go1.24.0 darwin/arm64 vscode (1)
Comment From: adonovan
This stack x0Q4yQ
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+9
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).call:+26
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+40
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+66
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameExported:+56
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+157
golang.org/x/tools/gopls/internal/golang.Rename:+24
golang.org/x/tools/gopls/internal/server.(*server).Rename:+17
golang.org/x/tools/gopls@v0.18.1 go1.24.0 windows/amd64 other,vscode (2)
This stack 7x8J4g
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+9
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).call:+26
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+40
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+99
golang.org/x/tools/gopls/internal/golang.Rename:+24
golang.org/x/tools/gopls/internal/server.(*server).Rename:+17
golang.org/x/tools/gopls/internal/protocol.serverDispatch:+489
golang.org/x/tools/gopls@v0.18.1 go1.24.0 windows/amd64 other,vscode (1)
Comment From: adonovan
This stack 9tBQQA
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+40
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+30
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+75
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameExported:+56
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+157
golang.org/x/tools/gopls@v0.18.1 go1.23.6 linux/amd64 vscode (1)
Comment From: adonovan
This stack EqiNlQ
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+40
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+95
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+99
golang.org/x/tools/gopls/internal/golang.Rename:+24
golang.org/x/tools/gopls/internal/server.(*server).Rename:+17
golang.org/x/tools/gopls/internal/protocol.serverDispatch:+489
golang.org/x/tools/gopls@v0.18.1 go1.24.0 darwin/arm64 vscode (1)
Comment From: adonovan
This stack ae1P8Q
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+40
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+66
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameExported:+56
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+157
golang.org/x/tools/gopls/internal/golang.Rename:+24
golang.org/x/tools/gopls/internal/server.(*server).Rename:+17
golang.org/x/tools/gopls/internal/protocol.serverDispatch:+489
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.ServerHandler.func3:+5
golang.org/x/tools/gopls@v0.18.0 go1.24.0 linux/amd64 vscode (1)
Comment From: adonovan
This stack jxCFrw
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+75
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+141
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+98
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameExported:+56
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+157
golang.org/x/tools/gopls@v0.18.1 go1.24.0 darwin/arm64 vscode (1)
Comment From: adonovan
This stack lpgZrA
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).call:+26
golang.org/x/tools/refactor/satisfy.(*Finder).exprN:+9
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+35
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameExported:+56
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+157
golang.org/x/tools/gopls/internal/golang.Rename:+24
golang.org/x/tools/gopls@v0.18.1 go1.24.1 linux/amd64 vscode (1)
Comment From: adonovan
This stack P3nHGA
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).call:+26
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).valueSpec:+8
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+11
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameExported:+56
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+157
golang.org/x/tools/gopls@v0.18.1 go1.24.3 linux/amd64 vscode (1)
Comment From: adonovan
This stack CjT0cQ
was reported by telemetry:
crash/crash
runtime.gopanic:+69
runtime.panicmem:=262
runtime.sigpanic:+19
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+75
golang.org/x/tools/refactor/satisfy.(*Finder).call:+26
golang.org/x/tools/refactor/satisfy.(*Finder).expr:+138
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+40
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+98
golang.org/x/tools/refactor/satisfy.(*Finder).stmt:+90
golang.org/x/tools/refactor/satisfy.(*Finder).Find:+19
golang.org/x/tools/gopls/internal/golang.(*renamer).satisfy:+27
golang.org/x/tools/gopls/internal/golang.(*renamer).checkMethod:+178
golang.org/x/tools/gopls/internal/golang.(*renamer).check:+16
golang.org/x/tools/gopls/internal/golang.renameObjects:+24
golang.org/x/tools/gopls/internal/golang.renameExported:+56
golang.org/x/tools/gopls/internal/golang.renameOrdinary:+157
golang.org/x/tools/gopls@v0.18.1 go1.23.6 linux/amd64 vscode (2)