modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/switch2.go (about)

     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  
     7  // Verify that erroneous switch statements are detected by the compiler.
     8  // Does not compile.
     9  
    10  package main
    11  
    12  func f() {
    13  	switch {
    14  	case 0; // ERROR "expecting := or = or : or comma|expecting :"
    15  	}
    16  
    17  	switch {
    18  	case 0; // ERROR "expecting := or = or : or comma|expecting :"
    19  	default:
    20  	}
    21  
    22  	switch {
    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 {
    37  	if x: // ERROR "expecting case or default or }"
    38  	}
    39  }