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 5package main 6 7import "./lib" 8 9type I interface { 10 M() 11} 12 13type PI interface { 14 PM() 15} 16 17func main() { 18 var t lib.T 19 t.M() 20 t.PM() 21 22 // This is still an error. 23 // var i1 I = t 24 // i1.M() 25 26 // This combination is illegal because 27 // PM requires a pointer receiver. 28 // var pi1 PI = t 29 // pi1.PM() 30 31 var pt = &t 32 pt.M() 33 pt.PM() 34 35 var i2 I = pt 36 i2.M() 37 38 var pi2 PI = pt 39 pi2.PM() 40} 41