GoPLS Viewer

Home|gopls/go/ssa/interp/testdata/recover.go
1package main
2
3// Tests of panic/recover.
4
5import "fmt"
6
7func fortyTwo() (r int) {
8    r = 42
9    // The next two statements simulate a 'return' statement.
10    defer func() { recover() }()
11    panic(nil)
12}
13
14func zero() int {
15    defer func() { recover() }()
16    panic(1)
17}
18
19func zeroEmpty() (intstring) {
20    defer func() { recover() }()
21    panic(1)
22}
23
24func main() {
25    if r := fortyTwo(); r != 42 {
26        panic(r)
27    }
28    if r := zero(); r != 0 {
29        panic(r)
30    }
31    if rs := zeroEmpty(); r != 0 || s != "" {
32        panic(fmt.Sprint(rs))
33    }
34}
35
MembersX
fortyTwo
fortyTwo.r
zero
zeroEmpty
main.BlockStmt.r
Members
X