github.com/amarpal/go-tools@v0.0.0-20240422043104-40142f59f616/stylecheck/st1015/testdata/src/example.com/CheckDefaultCaseOrder/CheckDefaultCaseOrder.go (about)

     1  // Package pkg ...
     2  package pkg
     3  
     4  func fn(x int) {
     5  	switch x {
     6  	}
     7  	switch x {
     8  	case 1:
     9  	}
    10  
    11  	switch x {
    12  	case 1:
    13  	case 2:
    14  	case 3:
    15  	}
    16  
    17  	switch x {
    18  	default:
    19  	}
    20  
    21  	switch x {
    22  	default:
    23  	case 1:
    24  	}
    25  
    26  	switch x {
    27  	case 1:
    28  	default:
    29  	}
    30  
    31  	switch x {
    32  	case 1:
    33  	default: //@ diag(`default case should be first or last in switch statement`)
    34  	case 2:
    35  	}
    36  
    37  	// Don't flag either of these two; fallthrough is sensitive to the order of cases
    38  	switch x {
    39  	case 1:
    40  		fallthrough
    41  	default:
    42  	case 2:
    43  	}
    44  	switch x {
    45  	case 1:
    46  	default:
    47  		fallthrough
    48  	case 2:
    49  	}
    50  
    51  	// Do flag these branches; don't get confused by the nested switch statements
    52  	switch x {
    53  	case 1:
    54  		func() {
    55  			switch x {
    56  			case 1:
    57  				fallthrough
    58  			case 2:
    59  			}
    60  		}()
    61  	default: //@ diag(`default case should be first or last in switch statement`)
    62  	case 3:
    63  	}
    64  
    65  	switch x {
    66  	case 1:
    67  		switch x {
    68  		case 1:
    69  			fallthrough
    70  		case 2:
    71  		}
    72  	default: //@ diag(`default case should be first or last in switch statement`)
    73  	case 3:
    74  	}
    75  
    76  	// Fallthrough may be followed by empty statements
    77  	switch x {
    78  	case 1:
    79  		fallthrough
    80  		;
    81  	default:
    82  	case 3:
    83  	}
    84  }