2008-10-17 18:51:29 -06:00
|
|
|
// $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.
|
|
|
|
|
2009-05-12 17:09:47 -06:00
|
|
|
// Check methods with different return types.
|
|
|
|
|
2008-10-17 18:51:29 -06:00
|
|
|
package main
|
|
|
|
|
2009-01-20 15:40:40 -07:00
|
|
|
type S struct { a int }
|
|
|
|
type T struct { b string }
|
2008-10-17 18:51:29 -06:00
|
|
|
|
|
|
|
func (s *S) Name() int8 { return 1 }
|
|
|
|
func (t *T) Name() int64 { return 64 }
|
|
|
|
|
2009-01-20 15:40:40 -07:00
|
|
|
type I1 interface { Name() int8 }
|
|
|
|
type I2 interface { Name() int64 }
|
2008-10-17 18:51:29 -06:00
|
|
|
|
|
|
|
func main() {
|
|
|
|
var i1 I1;
|
|
|
|
var s *S;
|
|
|
|
i1 = s;
|
|
|
|
print(i1.(I2).Name())
|
|
|
|
}
|