...
1# DO NOT EDIT; generated by go run testdata/gen.go
2#
3#name: arithmetic
4#evalPartial
5-- in.cue --
6i1: 1 & int
7i2: 2 & int
8
9sum: -1 + +2 // 1
10div1: 2.0 / 3 * 6 // 4
11div2: 2 / 3 * 6 // 4
12div3: 1.00 / 1.00
13divZero: 1.0 / 0
14div00: 0 / 0
15b: 1 != 4
16add: div1 + 1.0
17
18idiv00: 0 div 0
19imod00: 0 mod 0
20iquo00: 0 quo 0
21irem00: 0 rem 0
22
23v1: 1.0T / 2.0
24v2: 2.0 == 2
25v3: 2.0 / 3.0
26v5: i1 div i2
27
28e0: 2 + "a"
29// these are now all alloweed
30// e1: 2.0 / i1
31// e2: i1 / 2.0
32// e3: 3.0 % i2
33// e4: i1 % 2.0
34e5: 1.0 div 2
35e6: 2 rem 2.0
36e7: 2 quo 2.0
37e8: 1.0 mod 1
38-- out/def --
39i1: 1
40i2: 2
41sum: 1
42div1: 4.00000000000000000000000
43div2: 4.00000000000000000000000
44div3: 1.
45divZero: _|_ // division by zero
46div00: _|_ // division undefined
47b: true
48add: 5.00000000000000000000000
49idiv00: _|_ // division by zero
50imod00: _|_ // division by zero
51iquo00: _|_ // division by zero
52irem00: _|_ // division by zero
53v1: 5.0000000000e+11
54v2: true
55v3: 0.666666666666666666666667
56v5: 0
57e0: _|_ // invalid operation 2 + "a" (mismatched types int and string)
58// these are now all alloweed
59// e1: 2.0 / i1
60// e2: i1 / 2.0
61// e3: 3.0 % i2
62// e4: i1 % 2.0
63e5: _|_ // invalid operation 1.0 div 2 (mismatched types float and int)
64e6: _|_ // invalid operation 2 rem 2.0 (mismatched types int and float)
65e7: _|_ // invalid operation 2 quo 2.0 (mismatched types int and float)
66e8: _|_ // invalid operation 1.0 mod 1 (mismatched types float and int)
67-- out/legacy-debug --
68<0>{i1: 1, i2: 2, sum: 1, div1: 4.00000000000000000000000, div2: 4.00000000000000000000000, div3: 1., divZero: _|_((1.0 / 0):division by zero), div00: _|_((0 / 0):division undefined), b: true, add: 5.00000000000000000000000, idiv00: _|_((0 div 0):division by zero), imod00: _|_((0 mod 0):division by zero), iquo00: _|_((0 quo 0):division by zero), irem00: _|_((0 rem 0):division by zero), v1: 5.0000000000e+11, v2: true, v3: 0.666666666666666666666667, v5: 0, e0: _|_((2 + "a"):invalid operation 2 + "a" (mismatched types int and string)), e5: _|_((1.0 div 2):invalid operation 1.0 div 2 (mismatched types float and int)), e6: _|_((2 rem 2.0):invalid operation 2 rem 2.0 (mismatched types int and float)), e7: _|_((2 quo 2.0):invalid operation 2 quo 2.0 (mismatched types int and float)), e8: _|_((1.0 mod 1):invalid operation 1.0 mod 1 (mismatched types float and int))}
69-- out/compile --
70--- in.cue
71{
72 i1: (1 & int)
73 i2: (2 & int)
74 sum: (-1 + +2)
75 div1: ((2.0 / 3) * 6)
76 div2: ((2 / 3) * 6)
77 div3: (1.00 / 1.00)
78 divZero: (1.0 / 0)
79 div00: (0 / 0)
80 b: (1 != 4)
81 add: (〈0;div1〉 + 1.0)
82 idiv00: (0 div 0)
83 imod00: (0 mod 0)
84 iquo00: (0 quo 0)
85 irem00: (0 rem 0)
86 v1: (1000000000000 / 2.0)
87 v2: (2.0 == 2)
88 v3: (2.0 / 3.0)
89 v5: (〈0;i1〉 div 〈0;i2〉)
90 e0: (2 + "a")
91 e5: (1.0 div 2)
92 e6: (2 rem 2.0)
93 e7: (2 quo 2.0)
94 e8: (1.0 mod 1)
95}
96-- out/eval/stats --
97Leaks: 0
98Freed: 24
99Reused: 22
100Allocs: 2
101Retain: 0
102
103Unifications: 24
104Conjuncts: 26
105Disjuncts: 24
106-- out/eval --
107Errors:
108divZero: failed arithmetic: division by zero:
109 ./in.cue:8:10
110div00: failed arithmetic: division undefined:
111 ./in.cue:9:10
112idiv00: division by zero:
113 ./in.cue:13:9
114imod00: division by zero:
115 ./in.cue:14:9
116iquo00: division by zero:
117 ./in.cue:15:9
118irem00: division by zero:
119 ./in.cue:16:9
120e0: invalid operands 2 and "a" to '+' (type int and string):
121 ./in.cue:23:5
122 ./in.cue:23:9
123e5: invalid operands 1.0 and 2 to 'div' (type float and int):
124 ./in.cue:29:5
125 ./in.cue:29:13
126e6: invalid operands 2 and 2.0 to 'rem' (type int and float):
127 ./in.cue:30:5
128 ./in.cue:30:11
129e7: invalid operands 2 and 2.0 to 'quo' (type int and float):
130 ./in.cue:31:5
131 ./in.cue:31:11
132e8: invalid operands 1.0 and 1 to 'mod' (type float and int):
133 ./in.cue:32:5
134 ./in.cue:32:13
135
136Result:
137(_|_){
138 // [eval]
139 i1: (int){ 1 }
140 i2: (int){ 2 }
141 sum: (int){ 1 }
142 div1: (float){ 4.000000000000000000000000000000000 }
143 div2: (float){ 4.000000000000000000000000000000000 }
144 div3: (float){ 1.0 }
145 divZero: (_|_){
146 // [eval] divZero: failed arithmetic: division by zero:
147 // ./in.cue:8:10
148 }
149 div00: (_|_){
150 // [eval] div00: failed arithmetic: division undefined:
151 // ./in.cue:9:10
152 }
153 b: (bool){ true }
154 add: (float){ 5.000000000000000000000000000000000 }
155 idiv00: (_|_){
156 // [eval] idiv00: division by zero:
157 // ./in.cue:13:9
158 }
159 imod00: (_|_){
160 // [eval] imod00: division by zero:
161 // ./in.cue:14:9
162 }
163 iquo00: (_|_){
164 // [eval] iquo00: division by zero:
165 // ./in.cue:15:9
166 }
167 irem00: (_|_){
168 // [eval] irem00: division by zero:
169 // ./in.cue:16:9
170 }
171 v1: (float){ 5.0E+11 }
172 v2: (bool){ true }
173 v3: (float){ 0.6666666666666666666666666666666667 }
174 v5: (int){ 0 }
175 e0: (_|_){
176 // [eval] e0: invalid operands 2 and "a" to '+' (type int and string):
177 // ./in.cue:23:5
178 // ./in.cue:23:9
179 }
180 e5: (_|_){
181 // [eval] e5: invalid operands 1.0 and 2 to 'div' (type float and int):
182 // ./in.cue:29:5
183 // ./in.cue:29:13
184 }
185 e6: (_|_){
186 // [eval] e6: invalid operands 2 and 2.0 to 'rem' (type int and float):
187 // ./in.cue:30:5
188 // ./in.cue:30:11
189 }
190 e7: (_|_){
191 // [eval] e7: invalid operands 2 and 2.0 to 'quo' (type int and float):
192 // ./in.cue:31:5
193 // ./in.cue:31:11
194 }
195 e8: (_|_){
196 // [eval] e8: invalid operands 1.0 and 1 to 'mod' (type float and int):
197 // ./in.cue:32:5
198 // ./in.cue:32:13
199 }
200}
View as plain text