// $G $D/$F.go && $L $F.$A && (! ./$A.out || echo BUG: should not succeed)

// 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 I interface { };
func foo1(i int) int { return i }
func foo2(i int32) int32 { return i }
func main() {
	var i I;
	i = 1;
	var v1 = i.(int);
	if foo1(v1) != 1 { panicln(1) }
	var v2 = int32(i.(int));
	if foo2(v2) != 1 { panicln(2) }
	var v3 = i.(int32); // This type conversion should fail at runtime.
	if foo2(v3) != 1 { panicln(3) }
}
