[go: up one dir, main page]

blob: 113d81be854fc6436632bc71181882dd37b8cdf9 [file] [log] [blame]
Robert Griesemer7218b792015-11-19 15:43:05 -08001// errorcheck
2
3// Copyright 2015 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
Robert Griesemeraad18b82015-11-20 16:49:30 -08007// Verify that erroneous switch statements are detected by the compiler.
8// Does not compile.
Robert Griesemer7218b792015-11-19 15:43:05 -08009
10package main
11
Robert Griesemeraad18b82015-11-20 16:49:30 -080012func f() {
Robert Griesemer7218b792015-11-19 15:43:05 -080013 switch {
Robert Griesemeraa5ff292022-08-25 16:41:35 -070014 case 0; // ERROR "expecting := or = or : or comma|expected :"
Robert Griesemer7218b792015-11-19 15:43:05 -080015 }
16
17 switch {
Robert Griesemeraa5ff292022-08-25 16:41:35 -070018 case 0; // ERROR "expecting := or = or : or comma|expected :"
Robert Griesemer7218b792015-11-19 15:43:05 -080019 default:
20 }
21
22 switch {
Robert Griesemeraad18b82015-11-20 16:49:30 -080023 case 0: case 0: default:
24 }
25
26 switch {
27 case 0: f(); case 0:
Robert Griesemer2eac1542024-10-31 11:19:28 -070028 case 0: f() case 0: // ERROR "unexpected keyword case at end of statement"
Robert Griesemeraad18b82015-11-20 16:49:30 -080029 }
30
31 switch {
32 case 0: f(); default:
Robert Griesemer2eac1542024-10-31 11:19:28 -070033 case 0: f() default: // ERROR "unexpected keyword default at end of statement"
Robert Griesemeraad18b82015-11-20 16:49:30 -080034 }
35
36 switch {
Robert Griesemeraa5ff292022-08-25 16:41:35 -070037 if x: // ERROR "expected case or default or }"
Robert Griesemer7218b792015-11-19 15:43:05 -080038 }
39}