go/test/fixedbugs/issue8042.go
Matthew Dempsky adedf54288 [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>
2021-07-28 21:41:07 +00:00

66 lines
691 B
Go

// compile
// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Verify that gotos across non-variable declarations
// are accepted.
package p
func f1() {
goto L1
const x = 0
L1:
goto L2
type T int
L2:
}
func f2() {
{
goto L1
}
const x = 0
L1:
{
goto L2
}
type T int
L2:
}
func f3(d int) {
if d > 0 {
goto L1
} else {
goto L2
}
const x = 0
L1:
switch d {
case 1:
goto L3
case 2:
default:
goto L4
}
type T1 int
L2:
const y = 1
L3:
for d > 0 {
if d < 10 {
goto L4
}
}
type T2 int
L4:
select {
default:
goto L5
}
type T3 int
L5:
}