// errchk $G $D/$F.go

// 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.

package main

type T struct { a int }
var t *T

type I interface { M() }
var i I

type I2 interface { M(); N(); }
var i2 I2;

var e interface { };

func main() {
	e = t;	// ok
	t = e;	// ERROR "need explicit"

	// neither of these can work,
	// because i has an extra method
	// that t does not, so i cannot contain a t.
	i = t;	// ERROR "missing|incompatible|is not"
	t = i;	// ERROR "missing|incompatible|is not"

	i = i2;	// ok
	i2 = i;	// ERROR "need explicit"
}
