|
28 | 28 | i32, j32, k32 int32 = 0, 0, 1
|
29 | 29 | i64, j64, k64 int64 = 0, 0, 1
|
30 | 30 |
|
| 31 | + bb = []int16{2, 0} |
| 32 | + |
31 | 33 | u, v, w uint = 0, 0, 1
|
32 | 34 | u8, v8, w8 uint8 = 0, 0, 1
|
33 | 35 | u16, v16, w16 uint16 = 0, 0, 1
|
@@ -124,6 +126,10 @@ var errorTests = []ErrorTest{
|
124 | 126 | ErrorTest{"int32 1/0", func() { use(k32 / j32) }, "divide"},
|
125 | 127 | ErrorTest{"int64 1/0", func() { use(k64 / j64) }, "divide"},
|
126 | 128 |
|
| 129 | + // From issue 5790, we should ensure that _ assignments |
| 130 | + // still evaluate and generate zerodivide panics. |
| 131 | + ErrorTest{"int16 _ = bb[0]/bb[1]", func() { _ = bb[0] / bb[1] }, "divide"}, |
| 132 | + |
127 | 133 | ErrorTest{"uint 0/0", func() { use(u / v) }, "divide"},
|
128 | 134 | ErrorTest{"uint8 0/0", func() { use(u8 / v8) }, "divide"},
|
129 | 135 | ErrorTest{"uint16 0/0", func() { use(u16 / v16) }, "divide"},
|
@@ -195,9 +201,6 @@ func alike(a, b float64) bool {
|
195 | 201 | func main() {
|
196 | 202 | bad := false
|
197 | 203 | for _, t := range errorTests {
|
198 |
| - if t.err != "" { |
199 |
| - continue |
200 |
| - } |
201 | 204 | err := error_(t.fn)
|
202 | 205 | switch {
|
203 | 206 | case t.err == "" && err == "":
|
|
0 commit comments