blob: 504acd6043e95856eaaaf6ded313ae482d40bab3 [file] [log] [blame]
This test checks the behavior of the 'fill switch' code action, with resolve support.
See fill_switch.txt for same test without resolve support.
-- capabilities.json --
{
"textDocument": {
"codeAction": {
"dataSupport": true,
"resolveSupport": {
"properties": ["edit"]
}
}
}
}
-- flags --
-ignore_extra_diags
-- go.mod --
module golang.org/lsptests/fillswitch
go 1.18
-- data/data.go --
package data
type TypeB int
const (
TypeBOne TypeB = iota
TypeBTwo
TypeBThree
)
-- a.go --
package fillswitch
import (
"golang.org/lsptests/fillswitch/data"
)
type typeA int
const (
typeAOne typeA = iota
typeATwo
typeAThree
)
type notification interface {
isNotification()
}
type notificationOne struct{}
func (notificationOne) isNotification() {}
type notificationTwo struct{}
func (notificationTwo) isNotification() {}
func doSwitch() {
var b data.TypeB
switch b {
case data.TypeBOne: //@codeactionedit(":", "refactor.rewrite", a1)
}
var a typeA
switch a {
case typeAThree: //@codeactionedit(":", "refactor.rewrite", a2)
}
var n notification
switch n.(type) { //@codeactionedit("{", "refactor.rewrite", a3)
}
switch nt := n.(type) { //@codeactionedit("{", "refactor.rewrite", a4)
}
var s struct {
a typeA
}
switch s.a {
case typeAThree: //@codeactionedit(":", "refactor.rewrite", a5)
}
}
-- @a1/a.go --
@@ -31 +31,4 @@
+ case data.TypeBThree:
+ case data.TypeBTwo:
+ default:
+ panic(fmt.Sprintf("unexpected data.TypeB: %#v", b))
-- @a2/a.go --
@@ -36 +36,4 @@
+ case typeAOne:
+ case typeATwo:
+ default:
+ panic(fmt.Sprintf("unexpected fillswitch.typeA: %#v", a))
-- @a3/a.go --
@@ -40 +40,4 @@
+ case notificationOne:
+ case notificationTwo:
+ default:
+ panic(fmt.Sprintf("unexpected fillswitch.notification: %#v", n))
-- @a4/a.go --
@@ -43 +43,4 @@
+ case notificationOne:
+ case notificationTwo:
+ default:
+ panic(fmt.Sprintf("unexpected fillswitch.notification: %#v", nt))
-- @a5/a.go --
@@ -51 +51,4 @@
+ case typeAOne:
+ case typeATwo:
+ default:
+ panic(fmt.Sprintf("unexpected fillswitch.typeA: %#v", s.a))