1
0
mirror of https://github.com/golang/go synced 2024-07-01 07:56:09 +00:00

[dev.typeparams] test: rename blank functions

This CL renames blank functions in the test/ directory so that they
don't rely on the compiler doing anything more than typechecking them.

In particular, I ran this search to find files that used blank
functions and methods:

$ git grep -l '^func.*\b_(' | xargs grep -n '^' | grep '\.go:1:' | grep -v '// errorcheck$'

I then skipped updating a few files:

* blank.go
* fixedbugs/issue11699.go
* fixedbugs/issue29870.go

  These tests specifically check that blank functions/methods work.

* interface/fail.go

  Not sure the motivation for the blank method here, but it's empty
  anyway.

* typeparam/tparam1.go

  Type-checking test, but uses "-G" (to use types2 instead of typecheck).

Updates #47446.

Change-Id: I9ec1714f499808768bd0dcd7ae6016fb2b078e5e
Reviewed-on: https://go-review.googlesource.com/c/go/+/338094
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
This commit is contained in:
Matthew Dempsky 2021-07-28 12:59:14 -07:00
parent 5355753009
commit adedf54288
11 changed files with 28 additions and 28 deletions

View File

@ -173,13 +173,13 @@ type U int
func (*U) M() {}
func (_ *U) N() {}
func _() {
func fbad24305a() {
var u U
u.M()
u.N()
}
func fbad24305() {
func fbad24305b() {
var u U
(*U).M(&u)
(*U).N(&u)

View File

@ -10,7 +10,7 @@ package escape
var x bool
func _() {
func f1() {
var p *int
loop:
if x {
@ -22,7 +22,7 @@ loop:
_ = p
}
func _() {
func f2() {
var p *int
if x {
loop:
@ -33,7 +33,7 @@ func _() {
_ = p
}
func _() {
func f3() {
var p *int
if x {
loop:

View File

@ -10,7 +10,7 @@ type T []int
var a []bool
func _() {
func f1() {
if a[T{42}[0]] {
}
// if (a[T{42}[0]]) {} // this compiles

View File

@ -13,12 +13,12 @@ import . "bytes"
var _ Reader // use "bytes" import
func _() {
func f1() {
Buffer := 0
_ = Buffer
}
func _() {
func f2() {
for Buffer := range []int{} {
_ = Buffer
}

View File

@ -8,19 +8,19 @@ package p
var sink interface{}
func _() {
func f1() {
var t T
f := t.noescape // ERROR "t.noescape does not escape"
f()
}
func _() {
func f2() {
var t T // ERROR "moved to heap"
f := t.escape // ERROR "t.escape does not escape"
f()
}
func _() {
func f3() {
var t T // ERROR "moved to heap"
f := t.returns // ERROR "t.returns does not escape"
sink = f()

View File

@ -22,7 +22,7 @@ func (r *impl) Foo() Barer {
func (r *impl) Bar() {}
func _() {
func f1() {
var r Fooer = &impl{}
r.Foo().Bar()
}

View File

@ -9,7 +9,7 @@
package p
func _() {
func f1() {
goto L1
const x = 0
L1:
@ -18,7 +18,7 @@ L1:
L2:
}
func _() {
func f2() {
{
goto L1
}
@ -31,7 +31,7 @@ L1:
L2:
}
func _(d int) {
func f3(d int) {
if d > 0 {
goto L1
} else {

View File

@ -10,17 +10,17 @@
package p
func _() {
func f1() {
type C chan int
_ = [1][]C{[]C{make(chan int)}}
}
func _() {
func f2() {
type C interface{}
_ = [1][]C{[]C{recover()}}
}
func _() {
func f3() {
type C *int
_ = [1][]C{[]C{new(int)}}
}

View File

@ -49,7 +49,7 @@ func j(x int) int { // ERROR "can inline j"
}
}
func _() int { // ERROR "can inline _"
func f2() int { // ERROR "can inline f2"
tmp1 := h
tmp2 := tmp1
return tmp2(0) // ERROR "inlining call to h"
@ -167,7 +167,7 @@ func (T) meth(int, int) {} // ERROR "can inline T.meth"
func k() (T, int, int) { return T{}, 0, 0 } // ERROR "can inline k"
func _() { // ERROR "can inline _"
func f3() { // ERROR "can inline f3"
T.meth(k()) // ERROR "inlining call to k" "inlining call to T.meth"
// ERRORAUTO "inlining call to T.meth"
}

View File

@ -11,7 +11,7 @@ func f[T any]() (f, g T) { return f, g }
// Tests for generic function instantiation on the right hande side of multi-value
// assignments.
func _() {
func g() {
// Multi-value assignment within a function
var _, _ = f[int]()
}

View File

@ -69,14 +69,14 @@ func _[V any, T interface{ type map[string]V }](p T) V {
// Cannot embed stand-alone type parameters. Disabled for now.
/*
func f0[A any, B interface{type C}, C interface{type D}, D interface{type A}](A, B, C, D)
func _() {
func f0x() {
f := f0[string]
f("a", "b", "c", "d")
f0("a", "b", "c", "d")
}
func f1[A any, B interface{type A}](A, B)
func _() {
func f1x() {
f := f1[int]
f(int(0), int(0))
f1(int(0), int(0))
@ -86,7 +86,7 @@ func _() {
*/
func f2[A any, B interface{ type []A }](_ A, _ B)
func _() {
func f2x() {
f := f2[byte]
f(byte(0), []byte{})
f2(byte(0), []byte{})
@ -97,7 +97,7 @@ func _() {
// Cannot embed stand-alone type parameters. Disabled for now.
/*
func f3[A any, B interface{type C}, C interface{type *A}](a A, _ B, c C)
func _() {
func f3x() {
f := f3[int]
var x int
f(x, &x, &x)
@ -106,7 +106,7 @@ func _() {
*/
func f4[A any, B interface{ type []C }, C interface{ type *A }](_ A, _ B, c C)
func _() {
func f4x() {
f := f4[int]
var x int
f(x, []*int{}, &x)
@ -119,14 +119,14 @@ func f5[A interface {
c C
}
}, B any, C interface{ type *B }](x B) A
func _() {
func f5x() {
x := f5(1.2)
var _ float64 = x.b
var _ float64 = *x.c
}
func f6[A any, B interface{ type struct{ f []A } }](B) A
func _() {
func f6x() {
x := f6(struct{ f []string }{})
var _ string = x
}