]> Cypherpunks.ru repositories - gostls13.git/blob - test/clear.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / clear.go
1 // run
2
3 // Copyright 2022 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
6
7 package main
8
9 import "math"
10
11 func checkClearSlice() {
12         s := []int{1, 2, 3}
13         clear(s)
14         for i := range s {
15                 if s[i] != 0 {
16                         panic("clear not zeroing slice elem")
17                 }
18         }
19
20         clear([]int{})
21 }
22
23 func checkClearMap() {
24         m1 := make(map[int]int)
25         m1[0] = 0
26         m1[1] = 1
27         clear(m1)
28         if len(m1) != 0 {
29                 panic("m1 is not cleared")
30         }
31
32         // map contains NaN keys is also cleared.
33         m2 := make(map[float64]int)
34         m2[math.NaN()] = 1
35         m2[math.NaN()] = 1
36         clear(m2)
37         if len(m2) != 0 {
38                 panic("m2 is not cleared")
39         }
40
41         clear(map[int]int{})
42 }
43
44 func main() {
45         checkClearSlice()
46         checkClearMap()
47 }