Source file
test/ken/interbasic.go
1
2
3
4
5
6
7
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 }
185
View as plain text