1 #include <OOC/SymbolTable/TypeRules.d>
2 #include <__oo2c.h>
3 #include <setjmp.h>
4
OOC_SymbolTable_TypeRules__IsNamedType(OOC_SymbolTable__Type type)5 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsNamedType(OOC_SymbolTable__Type type) {
6 register OOC_INT64 i0;
7
8 i0 = (OOC_INT64)type;
9 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1796))+48);
10 return (i0!=(OOC_INT64)0);
11 ;
12 }
13
OOC_SymbolTable_TypeRules__IsPredefType(OOC_SymbolTable__Type type,OOC_INT16 id)14 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsPredefType(OOC_SymbolTable__Type type, OOC_INT16 id) {
15 register OOC_INT64 i0,i1;
16
17 i0 = (OOC_INT64)type;
18 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2024)))), &_td_OOC_SymbolTable__PredefTypeDesc);
19 if (i1) goto l3;
20 i0=0u;
21 goto l4;
22 l3:
23 i0 = *(OOC_INT16*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2055)))), &_td_OOC_SymbolTable__PredefTypeDesc, 2055)), 2066))+72);
24 i1 = id;
25 i0 = i0==i1;
26
27 l4:
28 return i0;
29 ;
30 }
31
OOC_SymbolTable_TypeRules__IsScalarType(OOC_SymbolTable__Type type)32 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsScalarType(OOC_SymbolTable__Type type) {
33 register OOC_INT64 i0,i1;
34
35 i0 = (OOC_INT64)type;
36 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2376)))), &_td_OOC_SymbolTable__TypeVarDesc);
37 if (i1) goto l11;
38 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2470)))), &_td_OOC_SymbolTable__PredefTypeDesc);
39 if (i1) goto l5;
40 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2508)))), &_td_OOC_SymbolTable__PointerDesc);
41
42 goto l7;
43 l5:
44 i1=1u;
45 l7:
46 if (i1) goto l9;
47 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2543)))), &_td_OOC_SymbolTable__FormalParsDesc);
48
49 goto l10;
50 l9:
51 i0=1u;
52 l10:
53 return i0;
54 goto l12;
55 l11:
56 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2423))+72);
57 i0 = OOC_SymbolTable_TypeRules__IsScalarType((OOC_SymbolTable__Type)i0);
58 return i0;
59 l12:
60 _failed_function(2109); return 0;
61 ;
62 }
63
OOC_SymbolTable_TypeRules__IsCharType(OOC_SymbolTable__Type type)64 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsCharType(OOC_SymbolTable__Type type) {
65 register OOC_INT64 i0,i1;
66
67 i0 = (OOC_INT64)type;
68 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2731)))), &_td_OOC_SymbolTable__PredefTypeDesc);
69 if (i1) goto l3;
70 return 0u;
71 goto l4;
72 l3:
73 i0 = *(OOC_INT16*)((_check_pointer(i0, 2769))+72);
74 return (_in(i0,14u));
75 l4:
76 _failed_function(2603); return 0;
77 ;
78 }
79
OOC_SymbolTable_TypeRules__IsStringConst(OOC_SymbolTable__Type type)80 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsStringConst(OOC_SymbolTable__Type type) {
81 register OOC_INT64 i0,i1;
82
83 i0 = (OOC_INT64)type;
84 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3024)))), &_td_OOC_SymbolTable__PredefTypeDesc);
85 if (i1) goto l3;
86 return 0u;
87 goto l4;
88 l3:
89 i0 = *(OOC_INT16*)((_check_pointer(i0, 3062))+72);
90 return (_in(i0,57344u));
91 l4:
92 _failed_function(2892); return 0;
93 ;
94 }
95
OOC_SymbolTable_TypeRules__ExtendsLibType(OOC_SymbolTable__Type type,const OOC_CHAR8 module__ref[],OOC_LEN module_0d,const OOC_CHAR8 recordName__ref[],OOC_LEN recordName_0d)96 static OOC_CHAR8 OOC_SymbolTable_TypeRules__ExtendsLibType(OOC_SymbolTable__Type type, const OOC_CHAR8 module__ref[], OOC_LEN module_0d, const OOC_CHAR8 recordName__ref[], OOC_LEN recordName_0d) {
97 register OOC_INT64 i0,i1;
98 OOC_ALLOCATE_VPAR(module,OOC_CHAR8 ,module_0d)
99 OOC_ALLOCATE_VPAR(recordName,OOC_CHAR8 ,recordName_0d)
100 OOC_SymbolTable__Type r;
101
102 OOC_INITIALIZE_VPAR(module__ref,module,OOC_CHAR8 ,module_0d)
103 OOC_INITIALIZE_VPAR(recordName__ref,recordName,OOC_CHAR8 ,recordName_0d)
104 i0 = (OOC_INT64)type;
105 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3326)))), &_td_OOC_SymbolTable__PointerDesc);
106 if (i1) goto l3;
107 i1=0u;
108 goto l5;
109 l3:
110 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3361)))), &_td_OOC_SymbolTable__PointerDesc, 3361)), 3369))+72);
111 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3379)))), &_td_OOC_SymbolTable__RecordDesc);
112
113 l5:
114 if (i1) goto l7;
115 return 0u;
116 goto l49;
117 l7:
118 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3419)))), &_td_OOC_SymbolTable__PointerDesc, 3419)), 3427))+72);
119 r = (OOC_SymbolTable__Type)i0;
120 i1 = i0!=(OOC_INT64)0;
121 if (i1) goto l10;
122 i1=0u;
123 goto l24;
124 l10:
125 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3478))+48);
126 i1 = i1!=(OOC_INT64)0;
127 if (i1) goto l13;
128 i1=0u;
129 goto l15;
130 l13:
131 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3516))+48);
132 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3527))+40);
133 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3532))+16);
134 i1 = (
135 _cmp8((const void*)(_check_pointer(i1, 3536)),(const void*)(OOC_INT64)recordName))==0;
136
137 l15:
138 if (i1) goto l17;
139 i1=0u;
140 goto l19;
141 l17:
142 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3571))+48);
143 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3582))+8);
144 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3590)))), &_td_OOC_SymbolTable__ModuleDesc);
145
146 l19:
147 if (i1) goto l21;
148 i1=0u;
149 goto l22;
150 l21:
151 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3624))+48);
152 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3635))+8);
153 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3647)))), &_td_OOC_SymbolTable__ModuleDesc, 3647)), 3654))+40);
154 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3659))+16);
155 i1 = (
156 _cmp8((const void*)(_check_pointer(i1, 3663)),(const void*)(OOC_INT64)module))==0;
157
158 l22:
159 i1 = !i1;
160
161 l24:
162 if (!i1) goto l48;
163 l27_loop:
164 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3698)))), &_td_OOC_SymbolTable__RecordDesc, 3698)), 3705))+72);
165 r = (OOC_SymbolTable__Type)i0;
166 i1 = i0!=(OOC_INT64)0;
167 if (i1) goto l30;
168 i1=0u;
169 goto l44;
170 l30:
171 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3478))+48);
172 i1 = i1!=(OOC_INT64)0;
173 if (i1) goto l33;
174 i1=0u;
175 goto l35;
176 l33:
177 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3516))+48);
178 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3527))+40);
179 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3532))+16);
180 i1 = (
181 _cmp8((const void*)(_check_pointer(i1, 3536)),(const void*)(OOC_INT64)recordName))==0;
182
183 l35:
184 if (i1) goto l37;
185 i1=0u;
186 goto l39;
187 l37:
188 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3571))+48);
189 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3582))+8);
190 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3590)))), &_td_OOC_SymbolTable__ModuleDesc);
191
192 l39:
193 if (i1) goto l41;
194 i1=0u;
195 goto l42;
196 l41:
197 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3624))+48);
198 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3635))+8);
199 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3647)))), &_td_OOC_SymbolTable__ModuleDesc, 3647)), 3654))+40);
200 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3659))+16);
201 i1 = (
202 _cmp8((const void*)(_check_pointer(i1, 3663)),(const void*)(OOC_INT64)module))==0;
203
204 l42:
205 i1 = !i1;
206
207 l44:
208 if (i1) goto l27_loop;
209 l48:
210 return (i0!=(OOC_INT64)0);
211 l49:
212 _failed_function(3206); return 0;
213 ;
214 }
215
OOC_SymbolTable_TypeRules__IsPointerType(OOC_SymbolTable__Type type,const OOC_CHAR8 module__ref[],OOC_LEN module_0d,const OOC_CHAR8 recordName__ref[],OOC_LEN recordName_0d)216 static OOC_CHAR8 OOC_SymbolTable_TypeRules__IsPointerType(OOC_SymbolTable__Type type, const OOC_CHAR8 module__ref[], OOC_LEN module_0d, const OOC_CHAR8 recordName__ref[], OOC_LEN recordName_0d) {
217 register OOC_INT64 i0,i1;
218 OOC_ALLOCATE_VPAR(module,OOC_CHAR8 ,module_0d)
219 OOC_ALLOCATE_VPAR(recordName,OOC_CHAR8 ,recordName_0d)
220 OOC_SymbolTable__Type r;
221
222 OOC_INITIALIZE_VPAR(module__ref,module,OOC_CHAR8 ,module_0d)
223 OOC_INITIALIZE_VPAR(recordName__ref,recordName,OOC_CHAR8 ,recordName_0d)
224 i0 = (OOC_INT64)type;
225 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3941)))), &_td_OOC_SymbolTable__PointerDesc);
226 if (i1) goto l3;
227 i1=0u;
228 goto l5;
229 l3:
230 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3976)))), &_td_OOC_SymbolTable__PointerDesc, 3976)), 3984))+72);
231 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3994)))), &_td_OOC_SymbolTable__RecordDesc);
232
233 l5:
234 if (i1) goto l7;
235 return 0u;
236 goto l24;
237 l7:
238 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 4034)))), &_td_OOC_SymbolTable__PointerDesc, 4034)), 4042))+72);
239 r = (OOC_SymbolTable__Type)i0;
240 i1 = i0!=(OOC_INT64)0;
241 if (i1) goto l10;
242 i1=0u;
243 goto l12;
244 l10:
245 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4093))+48);
246 i1 = i1!=(OOC_INT64)0;
247
248 l12:
249 if (i1) goto l14;
250 i1=0u;
251 goto l16;
252 l14:
253 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4130))+48);
254 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 4141))+40);
255 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 4146))+16);
256 i1 = (
257 _cmp8((const void*)(_check_pointer(i1, 4150)),(const void*)(OOC_INT64)recordName))==0;
258
259 l16:
260 if (i1) goto l18;
261 i1=0u;
262 goto l20;
263 l18:
264 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4184))+48);
265 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 4195))+8);
266 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4203)))), &_td_OOC_SymbolTable__ModuleDesc);
267
268 l20:
269 if (i1) goto l22;
270 i0=0u;
271 goto l23;
272 l22:
273 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4236))+48);
274 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4247))+8);
275 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 4259)))), &_td_OOC_SymbolTable__ModuleDesc, 4259)), 4266))+40);
276 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4271))+16);
277 i0 = (
278 _cmp8((const void*)(_check_pointer(i0, 4275)),(const void*)(OOC_INT64)module))==0;
279
280 l23:
281 return i0;
282 l24:
283 _failed_function(3822); return 0;
284 ;
285 }
286
OOC_SymbolTable_TypeRules__IsObject(OOC_SymbolTable__Type type)287 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsObject(OOC_SymbolTable__Type type) {
288 register OOC_INT64 i0;
289
290 i0 = (OOC_INT64)type;
291 i0 = OOC_SymbolTable_TypeRules__ExtendsLibType((OOC_SymbolTable__Type)i0, (OOC_CHAR8*)"Object", 7, (OOC_CHAR8*)"ObjectDesc", 11);
292 return i0;
293 ;
294 }
295
OOC_SymbolTable_TypeRules__IsObjectType(OOC_SymbolTable__Type type)296 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsObjectType(OOC_SymbolTable__Type type) {
297 register OOC_INT64 i0;
298
299 i0 = (OOC_INT64)type;
300 i0 = OOC_SymbolTable_TypeRules__IsPointerType((OOC_SymbolTable__Type)i0, (OOC_CHAR8*)"Object", 7, (OOC_CHAR8*)"ObjectDesc", 11);
301 return i0;
302 ;
303 }
304
OOC_SymbolTable_TypeRules__IsException(OOC_SymbolTable__Type type)305 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsException(OOC_SymbolTable__Type type) {
306 register OOC_INT64 i0;
307
308 i0 = (OOC_INT64)type;
309 i0 = OOC_SymbolTable_TypeRules__ExtendsLibType((OOC_SymbolTable__Type)i0, (OOC_CHAR8*)"Exception", 10, (OOC_CHAR8*)"ExceptionDesc", 14);
310 return i0;
311 ;
312 }
313
OOC_SymbolTable_TypeRules__IsSTRING(OOC_SymbolTable__Type type)314 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsSTRING(OOC_SymbolTable__Type type) {
315 register OOC_INT64 i0;
316
317 i0 = (OOC_INT64)type;
318 i0 = OOC_SymbolTable_TypeRules__ExtendsLibType((OOC_SymbolTable__Type)i0, (OOC_CHAR8*)"Object", 7, (OOC_CHAR8*)"StringDesc", 11);
319 return i0;
320 ;
321 }
322
OOC_SymbolTable_TypeRules__IsTypeVar(OOC_SymbolTable__Type type)323 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsTypeVar(OOC_SymbolTable__Type type) {
324 register OOC_INT64 i0,i1,i2,i3,i4;
325 OOC_INT32 i;
326
327 i0 = (OOC_INT64)type;
328 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5552)))), &_td_OOC_SymbolTable__TypeVarDesc);
329 if (i1) goto l33;
330 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5598)))), &_td_OOC_SymbolTable__TypeClosureDesc);
331 if (i1) goto l20;
332 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5792)))), &_td_OOC_SymbolTable__QualTypeDesc);
333 if (i1) goto l7;
334 return 0u;
335 goto l34;
336 l7:
337 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5838))+88);
338 i = 0;
339 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 5848)), 0);
340 i2 = 0<i1;
341 if (!i2) goto l18;
342 i2=0;
343 l10_loop:
344 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5881))+88);
345 i3 = _check_pointer(i3, 5891);
346 i4 = OOC_ARRAY_LENGTH(i3, 0);
347 i3 = (OOC_INT64)*(OOC_INT64*)(i3+((_check_index(i2, i4, OOC_UINT32, 5891))*16));
348 i3 = OOC_SymbolTable_TypeRules__IsTypeVar((OOC_SymbolTable__Type)i3);
349 if (!i3) goto l13;
350 return 1u;
351 l13:
352 i2 = i2+1;
353 i = i2;
354 i3 = i2<i1;
355 if (i3) goto l10_loop;
356 l18:
357 return 0u;
358 goto l34;
359 l20:
360 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5647))+88);
361 i = 0;
362 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 5657)), 0);
363 i2 = 0<i1;
364 if (!i2) goto l31;
365 i2=0;
366 l23_loop:
367 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5690))+88);
368 i3 = _check_pointer(i3, 5700);
369 i4 = OOC_ARRAY_LENGTH(i3, 0);
370 i3 = (OOC_INT64)*(OOC_INT64*)(i3+((_check_index(i2, i4, OOC_UINT32, 5700))*16));
371 i3 = OOC_SymbolTable_TypeRules__IsTypeVar((OOC_SymbolTable__Type)i3);
372 if (!i3) goto l26;
373 return 1u;
374 l26:
375 i2 = i2+1;
376 i = i2;
377 i3 = i2<i1;
378 if (i3) goto l23_loop;
379 l31:
380 return 0u;
381 goto l34;
382 l33:
383 return 1u;
384 l34:
385 _failed_function(5346); return 0;
386 ;
387 }
388
OOC_SymbolTable_TypeRules__BaseCharType(OOC_SymbolTable__Type type)389 OOC_SymbolTable__PredefType OOC_SymbolTable_TypeRules__BaseCharType(OOC_SymbolTable__Type type) {
390 register OOC_INT64 i0,i1;
391
392 i0 = (OOC_INT64)type;
393 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 6500)))), &_td_OOC_SymbolTable__PredefTypeDesc);
394 if (i1) goto l11;
395 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 6874)))), &_td_OOC_SymbolTable__ArrayDesc);
396 if (i1) goto l5;
397 return (OOC_SymbolTable__PredefType)(OOC_INT64)0;
398 goto l18;
399 l5:
400 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6903))+80);
401 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6917)))), &_td_OOC_SymbolTable__PredefTypeDesc);
402 if (i1) goto l8;
403 return (OOC_SymbolTable__PredefType)(OOC_INT64)0;
404 goto l18;
405 l8:
406 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6974))+80);
407 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__BaseCharType((OOC_SymbolTable__Type)i0);
408 return (OOC_SymbolTable__PredefType)i0;
409 goto l18;
410 l11:
411 i0 = *(OOC_INT16*)((_check_pointer(i0, 6535))+72);
412 switch (i0) {
413 case 1:
414 case 13:
415 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(1);
416 return (OOC_SymbolTable__PredefType)i0;
417 goto l18;
418 case 2:
419 case 14:
420 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(2);
421 return (OOC_SymbolTable__PredefType)i0;
422 goto l18;
423 case 3:
424 case 15:
425 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(3);
426 return (OOC_SymbolTable__PredefType)i0;
427 goto l18;
428 default:
429 return (OOC_SymbolTable__PredefType)(OOC_INT64)0;
430 goto l18;
431 }
432 l18:
433 _failed_function(6041); return 0;
434 ;
435 }
436
OOC_SymbolTable_TypeRules__StringBase(OOC_SymbolTable__Type type)437 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__StringBase(OOC_SymbolTable__Type type) {
438 register OOC_INT64 i0,i1;
439
440 i0 = (OOC_INT64)type;
441 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 7208)))), &_td_OOC_SymbolTable__PredefTypeDesc);
442 if (i1) goto l3;
443 _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 7198)))), 7198);
444 goto l10;
445 l3:
446 i0 = *(OOC_INT16*)((_check_pointer(i0, 7241))+72);
447 switch (i0) {
448 case 13:
449 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(1);
450 return (OOC_SymbolTable__Type)i0;
451 goto l10;
452 case 14:
453 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(2);
454 return (OOC_SymbolTable__Type)i0;
455 goto l10;
456 case 15:
457 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(3);
458 return (OOC_SymbolTable__Type)i0;
459 goto l10;
460 default:
461 _failed_case(i0, 7232);
462 goto l10;
463 }
464 l10:
465 _failed_function(7099); return 0;
466 ;
467 }
468
OOC_SymbolTable_TypeRules__MatchingStringConst(OOC_SymbolTable__Type type)469 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__MatchingStringConst(OOC_SymbolTable__Type type) {
470 register OOC_INT64 i0;
471 OOC_INT16 id;
472
473 i0 = (OOC_INT64)type;
474 i0 = *(OOC_INT16*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 7603)))), &_td_OOC_SymbolTable__PredefTypeDesc, 7603)), 7614))+72);
475 switch (i0) {
476 case 1:
477 id = 13;
478 goto l6;
479 case 2:
480 id = 14;
481 goto l6;
482 case 3:
483 id = 15;
484 goto l6;
485 default:
486 _failed_case(i0, 7589);
487 goto l6;
488 }
489 l6:
490 i0 = id;
491 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(i0);
492 return (OOC_SymbolTable__Type)i0;
493 ;
494 }
495
OOC_SymbolTable_TypeRules__IsIntegerType(OOC_SymbolTable__Type type)496 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsIntegerType(OOC_SymbolTable__Type type) {
497 register OOC_INT64 i0,i1;
498
499 i0 = (OOC_INT64)type;
500 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 7966)))), &_td_OOC_SymbolTable__PredefTypeDesc);
501 if (i1) goto l3;
502 return 0u;
503 goto l4;
504 l3:
505 i0 = *(OOC_INT16*)((_check_pointer(i0, 8004))+72);
506 return (_in(i0,262384u));
507 l4:
508 _failed_function(7836); return 0;
509 ;
510 }
511
OOC_SymbolTable_TypeRules__IsRealType(OOC_SymbolTable__Type type)512 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsRealType(OOC_SymbolTable__Type type) {
513 register OOC_INT64 i0,i1;
514
515 i0 = (OOC_INT64)type;
516 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8299)))), &_td_OOC_SymbolTable__PredefTypeDesc);
517 if (i1) goto l3;
518 return 0u;
519 goto l4;
520 l3:
521 i0 = *(OOC_INT16*)((_check_pointer(i0, 8337))+72);
522 return (_in(i0,768u));
523 l4:
524 _failed_function(8166); return 0;
525 ;
526 }
527
OOC_SymbolTable_TypeRules__IsNumericType(OOC_SymbolTable__Type type)528 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsNumericType(OOC_SymbolTable__Type type) {
529 register OOC_INT64 i0,i1;
530
531 i0 = (OOC_INT64)type;
532 i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i0);
533 if (i1) goto l3;
534 i0 = OOC_SymbolTable_TypeRules__IsRealType((OOC_SymbolTable__Type)i0);
535
536 goto l4;
537 l3:
538 i0=1u;
539 l4:
540 return i0;
541 ;
542 }
543
OOC_SymbolTable_TypeRules__IsSetType(OOC_SymbolTable__Type type)544 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsSetType(OOC_SymbolTable__Type type) {
545 register OOC_INT64 i0,i1;
546
547 i0 = (OOC_INT64)type;
548 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8763)))), &_td_OOC_SymbolTable__PredefTypeDesc);
549 if (i1) goto l3;
550 return 0u;
551 goto l4;
552 l3:
553 i0 = *(OOC_INT16*)((_check_pointer(i0, 8801))+72);
554 return (_in(i0,1024u));
555 l4:
556 _failed_function(8642); return 0;
557 ;
558 }
559
OOC_SymbolTable_TypeRules__IncludesType(OOC_SymbolTable__Type large,OOC_SymbolTable__Type small)560 OOC_CHAR8 OOC_SymbolTable_TypeRules__IncludesType(OOC_SymbolTable__Type large, OOC_SymbolTable__Type small) {
561 register OOC_INT64 i0,i1,i2,i3,i4;
562 OOC_INT16 largeId;
563
564 i0 = (OOC_INT64)large;
565 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9287)))), &_td_OOC_SymbolTable__PredefTypeDesc);
566 if (i1) goto l3;
567 i1=0u;
568 goto l5;
569 l3:
570 i1 = (OOC_INT64)small;
571 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 9315)))), &_td_OOC_SymbolTable__PredefTypeDesc);
572
573 l5:
574 if (!i1) goto l30;
575 i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9366)))), &_td_OOC_SymbolTable__PredefTypeDesc, 9366)), 9377))+72);
576 largeId = i1;
577 i2 = (OOC_INT64)small;
578 i3 = *(OOC_INT16*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 9409)))), &_td_OOC_SymbolTable__PredefTypeDesc, 9409)), 9420))+72);
579 i4 = OOC_SymbolTable_TypeRules__IsNumericType((OOC_SymbolTable__Type)i0);
580 if (i4) goto l24;
581 i4 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i0);
582 if (i4) goto l18;
583 i0 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i0);
584 if (!i0) goto l30;
585 i0 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i2);
586 if (i0) goto l15;
587 i0=0u;
588 goto l16;
589 l15:
590 i0 = i3<=i1;
591
592 l16:
593 return i0;
594 goto l30;
595 l18:
596 i0 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i2);
597 if (i0) goto l21;
598 i0=0u;
599 goto l22;
600 l21:
601 i0 = i3<=i1;
602
603 l22:
604 return i0;
605 goto l30;
606 l24:
607 i0 = OOC_SymbolTable_TypeRules__IsNumericType((OOC_SymbolTable__Type)i2);
608 if (i0) goto l27;
609 i0=0u;
610 goto l28;
611 l27:
612 i0 = i3<=i1;
613
614 l28:
615 return i0;
616 l30:
617 return 0u;
618 ;
619 }
620
OOC_SymbolTable_TypeRules__IsOpenArrayType(OOC_SymbolTable__Type type)621 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsOpenArrayType(OOC_SymbolTable__Type type) {
622 register OOC_INT64 i0,i1;
623
624 i0 = (OOC_INT64)type;
625 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9963)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
626 type = (OOC_SymbolTable__Type)i0;
627 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9992)))), &_td_OOC_SymbolTable__ArrayDesc);
628 if (i1) goto l3;
629 i0=0u;
630 goto l4;
631 l3:
632 i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10017)))), &_td_OOC_SymbolTable__ArrayDesc, 10017)), 10023))+72);
633
634 l4:
635 return i0;
636 ;
637 }
638
OOC_SymbolTable_TypeRules__IsArrayOfChar(OOC_SymbolTable__Type type,OOC_CHAR8 includeFixed)639 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsArrayOfChar(OOC_SymbolTable__Type type, OOC_CHAR8 includeFixed) {
640 register OOC_INT64 i0,i1;
641
642 i0 = (OOC_INT64)type;
643 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10383)))), &_td_OOC_SymbolTable__ArrayDesc);
644 if (i1) goto l3;
645 i1=0u;
646 goto l9;
647 l3:
648 i1 = includeFixed;
649 if (i1) goto l6;
650 i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10433)))), &_td_OOC_SymbolTable__ArrayDesc, 10433)), 10439))+72);
651
652 goto l9;
653 l6:
654 i1=1u;
655 l9:
656 if (i1) goto l11;
657 i0=0u;
658 goto l12;
659 l11:
660 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10485)))), &_td_OOC_SymbolTable__ArrayDesc, 10485)), 10491))+80);
661 i0 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i0);
662
663 l12:
664 return i0;
665 ;
666 }
667
OOC_SymbolTable_TypeRules__IsValidRecordBaseType(OOC_SymbolTable__Type type)668 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidRecordBaseType(OOC_SymbolTable__Type type) {
669 register OOC_INT64 i0,i1;
670
671 i0 = (OOC_INT64)type;
672 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10723)))), &_td_OOC_SymbolTable__QualTypeDesc);
673 if (i1) goto l7;
674 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10820)))), &_td_OOC_SymbolTable__RecordDesc);
675 if (i1) goto l5;
676 i0=0u;
677 goto l6;
678 l5:
679 i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10846)))), &_td_OOC_SymbolTable__RecordDesc, 10846)), 10853))+106);
680
681 l6:
682 return i0;
683 goto l8;
684 l7:
685 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10780))+72);
686 i0 = OOC_SymbolTable_TypeRules__IsValidRecordBaseType((OOC_SymbolTable__Type)i0);
687 return i0;
688 l8:
689 _failed_function(10540); return 0;
690 ;
691 }
692
OOC_SymbolTable_TypeRules__IsValidParameterType(OOC_SymbolTable__Type type)693 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidParameterType(OOC_SymbolTable__Type type) {
694 register OOC_INT64 i0,i1;
695
696 i0 = (OOC_INT64)type;
697 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11107)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
698 type = (OOC_SymbolTable__Type)i0;
699 i1 = OOC_SymbolTable_TypeRules__IsNamedType((OOC_SymbolTable__Type)i0);
700 if (i1) goto l3;
701 i1 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
702
703 goto l5;
704 l3:
705 i1=1u;
706 l5:
707 if (i1) goto l7;
708 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11206)))), &_td_OOC_SymbolTable__FormalParsDesc);
709
710 goto l8;
711 l7:
712 i0=1u;
713 l8:
714 return i0;
715 ;
716 }
717
OOC_SymbolTable_TypeRules__IsValidReceiverType(OOC_SymbolTable__Type type)718 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidReceiverType(OOC_SymbolTable__Type type) {
719 register OOC_INT64 i0,i1;
720
721 i0 = (OOC_INT64)type;
722 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11446)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
723 type = (OOC_SymbolTable__Type)i0;
724 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11483)))), &_td_OOC_SymbolTable__RecordDesc);
725 if (i1) goto l7;
726 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11516)))), &_td_OOC_SymbolTable__PointerDesc);
727 if (i1) goto l5;
728 i0=0u;
729 goto l8;
730 l5:
731 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11553)))), &_td_OOC_SymbolTable__PointerDesc, 11553)), 11561))+72);
732 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11553)))), &_td_OOC_SymbolTable__PointerDesc, 11553)), 11561))+72);
733 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 11570)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
734 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11581)))), &_td_OOC_SymbolTable__RecordDesc);
735
736 goto l8;
737 l7:
738 i0=1u;
739 l8:
740 return i0;
741 ;
742 }
743
OOC_SymbolTable_TypeRules__IsValidResultType(OOC_SymbolTable__Type type)744 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidResultType(OOC_SymbolTable__Type type) {
745 register OOC_INT64 i0,i1;
746
747 i0 = (OOC_INT64)type;
748 i1 = i0==(OOC_INT64)0;
749 if (i1) goto l3;
750 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11934)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
751 i0 = OOC_SymbolTable_TypeRules__IsScalarType((OOC_SymbolTable__Type)i0);
752
753 goto l4;
754 l3:
755 i0=1u;
756 l4:
757 return i0;
758 ;
759 }
760
OOC_SymbolTable_TypeRules__IsValidPointerBaseType(OOC_SymbolTable__Type type)761 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidPointerBaseType(OOC_SymbolTable__Type type) {
762 register OOC_INT64 i0,i1;
763
764 i0 = (OOC_INT64)type;
765 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12172)))), &_td_OOC_SymbolTable__QualTypeDesc);
766 if (i1) goto l7;
767 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12270)))), &_td_OOC_SymbolTable__ArrayDesc);
768 if (i1) goto l5;
769 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12293)))), &_td_OOC_SymbolTable__RecordDesc);
770
771 goto l6;
772 l5:
773 i0=1u;
774 l6:
775 return i0;
776 goto l8;
777 l7:
778 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 12230))+72);
779 i0 = OOC_SymbolTable_TypeRules__IsValidPointerBaseType((OOC_SymbolTable__Type)i0);
780 return i0;
781 l8:
782 _failed_function(11983); return 0;
783 ;
784 }
785
OOC_SymbolTable_TypeRules__IsValidArrayElementType(OOC_SymbolTable__Type type,OOC_CHAR8 isOpenArray)786 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidArrayElementType(OOC_SymbolTable__Type type, OOC_CHAR8 isOpenArray) {
787 register OOC_INT64 i0,i1;
788
789 i0 = isOpenArray;
790 if (i0) goto l7;
791 i0 = (OOC_INT64)type;
792 i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12696)))), &_td_OOC_SymbolTable__ArrayDesc));
793 if (i1) goto l5;
794 i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12723)))), &_td_OOC_SymbolTable__ArrayDesc, 12723)), 12729))+72);
795 i0 = !i0;
796
797 goto l6;
798 l5:
799 i0=1u;
800 l6:
801 return i0;
802 goto l8;
803 l7:
804 return 1u;
805 l8:
806 _failed_function(12358); return 0;
807 ;
808 }
809
OOC_SymbolTable_TypeRules__IsValidCaseSelector(OOC_SymbolTable__Type type)810 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidCaseSelector(OOC_SymbolTable__Type type) {
811 register OOC_INT64 i0,i1;
812
813 i0 = (OOC_INT64)type;
814 i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i0);
815 if (i1) goto l3;
816 i0 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i0);
817
818 goto l4;
819 l3:
820 i0=1u;
821 l4:
822 return i0;
823 ;
824 }
825
OOC_SymbolTable_TypeRules__IsValidTypeBound(OOC_SymbolTable__Type type)826 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidTypeBound(OOC_SymbolTable__Type type) {
827 register OOC_INT64 i0,i1;
828
829 i0 = (OOC_INT64)type;
830 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13258)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
831 type = (OOC_SymbolTable__Type)i0;
832 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13283)))), &_td_OOC_SymbolTable__PointerDesc);
833 if (i1) goto l3;
834 return 0u;
835 goto l4;
836 l3:
837 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13327)))), &_td_OOC_SymbolTable__PointerDesc, 13327)), 13335))+72);
838 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13327)))), &_td_OOC_SymbolTable__PointerDesc, 13327)), 13335))+72);
839 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 13344)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
840 type = (OOC_SymbolTable__Type)i0;
841 return (OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13375)))), &_td_OOC_SymbolTable__RecordDesc));
842 l4:
843 _failed_function(13064); return 0;
844 ;
845 }
846
OOC_SymbolTable_TypeRules__VariableInstance(OOC_SymbolTable__Type type)847 OOC_CHAR8 OOC_SymbolTable_TypeRules__VariableInstance(OOC_SymbolTable__Type type) {
848 register OOC_INT64 i0,i1;
849
850 i0 = (OOC_INT64)type;
851 i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13708)))), &_td_OOC_SymbolTable__RecordDesc));
852 if (i1) goto l3;
853 i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13736)))), &_td_OOC_SymbolTable__RecordDesc, 13736)), 13743))+105);
854 i0 = !i0;
855
856 goto l4;
857 l3:
858 i0=1u;
859 l4:
860 return i0;
861 ;
862 }
863
OOC_SymbolTable_TypeRules__SameType(OOC_SymbolTable__Type a,OOC_SymbolTable__Type b)864 OOC_CHAR8 OOC_SymbolTable_TypeRules__SameType(OOC_SymbolTable__Type a, OOC_SymbolTable__Type b) {
865 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
866 OOC_SymbolTable__Type baseA;
867 OOC_SymbolTable__Type baseB;
868 OOC_INT32 i;
869 OOC_SymbolTable__TypeVar tv;
870
871 i0 = (OOC_INT64)a;
872 i1 = (OOC_INT64)b;
873 i2 = i0==i1;
874 if (i2) goto l3;
875 i2=0u;
876 goto l5;
877 l3:
878 i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
879 i2 = !i2;
880
881 l5:
882 if (i2) goto l28;
883 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14555)))), &_td_OOC_SymbolTable__TypeClosureDesc);
884 if (i2) goto l9;
885 i2=0u;
886 goto l11;
887 l9:
888 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14580)))), &_td_OOC_SymbolTable__TypeClosureDesc);
889
890 l11:
891 if (!i2) goto l29;
892 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14626)))), &_td_OOC_SymbolTable__TypeClosureDesc, 14626)), 14638))+72);
893 baseA = (OOC_SymbolTable__Type)i2;
894 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14670)))), &_td_OOC_SymbolTable__TypeClosureDesc, 14670)), 14682))+72);
895 baseB = (OOC_SymbolTable__Type)i3;
896 i4 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i3);
897 if (!i4) goto l29;
898 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 14750))+56);
899 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 14767))+56);
900 _assert((i4==i3), 127, 14738);
901 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 14810))+56);
902 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 14819))+40);
903 i = 0;
904 i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 14826)), 0);
905 i4 = 0<i3;
906 if (!i4) goto l25;
907 i4=0;
908 l17_loop:
909 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 14855))+56);
910 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 14864))+40);
911 i5 = _check_pointer(i5, 14871);
912 i6 = OOC_ARRAY_LENGTH(i5, 0);
913 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i4, i6, OOC_UINT32, 14871))*8);
914 tv = (OOC_SymbolTable__TypeVar)i5;
915 i6 = (OOC_INT64)OOC_SymbolTable__TypeClosureDesc_Lookup((OOC_SymbolTable__TypeClosure)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14963)))), &_td_OOC_SymbolTable__TypeClosureDesc, 14963)), (OOC_SymbolTable__TypeVar)i5, (OOC_SymbolTable__TypeVar)i5);
916 i5 = (OOC_INT64)OOC_SymbolTable__TypeClosureDesc_Lookup((OOC_SymbolTable__TypeClosure)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14905)))), &_td_OOC_SymbolTable__TypeClosureDesc, 14905)), (OOC_SymbolTable__TypeVar)i5, (OOC_SymbolTable__TypeVar)i5);
917 i5 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i5, (OOC_SymbolTable__Type)i6);
918 i5 = !i5;
919 if (!i5) goto l20;
920 return 0u;
921 l20:
922 i4 = i4+1;
923 i = i4;
924 i5 = i4<i3;
925 if (i5) goto l17_loop;
926 l25:
927 return 1u;
928 goto l29;
929 l28:
930 return 1u;
931 l29:
932 return 0u;
933 ;
934 }
935
OOC_SymbolTable_TypeRules__EqualTypes(OOC_SymbolTable__Type a,OOC_SymbolTable__Type b)936 OOC_CHAR8 OOC_SymbolTable_TypeRules__EqualTypes(OOC_SymbolTable__Type a, OOC_SymbolTable__Type b) {
937 register OOC_INT64 i0,i1,i2,i3;
938
939 i0 = (OOC_INT64)b;
940 i1 = (OOC_INT64)a;
941 i2 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
942 if (i2) goto l11;
943 i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i1);
944 if (i2) goto l5;
945 i2=0u;
946 goto l7;
947 l5:
948 i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
949
950 l7:
951 if (i2) goto l9;
952 i2=0u;
953 goto l13;
954 l9:
955 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15478)))), &_td_OOC_SymbolTable__ArrayDesc, 15478)), 15484))+80);
956 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15421)))), &_td_OOC_SymbolTable__ArrayDesc, 15421)), 15427))+80);
957 i2 = OOC_SymbolTable_TypeRules__EqualTypes((OOC_SymbolTable__Type)i3, (OOC_SymbolTable__Type)i2);
958
959 goto l13;
960 l11:
961 i2=1u;
962 l13:
963 if (i2) goto l23;
964 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15516)))), &_td_OOC_SymbolTable__FormalParsDesc);
965 if (i2) goto l17;
966 i2=0u;
967 goto l19;
968 l17:
969 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15540)))), &_td_OOC_SymbolTable__FormalParsDesc);
970
971 l19:
972 if (i2) goto l21;
973 i0=0u;
974 goto l24;
975 l21:
976 i0 = OOC_SymbolTable_TypeRules__FormalParamsMatch((OOC_SymbolTable__Type)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15599)))), &_td_OOC_SymbolTable__FormalParsDesc, 15599)), (OOC_SymbolTable__FormalPars)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15618)))), &_td_OOC_SymbolTable__FormalParsDesc, 15618)), 0u);
977
978 goto l24;
979 l23:
980 i0=1u;
981 l24:
982 return i0;
983 ;
984 }
985
OOC_SymbolTable_TypeRules__IsPointer(OOC_SymbolTable__Type type)986 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsPointer(OOC_SymbolTable__Type type) {
987 register OOC_INT64 i0,i1;
988
989 i0 = (OOC_INT64)type;
990 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15915)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
991 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15926)))), &_td_OOC_SymbolTable__PointerDesc);
992 if (i1) goto l3;
993 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15951)))), &_td_OOC_SymbolTable__TypeVarDesc);
994
995 goto l4;
996 l3:
997 i0=1u;
998 l4:
999 return i0;
1000 ;
1001 }
1002
OOC_SymbolTable_TypeRules__PointerBaseType(OOC_SymbolTable__Type pointer)1003 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__PointerBaseType(OOC_SymbolTable__Type pointer) {
1004 register OOC_INT64 i0,i1;
1005 OOC_SymbolTable__Type ptr;
1006
1007 i0 = (OOC_INT64)pointer;
1008 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16152)))), &_td_OOC_SymbolTable__PointerDesc);
1009 if (i1) goto l3;
1010 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16229)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1011 ptr = (OOC_SymbolTable__Type)i1;
1012 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16278)))), &_td_OOC_SymbolTable__PointerDesc, 16278)), 16286))+72);
1013 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16261)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1014 return (OOC_SymbolTable__Type)i0;
1015 goto l4;
1016 l3:
1017 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16189))+72);
1018 return (OOC_SymbolTable__Type)i0;
1019 l4:
1020 _failed_function(15996); return 0;
1021 ;
1022 }
1023
OOC_SymbolTable_TypeRules__IsRecord(OOC_SymbolTable__Type type)1024 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsRecord(OOC_SymbolTable__Type type) {
1025 register OOC_INT64 i0;
1026
1027 i0 = (OOC_INT64)type;
1028 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16521)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1029 return (OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16532)))), &_td_OOC_SymbolTable__RecordDesc));
1030 ;
1031 }
1032
OOC_SymbolTable_TypeRules__RecordBaseType(OOC_SymbolTable__Type record)1033 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__RecordBaseType(OOC_SymbolTable__Type record) {
1034 register OOC_INT64 i0,i1;
1035 OOC_SymbolTable__Type ptr;
1036
1037 i0 = (OOC_INT64)record;
1038 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16727)))), &_td_OOC_SymbolTable__RecordDesc);
1039 if (i1) goto l3;
1040 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16801)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1041 ptr = (OOC_SymbolTable__Type)i1;
1042 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16849)))), &_td_OOC_SymbolTable__RecordDesc, 16849)), 16856))+72);
1043 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16832)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1044 return (OOC_SymbolTable__Type)i0;
1045 goto l4;
1046 l3:
1047 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16762))+72);
1048 return (OOC_SymbolTable__Type)i0;
1049 l4:
1050 _failed_function(16575); return 0;
1051 ;
1052 }
1053
OOC_SymbolTable_TypeRules__IsRecordPointer(OOC_SymbolTable__Type type)1054 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsRecordPointer(OOC_SymbolTable__Type type) {
1055 register OOC_INT64 i0,i1;
1056
1057 i0 = (OOC_INT64)type;
1058 i1 = OOC_SymbolTable_TypeRules__IsPointer((OOC_SymbolTable__Type)i0);
1059 if (i1) goto l3;
1060 i0=0u;
1061 goto l4;
1062 l3:
1063 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i0);
1064 i0 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i0);
1065
1066 l4:
1067 return i0;
1068 ;
1069 }
1070
OOC_SymbolTable_TypeRules__IsArray(OOC_SymbolTable__Type type)1071 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsArray(OOC_SymbolTable__Type type) {
1072 register OOC_INT64 i0;
1073
1074 i0 = (OOC_INT64)type;
1075 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17311)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1076 return (OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17322)))), &_td_OOC_SymbolTable__ArrayDesc));
1077 ;
1078 }
1079
OOC_SymbolTable_TypeRules__ArrayElementType(OOC_SymbolTable__Type array)1080 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__ArrayElementType(OOC_SymbolTable__Type array) {
1081 register OOC_INT64 i0,i1;
1082 OOC_SymbolTable__Type ptr;
1083
1084 i0 = (OOC_INT64)array;
1085 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17514)))), &_td_OOC_SymbolTable__ArrayDesc);
1086 if (i1) goto l3;
1087 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17588)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1088 ptr = (OOC_SymbolTable__Type)i1;
1089 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 17635)))), &_td_OOC_SymbolTable__ArrayDesc, 17635)), 17641))+80);
1090 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17618)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1091 return (OOC_SymbolTable__Type)i0;
1092 goto l4;
1093 l3:
1094 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 17547))+80);
1095 return (OOC_SymbolTable__Type)i0;
1096 l4:
1097 _failed_function(17363); return 0;
1098 ;
1099 }
1100
OOC_SymbolTable_TypeRules__IsInducedExtensionOf(OOC_SymbolTable__Type type,OOC_SymbolTable__Type base,OOC_CHAR8 ensureInduction)1101 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsInducedExtensionOf(OOC_SymbolTable__Type type, OOC_SymbolTable__Type base, OOC_CHAR8 ensureInduction) {
1102 register OOC_INT64 i0,i1,i2,i3,i4;
1103 OOC_SymbolTable__Type ptr;
1104 OOC_SymbolTable__Type qualBase;
1105
1106 i0 = (OOC_INT64)type;
1107 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17920)))), &_td_OOC_SymbolTable__TypeVarDesc);
1108 if (!i1) goto l4;
1109 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17964)))), &_td_OOC_SymbolTable__TypeVarDesc, 17964)), 17972))+72);
1110 type = (OOC_SymbolTable__Type)i0;
1111
1112 l4:
1113 i1 = (OOC_INT64)base;
1114 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18002)))), &_td_OOC_SymbolTable__TypeVarDesc);
1115 if (!i2) goto l7;
1116 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18046)))), &_td_OOC_SymbolTable__TypeVarDesc, 18046)), 18054))+72);
1117 base = (OOC_SymbolTable__Type)i1;
1118 l7:
1119 i1 = OOC_SymbolTable_TypeRules__IsPointer((OOC_SymbolTable__Type)i0);
1120 if (i1) goto l10;
1121 i1=0u;
1122 goto l12;
1123 l10:
1124 i1 = (OOC_INT64)base;
1125 i1 = OOC_SymbolTable_TypeRules__IsPointer((OOC_SymbolTable__Type)i1);
1126
1127 l12:
1128 if (!i1) goto l15;
1129 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i0);
1130 type = (OOC_SymbolTable__Type)i0;
1131 i1 = (OOC_INT64)base;
1132 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i1);
1133 base = (OOC_SymbolTable__Type)i1;
1134
1135 l15:
1136 i1 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i0);
1137 if (i1) goto l18;
1138 i1=0u;
1139 goto l20;
1140 l18:
1141 i1 = (OOC_INT64)base;
1142 i1 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i1);
1143
1144 l20:
1145 if (!i1) goto l53;
1146 i1 = i0!=(OOC_INT64)0;
1147 if (i1) goto l24;
1148 i1=0u;
1149 goto l26;
1150 l24:
1151 i1 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i0);
1152
1153 l26:
1154 if (!i1) goto l53;
1155 i1 = (OOC_INT64)base;
1156 i2 = ensureInduction;
1157
1158 l28_loop:
1159 i3 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1160 if (i3) goto l42;
1161 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18571)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1162 ptr = (OOC_SymbolTable__Type)i3;
1163 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 18613)))), &_td_OOC_SymbolTable__RecordDesc, 18613)), 18620))+72);
1164 qualBase = (OOC_SymbolTable__Type)i3;
1165 if (i2) goto l33;
1166 i4=0u;
1167 goto l35;
1168 l33:
1169 i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18679)))), &_td_OOC_SymbolTable__TypeClosureDesc);
1170
1171 l35:
1172 if (i4) goto l37;
1173 i4=0u;
1174 goto l39;
1175 l37:
1176 i4 = OOC_SymbolTable__TypeClosureDesc_ArgumentsInduced((OOC_SymbolTable__TypeClosure)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18724)))), &_td_OOC_SymbolTable__TypeClosureDesc, 18724)), (OOC_SymbolTable__Type)i3);
1177 i4 = !i4;
1178
1179 l39:
1180 if (!i4) goto l41;
1181 return 0u;
1182 l41:
1183 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18843)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i3);
1184 type = (OOC_SymbolTable__Type)i0;
1185
1186 goto l43;
1187 l42:
1188 return 1u;
1189
1190 l43:
1191 i3 = i0!=(OOC_INT64)0;
1192 if (i3) goto l46;
1193 i3=0u;
1194 goto l48;
1195 l46:
1196 i3 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i0);
1197
1198 l48:
1199 if (i3) goto l28_loop;
1200 l53:
1201 return 0u;
1202 ;
1203 }
1204
OOC_SymbolTable_TypeRules__IsExtensionOf(OOC_SymbolTable__Type type,OOC_SymbolTable__Type base)1205 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsExtensionOf(OOC_SymbolTable__Type type, OOC_SymbolTable__Type base) {
1206 register OOC_INT64 i0,i1;
1207
1208 i0 = (OOC_INT64)base;
1209 i1 = (OOC_INT64)type;
1210 i0 = OOC_SymbolTable_TypeRules__IsInducedExtensionOf((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0, 0u);
1211 return i0;
1212 ;
1213 }
1214
OOC_SymbolTable_TypeRules__IsExtensionOfNoParams(OOC_SymbolTable__Type type,OOC_SymbolTable__Type base)1215 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsExtensionOfNoParams(OOC_SymbolTable__Type type, OOC_SymbolTable__Type base) {
1216 register OOC_INT64 i0,i1,i2;
1217
1218 i0 = (OOC_INT64)type;
1219 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19523)))), &_td_OOC_SymbolTable__TypeVarDesc);
1220 if (!i1) goto l4;
1221 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19567)))), &_td_OOC_SymbolTable__TypeVarDesc, 19567)), 19575))+72);
1222 type = (OOC_SymbolTable__Type)i0;
1223
1224 l4:
1225 i1 = (OOC_INT64)base;
1226 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19605)))), &_td_OOC_SymbolTable__TypeVarDesc);
1227 if (!i2) goto l7;
1228 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19649)))), &_td_OOC_SymbolTable__TypeVarDesc, 19649)), 19657))+72);
1229 base = (OOC_SymbolTable__Type)i1;
1230 l7:
1231 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19690)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1232 type = (OOC_SymbolTable__Type)i0;
1233 i1 = (OOC_INT64)base;
1234 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19718)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
1235 base = (OOC_SymbolTable__Type)i1;
1236 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19820)))), &_td_OOC_SymbolTable__PointerDesc);
1237 if (i2) goto l10;
1238 i2=0u;
1239 goto l12;
1240 l10:
1241 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19844)))), &_td_OOC_SymbolTable__PointerDesc);
1242
1243 l12:
1244 if (!i2) goto l15;
1245 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19888)))), &_td_OOC_SymbolTable__PointerDesc, 19888)), 19896))+72);
1246 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19888)))), &_td_OOC_SymbolTable__PointerDesc, 19888)), 19896))+72);
1247 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 19905)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1248 type = (OOC_SymbolTable__Type)i0;
1249 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19940)))), &_td_OOC_SymbolTable__PointerDesc, 19940)), 19948))+72);
1250 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19940)))), &_td_OOC_SymbolTable__PointerDesc, 19940)), 19948))+72);
1251 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 19957)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
1252 base = (OOC_SymbolTable__Type)i1;
1253
1254 l15:
1255 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19991)))), &_td_OOC_SymbolTable__RecordDesc);
1256 if (i2) goto l18;
1257 i2=0u;
1258 goto l20;
1259 l18:
1260 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 20014)))), &_td_OOC_SymbolTable__RecordDesc);
1261
1262 l20:
1263 if (!i2) goto l46;
1264 i2 = i0!=(OOC_INT64)0;
1265 if (i2) goto l24;
1266 i2=0u;
1267 goto l26;
1268 l24:
1269 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 20177)))), &_td_OOC_SymbolTable__RecordDesc);
1270
1271 l26:
1272 if (!i2) goto l46;
1273 l28_loop:
1274 i2 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1275 if (i2) goto l35;
1276 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 20295)))), &_td_OOC_SymbolTable__RecordDesc, 20295)), 20302))+72);
1277 type = (OOC_SymbolTable__Type)i0;
1278 i2 = i0!=(OOC_INT64)0;
1279 if (!i2) goto l36;
1280 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 20368)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1281 type = (OOC_SymbolTable__Type)i0;
1282
1283 goto l36;
1284 l35:
1285 return 1u;
1286
1287 l36:
1288 i2 = i0!=(OOC_INT64)0;
1289 if (i2) goto l39;
1290 i2=0u;
1291 goto l41;
1292 l39:
1293 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 20177)))), &_td_OOC_SymbolTable__RecordDesc);
1294
1295 l41:
1296 if (i2) goto l28_loop;
1297 l46:
1298 return 0u;
1299 ;
1300 }
1301
OOC_SymbolTable_TypeRules__IsValidArrayIteratorRange(OOC_SymbolTable__Type type)1302 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidArrayIteratorRange(OOC_SymbolTable__Type type) {
1303 register OOC_INT64 i0,i1;
1304
1305 i0 = (OOC_INT64)type;
1306 i1 = OOC_SymbolTable_TypeRules__IsArray((OOC_SymbolTable__Type)i0);
1307 if (i1) goto l3;
1308 return 0u;
1309 goto l4;
1310 l3:
1311 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__ArrayElementType((OOC_SymbolTable__Type)i0);
1312 i0 = OOC_SymbolTable_TypeRules__IsValidResultType((OOC_SymbolTable__Type)i0);
1313 return i0;
1314 l4:
1315 _failed_function(20485); return 0;
1316 ;
1317 }
1318
OOC_SymbolTable_TypeRules__FunctionResultType(OOC_SymbolTable__Type formalPars)1319 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__FunctionResultType(OOC_SymbolTable__Type formalPars) {
1320 register OOC_INT64 i0,i1;
1321 OOC_SymbolTable__Type ptr;
1322
1323 i0 = (OOC_INT64)formalPars;
1324 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 20993)))), &_td_OOC_SymbolTable__FormalParsDesc);
1325 if (i1) goto l3;
1326 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 21081)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1327 ptr = (OOC_SymbolTable__Type)i1;
1328 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 21133)))), &_td_OOC_SymbolTable__FormalParsDesc, 21133)), 21144))+80);
1329 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 21116)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1330 return (OOC_SymbolTable__Type)i0;
1331 goto l4;
1332 l3:
1333 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 21036))+80);
1334 return (OOC_SymbolTable__Type)i0;
1335 l4:
1336 _failed_function(20823); return 0;
1337 ;
1338 }
1339
OOC_SymbolTable_TypeRules__CallingConventionsMatch(OOC_INT8 a,OOC_INT8 b)1340 OOC_CHAR8 OOC_SymbolTable_TypeRules__CallingConventionsMatch(OOC_INT8 a, OOC_INT8 b) {
1341 register OOC_INT64 i0,i1;
1342
1343 i0 = a;
1344 i1 = i0==(-1);
1345 if (i1) goto l3;
1346 i1 = b;
1347 i1 = i1==(-1);
1348
1349 goto l5;
1350 l3:
1351 i1=1u;
1352 l5:
1353 if (i1) goto l11;
1354 i1 = _in(i0,5u);
1355 if (i1) goto l9;
1356 i1 = b;
1357 return (i0==i1);
1358 goto l12;
1359 l9:
1360 i0 = b;
1361 return (_in(i0,5u));
1362 goto l12;
1363 l11:
1364 return 0u;
1365 l12:
1366 _failed_function(21204); return 0;
1367 ;
1368 }
1369
OOC_SymbolTable_TypeRules__FormalParamsMatch(OOC_SymbolTable__Type baseFParsClosure,OOC_SymbolTable__FormalPars procFPars,OOC_CHAR8 allowSpecialization)1370 OOC_CHAR8 OOC_SymbolTable_TypeRules__FormalParamsMatch(OOC_SymbolTable__Type baseFParsClosure, OOC_SymbolTable__FormalPars procFPars, OOC_CHAR8 allowSpecialization) {
1371 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
1372 OOC_SymbolTable__Type ptr;
1373 OOC_SymbolTable__FormalPars baseFPars;
1374 OOC_SymbolTable__Type baseResult;
1375 OOC_INT32 i;
1376 OOC_INT32 j;
1377
1378 i0 = (OOC_INT64)baseFParsClosure;
1379 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 23177)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1380 ptr = (OOC_SymbolTable__Type)i1;
1381 i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 23214)))), &_td_OOC_SymbolTable__FormalParsDesc, 23214);
1382 baseFPars = (OOC_SymbolTable__FormalPars)i1;
1383 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23244))+80);
1384 i2 = i2==(OOC_INT64)0;
1385 if (i2) goto l3;
1386 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23356))+80);
1387 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 23338)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i2);
1388 baseResult = (OOC_SymbolTable__Type)i2;
1389
1390 goto l4;
1391 l3:
1392 baseResult = (OOC_SymbolTable__Type)(OOC_INT64)0;
1393 i2=(OOC_INT64)0;
1394 l4:
1395 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23406))+96);
1396 i4 = (OOC_INT64)procFPars;
1397 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 23433))+96);
1398 i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 23414)), 0);
1399 i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 23441)), 0);
1400 i3 = i3!=i5;
1401 if (i3) goto l149;
1402 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 23511))+80);
1403 i3 = (i2==(OOC_INT64)0)!=(i3==(OOC_INT64)0);
1404 if (i3) goto l147;
1405 i3 = i2!=(OOC_INT64)0;
1406 if (i3) goto l11;
1407 i5=0u;
1408 goto l13;
1409 l11:
1410 i5 = allowSpecialization;
1411 i5 = !i5;
1412
1413 l13:
1414 if (i5) goto l15;
1415 i5=0u;
1416 goto l17;
1417 l15:
1418 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 23676))+80);
1419 i5 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i5);
1420 i5 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i5);
1421 i5 = !i5;
1422
1423 l17:
1424 if (i5) goto l145;
1425 l19:
1426 if (i3) goto l21;
1427 i3=0u;
1428 goto l23;
1429 l21:
1430 i3 = allowSpecialization;
1431
1432 l23:
1433 if (i3) goto l25;
1434 i2=0u;
1435 goto l31;
1436 l25:
1437 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 23831))+80);
1438 i3 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i3);
1439 i3 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i3);
1440 if (i3) goto l28;
1441 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 23894))+80);
1442 i3 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i3);
1443 i2 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i3, (OOC_SymbolTable__Type)i2);
1444
1445 goto l29;
1446 l28:
1447 i2=1u;
1448 l29:
1449 i2 = !i2;
1450
1451 l31:
1452 if (i2) goto l143;
1453 i2 = *(OOC_UINT8*)((_check_pointer(i1, 23965))+104);
1454 i3 = *(OOC_UINT8*)((_check_pointer(i4, 23996))+104);
1455 i2 = i2!=i3;
1456 if (i2) goto l141;
1457 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24084))+96);
1458 i = 0;
1459 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 24092)), 0);
1460 i3 = 0<i2;
1461 if (!i3) goto l49;
1462 i3=0;
1463 l37_loop:
1464 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24121))+96);
1465 i5 = _check_pointer(i5, 24129);
1466 i6 = OOC_ARRAY_LENGTH(i5, 0);
1467 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 24129))*8);
1468 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 24169))+96);
1469 i6 = _check_pointer(i6, 24177);
1470 i7 = OOC_ARRAY_LENGTH(i6, 0);
1471 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 24177))*8);
1472 i5 = *(OOC_UINT8*)((_check_pointer(i5, 24132))+107);
1473 i6 = *(OOC_UINT8*)((_check_pointer(i6, 24180))+107);
1474 i5 = i5!=i6;
1475 if (i5) goto l40;
1476 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 24318))+96);
1477 i5 = _check_pointer(i5, 24325);
1478 i6 = OOC_ARRAY_LENGTH(i5, 0);
1479 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 24325))*8);
1480 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 24328))+88);
1481 i5 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i5);
1482 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24255))+96);
1483 i6 = _check_pointer(i6, 24262);
1484 i7 = OOC_ARRAY_LENGTH(i6, 0);
1485 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 24262))*8);
1486 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 24265))+88);
1487 i6 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 24237)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i6);
1488 i5 = OOC_SymbolTable_TypeRules__EqualTypes((OOC_SymbolTable__Type)i6, (OOC_SymbolTable__Type)i5);
1489 i5 = !i5;
1490
1491 goto l42;
1492 l40:
1493 i5=1u;
1494 l42:
1495 if (!i5) goto l44;
1496 return 0u;
1497 l44:
1498 i3 = i3+1;
1499 i = i3;
1500 i5 = i3<i2;
1501 if (i5) goto l37_loop;
1502 l49:
1503 i0 = allowSpecialization;
1504 if (i0) goto l108;
1505 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25081))+112);
1506 i = 0;
1507 i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 25088)), 0);
1508 i2 = 0<i0;
1509 if (!i2) goto l79;
1510 i2=0;
1511 l54_loop:
1512 j = 0;
1513 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25148))+112);
1514 i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 25155)), 0);
1515 i3 = 0!=i3;
1516 if (i3) goto l57;
1517 i3=0u;
1518 goto l59;
1519 l57:
1520 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25248))+112);
1521 i3 = _check_pointer(i3, 25255);
1522 i5 = OOC_ARRAY_LENGTH(i3, 0);
1523 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i5, OOC_UINT32, 25255))*8);
1524 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25196))+112);
1525 i5 = _check_pointer(i5, 25203);
1526 i6 = OOC_ARRAY_LENGTH(i5, 0);
1527 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(0, i6, OOC_UINT32, 25203))*8);
1528 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 25258))+40);
1529 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 25206))+40);
1530 i3 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i5, (OOC_SymbolTable__Type)i3);
1531 i3 = !i3;
1532
1533 l59:
1534 if (i3) goto l61;
1535 i3=0;
1536 goto l71;
1537 l61:
1538 i3=0;
1539 l62_loop:
1540 i3 = i3+1;
1541 j = i3;
1542 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25148))+112);
1543 i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 25155)), 0);
1544 i5 = i3!=i5;
1545 if (i5) goto l65;
1546 i5=0u;
1547 goto l67;
1548 l65:
1549 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25248))+112);
1550 i5 = _check_pointer(i5, 25255);
1551 i6 = OOC_ARRAY_LENGTH(i5, 0);
1552 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i2, i6, OOC_UINT32, 25255))*8);
1553 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25196))+112);
1554 i6 = _check_pointer(i6, 25203);
1555 i7 = OOC_ARRAY_LENGTH(i6, 0);
1556 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 25203))*8);
1557 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 25258))+40);
1558 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 25206))+40);
1559 i5 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i6, (OOC_SymbolTable__Type)i5);
1560 i5 = !i5;
1561
1562 l67:
1563 if (i5) goto l62_loop;
1564 l71:
1565 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25334))+112);
1566 i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 25341)), 0);
1567 i3 = i3==i5;
1568 if (!i3) goto l74;
1569 return 0u;
1570 l74:
1571 i2 = i2+1;
1572 i = i2;
1573 i3 = i2<i0;
1574 if (i3) goto l54_loop;
1575 l79:
1576 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25454))+112);
1577 i = 0;
1578 i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 25461)), 0);
1579 i2 = 0<i0;
1580 if (!i2) goto l137;
1581 i2=0;
1582 l82_loop:
1583 j = 0;
1584 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25521))+112);
1585 i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 25528)), 0);
1586 i3 = 0!=i3;
1587 if (i3) goto l85;
1588 i3=0u;
1589 goto l87;
1590 l85:
1591 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25621))+112);
1592 i3 = _check_pointer(i3, 25628);
1593 i5 = OOC_ARRAY_LENGTH(i3, 0);
1594 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i5, OOC_UINT32, 25628))*8);
1595 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25569))+112);
1596 i5 = _check_pointer(i5, 25576);
1597 i6 = OOC_ARRAY_LENGTH(i5, 0);
1598 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(0, i6, OOC_UINT32, 25576))*8);
1599 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 25631))+40);
1600 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 25579))+40);
1601 i3 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i5, (OOC_SymbolTable__Type)i3);
1602 i3 = !i3;
1603
1604 l87:
1605 if (i3) goto l89;
1606 i3=0;
1607 goto l99;
1608 l89:
1609 i3=0;
1610 l90_loop:
1611 i3 = i3+1;
1612 j = i3;
1613 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25521))+112);
1614 i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 25528)), 0);
1615 i5 = i3!=i5;
1616 if (i5) goto l93;
1617 i5=0u;
1618 goto l95;
1619 l93:
1620 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25621))+112);
1621 i5 = _check_pointer(i5, 25628);
1622 i6 = OOC_ARRAY_LENGTH(i5, 0);
1623 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i2, i6, OOC_UINT32, 25628))*8);
1624 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25569))+112);
1625 i6 = _check_pointer(i6, 25576);
1626 i7 = OOC_ARRAY_LENGTH(i6, 0);
1627 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 25576))*8);
1628 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 25631))+40);
1629 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 25579))+40);
1630 i5 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i6, (OOC_SymbolTable__Type)i5);
1631 i5 = !i5;
1632
1633 l95:
1634 if (i5) goto l90_loop;
1635 l99:
1636 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25707))+112);
1637 i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 25714)), 0);
1638 i3 = i3==i5;
1639 if (!i3) goto l102;
1640 return 0u;
1641 l102:
1642 i2 = i2+1;
1643 i = i2;
1644 i3 = i2<i0;
1645 if (i3) goto l82_loop;
1646 goto l137;
1647 l108:
1648 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 24457))+112);
1649 i = 0;
1650 i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 24464)), 0);
1651 i2 = 0<i0;
1652 if (!i2) goto l137;
1653 i2=0;
1654 l111_loop:
1655 j = 0;
1656 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24524))+112);
1657 i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 24531)), 0);
1658 i3 = 0!=i3;
1659 if (i3) goto l114;
1660 i3=0u;
1661 goto l116;
1662 l114:
1663 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24634))+112);
1664 i3 = _check_pointer(i3, 24641);
1665 i5 = OOC_ARRAY_LENGTH(i3, 0);
1666 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i5, OOC_UINT32, 24641))*8);
1667 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 24577))+112);
1668 i5 = _check_pointer(i5, 24584);
1669 i6 = OOC_ARRAY_LENGTH(i5, 0);
1670 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(0, i6, OOC_UINT32, 24584))*8);
1671 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 24644))+40);
1672 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 24587))+40);
1673 i3 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i5, (OOC_SymbolTable__Type)i3);
1674 i3 = !i3;
1675
1676 l116:
1677 if (i3) goto l118;
1678 i3=0;
1679 goto l128;
1680 l118:
1681 i3=0;
1682 l119_loop:
1683 i3 = i3+1;
1684 j = i3;
1685 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24524))+112);
1686 i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 24531)), 0);
1687 i5 = i3!=i5;
1688 if (i5) goto l122;
1689 i5=0u;
1690 goto l124;
1691 l122:
1692 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24634))+112);
1693 i5 = _check_pointer(i5, 24641);
1694 i6 = OOC_ARRAY_LENGTH(i5, 0);
1695 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i2, i6, OOC_UINT32, 24641))*8);
1696 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 24577))+112);
1697 i6 = _check_pointer(i6, 24584);
1698 i7 = OOC_ARRAY_LENGTH(i6, 0);
1699 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 24584))*8);
1700 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 24644))+40);
1701 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 24587))+40);
1702 i5 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i6, (OOC_SymbolTable__Type)i5);
1703 i5 = !i5;
1704
1705 l124:
1706 if (i5) goto l119_loop;
1707 l128:
1708 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24720))+112);
1709 i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 24727)), 0);
1710 i3 = i3==i5;
1711 if (!i3) goto l131;
1712 return 0u;
1713 l131:
1714 i2 = i2+1;
1715 i = i2;
1716 i3 = i2<i0;
1717 if (i3) goto l111_loop;
1718 l137:
1719 i0 = *(OOC_INT8*)((_check_pointer(i4, 25867))+106);
1720 i1 = *(OOC_INT8*)((_check_pointer(i1, 25847))+106);
1721 i0 = OOC_SymbolTable_TypeRules__CallingConventionsMatch(i1, i0);
1722 i0 = !i0;
1723 if (!i0) goto l140;
1724 return 0u;
1725 l140:
1726 return 1u;
1727 goto l150;
1728 l141:
1729 return 0u;
1730 goto l150;
1731 l143:
1732 return 0u;
1733 goto l150;
1734 l145:
1735 return 0u;
1736 goto l150;
1737 l147:
1738 return 0u;
1739 goto l150;
1740 l149:
1741 return 0u;
1742 l150:
1743 _failed_function(21779); return 0;
1744 ;
1745 }
1746
OOC_SymbolTable_TypeRules__IsValidRedefinition(OOC_SymbolTable__Type baseFParsClosure,OOC_SymbolTable__FormalPars procFPars)1747 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidRedefinition(OOC_SymbolTable__Type baseFParsClosure, OOC_SymbolTable__FormalPars procFPars) {
1748 register OOC_INT64 i0,i1,i2,i3;
1749 OOC_SymbolTable__Type baseFPars;
1750
1751 i0 = (OOC_INT64)baseFParsClosure;
1752 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 26302)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1753 baseFPars = (OOC_SymbolTable__Type)i1;
1754 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 26346)))), &_td_OOC_SymbolTable__FormalParsDesc, 26346)), 26357))+72);
1755 i2 = (OOC_INT64)procFPars;
1756 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 26396))+72);
1757 i1 = *(OOC_UINT8*)((_check_pointer(i1, 26366))+107);
1758 i3 = *(OOC_UINT8*)((_check_pointer(i3, 26405))+107);
1759 i1 = i1==i3;
1760 if (i1) goto l3;
1761 i0=0u;
1762 goto l4;
1763 l3:
1764 i0 = OOC_SymbolTable_TypeRules__FormalParamsMatch((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__FormalPars)i2, 1u);
1765
1766 l4:
1767 return i0;
1768 ;
1769 }
1770
OOC_SymbolTable_TypeRules__IsValidForwardDecl(OOC_SymbolTable__FormalPars forward,OOC_SymbolTable__FormalPars proc)1771 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidForwardDecl(OOC_SymbolTable__FormalPars forward, OOC_SymbolTable__FormalPars proc) {
1772 register OOC_INT64 i0,i1;
1773
1774 i0 = (OOC_INT64)forward;
1775 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26718))+72);
1776 i1 = i1!=(OOC_INT64)0;
1777 if (i1) goto l3;
1778 i1 = (OOC_INT64)proc;
1779 i0 = OOC_SymbolTable_TypeRules__FormalParamsMatch((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__FormalPars)i0, 0u);
1780 return i0;
1781 goto l4;
1782 l3:
1783 i1 = (OOC_INT64)proc;
1784 i0 = OOC_SymbolTable_TypeRules__IsValidRedefinition((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__FormalPars)i0);
1785 return i0;
1786 l4:
1787 _failed_function(26518); return 0;
1788 ;
1789 }
1790
OOC_SymbolTable_TypeRules__IsArrayType(OOC_SymbolTable__Type type)1791 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsArrayType(OOC_SymbolTable__Type type) {
1792 register OOC_INT64 i0;
1793
1794 i0 = (OOC_INT64)type;
1795 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 27062)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1796 return (OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 27073)))), &_td_OOC_SymbolTable__ArrayDesc));
1797 ;
1798 }
1799
OOC_SymbolTable_TypeRules__IsArrayCompatible(OOC_SymbolTable__Type argType,OOC_SymbolTable__Type fparType)1800 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsArrayCompatible(OOC_SymbolTable__Type argType, OOC_SymbolTable__Type fparType) {
1801 register OOC_INT64 i0,i1,i2;
1802
1803 i0 = (OOC_INT64)fparType;
1804 i1 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
1805 if (i1) goto l3;
1806 i1=0u;
1807 goto l5;
1808 l3:
1809 i1 = (OOC_INT64)argType;
1810 i1 = OOC_SymbolTable_TypeRules__IsArrayType((OOC_SymbolTable__Type)i1);
1811
1812 l5:
1813 if (!i1) goto l17;
1814 l8_loop:
1815 i1 = (OOC_INT64)argType;
1816 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__ArrayElementType((OOC_SymbolTable__Type)i1);
1817 argType = (OOC_SymbolTable__Type)i1;
1818 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__ArrayElementType((OOC_SymbolTable__Type)i0);
1819 i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
1820 if (i2) goto l11;
1821 i1=0u;
1822 goto l13;
1823 l11:
1824 i1 = OOC_SymbolTable_TypeRules__IsArrayType((OOC_SymbolTable__Type)i1);
1825
1826 l13:
1827 if (i1) goto l8_loop;
1828 l17:
1829 i1 = (OOC_INT64)argType;
1830 i0 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
1831 return i0;
1832 ;
1833 }
1834
OOC_SymbolTable_TypeRules__IsComponentOf(OOC_SymbolTable__Type subType,OOC_SymbolTable__Type superType,OOC_CHAR8 arrayCompat)1835 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsComponentOf(OOC_SymbolTable__Type subType, OOC_SymbolTable__Type superType, OOC_CHAR8 arrayCompat) {
1836 register OOC_INT64 i0,i1,i2,i3,i4;
1837 OOC_SymbolTable__Item field;
1838
1839 i0 = (OOC_INT64)subType;
1840 i1 = (OOC_INT64)superType;
1841 i2 = OOC_SymbolTable_TypeRules__EqualTypes((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
1842 if (i2) goto l3;
1843 i2 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
1844
1845 goto l5;
1846 l3:
1847 i2=1u;
1848 l5:
1849 if (i2) goto l45;
1850 i2 = arrayCompat;
1851 if (i2) goto l9;
1852 i3=0u;
1853 goto l11;
1854 l9:
1855 i3 = OOC_SymbolTable_TypeRules__IsArrayCompatible((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1856
1857 l11:
1858 if (i3) goto l43;
1859 i3 = OOC_SymbolTable_TypeRules__IsArray((OOC_SymbolTable__Type)i1);
1860 if (i3) goto l41;
1861 i3 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i1);
1862 if (i3) goto l17;
1863 return 0u;
1864 goto l46;
1865 l17:
1866 i3 = i1!=(OOC_INT64)0;
1867 if (!i3) goto l39;
1868
1869 l20_loop:
1870 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 28679)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
1871 superType = (OOC_SymbolTable__Type)i1;
1872 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28717))+16);
1873 field = (OOC_SymbolTable__Item)i3;
1874 i4 = i3!=(OOC_INT64)0;
1875 if (!i4) goto l34;
1876 l23_loop:
1877 i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 28783)))), &_td_OOC_SymbolTable__FieldDeclDesc);
1878 if (!i4) goto l29;
1879 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 28846))+88);
1880 i4 = OOC_SymbolTable_TypeRules__IsComponentOf((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i4, i2);
1881 if (!i4) goto l29;
1882 return 1u;
1883 l29:
1884 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 29016));
1885 field = (OOC_SymbolTable__Item)i3;
1886 i4 = i3!=(OOC_INT64)0;
1887 if (i4) goto l23_loop;
1888 l34:
1889 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 29077)))), &_td_OOC_SymbolTable__RecordDesc, 29077)), 29084))+72);
1890 superType = (OOC_SymbolTable__Type)i1;
1891 i3 = i1!=(OOC_INT64)0;
1892 if (i3) goto l20_loop;
1893 l39:
1894 return 0u;
1895 goto l46;
1896 l41:
1897 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__ArrayElementType((OOC_SymbolTable__Type)i1);
1898 i0 = OOC_SymbolTable_TypeRules__IsComponentOf((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1, i2);
1899 return i0;
1900 goto l46;
1901 l43:
1902 return 1u;
1903 goto l46;
1904 l45:
1905 return 1u;
1906 l46:
1907 _failed_function(27810); return 0;
1908 ;
1909 }
1910
OOC_SymbolTable_TypeRules__IsByteCompatible(OOC_SymbolTable__Type type)1911 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsByteCompatible(OOC_SymbolTable__Type type) {
1912 register OOC_INT64 i0,i1;
1913
1914 i0 = (OOC_INT64)type;
1915 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 29360)))), &_td_OOC_SymbolTable__PredefTypeDesc);
1916 if (i1) goto l3;
1917 return 0u;
1918 goto l8;
1919 l3:
1920 i1 = *(OOC_INT16*)((_check_pointer(i0, 29398))+72);
1921 i1 = i1==1;
1922 if (i1) goto l6;
1923 i0 = *(OOC_INT16*)((_check_pointer(i0, 29426))+72);
1924 i0 = i0==4;
1925
1926 goto l7;
1927 l6:
1928 i0=1u;
1929 l7:
1930 return i0;
1931 l8:
1932 _failed_function(29193); return 0;
1933 ;
1934 }
1935
OOC_SymbolTable_TypeRules__IsPtrCompatible(OOC_SymbolTable__Type type)1936 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsPtrCompatible(OOC_SymbolTable__Type type) {
1937 register OOC_INT64 i0;
1938
1939 i0 = (OOC_INT64)type;
1940 i0 = OOC_SymbolTable_TypeRules__IsPointer((OOC_SymbolTable__Type)i0);
1941 return i0;
1942 ;
1943 }
1944
OOC_SymbolTable_TypeRules__IsNilCompatible(OOC_SymbolTable__Type type)1945 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsNilCompatible(OOC_SymbolTable__Type type) {
1946 register OOC_INT64 i0,i1;
1947
1948 i0 = (OOC_INT64)type;
1949 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 29969)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1950 type = (OOC_SymbolTable__Type)i0;
1951 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 29994)))), &_td_OOC_SymbolTable__PredefTypeDesc);
1952 if (i1) goto l15;
1953 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30088)))), &_td_OOC_SymbolTable__PointerDesc);
1954 if (i1) goto l13;
1955 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30134)))), &_td_OOC_SymbolTable__FormalParsDesc);
1956 if (i1) goto l11;
1957 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30183)))), &_td_OOC_SymbolTable__TypeVarDesc);
1958 if (i0) goto l9;
1959 return 0u;
1960 goto l20;
1961 l9:
1962 return 1u;
1963 goto l20;
1964 l11:
1965 return 1u;
1966 goto l20;
1967 l13:
1968 return 1u;
1969 goto l20;
1970 l15:
1971 i1 = *(OOC_INT16*)((_check_pointer(i0, 30032))+72);
1972 i1 = i1==12;
1973 if (i1) goto l18;
1974 i0 = *(OOC_INT16*)((_check_pointer(i0, 30059))+72);
1975 i0 = i0==16;
1976
1977 goto l19;
1978 l18:
1979 i0=1u;
1980 l19:
1981 return i0;
1982 l20:
1983 _failed_function(29738); return 0;
1984 ;
1985 }
1986
OOC_SymbolTable_TypeRules__IsReadOnly(OOC_SymbolTable__Module usingModule,OOC_SymbolTable__Declaration decl)1987 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsReadOnly(OOC_SymbolTable__Module usingModule, OOC_SymbolTable__Declaration decl) {
1988 register OOC_INT64 i0,i1;
1989
1990 i0 = (OOC_INT64)decl;
1991 i1 = *(OOC_INT8*)((_check_pointer(i0, 30505))+52);
1992 i1 = i1==2;
1993 if (i1) goto l3;
1994 i0=0u;
1995 goto l4;
1996 l3:
1997 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30555)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i0);
1998 i1 = (OOC_INT64)usingModule;
1999 i0 = i0!=i1;
2000
2001 l4:
2002 return i0;
2003 ;
2004 }
2005
OOC_SymbolTable_TypeRules__IsReadOnlyType(OOC_SymbolTable__Module usingModule,OOC_SymbolTable__Type type)2006 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsReadOnlyType(OOC_SymbolTable__Module usingModule, OOC_SymbolTable__Type type) {
2007 register OOC_INT64 i0,i1;
2008
2009 i0 = (OOC_INT64)type;
2010 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30816)))), &_td_OOC_SymbolTable__ArrayDesc);
2011 if (i1) goto l3;
2012 i1=0u;
2013 goto l5;
2014 l3:
2015 i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30849)))), &_td_OOC_SymbolTable__ArrayDesc, 30849)), 30855))+74);
2016
2017 l5:
2018 if (i1) goto l7;
2019 i0=0u;
2020 goto l8;
2021 l7:
2022 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30886)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i0);
2023 i1 = (OOC_INT64)usingModule;
2024 i0 = i0!=i1;
2025
2026 l8:
2027 return i0;
2028 ;
2029 }
2030
OOC_SymbolTable_TypeRules__IsAtomicType(OOC_SymbolTable__Type type)2031 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsAtomicType(OOC_SymbolTable__Type type) {
2032 register OOC_INT64 i0,i1,i2;
2033 OOC_CHAR8 result;
2034 OOC_SymbolTable__Item nested;
2035
2036 i0 = (OOC_INT64)type;
2037 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31371)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
2038 type = (OOC_SymbolTable__Type)i0;
2039 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31395)))), &_td_OOC_SymbolTable__PointerDesc);
2040 if (i1) goto l48;
2041 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31441)))), &_td_OOC_SymbolTable__TypeVarDesc);
2042 if (i1) goto l46;
2043 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31485)))), &_td_OOC_SymbolTable__PredefTypeDesc);
2044 if (i1) goto l44;
2045 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31548)))), &_td_OOC_SymbolTable__ArrayDesc);
2046 if (i1) goto l42;
2047 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31618)))), &_td_OOC_SymbolTable__RecordDesc);
2048 if (i1) goto l11;
2049 result = 1u;
2050
2051 goto l49;
2052 l11:
2053 result = 1u;
2054 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31665))+72);
2055 i1 = i1!=(OOC_INT64)0;
2056 if (i1) goto l14;
2057 i1=1u;
2058 goto l15;
2059 l14:
2060 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31719))+72);
2061 i1 = OOC_SymbolTable_TypeRules__IsAtomicType((OOC_SymbolTable__Type)i1);
2062 result = i1;
2063
2064 l15:
2065 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31758))+16);
2066 nested = (OOC_SymbolTable__Item)i0;
2067 if (i1) goto l18;
2068 i2=0u;
2069 goto l20;
2070 l18:
2071 i2 = i0!=(OOC_INT64)0;
2072
2073 l20:
2074 if (!i2) goto l49;
2075 l23_loop:
2076 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31827)))), &_td_OOC_SymbolTable__FieldDeclDesc);
2077 if (!i2) goto l31;
2078 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31877))+88);
2079 i2 = OOC_SymbolTable_TypeRules__IsAtomicType((OOC_SymbolTable__Type)i2);
2080 i2 = !i2;
2081 if (!i2) goto l31;
2082 result = 0u;
2083 i1=0u;
2084 l31:
2085 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 31987));
2086 nested = (OOC_SymbolTable__Item)i0;
2087 if (i1) goto l34;
2088 i2=0u;
2089 goto l36;
2090 l34:
2091 i2 = i0!=(OOC_INT64)0;
2092
2093 l36:
2094 if (i2) goto l23_loop;
2095 goto l49;
2096 l42:
2097 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31594))+80);
2098 i0 = OOC_SymbolTable_TypeRules__IsAtomicType((OOC_SymbolTable__Type)i0);
2099 result = i0;
2100
2101 goto l49;
2102 l44:
2103 i0 = *(OOC_INT16*)((_check_pointer(i0, 31520))+72);
2104 return (i0!=12);
2105 goto l49;
2106 l46:
2107 return 0u;
2108 goto l49;
2109 l48:
2110 result = 0u;
2111 l49:
2112 i0 = result;
2113 return i0;
2114 ;
2115 }
2116
OOC_SymbolTable_TypeRules__AllocateType(OOC_SymbolTable__Type type)2117 void OOC_SymbolTable_TypeRules__AllocateType(OOC_SymbolTable__Type type) {
2118 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
2119 OOC_INT32 i;
2120 OOC_INT16 align;
2121 OOC_INT32 size;
2122 OOC_INT16 maxAlign;
2123 OOC_SymbolTable__Item nested;
2124 OOC_INT16 fieldAlign;
2125
2126 i0 = (OOC_INT64)type;
2127 i1 = *(OOC_INT32*)((_check_pointer(i0, 33069))+64);
2128 i1 = i1==(-2);
2129 if (!i1) goto l97;
2130 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33225)))), &_td_OOC_SymbolTable__PointerDesc);
2131 if (i1) goto l95;
2132 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33603)))), &_td_OOC_SymbolTable__FormalParsDesc);
2133 if (i1) goto l82;
2134 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34010)))), &_td_OOC_SymbolTable__ArrayDesc);
2135 if (i1) goto l73;
2136 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34586)))), &_td_OOC_SymbolTable__RecordDesc);
2137 if (i1) goto l19;
2138 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37198)))), &_td_OOC_SymbolTable__TypeVarDesc);
2139 if (i1) goto l17;
2140 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37319)))), &_td_OOC_SymbolTable__QualTypeDesc);
2141 if (i1) goto l15;
2142 _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37313)))), 37313);
2143 goto l97;
2144 l15:
2145 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37362))+72);
2146 OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i1);
2147 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37419))+72);
2148 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37399))+72);
2149 i1 = *(OOC_INT16*)((_check_pointer(i1, 37428))+68);
2150 i2 = *(OOC_INT32*)((_check_pointer(i2, 37408))+64);
2151 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37386)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, i2, i1);
2152 goto l97;
2153 l17:
2154 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37240))+72);
2155 OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i1);
2156 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37291))+72);
2157 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37274))+72);
2158 i1 = *(OOC_INT16*)((_check_pointer(i1, 37297))+68);
2159 i2 = *(OOC_INT32*)((_check_pointer(i2, 37280))+64);
2160 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37261)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, i2, i1);
2161 goto l97;
2162 l19:
2163 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34691))+72);
2164 i1 = i1==(OOC_INT64)0;
2165 if (i1) goto l22;
2166 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35036))+72);
2167 OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i1);
2168 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35072))+72);
2169 i1 = *(OOC_INT16*)((_check_pointer(i1, 35082))+68);
2170 align = i1;
2171 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35113))+72);
2172 i2 = *(OOC_INT32*)((_check_pointer(i2, 35123))+64);
2173 size = i2;
2174
2175 goto l27;
2176 l22:
2177 align = 1;
2178 size = 0;
2179 i1 = *(OOC_UINT8*)((_check_pointer(i0, 34833))+108);
2180 if (i1) goto l25;
2181 i1=0;
2182 goto l26;
2183 l25:
2184 i1 = (OOC_INT64)OOC_SymbolTable__predefIdToType;
2185 i1 = _check_pointer(i1, 34961);
2186 i2 = OOC_ARRAY_LENGTH(i1, 0);
2187 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(12, i2, OOC_UINT8, 34961))*8);
2188 i1 = *(OOC_INT32*)((_check_pointer(i1, 34973))+64);
2189 size = i1;
2190
2191 l26:
2192 i2=i1;i1=1;
2193 l27:
2194 i3 = *(OOC_INT16*)((_check_pointer(i0, 35241))+110);
2195 i3 = i3==0;
2196 if (i3) goto l30;
2197 i3 = *(OOC_INT16*)((_check_pointer(i0, 35337))+110);
2198 maxAlign = i3;
2199
2200 goto l31;
2201 l30:
2202 maxAlign = 32767;
2203 i3=32767;
2204 l31:
2205 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35386))+16);
2206 nested = (OOC_SymbolTable__Item)i4;
2207 i5 = i4!=(OOC_INT64)0;
2208 if (i5) goto l34;
2209 {register OOC_INT64 h0=i1;i1=i2;i2=h0;}
2210 goto l64;
2211 l34:
2212 {register OOC_INT64 h0=i1;i1=i4;i4=i2;i2=h0;}
2213 l35_loop:
2214 i5 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 35454)))), &_td_OOC_SymbolTable__FieldDeclDesc);
2215 if (!i5) goto l59;
2216 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 35505))+88);
2217 OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i5);
2218 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 35546))+88);
2219 i5 = *(OOC_INT16*)((_check_pointer(i5, 35552))+68);
2220 fieldAlign = i5;
2221 i6 = i5>i3;
2222 if (!i6) goto l42;
2223 fieldAlign = i3;
2224 i5=i3;
2225 l42:
2226 i6 = i5>i2;
2227 if (!i6) goto l46;
2228 align = i5;
2229 i2=i5;
2230 l46:
2231 i6 = *(OOC_UINT8*)((_check_pointer(i0, 35874))+104);
2232 if (i6) goto l53;
2233 i6 = _mod(i4,i5);
2234 i7 = i6!=0;
2235 if (!i7) goto l52;
2236 i4 = i4+(i5-i6);
2237 size = i4;
2238
2239 l52:
2240 OOC_SymbolTable__FieldDeclDesc_SetOffset((OOC_SymbolTable__FieldDecl)i1, i4);
2241 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 36557))+88);
2242 i5 = *(OOC_INT32*)((_check_pointer(i5, 36563))+64);
2243 i4 = i4+i5;
2244 size = i4;
2245
2246 goto l59;
2247 l53:
2248 OOC_SymbolTable__FieldDeclDesc_SetOffset((OOC_SymbolTable__FieldDecl)i1, 0);
2249 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 36104))+88);
2250 i5 = *(OOC_INT32*)((_check_pointer(i5, 36110))+64);
2251 i5 = i5>i4;
2252 if (!i5) goto l59;
2253 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 36160))+88);
2254 i4 = *(OOC_INT32*)((_check_pointer(i4, 36166))+64);
2255 size = i4;
2256
2257 l59:
2258 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 36657));
2259 nested = (OOC_SymbolTable__Item)i1;
2260 i5 = i1!=(OOC_INT64)0;
2261 if (i5) goto l35_loop;
2262 l63:
2263 i1=i4;
2264 l64:
2265 i3 = _mod(i1,i2);
2266 i4 = i3!=0;
2267 if (i4) goto l67;
2268 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 36886)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, i1, i2);
2269 goto l68;
2270 l67:
2271 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 36810)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, ((i1+i2)-i3), i2);
2272 l68:
2273 i1 = OOC_SymbolTable_TypeRules__IsAtomicType((OOC_SymbolTable__Type)i0);
2274 if (!i1) goto l97;
2275 *(OOC_UINT8*)((_check_pointer(i0, 37154))+109) = 1u;
2276 goto l97;
2277 l73:
2278 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34051))+80);
2279 OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i1);
2280 i1 = *(OOC_UINT8*)((_check_pointer(i0, 34082))+72);
2281 if (i1) goto l76;
2282 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34275))+80);
2283 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34225))+80);
2284 i3 = *(OOC_INT32*)((_check_pointer(i0, 34212))+96);
2285 i2 = *(OOC_INT32*)((_check_pointer(i2, 34238))+64);
2286 i1 = *(OOC_INT16*)((_check_pointer(i1, 34288))+68);
2287 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34197)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, (i3*i2), i1);
2288 goto l77;
2289 l76:
2290 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34147))+80);
2291 i1 = *(OOC_INT16*)((_check_pointer(i1, 34160))+68);
2292 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34115)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, (-1), i1);
2293 l77:
2294 i1 = OOC_SymbolTable_TypeRules__IsAtomicType((OOC_SymbolTable__Type)i0);
2295 if (!i1) goto l97;
2296 *(OOC_UINT8*)((_check_pointer(i0, 34542))+112) = 1u;
2297 goto l97;
2298 l82:
2299 i1 = (OOC_INT64)OOC_SymbolTable__predefIdToType;
2300 i2 = _check_pointer(i1, 33724);
2301 i3 = OOC_ARRAY_LENGTH(i2, 0);
2302 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(12, i3, OOC_UINT8, 33724))*8);
2303 i1 = _check_pointer(i1, 33664);
2304 i3 = OOC_ARRAY_LENGTH(i1, 0);
2305 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(12, i3, OOC_UINT8, 33664))*8);
2306 i2 = *(OOC_INT16*)((_check_pointer(i2, 33736))+68);
2307 i1 = *(OOC_INT32*)((_check_pointer(i1, 33676))+64);
2308 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33635)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, i1, i2);
2309 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33798))+72);
2310 i1 = i1!=(OOC_INT64)0;
2311 if (!i1) goto l85;
2312 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33849))+72);
2313 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 33859))+88);
2314 OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i1);
2315 l85:
2316 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33912))+96);
2317 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 33920)), 0);
2318 i = 0;
2319 i2 = 0<i1;
2320 if (!i2) goto l97;
2321 i2=0;
2322 l88_loop:
2323 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33956))+96);
2324 i3 = _check_pointer(i3, 33964);
2325 i4 = OOC_ARRAY_LENGTH(i3, 0);
2326 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 33964))*8);
2327 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 33967))+88);
2328 OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i3);
2329 i2 = i2+1;
2330 i = i2;
2331 i3 = i2<i1;
2332 if (i3) goto l88_loop;
2333 goto l97;
2334 l95:
2335 i1 = (OOC_INT64)OOC_SymbolTable__predefIdToType;
2336 i2 = _check_pointer(i1, 33343);
2337 i3 = OOC_ARRAY_LENGTH(i2, 0);
2338 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(12, i3, OOC_UINT8, 33343))*8);
2339 i1 = _check_pointer(i1, 33283);
2340 i3 = OOC_ARRAY_LENGTH(i1, 0);
2341 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(12, i3, OOC_UINT8, 33283))*8);
2342 i2 = *(OOC_INT16*)((_check_pointer(i2, 33355))+68);
2343 i1 = *(OOC_INT32*)((_check_pointer(i1, 33295))+64);
2344 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33254)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, i1, i2);
2345 l97:
2346 return;
2347 ;
2348 }
2349
OOC_OOC_SymbolTable_TypeRules_init(void)2350 void OOC_OOC_SymbolTable_TypeRules_init(void) {
2351
2352 return;
2353 ;
2354 }
2355
OOC_OOC_SymbolTable_TypeRules_destroy(void)2356 void OOC_OOC_SymbolTable_TypeRules_destroy(void) {
2357 }
2358
2359 /* --- */
2360