mirror of
https://github.com/golang/go
synced 2024-11-22 01:54:42 -07:00
test: add test for interfaces with unexported methods.
R=rsc CC=golang-dev https://golang.org/cl/4271086
This commit is contained in:
parent
3dbf65871c
commit
57c6d36f95
32
test/interface/private.go
Normal file
32
test/interface/private.go
Normal file
@ -0,0 +1,32 @@
|
||||
// $G $D/${F}1.go && errchk $G $D/$F.go
|
||||
|
||||
// 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.
|
||||
|
||||
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"
|
||||
}
|
18
test/interface/private1.go
Normal file
18
test/interface/private1.go
Normal file
@ -0,0 +1,18 @@
|
||||
// true # used by private.go
|
||||
|
||||
// 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.
|
||||
|
||||
package p
|
||||
|
||||
type Exported interface {
|
||||
private()
|
||||
}
|
||||
|
||||
type Implementation struct{}
|
||||
|
||||
func (p *Implementation) private() {}
|
||||
|
||||
var X = new(Implementation)
|
||||
|
Loading…
Reference in New Issue
Block a user