mirror of
				https://github.com/golang/go.git
				synced 2025-11-04 02:30:57 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			745 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			745 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// $G $D/$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.
 | 
						|
 | 
						|
 | 
						|
package main
 | 
						|
 | 
						|
type	x2	struct { a,b,c int; d int; };
 | 
						|
var	g1	x2;
 | 
						|
var	g2	struct { a,b,c int; d x2; };
 | 
						|
 | 
						|
func
 | 
						|
main() {
 | 
						|
	var x int;
 | 
						|
	var s1 *x2;
 | 
						|
	var s2 *struct { a,b,c int; d x2; };
 | 
						|
 | 
						|
	s1 = &g1;
 | 
						|
	s2 = &g2;
 | 
						|
 | 
						|
	s1.a = 1;
 | 
						|
	s1.b = 2;
 | 
						|
	s1.c = 3;
 | 
						|
	s1.d = 5;
 | 
						|
 | 
						|
	s2.a = 7;
 | 
						|
	s2.b = 11;
 | 
						|
	s2.c = 13;
 | 
						|
	s2.d.a = 17;
 | 
						|
	s2.d.b = 19;
 | 
						|
	s2.d.c = 23;
 | 
						|
	s2.d.d = 20;
 | 
						|
 | 
						|
	if(s2.d.c != 23) { panic(1); }
 | 
						|
	if(g2.d.c != 23) { panic(2); }
 | 
						|
 | 
						|
	x =	s1.a +
 | 
						|
		s1.b +
 | 
						|
		s1.c +
 | 
						|
		s1.d +
 | 
						|
 | 
						|
		s2.a +
 | 
						|
		s2.b +
 | 
						|
		s2.c +
 | 
						|
		s2.d.a +
 | 
						|
		s2.d.b +
 | 
						|
		s2.d.c +
 | 
						|
		s2.d.d;
 | 
						|
 | 
						|
	if(x != 121) { panic(x); }
 | 
						|
}
 |