mirror of
				https://github.com/golang/go.git
				synced 2025-10-31 16:50:58 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			907 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			907 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // $G $F.go && $L $F.$A && ./$A.out
 | |
| 
 | |
| // 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.
 | |
| 
 | |
| // Correct short declarations and redeclarations.
 | |
| 
 | |
| package main
 | |
| 
 | |
| func f1() int { return 1 }
 | |
| func f2() (float, int) { return 1, 2 }
 | |
| func f3() (float, int, string) { return 1, 2, "3" }
 | |
| 
 | |
| func x() (s string) {
 | |
| 	a, b, s := f3();
 | |
| 	_, _ = a, b;
 | |
| 	return	// tests that result var is in scope for redeclaration
 | |
| }
 | |
| 
 | |
| func main() {
 | |
| 	i, f, s := f3();
 | |
| 	j, f := f2();	// redeclare f
 | |
| 	k := f1();
 | |
| 	m, g, s := f3();
 | |
| 	m, h, s := f3();
 | |
| 	{
 | |
| 		// new block should be ok.
 | |
| 		i, f, s := f3();
 | |
| 		j, f := f2();	// redeclare f
 | |
| 		k := f1();
 | |
| 		m, g, s := f3();
 | |
| 		m, h, s := f3();
 | |
| 		_, _, _, _, _, _, _, _, _ = i, f, s, j, k, m, g, s, h;
 | |
| 	}
 | |
| 	if x() != "3" {
 | |
| 		println("x() failed");
 | |
| 	}
 | |
| 	_, _, _, _, _, _, _, _, _ = i, f, s, j, k, m, g, s, h;
 | |
| }
 | 
