You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.0 KiB
67 lines
1.0 KiB
// errorcheck
|
|
|
|
// Copyright 2016 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.
|
|
|
|
// Literals that happen to resolve to named constants
|
|
// may be used as label names (see issue 13684). Make
|
|
// sure that other literals don't crash the compiler.
|
|
|
|
package main
|
|
|
|
const labelname = 1
|
|
|
|
func main() {
|
|
goto labelname
|
|
labelname:
|
|
}
|
|
|
|
func f() {
|
|
var x int
|
|
switch x {
|
|
case 1:
|
|
2: // ERROR "unexpected :"
|
|
case 2:
|
|
}
|
|
|
|
switch x {
|
|
case 1:
|
|
2: ; // ERROR "unexpected :"
|
|
case 2:
|
|
}
|
|
|
|
var y string
|
|
switch y {
|
|
case "foo":
|
|
"bar": // ERROR "unexpected :"
|
|
case "bar":
|
|
}
|
|
|
|
switch y {
|
|
case "foo":
|
|
"bar": ; // ERROR "unexpected :"
|
|
case "bar":
|
|
}
|
|
|
|
var z bool
|
|
switch {
|
|
case z:
|
|
labelname: // ERROR "missing statement after label"
|
|
case false:
|
|
}
|
|
}
|
|
|
|
func g() {
|
|
var z bool
|
|
switch {
|
|
case z:
|
|
labelname: // ERROR "label labelname defined and not used"
|
|
}
|
|
|
|
switch {
|
|
case z:
|
|
labelname: ; // ERROR "label labelname already defined at LINE-5"
|
|
case false:
|
|
}
|
|
} |