1
0
mirror of https://github.com/golang/go synced 2024-11-21 18:44:45 -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:
Ian Lance Taylor 2011-03-29 15:04:19 -07:00
parent 3dbf65871c
commit 57c6d36f95
2 changed files with 50 additions and 0 deletions

32
test/interface/private.go Normal file
View 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"
}

View 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)