github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/test/execution/interfaces/i2i_conversion.go (about) 1 // RUN: llgo -o %t %s 2 // RUN: %t 2>&1 | FileCheck %s 3 4 // CHECK: 666 5 // CHECK-NEXT: The Beast 6 7 package main 8 9 type Numbered interface { 10 Number() int 11 } 12 13 type Named interface { 14 Name() string 15 } 16 17 type Beast struct{} 18 19 func (b *Beast) Number() int { 20 return 666 21 } 22 23 func (b *Beast) Name() string { 24 return "The Beast" 25 } 26 27 func main() { 28 var b Beast 29 var numbered Numbered = &b 30 var named Named = numbered.(Named) 31 println(numbered.Number()) 32 println(named.Name()) 33 }