forked from OSchip/llvm-project
34 lines
458 B
Go
34 lines
458 B
Go
// RUN: llgo -o %t %s
|
|
// RUN: %t 2>&1 | FileCheck %s
|
|
|
|
// CHECK: 666
|
|
// CHECK-NEXT: The Beast
|
|
|
|
package main
|
|
|
|
type Numbered interface {
|
|
Number() int
|
|
}
|
|
|
|
type Named interface {
|
|
Name() string
|
|
}
|
|
|
|
type Beast struct{}
|
|
|
|
func (b *Beast) Number() int {
|
|
return 666
|
|
}
|
|
|
|
func (b *Beast) Name() string {
|
|
return "The Beast"
|
|
}
|
|
|
|
func main() {
|
|
var b Beast
|
|
var numbered Numbered = &b
|
|
var named Named = numbered.(Named)
|
|
println(numbered.Number())
|
|
println(named.Name())
|
|
}
|