aboutsummaryrefslogtreecommitdiff
path: root/gopls/internal/lsp/testdata/rank/type_switch_rank.go.in
diff options
context:
space:
mode:
Diffstat (limited to 'gopls/internal/lsp/testdata/rank/type_switch_rank.go.in')
-rw-r--r--gopls/internal/lsp/testdata/rank/type_switch_rank.go.in31
1 files changed, 31 insertions, 0 deletions
diff --git a/gopls/internal/lsp/testdata/rank/type_switch_rank.go.in b/gopls/internal/lsp/testdata/rank/type_switch_rank.go.in
new file mode 100644
index 000000000..1ed12b7c1
--- /dev/null
+++ b/gopls/internal/lsp/testdata/rank/type_switch_rank.go.in
@@ -0,0 +1,31 @@
+package rank
+
+import (
+ "fmt"
+ "go/ast"
+)
+
+func _() {
+ type basket int //@item(basket, "basket", "int", "type")
+ var banana string //@item(banana, "banana", "string", "var")
+
+ switch interface{}(pear).(type) {
+ case b: //@complete(":", basket)
+ b //@complete(" //", banana, basket)
+ }
+
+ Ident //@item(astIdent, "Ident", "struct{...}", "struct")
+ IfStmt //@item(astIfStmt, "IfStmt", "struct{...}", "struct")
+
+ switch ast.Node(nil).(type) {
+ case *ast.Ident:
+ case *ast.I: //@rank(":", astIfStmt, astIdent)
+ }
+
+ Stringer //@item(fmtStringer, "Stringer", "interface{...}", "interface")
+ GoStringer //@item(fmtGoStringer, "GoStringer", "interface{...}", "interface")
+
+ switch interface{}(nil).(type) {
+ case fmt.Stringer: //@rank(":", fmtStringer, fmtGoStringer)
+ }
+}