2009-10-25 12:59:58 -06:00
|
|
|
// $G $D/embed0.go && $G $D/$F.go && $L $F.$A && ./$A.out
|
2009-10-19 20:27:40 -06:00
|
|
|
|
2012-09-23 11:16:14 -06:00
|
|
|
// NOTE: This test is not run by 'run.go' and so not run by all.bash.
|
|
|
|
// To run this test you must use the ./run shell script.
|
|
|
|
|
2009-10-19 20:27:40 -06:00
|
|
|
// Copyright 2009 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.
|
|
|
|
|
2012-02-18 23:33:41 -07:00
|
|
|
// Test that embedded interface types can have local methods.
|
2009-10-19 20:27:40 -06:00
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import "./embed0"
|
|
|
|
|
|
|
|
type T int
|
|
|
|
func (t T) m() {}
|
|
|
|
|
|
|
|
type I interface { m() }
|
2010-09-03 18:36:13 -06:00
|
|
|
type J interface { I }
|
2009-10-19 20:27:40 -06:00
|
|
|
|
2010-09-03 18:36:13 -06:00
|
|
|
type PI interface { p.I }
|
|
|
|
type PJ interface { p.J }
|
2009-10-19 20:27:40 -06:00
|
|
|
|
|
|
|
func main() {
|
2010-09-03 18:36:13 -06:00
|
|
|
var i I
|
|
|
|
var j J
|
|
|
|
var t T
|
|
|
|
i = t
|
|
|
|
j = t
|
|
|
|
_ = i
|
|
|
|
_ = j
|
|
|
|
i = j
|
|
|
|
_ = i
|
|
|
|
j = i
|
|
|
|
_ = j
|
|
|
|
var pi PI
|
|
|
|
var pj PJ
|
|
|
|
var pt p.T
|
|
|
|
pi = pt
|
|
|
|
pj = pt
|
|
|
|
_ = pi
|
|
|
|
_ = pj
|
|
|
|
pi = pj
|
|
|
|
_ = pi
|
|
|
|
pj = pi
|
|
|
|
_ = pj
|
2009-10-19 20:27:40 -06:00
|
|
|
}
|