| 
									
										
										
										
											2012-02-16 23:48:57 -05:00
										 |  |  | // run | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | // 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-19 14:28:53 +11:00
										 |  |  | // Test correct short declarations and redeclarations. | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | package main | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | func f1() int                    { return 1 } | 
					
						
							|  |  |  | func f2() (float32, int)         { return 1, 2 } | 
					
						
							|  |  |  | func f3() (float32, int, string) { return 1, 2, "3" } | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-19 21:12:13 -07:00
										 |  |  | func x() (s string) { | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 	a, b, s := f3() | 
					
						
							|  |  |  | 	_, _ = a, b | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 	return // tests that result var is in scope for redeclaration | 
					
						
							| 
									
										
										
										
											2009-04-19 21:12:13 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | func main() { | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 	i, f, s := f3() | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 	j, f := f2() // redeclare f | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 	k := f1() | 
					
						
							|  |  |  | 	m, g, s := f3() | 
					
						
							|  |  |  | 	m, h, s := f3() | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 	{ | 
					
						
							|  |  |  | 		// new block should be ok. | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		i, f, s := f3() | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 		j, f := f2() // redeclare f | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		k := f1() | 
					
						
							|  |  |  | 		m, g, s := f3() | 
					
						
							|  |  |  | 		m, h, s := f3() | 
					
						
							|  |  |  | 		_, _, _, _, _, _, _, _, _ = i, f, s, j, k, m, g, s, h | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-02-12 13:17:49 -05:00
										 |  |  | 	if y := x(); y != "3" { | 
					
						
							|  |  |  | 		println("x() failed", y) | 
					
						
							|  |  |  | 		panic("fail") | 
					
						
							| 
									
										
										
										
											2009-04-19 21:12:13 -07:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 	_, _, _, _, _, _, _, _, _ = i, f, s, j, k, m, g, s, h | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | } |