| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | // errchk $G -e $F.go | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // 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. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Incorrect short declarations and redeclarations. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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
										 |  |  | 
 | 
					
						
							|  |  |  | func main() { | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		// simple redeclaration | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		i := f1() | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 		i := f1() // ERROR "redeclared|no new" | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		_ = i | 
					
						
							| 
									
										
										
										
											2009-04-20 15:23:21 -07:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 	{ | 
					
						
							|  |  |  | 		// change of type for f | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		i, f, s := f3() | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 		f, g, t := f3() // ERROR "redeclared|cannot assign|incompatible" | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		_, _, _, _, _ = i, f, s, g, t | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		// change of type for i | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		i, f, s := f3() | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 		j, i, t := f3() // ERROR "redeclared|cannot assign|incompatible" | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		_, _, _, _, _ = i, f, s, j, t | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		// no new variables | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		i, f, s := f3() | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 		i, f := f2() // ERROR "redeclared|no new" | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		_, _, _ = i, f, s | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		// single redeclaration | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		i, f, s := f3() | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 		i := f1() // ERROR "redeclared|no new|incompatible" | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		_, _, _ = i, f, s | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 	// double redeclaration | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		i, f, s := f3() | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 		i, f := f2() // ERROR "redeclared|no new" | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		_, _, _ = i, f, s | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		// triple redeclaration | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		i, f, s := f3() | 
					
						
							| 
									
										
										
										
											2011-01-19 23:09:00 -05:00
										 |  |  | 		i, f, s := f3() // ERROR "redeclared|no new" | 
					
						
							| 
									
										
										
										
											2010-09-04 10:36:13 +10:00
										 |  |  | 		_, _, _ = i, f, s | 
					
						
							| 
									
										
										
										
											2009-04-18 17:21:00 -07:00
										 |  |  | 	} | 
					
						
							|  |  |  | } |