blob: 0fba1afe003e62b4eec0bcea6b2b7b36d6db407b [file] [log] [blame]
This test checks the behavior of the 'extract variable/constant' code action.
See extract_variable_resolve.txt for the same test with resolve support.
-- capabilities.json --
{
"textDocument": {
"codeAction": {
"dataSupport": false,
"resolveSupport": {}
}
}
}
-- flags --
-ignore_extra_diags
-- basic_lit.go --
package extract
func _() {
var _ = 1 + 2 //@codeaction("1", "refactor.extract.constant", edit=basic_lit1)
var _ = 3 + 4 //@codeaction("3 + 4", "refactor.extract.constant", edit=basic_lit2)
}
-- @basic_lit1/basic_lit.go --
@@ -4 +4,2 @@
- var _ = 1 + 2 //@codeaction("1", "refactor.extract.constant", edit=basic_lit1)
+ const newConst = 1
+ var _ = newConst + 2 //@codeaction("1", "refactor.extract.constant", edit=basic_lit1)
-- @basic_lit2/basic_lit.go --
@@ -5 +5,2 @@
- var _ = 3 + 4 //@codeaction("3 + 4", "refactor.extract.constant", edit=basic_lit2)
+ const newConst = 3 + 4
+ var _ = newConst //@codeaction("3 + 4", "refactor.extract.constant", edit=basic_lit2)
-- func_call.go --
package extract
import "strconv"
func _() {
x0 := append([]int{}, 1) //@codeaction("append([]int{}, 1)", "refactor.extract.variable", edit=func_call1)
str := "1"
b, err := strconv.Atoi(str) //@codeaction("strconv.Atoi(str)", "refactor.extract.variable", edit=func_call2)
}
-- @func_call1/func_call.go --
@@ -6 +6,2 @@
- x0 := append([]int{}, 1) //@codeaction("append([]int{}, 1)", "refactor.extract.variable", edit=func_call1)
+ newVar := append([]int{}, 1)
+ x0 := newVar //@codeaction("append([]int{}, 1)", "refactor.extract.variable", edit=func_call1)
-- @func_call2/func_call.go --
@@ -8 +8,2 @@
- b, err := strconv.Atoi(str) //@codeaction("strconv.Atoi(str)", "refactor.extract.variable", edit=func_call2)
+ newVar, newVar1 := strconv.Atoi(str)
+ b, err := newVar, newVar1 //@codeaction("strconv.Atoi(str)", "refactor.extract.variable", edit=func_call2)
-- scope.go --
package extract
import "go/ast"
func _() {
x0 := 0
if true {
y := ast.CompositeLit{} //@codeaction("ast.CompositeLit{}", "refactor.extract.variable", edit=scope1)
}
if true {
x := !false //@codeaction("!false", "refactor.extract.constant", edit=scope2)
}
}
-- @scope1/scope.go --
@@ -8 +8,2 @@
- y := ast.CompositeLit{} //@codeaction("ast.CompositeLit{}", "refactor.extract.variable", edit=scope1)
+ newVar := ast.CompositeLit{}
+ y := newVar //@codeaction("ast.CompositeLit{}", "refactor.extract.variable", edit=scope1)
-- @scope2/scope.go --
@@ -11 +11,2 @@
- x := !false //@codeaction("!false", "refactor.extract.constant", edit=scope2)
+ const newConst = !false
+ x := newConst //@codeaction("!false", "refactor.extract.constant", edit=scope2)