Source file test/fixedbugs/issue43292.go

     1  // run
     2  
     3  // Copyright 2020 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  func main() {
    10  	{
    11  		i := I(A{})
    12  
    13  		b := make(chan I, 1)
    14  		b <- B{}
    15  
    16  		var ok bool
    17  		i, ok = <-b
    18  		_ = ok
    19  
    20  		i.M()
    21  	}
    22  
    23  	{
    24  		i := I(A{})
    25  
    26  		b := make(chan I, 1)
    27  		b <- B{}
    28  
    29  		select {
    30  		case i = <-b:
    31  		}
    32  
    33  		i.M()
    34  	}
    35  
    36  	{
    37  		i := I(A{})
    38  
    39  		b := make(chan I, 1)
    40  		b <- B{}
    41  
    42  		var ok bool
    43  		select {
    44  		case i, ok = <-b:
    45  		}
    46  		_ = ok
    47  
    48  		i.M()
    49  	}
    50  }
    51  
    52  type I interface{ M() int }
    53  
    54  type T int
    55  
    56  func (T) M() int { return 0 }
    57  
    58  type A struct{ T }
    59  type B struct{ T }
    60  

View as plain text