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

     1  // RUN: llgo -o %t %s
     2  // RUN: %t 2>&1 | FileCheck %s
     3  
     4  // CHECK: 666
     5  // CHECK-NEXT: 3
     6  
     7  package main
     8  
     9  type Blah interface{}
    10  type Numbered interface {
    11  	Blah
    12  	Number() int
    13  }
    14  
    15  type Beast struct{}
    16  
    17  func (b *Beast) Number() int {
    18  	return 666
    19  }
    20  
    21  type MagicNumber int
    22  
    23  func (m MagicNumber) Number() int {
    24  	return int(m)
    25  }
    26  
    27  func main() {
    28  	var b Beast
    29  	var m MagicNumber = 3
    30  	var n Numbered = &b
    31  	println(n.Number())
    32  
    33  	n = m
    34  	println(n.Number())
    35  }