Initial commit: Go 1.23 release state
This commit is contained in:
33
test/interface/private.dir/prog.go
Normal file
33
test/interface/private.dir/prog.go
Normal file
@@ -0,0 +1,33 @@
|
||||
// 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"
|
||||
}
|
||||
Reference in New Issue
Block a user