This test verifies the fix for golang/go#67905: Extract variable from type
switch produces invalid code
-- go.mod --
module mod.test/extract
go 1.18
-- extract_switch.go --
package extract
import (
"io"
)
func f() io.Reader
func main() {
switch r := f().(type) { //@codeactionedit("f()", "refactor.extract.variable", type_switch_func_call)
default:
_ = r
}
}
-- @type_switch_func_call/extract_switch.go --
@@ -10 +10,2 @@
- switch r := f().(type) { //@codeactionedit("f()", "refactor.extract.variable", type_switch_func_call)
+ x := f()
+ switch r := x.(type) { //@codeactionedit("f()", "refactor.extract.variable", type_switch_func_call)