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

     1  // run
     2  
     3  // Copyright 2014 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  package main
     8  
     9  type T1 struct {
    10  	X int
    11  }
    12  
    13  func NewT1(x int) T1 { return T1{x} }
    14  
    15  type T2 int
    16  
    17  func NewT2(x int) T2 { return T2(x) }
    18  
    19  func main() {
    20  	switch (T1{}) {
    21  	case NewT1(1):
    22  		panic("bad1")
    23  	case NewT1(0):
    24  		// ok
    25  	default:
    26  		panic("bad2")
    27  	}
    28  
    29  	switch T2(0) {
    30  	case NewT2(2):
    31  		panic("bad3")
    32  	case NewT2(0):
    33  		// ok
    34  	default:
    35  		panic("bad4")
    36  	}
    37  }