2015-11-19 23:43:05 +00:00
|
|
|
// errorcheck
|
|
|
|
|
|
|
|
// Copyright 2015 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.
|
|
|
|
|
2015-11-21 00:49:30 +00:00
|
|
|
// Verify that erroneous switch statements are detected by the compiler.
|
|
|
|
// Does not compile.
|
2015-11-19 23:43:05 +00:00
|
|
|
|
|
|
|
package main
|
|
|
|
|
2015-11-21 00:49:30 +00:00
|
|
|
func f() {
|
2015-11-19 23:43:05 +00:00
|
|
|
switch {
|
2016-06-07 00:59:05 +00:00
|
|
|
case 0; // ERROR "expecting := or = or : or comma|expecting :"
|
2015-11-19 23:43:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
switch {
|
2016-06-07 00:59:05 +00:00
|
|
|
case 0; // ERROR "expecting := or = or : or comma|expecting :"
|
2015-11-19 23:43:05 +00:00
|
|
|
default:
|
|
|
|
}
|
|
|
|
|
2015-11-21 00:49:30 +00:00
|
|
|
switch {
|
|
|
|
case 0: case 0: default:
|
|
|
|
}
|
|
|
|
|
|
|
|
switch {
|
|
|
|
case 0: f(); case 0:
|
|
|
|
case 0: f() case 0: // ERROR "unexpected case at end of statement"
|
|
|
|
}
|
|
|
|
|
|
|
|
switch {
|
|
|
|
case 0: f(); default:
|
|
|
|
case 0: f() default: // ERROR "unexpected default at end of statement"
|
|
|
|
}
|
|
|
|
|
2015-11-19 23:43:05 +00:00
|
|
|
switch {
|
|
|
|
if x: // ERROR "expecting case or default or }"
|
|
|
|
}
|
|
|
|
}
|