// values
{`package v0; var (a, b int; _ = a + b)`, `a + b`, `value`},
- {`package v1; var _ = &[]int{1}`, `([]int literal)`, `value`},
+ {`package v1; var _ = &[]int{1}`, `[]int{…}`, `value`},
{`package v2; var _ = func(){}`, `(func() literal)`, `value`},
{`package v4; func f() { _ = f }`, `f`, `value`},
{`package v3; var _ *int = nil`, `nil`, `value, nil`},
buf.WriteString(" literal)") // shortened
case *ast.CompositeLit:
- buf.WriteByte('(')
WriteExpr(buf, x.Type)
- buf.WriteString(" literal)") // shortened
+ buf.WriteByte('{')
+ if len(x.Elts) > 0 {
+ buf.WriteString("…")
+ }
+ buf.WriteByte('}')
case *ast.ParenExpr:
buf.WriteByte('(')
// func and composite literals
{"func(){}", "(func() literal)"},
{"func(x int) complex128 {}", "(func(x int) complex128 literal)"},
- {"[]int{1, 2, 3}", "([]int literal)"},
+ {"[]int{1, 2, 3}", "[]int{…}"},
// type expressions
dup("[1 << 10]byte"),
_ = S2{}.B
_ = S2{}.C
_ = S2{}.D /* ERROR "no field or method" */
- _ = S3{}.S1 /* ERROR "ambiguous selector \(S3 literal\).S1" */
+ _ = S3{}.S1 /* ERROR "ambiguous selector S3{}.S1" */
_ = S3{}.A
- _ = S3{}.B /* ERROR "ambiguous selector" \(S3 literal\).B */
+ _ = S3{}.B /* ERROR "ambiguous selector" S3{}.B */
_ = S3{}.D
_ = S3{}.E
_ = S4{}.A
_ = S4{}.B /* ERROR "no field or method" */
- _ = S5{}.X /* ERROR "ambiguous selector \(S5 literal\).X" */
+ _ = S5{}.X /* ERROR "ambiguous selector S5{}.X" */
_ = S5{}.Y
- _ = S10{}.X /* ERROR "ambiguous selector \(S10 literal\).X" */
+ _ = S10{}.X /* ERROR "ambiguous selector S10{}.X" */
_ = S10{}.Y
}
type R23 R21
type R24 R21
-var _ = R0{}.X /* ERROR "ambiguous selector \(R0 literal\).X" */
\ No newline at end of file
+var _ = R0{}.X /* ERROR "ambiguous selector R0{}.X" */
\ No newline at end of file
}
var (
- _ = eD{}.xf /* ERROR ambiguous selector \(eD literal\).xf */
- _ = eD{}.xm /* ERROR ambiguous selector \(eD literal\).xm */
+ _ = eD{}.xf /* ERROR ambiguous selector eD{}.xf */
+ _ = eD{}.xm /* ERROR ambiguous selector eD{}.xm */
)
var (
)
var x I1
- x = T1 /* ERROR cannot use \(T1 literal\) .* as I1 value in assignment: T1 does not implement I1 \(method foo has pointer receiver\) */ {}
+ x = T1 /* ERROR cannot use T1{} .* as I1 value in assignment: T1 does not implement I1 \(method foo has pointer receiver\) */ {}
_ = x /* ERROR impossible type assertion: x\.\(T1\)\n\tT1 does not implement I1 \(method foo has pointer receiver\) */ .(T1)
T1{}.foo /* ERROR cannot call pointer method foo on T1 */ ()
}
func G[F any]() I[any] {
- return g /* ERROR cannot use \(g\[F\] literal\) .* as I\[any\] value in return statement: g\[F\] does not implement I\[any\] \(method Q has pointer receiver\) */ [F]{}
+ return g /* ERROR cannot use g\[F\]{} .* as I\[any\] value in return statement: g\[F\] does not implement I\[any\] \(method Q has pointer receiver\) */ [F]{}
}
type g[F any] struct{}