github.com/jd-ly/tools@v0.5.7/go/ssa/interp/testdata/static.go (about)

     1  package main
     2  
     3  // Static tests of SSA builder (via the sanity checker).
     4  // Dynamic semantics are not exercised.
     5  
     6  func init() {
     7  	// Regression test for issue 6806.
     8  	ch := make(chan int)
     9  	select {
    10  	case n, _ := <-ch:
    11  		_ = n
    12  	default:
    13  		// The default case disables the simplification of
    14  		// select to a simple receive statement.
    15  	}
    16  
    17  	// value,ok-form receive where TypeOf(ok) is a named boolean.
    18  	type mybool bool
    19  	var x int
    20  	var y mybool
    21  	select {
    22  	case x, y = <-ch:
    23  	default:
    24  		// The default case disables the simplification of
    25  		// select to a simple receive statement.
    26  	}
    27  	_ = x
    28  	_ = y
    29  }
    30  
    31  var a int
    32  
    33  // Regression test for issue 7840 (covered by SSA sanity checker).
    34  func bug7840() bool {
    35  	// This creates a single-predecessor block with a φ-node.
    36  	return false && a == 0 && a == 0
    37  }
    38  
    39  // A blocking select (sans "default:") cannot fall through.
    40  // Regression test for issue 7022.
    41  func bug7022() int {
    42  	var c1, c2 chan int
    43  	select {
    44  	case <-c1:
    45  		return 123
    46  	case <-c2:
    47  		return 456
    48  	}
    49  }
    50  
    51  // Parens should not prevent intrinsic treatment of built-ins.
    52  // (Regression test for a crash.)
    53  func init() {
    54  	_ = (new)(int)
    55  	_ = (make)([]int, 0)
    56  }
    57  
    58  func main() {}