35 lines
		
	
	
		
			428 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			428 B
		
	
	
	
		
			Go
		
	
	
	
// RUN: llgo -o %t %s
 | 
						|
// RUN: %t 2>&1 | FileCheck %s
 | 
						|
 | 
						|
// CHECK: hello from T 1
 | 
						|
// CHECK-NEXT: hello from T 2
 | 
						|
 | 
						|
package main
 | 
						|
 | 
						|
type T struct {
 | 
						|
	val int
 | 
						|
}
 | 
						|
 | 
						|
func (t T) Hello(done chan bool) {
 | 
						|
	println("hello from T", t.val)
 | 
						|
	done <- true
 | 
						|
}
 | 
						|
 | 
						|
type I interface {
 | 
						|
	Hello(chan bool)
 | 
						|
}
 | 
						|
 | 
						|
func main() {
 | 
						|
	done := make(chan bool)
 | 
						|
 | 
						|
	t := T{1}
 | 
						|
	go t.Hello(done)
 | 
						|
	<-done
 | 
						|
 | 
						|
	var i I = T{2}
 | 
						|
	go i.Hello(done)
 | 
						|
	<-done
 | 
						|
 | 
						|
	go println("hello builtin")
 | 
						|
}
 |