diff options
author | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 |
commit | 80f18fc933cf3f3e829c5455a1023d69f7b86e52 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /test/interface/explicit.go | |
parent | 28592ee1ea1f5cdffcf85472f9de0285d928cf12 (diff) | |
download | golang-80f18fc933cf3f3e829c5455a1023d69f7b86e52.tar.gz |
Imported Upstream version 60
Diffstat (limited to 'test/interface/explicit.go')
-rw-r--r-- | test/interface/explicit.go | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/test/interface/explicit.go b/test/interface/explicit.go deleted file mode 100644 index b6a582fff..000000000 --- a/test/interface/explicit.go +++ /dev/null @@ -1,75 +0,0 @@ -// errchk $G -e $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. - -// Static error messages about interface conversions. - -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 - -type E interface{} - -var e E - -func main() { - e = t // ok - t = e // ERROR "need explicit|need type assertion" - - // neither of these can work, - // because i has an extra method - // that t does not, so i cannot contain a t. - i = t // ERROR "incompatible|missing M method" - t = i // ERROR "incompatible|need type assertion" - - i = i2 // ok - i2 = i // ERROR "incompatible|missing N method" - - i = I(i2) // ok - i2 = I2(i) // ERROR "invalid|missing N method" - - e = E(t) // ok - t = T(e) // ERROR "need explicit|need type assertion|incompatible" -} - -type M interface { - M() -} - -var m M - -var _ = m.(int) // ERROR "impossible type assertion" - -type Int int - -func (Int) M(float64) {} - -var _ = m.(Int) // ERROR "impossible type assertion" - -var ii int -var jj Int - -var m1 M = ii // ERROR "incompatible|missing" -var m2 M = jj // ERROR "incompatible|wrong type for M method" - -var m3 = M(ii) // ERROR "invalid|missing" -var m4 = M(jj) // ERROR "invalid|wrong type for M method" |