1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3
4 #include "nimbase.h"
5 #include <string.h>
6 #undef LANGUAGE_C
7 #undef MIPSEB
8 #undef MIPSEL
9 #undef PPC
10 #undef R3000
11 #undef R4000
12 #undef i386
13 #undef linux
14 #undef mips
15 #undef near
16 #undef far
17 #undef powerpc
18 #undef unix
19 #define nimfr_(x, y)
20 #define nimln_(x, y)
21 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
22 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
23 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
24 typedef struct NimStringDesc NimStringDesc;
25 typedef struct TGenericSeq TGenericSeq;
26 typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
27 typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
28 typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
29 typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
30 typedef struct RootObj RootObj;
31 typedef struct TNimType TNimType;
32 typedef struct TNimNode TNimNode;
33 typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
34 typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
35 typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
36 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
37 typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
38 typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
39 typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
40 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
41 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
42 NU16 line;
43 NI16 col;
44 NI32 fileIndex;
45 };
46 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
47 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
48 struct TGenericSeq {
49 NI len;
50 NI reserved;
51 };
52 struct NimStringDesc {
53 TGenericSeq Sup;
54 NIM_CHAR data[SEQ_DECL_SIZE];
55 };
56 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
57 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
58 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
59 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
60 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
61 union{
62 struct {NI64 intVal;
63 } _kind_1;
64 struct {NF floatVal;
65 } _kind_2;
66 struct {NimStringDesc* strVal;
67 } _kind_3;
68 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
69 } _kind_4;
70 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
71 } _kind_5;
72 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
73 } _kind_6;
74 };
75 };
76 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
77 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
78 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
79 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
80 struct TNimType {
81 NI size;
82 NI align;
83 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
84 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
85 TNimType* base;
86 TNimNode* node;
87 void* finalizer;
88 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
89 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
90 };
91 struct RootObj {
92 TNimType* m_type;
93 };
94 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
95 NI32 module;
96 NI32 item;
97 };
98 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
99 RootObj Sup;
100 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
101 };
102 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
103 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
104 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
105 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
106 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
107 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
108 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
109 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
110 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
111 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
112 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
113 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
114 };
115 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
116 tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
117 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
118 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
119 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
120 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
121 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
122 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
123 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
124 NI64 size;
125 NI16 align;
126 NI16 paddingAtEnd;
127 NI16 lockLevel;
128 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
129 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
130 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
131 };
132 typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
133 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__NbBRo5rVxVVQby3QsoZkZQ) (tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
134 typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
135 struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
136 NI elems;
137 NI counter;
138 NI max;
139 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
140 tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
141 tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
142 };
143 typedef NU8 tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg;
144 typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
145 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
146 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
147 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
148 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
149 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
150 tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
151 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
152 union{
153 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
154 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
155 } _kind_1;
156 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
157 NI bitsize;
158 NI alignment;
159 } _kind_2;
160 };
161 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
162 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
163 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
164 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
165 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
166 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
167 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
168 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
169 NI position;
170 NI offset;
171 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
172 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
173 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
174 };
175 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
176 TGenericSeq Sup;
177 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
178 };
179 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
180 TGenericSeq Sup;
181 tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
182 };
183 struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
184 TGenericSeq Sup;
185 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
186 };
187 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsTyRef__types_648)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
188 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
189 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkIsolate__isolation95check_112)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
190 static N_INLINE(NIM_BOOL, isCompileTimeOnly__types_3528)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
191 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canAlias__isolation95check_99)(tyObject_TType__facALICuu8zUj0hjvbTLFg* arg, tyObject_TType__facALICuu8zUj0hjvbTLFg* ret);
192 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isValueOnlyType__isolation95check_89)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
193 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeFor__types_470)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__NbBRo5rVxVVQby3QsoZkZQ predicate);
194 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, wrap__isolation95check_92)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
195 static N_INLINE(void, nimZeroMem)(void* p, NI size);
196 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
197 static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
198 N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_16)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
199 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canAlias__isolation95check_5)(tyObject_TType__facALICuu8zUj0hjvbTLFg* arg, tyObject_TType__facALICuu8zUj0hjvbTLFg* ret, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker);
200 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__astalgo_402)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
201 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compareTypes__types_2668)(tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TType__facALICuu8zUj0hjvbTLFg* y, tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg cmp, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
202 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFinal__types_750)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
203 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canAliasN__isolation95check_9)(tyObject_TType__facALICuu8zUj0hjvbTLFg* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker);
204 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4832)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
205 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
206 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, lastSon__ast_3743)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
207 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsVariable__isolation95check_104)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
208 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_INLINE(NI,len__ast_3198)209 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
210 NI result;
211 NI T1_;
212 result = (NI)0;
213 T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
214 result = T1_;
215 return result;
216 }
N_INLINE(NIM_BOOL,isCompileTimeOnly__types_3528)217 static N_INLINE(NIM_BOOL, isCompileTimeOnly__types_3528)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
218 NIM_BOOL result;
219 result = (NIM_BOOL)0;
220 result = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
221 return result;
222 }
N_NIMCALL(NIM_BOOL,wrap__isolation95check_92)223 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, wrap__isolation95check_92)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
224 NIM_BOOL result;
225 result = (NIM_BOOL)0;
226 result = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
227 return result;
228 }
N_NIMCALL(NIM_BOOL,isValueOnlyType__isolation95check_89)229 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isValueOnlyType__isolation95check_89)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
230 NIM_BOOL result;
231 NIM_BOOL T1_;
232 result = (NIM_BOOL)0;
233 T1_ = (NIM_BOOL)0;
234 T1_ = searchTypeFor__types_470(t, wrap__isolation95check_92);
235 result = !(T1_);
236 return result;
237 }
N_INLINE(void,nimSetMem__systemZmemory_7)238 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
239 void* T1_;
240 T1_ = (void*)0;
241 T1_ = memset(a, v, ((size_t) (size)));
242 }
N_INLINE(void,nimZeroMem)243 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
244 nimSetMem__systemZmemory_7(p, ((int) 0), size);
245 }
N_INLINE(void,initIntSet__pureZcollectionsZintsets_238)246 static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
247 initPackedSet__pureZcollectionsZintsets_16(Result);
248 }
N_NIMCALL(NIM_BOOL,canAliasN__isolation95check_9)249 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canAliasN__isolation95check_9)(tyObject_TType__facALICuu8zUj0hjvbTLFg* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker) {
250 NIM_BOOL result;
251 { result = (NIM_BOOL)0;
252 switch ((*n).kind) {
253 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
254 {
255 {
256 NI i;
257 NI colontmp_;
258 NI i_2;
259 i = (NI)0;
260 colontmp_ = (NI)0;
261 colontmp_ = len__ast_3198(n);
262 i_2 = ((NI) 0);
263 {
264 while (1) {
265 if (!(i_2 < colontmp_)) goto LA4;
266 i = i_2;
267 result = canAliasN__isolation95check_9(arg, (*n)._kind_6.sons->data[i], marker);
268 {
269 if (!result) goto LA7_;
270 goto BeforeRet_;
271 }
272 LA7_: ;
273 i_2 += ((NI) 1);
274 } LA4: ;
275 }
276 }
277 }
278 break;
279 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
280 {
281 result = canAliasN__isolation95check_9(arg, (*n)._kind_6.sons->data[((NI) 0)], marker);
282 {
283 if (!result) goto LA12_;
284 goto BeforeRet_;
285 }
286 LA12_: ;
287 {
288 NI i_3;
289 NI colontmp__2;
290 NI i_4;
291 i_3 = (NI)0;
292 colontmp__2 = (NI)0;
293 colontmp__2 = len__ast_3198(n);
294 i_4 = ((NI) 1);
295 {
296 while (1) {
297 if (!(i_4 < colontmp__2)) goto LA16;
298 i_3 = i_4;
299 switch ((*(*n)._kind_6.sons->data[i_3]).kind) {
300 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
301 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
302 {
303 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
304 T18_ = NIM_NIL;
305 T18_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_3]);
306 result = canAliasN__isolation95check_9(arg, T18_, marker);
307 {
308 if (!result) goto LA21_;
309 goto BeforeRet_;
310 }
311 LA21_: ;
312 }
313 break;
314 default:
315 {
316 }
317 break;
318 }
319 i_4 += ((NI) 1);
320 } LA16: ;
321 }
322 }
323 }
324 break;
325 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
326 {
327 result = canAlias__isolation95check_5(arg, (*(*n)._kind_4.sym).typ, marker);
328 }
329 break;
330 default:
331 {
332 }
333 break;
334 }
335 }BeforeRet_: ;
336 return result;
337 }
N_INLINE(NI,len__ast_4002)338 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n) {
339 NI result;
340 NI T1_;
341 result = (NI)0;
342 T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
343 result = T1_;
344 return result;
345 }
N_NIMCALL(NIM_BOOL,canAlias__isolation95check_5)346 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canAlias__isolation95check_5)(tyObject_TType__facALICuu8zUj0hjvbTLFg* arg, tyObject_TType__facALICuu8zUj0hjvbTLFg* ret, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker) {
347 NIM_BOOL result;
348 { result = (NIM_BOOL)0;
349 {
350 tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym7_;
351 NIM_BOOL T3_;
352 xX60gensym7_ = ret;
353 T3_ = (NIM_BOOL)0;
354 T3_ = containsOrIncl__astalgo_402(marker, (NI)((NI)((NU64)(((NI) ((*xX60gensym7_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym7_).Sup.itemId.item))));
355 if (!T3_) goto LA4_;
356 result = NIM_FALSE;
357 goto BeforeRet_;
358 }
359 LA4_: ;
360 {
361 if (!((*ret).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*ret).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26))) goto LA8_;
362 result = NIM_FALSE;
363 goto BeforeRet_;
364 }
365 LA8_: ;
366 {
367 NIM_BOOL T12_;
368 T12_ = (NIM_BOOL)0;
369 T12_ = compareTypes__types_2668(arg, ret, ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 1), 0);
370 if (!T12_) goto LA13_;
371 result = NIM_TRUE;
372 goto BeforeRet_;
373 }
374 LA13_: ;
375 switch ((*ret).kind) {
376 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
377 {
378 {
379 NIM_BOOL T18_;
380 T18_ = (NIM_BOOL)0;
381 T18_ = isFinal__types_750(ret);
382 if (!T18_) goto LA19_;
383 result = canAliasN__isolation95check_9(arg, (*ret).n, marker);
384 {
385 NIM_BOOL T23_;
386 NIM_BOOL T24_;
387 NI T26_;
388 T23_ = (NIM_BOOL)0;
389 T24_ = (NIM_BOOL)0;
390 T24_ = !(result);
391 if (!(T24_)) goto LA25_;
392 T26_ = (NI)0;
393 T26_ = len__ast_4002(ret);
394 T24_ = (((NI) 0) < T26_);
395 LA25_: ;
396 T23_ = T24_;
397 if (!(T23_)) goto LA27_;
398 T23_ = !(((*ret).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
399 LA27_: ;
400 if (!T23_) goto LA28_;
401 result = canAlias__isolation95check_5(arg, (*ret).sons->data[((NI) 0)], marker);
402 }
403 LA28_: ;
404 }
405 goto LA16_;
406 LA19_: ;
407 {
408 result = NIM_TRUE;
409 }
410 LA16_: ;
411 }
412 break;
413 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
414 {
415 {
416 NI i;
417 NI colontmp_;
418 NI i_2;
419 i = (NI)0;
420 colontmp_ = (NI)0;
421 colontmp_ = len__ast_4002(ret);
422 i_2 = ((NI) 0);
423 {
424 while (1) {
425 if (!(i_2 < colontmp_)) goto LA34;
426 i = i_2;
427 result = canAlias__isolation95check_5(arg, (*ret).sons->data[i], marker);
428 {
429 if (!result) goto LA37_;
430 goto LA32;
431 }
432 LA37_: ;
433 i_2 += ((NI) 1);
434 } LA34: ;
435 }
436 } LA32: ;
437 }
438 break;
439 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
440 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
441 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
442 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
443 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
444 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
445 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
446 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
447 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
448 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
449 {
450 tyObject_TType__facALICuu8zUj0hjvbTLFg* T40_;
451 T40_ = NIM_NIL;
452 T40_ = lastSon__ast_3743(ret);
453 result = canAlias__isolation95check_5(arg, T40_, marker);
454 }
455 break;
456 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
457 {
458 result = ((*ret).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
459 }
460 break;
461 default:
462 {
463 result = NIM_FALSE;
464 }
465 break;
466 }
467 }BeforeRet_: ;
468 return result;
469 }
N_NIMCALL(NIM_BOOL,canAlias__isolation95check_99)470 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canAlias__isolation95check_99)(tyObject_TType__facALICuu8zUj0hjvbTLFg* arg, tyObject_TType__facALICuu8zUj0hjvbTLFg* ret) {
471 NIM_BOOL result;
472 result = (NIM_BOOL)0;
473 {
474 NIM_BOOL T3_;
475 T3_ = (NIM_BOOL)0;
476 T3_ = isValueOnlyType__isolation95check_89(arg);
477 if (!T3_) goto LA4_;
478 result = NIM_FALSE;
479 }
480 goto LA1_;
481 LA4_: ;
482 {
483 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
484 nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
485 initIntSet__pureZcollectionsZintsets_238((&marker));
486 result = canAlias__isolation95check_5(arg, ret, (&marker));
487 }
488 LA1_: ;
489 return result;
490 }
N_INLINE(NI,safeLen__ast_3191)491 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
492 NI result;
493 result = (NI)0;
494 {
495 if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
496 result = ((NI) 0);
497 }
498 goto LA1_;
499 LA3_: ;
500 {
501 result = len__ast_3198(n);
502 }
503 LA1_: ;
504 return result;
505 }
N_NIMCALL(NIM_BOOL,containsVariable__isolation95check_104)506 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsVariable__isolation95check_104)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
507 NIM_BOOL result;
508 { result = (NIM_BOOL)0;
509 switch ((*n).kind) {
510 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
511 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
512 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
513 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
514 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
515 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
516 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102):
517 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
518 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
519 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
520 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
521 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
522 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 158) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
523 {
524 result = NIM_FALSE;
525 }
526 break;
527 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
528 {
529 result = ((2101032 &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0);
530 }
531 break;
532 default:
533 {
534 {
535 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ch;
536 ch = NIM_NIL;
537 {
538 NI i;
539 NI colontmp_;
540 NI i_2;
541 i = (NI)0;
542 colontmp_ = (NI)0;
543 colontmp_ = safeLen__ast_3191(n);
544 i_2 = ((NI) 0);
545 {
546 while (1) {
547 if (!(i_2 < colontmp_)) goto LA7;
548 i = i_2;
549 ch = (*n)._kind_6.sons->data[i];
550 {
551 NIM_BOOL T10_;
552 T10_ = (NIM_BOOL)0;
553 T10_ = containsVariable__isolation95check_104(ch);
554 if (!T10_) goto LA11_;
555 result = NIM_TRUE;
556 goto BeforeRet_;
557 }
558 LA11_: ;
559 i_2 += ((NI) 1);
560 } LA7: ;
561 }
562 }
563 }
564 result = NIM_FALSE;
565 }
566 break;
567 }
568 }BeforeRet_: ;
569 return result;
570 }
N_NIMCALL(NIM_BOOL,checkIsolate__isolation95check_112)571 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkIsolate__isolation95check_112)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
572 NIM_BOOL result;
573 { result = (NIM_BOOL)0;
574 {
575 NIM_BOOL T3_;
576 T3_ = (NIM_BOOL)0;
577 T3_ = containsTyRef__types_648((*n).typ);
578 if (!T3_) goto LA4_;
579 switch ((*n).kind) {
580 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
581 {
582 result = NIM_TRUE;
583 }
584 break;
585 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
586 {
587 {
588 if (!!((((*(*(*n)._kind_6.sons->data[((NI) 0)]).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0))) goto LA10_;
589 result = NIM_FALSE;
590 goto BeforeRet_;
591 }
592 LA10_: ;
593 {
594 NI i;
595 NI colontmp_;
596 NI i_2;
597 i = (NI)0;
598 colontmp_ = (NI)0;
599 colontmp_ = len__ast_3198(n);
600 i_2 = ((NI) 1);
601 {
602 while (1) {
603 if (!(i_2 < colontmp_)) goto LA14;
604 i = i_2;
605 {
606 NIM_BOOL T17_;
607 T17_ = (NIM_BOOL)0;
608 T17_ = checkIsolate__isolation95check_112((*n)._kind_6.sons->data[i]);
609 if (!T17_) goto LA18_;
610 }
611 goto LA15_;
612 LA18_: ;
613 {
614 tyObject_TType__facALICuu8zUj0hjvbTLFg* argType;
615 argType = (*(*n)._kind_6.sons->data[i]).typ;
616 {
617 NIM_BOOL T23_;
618 NIM_BOOL T24_;
619 NIM_BOOL T26_;
620 T23_ = (NIM_BOOL)0;
621 T24_ = (NIM_BOOL)0;
622 T24_ = !((argType == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
623 if (!(T24_)) goto LA25_;
624 T26_ = (NIM_BOOL)0;
625 T26_ = isCompileTimeOnly__types_3528(argType);
626 T24_ = !(T26_);
627 LA25_: ;
628 T23_ = T24_;
629 if (!(T23_)) goto LA27_;
630 T23_ = containsTyRef__types_648(argType);
631 LA27_: ;
632 if (!T23_) goto LA28_;
633 {
634 NIM_BOOL T32_;
635 T32_ = (NIM_BOOL)0;
636 T32_ = canAlias__isolation95check_99(argType, (*n).typ);
637 if (T32_) goto LA33_;
638 T32_ = containsVariable__isolation95check_104((*n)._kind_6.sons->data[i]);
639 LA33_: ;
640 if (!T32_) goto LA34_;
641 result = NIM_FALSE;
642 goto BeforeRet_;
643 }
644 LA34_: ;
645 }
646 LA28_: ;
647 }
648 LA15_: ;
649 i_2 += ((NI) 1);
650 } LA14: ;
651 }
652 }
653 result = NIM_TRUE;
654 }
655 break;
656 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
657 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
658 {
659 {
660 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
661 it = NIM_NIL;
662 {
663 NI i_3;
664 NI colontmp__2;
665 NI i_4;
666 i_3 = (NI)0;
667 colontmp__2 = (NI)0;
668 colontmp__2 = safeLen__ast_3191(n);
669 i_4 = ((NI) 0);
670 {
671 while (1) {
672 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T41_;
673 if (!(i_4 < colontmp__2)) goto LA40;
674 i_3 = i_4;
675 it = (*n)._kind_6.sons->data[i_3];
676 T41_ = NIM_NIL;
677 T41_ = lastSon__ast_4832(it);
678 result = checkIsolate__isolation95check_112(T41_);
679 {
680 if (!!(result)) goto LA44_;
681 goto LA37;
682 }
683 LA44_: ;
684 i_4 += ((NI) 1);
685 } LA40: ;
686 }
687 }
688 } LA37: ;
689 }
690 break;
691 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
692 {
693 {
694 NI i_5;
695 NI colontmp__3;
696 NI i_6;
697 i_5 = (NI)0;
698 colontmp__3 = (NI)0;
699 colontmp__3 = len__ast_3198(n);
700 i_6 = ((NI) 1);
701 {
702 while (1) {
703 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T50_;
704 if (!(i_6 < colontmp__3)) goto LA49;
705 i_5 = i_6;
706 T50_ = NIM_NIL;
707 T50_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_5]);
708 result = checkIsolate__isolation95check_112(T50_);
709 {
710 if (!!(result)) goto LA53_;
711 goto LA47;
712 }
713 LA53_: ;
714 i_6 += ((NI) 1);
715 } LA49: ;
716 }
717 } LA47: ;
718 }
719 break;
720 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
721 {
722 result = NIM_TRUE;
723 {
724 NI i_7;
725 NI colontmp__4;
726 NI i_8;
727 i_7 = (NI)0;
728 colontmp__4 = (NI)0;
729 colontmp__4 = len__ast_3198(n);
730 i_8 = ((NI) 1);
731 {
732 while (1) {
733 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T59_;
734 if (!(i_8 < colontmp__4)) goto LA58;
735 i_7 = i_8;
736 T59_ = NIM_NIL;
737 T59_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_7]);
738 result = checkIsolate__isolation95check_112(T59_);
739 {
740 if (!!(result)) goto LA62_;
741 goto LA56;
742 }
743 LA62_: ;
744 i_8 += ((NI) 1);
745 } LA58: ;
746 }
747 } LA56: ;
748 }
749 break;
750 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
751 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
752 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
753 {
754 {
755 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it_2;
756 it_2 = NIM_NIL;
757 {
758 NI i_9;
759 NI colontmp__5;
760 NI i_10;
761 i_9 = (NI)0;
762 colontmp__5 = (NI)0;
763 colontmp__5 = safeLen__ast_3191(n);
764 i_10 = ((NI) 0);
765 {
766 while (1) {
767 if (!(i_10 < colontmp__5)) goto LA68;
768 i_9 = i_10;
769 it_2 = (*n)._kind_6.sons->data[i_9];
770 result = checkIsolate__isolation95check_112(it_2);
771 {
772 if (!!(result)) goto LA71_;
773 goto LA65;
774 }
775 LA71_: ;
776 i_10 += ((NI) 1);
777 } LA68: ;
778 }
779 }
780 } LA65: ;
781 }
782 break;
783 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
784 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
785 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
786 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
787 {
788 result = checkIsolate__isolation95check_112((*n)._kind_6.sons->data[((NI) 1)]);
789 }
790 break;
791 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
792 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
793 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
794 {
795 result = checkIsolate__isolation95check_112((*n)._kind_6.sons->data[((NI) 0)]);
796 }
797 break;
798 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
799 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
800 {
801 {
802 NI T78_;
803 NI T81_;
804 T78_ = (NI)0;
805 T78_ = len__ast_3198(n);
806 if (!(((NI) 0) < T78_)) goto LA79_;
807 T81_ = (NI)0;
808 T81_ = len__ast_3198(n);
809 result = checkIsolate__isolation95check_112((*n)._kind_6.sons->data[(NI)(T81_ - ((NI) 1))]);
810 }
811 goto LA76_;
812 LA79_: ;
813 {
814 result = NIM_FALSE;
815 }
816 LA76_: ;
817 }
818 break;
819 default:
820 {
821 result = NIM_FALSE;
822 }
823 break;
824 }
825 }
826 goto LA1_;
827 LA4_: ;
828 {
829 result = NIM_TRUE;
830 }
831 LA1_: ;
832 }BeforeRet_: ;
833 return result;
834 }
835