summaryrefslogtreecommitdiff
path: root/test/interface/explicit.go
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-09-13 13:11:55 +0200
committerOndřej Surý <ondrej@sury.org>2011-09-13 13:11:55 +0200
commit80f18fc933cf3f3e829c5455a1023d69f7b86e52 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /test/interface/explicit.go
parent28592ee1ea1f5cdffcf85472f9de0285d928cf12 (diff)
downloadgolang-80f18fc933cf3f3e829c5455a1023d69f7b86e52.tar.gz
Imported Upstream version 60
Diffstat (limited to 'test/interface/explicit.go')
-rw-r--r--test/interface/explicit.go75
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"