| 
									
										
										
										
											2008-08-05 16:09:49 -07:00
										 |  |  | // errchk $G $D/$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. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | package P | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var x int | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func foo() { | 
					
						
							| 
									
										
										
										
											2008-08-11 22:07:49 -07:00
										 |  |  | 	print(P.x);  // P should be defined between the outermost "universe" scope and the global scope | 
					
						
							| 
									
										
										
										
											2008-08-05 16:09:49 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | uetli:~/Source/go1/test/bugs gri$ 6g bug085.go  | 
					
						
							|  |  |  | bug085.go:6: P: undefined | 
					
						
							|  |  |  | Bus error | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* expected scope hierarchy (outermost to innermost) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | universe scope (contains predeclared identifiers int, float, int32, len, etc.) | 
					
						
							|  |  |  | "solar" scope (just holds the package name P so it can be found but doesn't conflict) | 
					
						
							|  |  |  | global scope (the package global scope) | 
					
						
							|  |  |  | local scopes (function scopes) | 
					
						
							|  |  |  | */ |