Robert Griesemer | 7218b79 | 2015-11-19 15:43:05 -0800 | [diff] [blame] | 1 | // 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 Griesemer | aad18b8 | 2015-11-20 16:49:30 -0800 | [diff] [blame] | 7 | // Verify that erroneous switch statements are detected by the compiler. |
| 8 | // Does not compile. |
Robert Griesemer | 7218b79 | 2015-11-19 15:43:05 -0800 | [diff] [blame] | 9 | |
| 10 | package main |
| 11 | |
Robert Griesemer | aad18b8 | 2015-11-20 16:49:30 -0800 | [diff] [blame] | 12 | func f() { |
Robert Griesemer | 7218b79 | 2015-11-19 15:43:05 -0800 | [diff] [blame] | 13 | switch { |
Matthew Dempsky | 70544c9 | 2016-06-06 17:59:05 -0700 | [diff] [blame] | 14 | case 0; // ERROR "expecting := or = or : or comma|expecting :" |
Robert Griesemer | 7218b79 | 2015-11-19 15:43:05 -0800 | [diff] [blame] | 15 | } |
| 16 | |
| 17 | switch { |
Matthew Dempsky | 70544c9 | 2016-06-06 17:59:05 -0700 | [diff] [blame] | 18 | case 0; // ERROR "expecting := or = or : or comma|expecting :" |
Robert Griesemer | 7218b79 | 2015-11-19 15:43:05 -0800 | [diff] [blame] | 19 | default: |
| 20 | } |
| 21 | |
| 22 | switch { |
Robert Griesemer | aad18b8 | 2015-11-20 16:49:30 -0800 | [diff] [blame] | 23 | case 0: case 0: default: |
| 24 | } |
| 25 | |
| 26 | switch { |
| 27 | case 0: f(); case 0: |
| 28 | case 0: f() case 0: // ERROR "unexpected case at end of statement" |
| 29 | } |
| 30 | |
| 31 | switch { |
| 32 | case 0: f(); default: |
| 33 | case 0: f() default: // ERROR "unexpected default at end of statement" |
| 34 | } |
| 35 | |
| 36 | switch { |
Robert Griesemer | 7218b79 | 2015-11-19 15:43:05 -0800 | [diff] [blame] | 37 | if x: // ERROR "expecting case or default or }" |
| 38 | } |
| 39 | } |