mirror of
https://github.com/golang/go
synced 2024-11-23 12:50:12 -07:00
64 lines
923 B
Go
64 lines
923 B
Go
|
// 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:
|
||
|
}
|
||
|
|
||
|
switch {
|
||
|
case z:
|
||
|
labelname:
|
||
|
}
|
||
|
|
||
|
switch {
|
||
|
case z:
|
||
|
labelname: ;
|
||
|
case false:
|
||
|
}
|
||
|
}
|