// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: should run

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

import "os"

type S struct { i int }
func (p *S) Get() int { return p.i }

type Empty interface {
}

type Getter interface {
	Get() int;
}

func f1(p Empty) {
	switch x := p.(type) {
	default: println("failed to match interface"); os.Exit(1);
	case Getter: break;
	}

}

func main() {
	var s S;
	f1(&s);
}
