38 lines
		
	
	
		
			498 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			498 B
		
	
	
	
		
			Go
		
	
	
	
//+build ignore
 | 
						|
 | 
						|
package main
 | 
						|
 | 
						|
// Test of dynamic function calls.
 | 
						|
// No interfaces, so no runtime/reflect types.
 | 
						|
 | 
						|
func A1() {
 | 
						|
	A2(0)
 | 
						|
}
 | 
						|
 | 
						|
func A2(int) {} // not address-taken
 | 
						|
 | 
						|
func B() {} // unreachable
 | 
						|
 | 
						|
var (
 | 
						|
	C = func(int) {}
 | 
						|
	D = func(int) {}
 | 
						|
)
 | 
						|
 | 
						|
func main() {
 | 
						|
	A1()
 | 
						|
 | 
						|
	pfn := C
 | 
						|
	pfn(0) // calls C and D but not A2 (same sig but not address-taken)
 | 
						|
}
 | 
						|
 | 
						|
// WANT:
 | 
						|
// Dynamic calls
 | 
						|
//   main --> init$1
 | 
						|
//   main --> init$2
 | 
						|
// Reachable functions
 | 
						|
//   A1
 | 
						|
//   A2
 | 
						|
//   init$1
 | 
						|
//   init$2
 | 
						|
// Reflect types
 |