aboutsummaryrefslogtreecommitdiff
path: root/internal/lsp/testdata/rank/type_switch_rank.go.in
blob: 1ed12b7c1c7c2ffd300fe1a4bf91dd33285fcd57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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)
	}
}