github.com/v2fly/tools@v0.100.0/internal/lsp/testdata/rank/convert_rank.go.in (about) 1 package rank 2 3 import "time" 4 5 func _() { 6 type strList []string 7 wantsStrList := func(strList) {} 8 9 var ( 10 convA string //@item(convertA, "convA", "string", "var") 11 convB []string //@item(convertB, "convB", "[]string", "var") 12 ) 13 wantsStrList(strList(conv)) //@complete("))", convertB, convertA) 14 } 15 16 func _() { 17 type myInt int 18 19 const ( 20 convC = "hi" //@item(convertC, "convC", "string", "const") 21 convD = 123 //@item(convertD, "convD", "int", "const") 22 convE int = 123 //@item(convertE, "convE", "int", "const") 23 convF string = "there" //@item(convertF, "convF", "string", "const") 24 convG myInt = 123 //@item(convertG, "convG", "myInt", "const") 25 ) 26 27 var foo int 28 foo = conv //@rank(" //", convertE, convertD) 29 30 var mi myInt 31 mi = conv //@rank(" //", convertG, convertD, convertE) 32 mi + conv //@rank(" //", convertG, convertD, convertE) 33 34 1 + conv //@rank(" //", convertD, convertC),rank(" //", convertE, convertC),rank(" //", convertG, convertC) 35 36 type myString string 37 var ms myString 38 ms = conv //@rank(" //", convertC, convertF) 39 40 type myUint uint32 41 var mu myUint 42 mu = conv //@rank(" //", convertD, convertE) 43 44 // don't downrank constants when assigning to interface{} 45 var _ interface{} = c //@rank(" //", convertD, complex) 46 47 var _ time.Duration = conv //@rank(" //", convertD, convertE),snippet(" //", convertE, "time.Duration(convE)", "time.Duration(convE)") 48 49 var convP myInt 50 &convP //@item(convertP, "&convP", "myInt", "var") 51 var _ *int = conv //@snippet(" //", convertP, "(*int)(&convP)", "(*int)(&convP)") 52 53 var ff float64 //@item(convertFloat, "ff", "float64", "var") 54 f == convD //@snippet(" =", convertFloat, "ff", "ff") 55 }