github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/test/execution/methods/nilrecv.go (about)

     1  // RUN: llgo -o %t %s
     2  // RUN: %t 2>&1 | FileCheck %s
     3  
     4  // CHECK: true
     5  // CHECK-NEXT: false
     6  // CHECK-NEXT: true
     7  // CHECK-NEXT: false
     8  
     9  package main
    10  
    11  type T1 int
    12  
    13  func (t *T1) t1() { println(t == nil) }
    14  
    15  func constNilRecv() {
    16  	(*T1)(nil).t1()
    17  }
    18  
    19  func nonConstNilRecv() {
    20  	var v1 T1
    21  	v1.t1()
    22  	var v2 *T1
    23  	v2.t1()
    24  	v2 = &v1
    25  	v2.t1()
    26  }
    27  
    28  func main() {
    29  	constNilRecv()
    30  	nonConstNilRecv()
    31  }