|  | // Copyright 2011 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. | 
|  |  | 
|  | // Test that unexported methods are not visible outside the package. | 
|  | // Does not compile. | 
|  |  | 
|  | package main | 
|  |  | 
|  | import "./private1" | 
|  |  | 
|  | type Exported interface { | 
|  | private() | 
|  | } | 
|  |  | 
|  | type Implementation struct{} | 
|  |  | 
|  | func (p *Implementation) private() {} | 
|  |  | 
|  | func main() { | 
|  | var x Exported | 
|  | x = new(Implementation) | 
|  | x.private() | 
|  |  | 
|  | var px p.Exported | 
|  | px = p.X | 
|  |  | 
|  | px.private()			// ERROR "private" | 
|  |  | 
|  | px = new(Implementation)	// ERROR "private" | 
|  |  | 
|  | x = px				// ERROR "private" | 
|  | } |