]> Cypherpunks.ru repositories - gostls13.git/blob - test/ken/interbasic.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / ken / interbasic.go
1 // run
2
3 // Copyright 2009 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 // Test interfaces on basic types.
8
9 package main
10
11 type myint int
12 type mystring string
13 type I0 interface{}
14
15 func f() {
16         var ia, ib I0
17         var i myint
18         var s mystring
19
20         if ia != ib {
21                 panic("1")
22         }
23
24         i = 1
25         ia = i
26         ib = i
27         if ia != ib {
28                 panic("2")
29         }
30         if ia == nil {
31                 panic("3")
32         }
33
34         i = 2
35         ia = i
36         if ia == ib {
37                 panic("4")
38         }
39
40         ia = nil
41         if ia == ib {
42                 panic("5")
43         }
44
45         ib = nil
46         if ia != ib {
47                 panic("6")
48         }
49
50         if ia != nil {
51                 panic("7")
52         }
53
54         s = "abc"
55         ia = s
56         ib = nil
57         if ia == ib {
58                 panic("8")
59         }
60
61         s = "def"
62         ib = s
63         if ia == ib {
64                 panic("9")
65         }
66
67         s = "abc"
68         ib = s
69         if ia != ib {
70                 panic("a")
71         }
72 }
73
74 func main() {
75         var ia [20]I0
76         var b bool
77         var s string
78         var i8 int8
79         var i16 int16
80         var i32 int32
81         var i64 int64
82         var u8 uint8
83         var u16 uint16
84         var u32 uint32
85         var u64 uint64
86
87         f()
88
89         ia[0] = "xxx"
90         ia[1] = 12345
91         ia[2] = true
92
93         s = "now is"
94         ia[3] = s
95         b = false
96         ia[4] = b
97
98         i8 = 29
99         ia[5] = i8
100         i16 = 994
101         ia[6] = i16
102         i32 = 3434
103         ia[7] = i32
104         i64 = 1234567
105         ia[8] = i64
106
107         u8 = 12
108         ia[9] = u8
109         u16 = 799
110         ia[10] = u16
111         u32 = 4455
112         ia[11] = u32
113         u64 = 765432
114         ia[12] = u64
115
116         s = ia[0].(string)
117         if s != "xxx" {
118                 println(0, s)
119                 panic("fail")
120         }
121         i32 = int32(ia[1].(int))
122         if i32 != 12345 {
123                 println(1, i32)
124                 panic("fail")
125         }
126         b = ia[2].(bool)
127         if b != true {
128                 println(2, b)
129                 panic("fail")
130         }
131
132         s = ia[3].(string)
133         if s != "now is" {
134                 println(3, s)
135                 panic("fail")
136         }
137         b = ia[4].(bool)
138         if b != false {
139                 println(4, b)
140                 panic("fail")
141         }
142
143         i8 = ia[5].(int8)
144         if i8 != 29 {
145                 println(5, i8)
146                 panic("fail")
147         }
148         i16 = ia[6].(int16)
149         if i16 != 994 {
150                 println(6, i16)
151                 panic("fail")
152         }
153         i32 = ia[7].(int32)
154         if i32 != 3434 {
155                 println(7, i32)
156                 panic("fail")
157         }
158         i64 = ia[8].(int64)
159         if i64 != 1234567 {
160                 println(8, i64)
161                 panic("fail")
162         }
163
164         u8 = ia[9].(uint8)
165         if u8 != 12 {
166                 println(5, u8)
167                 panic("fail")
168         }
169         u16 = ia[10].(uint16)
170         if u16 != 799 {
171                 println(6, u16)
172                 panic("fail")
173         }
174         u32 = ia[11].(uint32)
175         if u32 != 4455 {
176                 println(7, u32)
177                 panic("fail")
178         }
179         u64 = ia[12].(uint64)
180         if u64 != 765432 {
181                 println(8, u64)
182                 panic("fail")
183         }
184 }