1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| // 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.
|
| // Test that interface conversion fails when method is missing.
|
| package main
|
| type I interface {
| Foo()
| }
|
| func main() {
| shouldPanic(p1)
| }
|
| func p1() {
| var s *S
| var i I
| var e interface{}
| e = s
| i = e.(I)
| _ = i
| }
|
| type S struct{}
|
| func (s *S) _() {}
|
| func shouldPanic(f func()) {
| defer func() {
| if recover() == nil {
| panic("function should panic")
| }
| }()
| f()
| }
|
|