// 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() | |
} |