// 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 "./lib" type I interface { M() } type PI interface { PM() } func main() { var t lib.T t.M() t.PM() // This is still an error. // var i1 I = t // i1.M() // This combination is illegal because // PM requires a pointer receiver. // var pi1 PI = t // pi1.PM() var pt = &t pt.M() pt.PM() var i2 I = pt i2.M() var pi2 PI = pt pi2.PM() }