|  | // 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. | 
|  |  | 
|  | // Test that embedded interface types can have local methods. | 
|  |  | 
|  | package main | 
|  |  | 
|  | import "./embed0" | 
|  |  | 
|  | type T int | 
|  | func (t T) m() {} | 
|  |  | 
|  | type I interface { m() } | 
|  | type J interface { I } | 
|  |  | 
|  | type PI interface { p.I } | 
|  | type PJ interface { p.J } | 
|  |  | 
|  | func main() { | 
|  | 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 | 
|  | } |