Source file test/interface/private.dir/prog.go

     1  // Copyright 2011 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Test that unexported methods are not visible outside the package.
     6  // Does not compile.
     7  
     8  package main
     9  
    10  import "./private1"
    11  
    12  type Exported interface {
    13  	private()
    14  }
    15  
    16  type Implementation struct{}
    17  
    18  func (p *Implementation) private() {}
    19  
    20  func main() {
    21  	var x Exported
    22  	x = new(Implementation)
    23  	x.private()
    24  
    25  	var px p.Exported
    26  	px = p.X
    27  
    28  	px.private()			// ERROR "private"
    29  
    30  	px = new(Implementation)	// ERROR "private"
    31  
    32  	x = px				// ERROR "private"
    33  }
    34  

View as plain text