| 
									
										
										
										
											2008-12-30 15:03:46 -08:00
										 |  |  | // $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: should run | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Copyright 2009 The Go Authors. All rights reserved. | 
					
						
							|  |  |  | // Use of this source code is governed by a BSD-style | 
					
						
							|  |  |  | // license that can be found in the LICENSE file. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | package main | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 14:40:40 -08:00
										 |  |  | type I interface { send(chan <- int) } | 
					
						
							| 
									
										
										
										
											2008-12-30 15:03:46 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 14:40:40 -08:00
										 |  |  | type S struct { v int } | 
					
						
							| 
									
										
										
										
											2008-12-30 15:03:46 -08:00
										 |  |  | func (p *S) send(c chan <- int) { c <- p.v } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func main() { | 
					
						
							| 
									
										
										
										
											2009-03-03 08:39:12 -08:00
										 |  |  |   s := S{0}; | 
					
						
							| 
									
										
										
										
											2008-12-30 15:03:46 -08:00
										 |  |  |   var i I = &s; | 
					
						
							| 
									
										
										
										
											2009-01-06 15:19:02 -08:00
										 |  |  |   c := make(chan int); | 
					
						
							| 
									
										
										
										
											2008-12-30 15:03:46 -08:00
										 |  |  |   go i.send(c); | 
					
						
							| 
									
										
										
										
											2009-01-16 14:58:14 -08:00
										 |  |  |   sys.Exit(<-c); | 
					
						
							| 
									
										
										
										
											2008-12-30 15:03:46 -08:00
										 |  |  | } |