mirror of
https://github.com/golang/go
synced 2024-11-24 14:30:17 -07:00
7ce2402bae
Fixes #14006. Change-Id: Ia819073677ad6993c02255e23760ee21598427b4 Reviewed-on: https://go-review.googlesource.com/18736 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
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:
|
|
}
|
|
} |