github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/compile/syntax/testdata/fallthrough.go (about)

     1  // Copyright 2022 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package fallthroughs
     6  
     7  func _() {
     8  	var x int
     9  	switch x {
    10  	case 0:
    11  		fallthrough
    12  
    13  	case 1:
    14  		fallthrough // ERROR fallthrough statement out of place
    15  		{
    16  		}
    17  
    18  	case 2:
    19  		{
    20  			fallthrough // ERROR fallthrough statement out of place
    21  		}
    22  
    23  	case 3:
    24  		for {
    25  			fallthrough // ERROR fallthrough statement out of place
    26  		}
    27  
    28  	case 4:
    29  		fallthrough // trailing empty statements are ok
    30  		;
    31  		;
    32  
    33  	case 5:
    34  		fallthrough
    35  
    36  	default:
    37  		fallthrough // ERROR cannot fallthrough final case in switch
    38  	}
    39  
    40  	fallthrough // ERROR fallthrough statement out of place
    41  
    42  	if true {
    43  		fallthrough // ERROR fallthrough statement out of place
    44  	}
    45  
    46  	for {
    47  		fallthrough // ERROR fallthrough statement out of place
    48  	}
    49  
    50  	var t any
    51  	switch t.(type) {
    52  	case int:
    53  		fallthrough // ERROR cannot fallthrough in type switch
    54  	}
    55  }