summaryrefslogtreecommitdiff
path: root/test/fixedbugs/bug148.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/fixedbugs/bug148.go')
-rw-r--r--test/fixedbugs/bug148.go19
1 files changed, 17 insertions, 2 deletions
diff --git a/test/fixedbugs/bug148.go b/test/fixedbugs/bug148.go
index daedff105..251020c96 100644
--- a/test/fixedbugs/bug148.go
+++ b/test/fixedbugs/bug148.go
@@ -1,4 +1,4 @@
-// $G $D/$F.go && $L $F.$A && ! ./$A.out || echo BUG: should crash
+// $G $D/$F.go && $L $F.$A && ./$A.out
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
@@ -8,6 +8,8 @@ package main
type T struct {a, b int};
+func println(x, y int) { }
+
func f(x interface{}) interface{} {
type T struct {a, b int};
@@ -24,16 +26,29 @@ func main() {
inner_T := f(nil);
f(inner_T);
+ shouldPanic(p1)
+}
+
+func p1() {
outer_T := T{5, 7};
f(outer_T);
}
+func shouldPanic(f func()) {
+ defer func() {
+ if recover() == nil {
+ panic("function should panic")
+ }
+ }()
+ f()
+}
+
/*
This prints:
2 3
5 7
-but it should crash: The type assertion on line 14 should fail
+but it should crash: The type assertion on line 18 should fail
for the 2nd call to f with outer_T.
*/