1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
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_TContext__C9bB2okDBl3OKGUBiY5k5Ug tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug;
23 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
24 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
25 typedef struct NimStringDesc NimStringDesc;
26 typedef struct TGenericSeq TGenericSeq;
27 typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
28 typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
29 typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
30 typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
31 typedef struct RootObj RootObj;
32 typedef struct TNimType TNimType;
33 typedef struct TNimNode TNimNode;
34 typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
35 typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
36 typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
37 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
38 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
39 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
40 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
41 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
42 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
43 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
44 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
45 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
46 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
47 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
48 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
49 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
50 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
51 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
52 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
53 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
54 typedef struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw;
55 typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
56 typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
57 typedef struct tySequence__eiMlYcU7NrAOGD2H36QOOQ tySequence__eiMlYcU7NrAOGD2H36QOOQ;
58 typedef struct tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ;
59 typedef struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg;
60 typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ;
61 typedef struct tySequence__oYkV9aFZe0MXcEAprJaOUsA tySequence__oYkV9aFZe0MXcEAprJaOUsA;
62 typedef struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q;
63 typedef struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA tySequence__Mh9agqM29bm9aP5AUL1x7dZGA;
64 typedef struct tySequence__arD7Tw6eD6lvOczWZl9buNg tySequence__arD7Tw6eD6lvOczWZl9buNg;
65 typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
66 typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
67 typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
68 typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
69 typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
70 typedef struct tySequence__jWKvSdankQPoT5bw9cBU9aiw tySequence__jWKvSdankQPoT5bw9cBU9aiw;
71 typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
72 typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
73 typedef struct tySequence__xSqu3cxq5WeFlOO3YgE6yA tySequence__xSqu3cxq5WeFlOO3YgE6yA;
74 typedef struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w;
75 typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw;
76 typedef struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w;
77 typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
78 typedef struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ;
79 typedef struct tySequence__Hkw5zrAn53wlKDHdJF1GFA tySequence__Hkw5zrAn53wlKDHdJF1GFA;
80 typedef struct tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg;
81 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
82 typedef struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ;
83 typedef struct tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w;
84 typedef struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg;
85 typedef struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ;
86 typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
87 typedef struct tyTuple__KNXySARiHvEh2wA9asnyYmw tyTuple__KNXySARiHvEh2wA9asnyYmw;
88 typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
89 typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
90 typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
91 typedef struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag tyTuple__Y6Ewh3MCxsjd1bsriN6Gag;
92 typedef struct tySequence__vGU8AyGT6KxtLJwEg0BpNw tySequence__vGU8AyGT6KxtLJwEg0BpNw;
93 typedef struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw tyTuple__KvKIqRIx9anKcDMu8DPSkHw;
94 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
95 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
96 NU16 line;
97 NI16 col;
98 NI32 fileIndex;
99 };
100 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
101 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
102 struct TGenericSeq {
103 NI len;
104 NI reserved;
105 };
106 struct NimStringDesc {
107   TGenericSeq Sup;
108 NIM_CHAR data[SEQ_DECL_SIZE];
109 };
110 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
111 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
112 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
113 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
114 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
115 union{
116 struct {NI64 intVal;
117 } _kind_1;
118 struct {NF floatVal;
119 } _kind_2;
120 struct {NimStringDesc* strVal;
121 } _kind_3;
122 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
123 } _kind_4;
124 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
125 } _kind_5;
126 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
127 } _kind_6;
128 };
129 };
130 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
131 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
132 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
133 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
134 struct TNimType {
135 NI size;
136 NI align;
137 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
138 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
139 TNimType* base;
140 TNimNode* node;
141 void* finalizer;
142 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
143 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
144 };
145 struct RootObj {
146 TNimType* m_type;
147 };
148 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
149 NI32 module;
150 NI32 item;
151 };
152 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
153   RootObj Sup;
154 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
155 };
156 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
157 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
158 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
159 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
160 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
161 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
162 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
163 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
164 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
165 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
166 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
167 };
168 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
169   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
170 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
171 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
172 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
173 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
174 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
175 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
176 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
177 NI64 size;
178 NI16 align;
179 NI16 paddingAtEnd;
180 NI16 lockLevel;
181 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
182 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
183 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
184 };
185 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
186 NI refcount;
187 TNimType* typ;
188 };
189 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
190 void* bottom;
191 };
192 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
193 NI len;
194 NI cap;
195 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
196 };
197 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
198 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
199 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
200 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
201 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
202 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
203 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
204 };
205 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
206 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
207 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
208 NI key;
209 NI upperBound;
210 NI level;
211 };
212 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
213 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
214 NI Field1;
215 };
216 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
217 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
218 NI len;
219 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
220 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
221 };
222 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
223 NI minLargeObj;
224 NI maxLargeObj;
225 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
226 NU32 flBitmap;
227 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
228 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
229 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
230 NI currMem;
231 NI maxMem;
232 NI freeMem;
233 NI occ;
234 NI lastSize;
235 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
236 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
237 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
238 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
239 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
240 NIM_BOOL locked;
241 NIM_BOOL blockChunkSizeIncrease;
242 NI nextChunkSize;
243 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
244 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
245 };
246 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
247 NI stackScans;
248 NI cycleCollections;
249 NI maxThreshold;
250 NI maxStackSize;
251 NI maxStackCells;
252 NI cycleTableSize;
253 NI64 maxPause;
254 };
255 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
256 NI counter;
257 NI max;
258 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
259 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
260 };
261 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
262 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
263 NI cycleThreshold;
264 NI zctThreshold;
265 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
266 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
267 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
268 NI recGcLock;
269 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
270 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
271 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
272 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
273 NI gcThreadId;
274 };
275 struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
276   RootObj Sup;
277 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
278 };
279 typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__d88NmFOoQ1OEoX9af4f9aptg[38];
280 struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q {
281 NI counter;
282 tySequence__Mh9agqM29bm9aP5AUL1x7dZGA* data;
283 };
284 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__RcJNn9bSvWdJgUmA1O6sbHA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
285 typedef NU32 tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ;
286 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__39auogS0nN05zO6JrT7za9cQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
287 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__DZXD9cPwIfL76eNszoUR9aVA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
288 typedef struct {
289 N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
290 void* ClE_0;
291 } tyProc__7JwrY3AhkVNlleAJXClX9cw;
292 typedef NU32 tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
293 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__qlV9aWvA5wrWVg9bI5PqwJyA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
294 typedef N_NIMCALL_PTR(tyObject_TType__facALICuu8zUj0hjvbTLFg*, tyProc__IDzB9bjws1yntQXPpMRrBvA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
295 typedef struct {
296 N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
297 void* ClE_0;
298 } tyProc__3cacbJ4la9bDJNibHybQSnA;
299 typedef struct {
300 N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, void* ClE_0);
301 void* ClE_0;
302 } tyProc__fMj9boIZZOt9cLWRnD3rtKhA;
303 typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
304 struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
305 NI elems;
306 NI counter;
307 NI max;
308 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
309 tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
310 tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
311 };
312 struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
313 NI counter;
314 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data;
315 };
316 typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
317 typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dc, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, NI col);
318 typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
319 struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w {
320 tySequence__Bis5AbpONWcIRrPyPJS8Yw* data;
321 NI counter;
322 };
323 struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w {
324 tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
325 NI counter;
326 };
327 struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ {
328 tySequence__Hkw5zrAn53wlKDHdJF1GFA* data;
329 NI counter;
330 };
331 struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug {
332   tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
333 tyObject_TType__facALICuu8zUj0hjvbTLFg* enforceVoidContext;
334 tyObject_TType__facALICuu8zUj0hjvbTLFg* voidType;
335 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
336 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* currentScope;
337 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* moduleScope;
338 tySequence__eiMlYcU7NrAOGD2H36QOOQ* imports;
339 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* topLevelScope;
340 tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p;
341 tyArray__d88NmFOoQ1OEoX9af4f9aptg intTypeCache;
342 tyObject_TType__facALICuu8zUj0hjvbTLFg* nilTypeCache;
343 tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* matchedConcept;
344 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* friendModules;
345 NI instCounter;
346 NI* templInstCounter;
347 NI inGenericContext;
348 NI inStaticContext;
349 NI inUnrolledContext;
350 NI compilesContextId;
351 NI compilesContextIdGenerator;
352 NI inGenericInst;
353 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* converters;
354 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* patterns;
355 tySequence__oYkV9aFZe0MXcEAprJaOUsA* optionStack;
356 tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMapping;
357 tySequence__arD7Tw6eD6lvOczWZl9buNg* libs;
358 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstExpr;
359 tyProc__39auogS0nN05zO6JrT7za9cQ semExpr;
360 tyProc__39auogS0nN05zO6JrT7za9cQ semTryExpr;
361 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semTryConstExpr;
362 tyProc__DZXD9cPwIfL76eNszoUR9aVA computeRequiresInit;
363 tyProc__7JwrY3AhkVNlleAJXClX9cw hasUnresolvedArgs;
364 tyProc__39auogS0nN05zO6JrT7za9cQ semOperand;
365 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstBoolExpr;
366 tyProc__qlV9aWvA5wrWVg9bI5PqwJyA semOverloadedCall;
367 tyProc__IDzB9bjws1yntQXPpMRrBvA semTypeNode;
368 tyProc__3cacbJ4la9bDJNibHybQSnA semInferredLambda;
369 tyProc__fMj9boIZZOt9cLWRnD3rtKhA semGenerateInstance;
370 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA includedFiles;
371 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA pureEnumFields;
372 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA userPragmas;
373 tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* evalContext;
374 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA unknownIdents;
375 tySequence__jWKvSdankQPoT5bw9cBU9aiw* generics;
376 NI topStmts;
377 NI lastGenericIdx;
378 NI hloLoopDetector;
379 NI inParallelStmt;
380 tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ instTypeBoundOp;
381 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* selfName;
382 tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
383 tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
384 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA signatures;
385 NimStringDesc* recursiveDep;
386 NIM_BOOL suggestionsMade;
387 NIM_BOOL isAmbiguous;
388 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
389 NI inTypeContext;
390 NI inConceptDecl;
391 tySequence__xSqu3cxq5WeFlOO3YgE6yA* unusedImports;
392 tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w exportIndirections;
393 tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w importModuleMap;
394 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastTLineInfo;
395 tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ sideEffects;
396 NI inUncheckedAssignSection;
397 };
398 struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw {
399 NI depthLevel;
400 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA symbols;
401 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* parent;
402 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* allowPrivateAccess;
403 };
404 struct tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg {
405 NI h;
406 };
407 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
408 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
409 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
410 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
411 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
412   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
413 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
414 union{
415 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
416 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
417 } _kind_1;
418 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
419 NI bitsize;
420 NI alignment;
421 } _kind_2;
422 };
423 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
424 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
425 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
426 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
427 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
428 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
429 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
430 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
431 NI position;
432 NI offset;
433 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
434 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
435 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
436 };
437 typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
438 struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q {
439 NI32 module;
440 NI32 symId;
441 NI32 typeId_0;
442 NIM_BOOL sealed;
443 };
444 typedef NU8 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ;
445 struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ {
446 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
447 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ mode;
448 union{
449 struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA imported;
450 } _mode_2;
451 struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA exceptSet;
452 } _mode_3;
453 };
454 };
455 struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg {
456 tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key;
457 RootObj* val;
458 };
459 struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ {
460 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genericSym;
461 tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
462 };
463 struct tyTuple__KNXySARiHvEh2wA9asnyYmw {
464 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
465 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field1;
466 };
467 struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
468 NI Field0;
469 NI Field1;
470 };
471 struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
472 NI Field0;
473 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
474 };
475 struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
476 NI Field0;
477 NI Field1;
478 NI Field2;
479 };
480 struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw {
481 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
482 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
483 };
484 struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag {
485 NI Field0;
486 NI Field1;
487 tySequence__vGU8AyGT6KxtLJwEg0BpNw* Field2;
488 };
489 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
490   TGenericSeq Sup;
491   tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
492 };
493 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
494   TGenericSeq Sup;
495   tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
496 };
497 struct tySequence__eiMlYcU7NrAOGD2H36QOOQ {
498   TGenericSeq Sup;
499   tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ data[SEQ_DECL_SIZE];
500 };
501 struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ {
502   TGenericSeq Sup;
503   tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE];
504 };
505 struct tySequence__oYkV9aFZe0MXcEAprJaOUsA {
506   TGenericSeq Sup;
507   tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* data[SEQ_DECL_SIZE];
508 };
509 struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA {
510   TGenericSeq Sup;
511   tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE];
512 };
513 struct tySequence__arD7Tw6eD6lvOczWZl9buNg {
514   TGenericSeq Sup;
515   tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* data[SEQ_DECL_SIZE];
516 };
517 struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
518   TGenericSeq Sup;
519   tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
520 };
521 struct tySequence__jWKvSdankQPoT5bw9cBU9aiw {
522   TGenericSeq Sup;
523   tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ data[SEQ_DECL_SIZE];
524 };
525 struct tySequence__xSqu3cxq5WeFlOO3YgE6yA {
526   TGenericSeq Sup;
527   tyTuple__KNXySARiHvEh2wA9asnyYmw data[SEQ_DECL_SIZE];
528 };
529 struct tySequence__Bis5AbpONWcIRrPyPJS8Yw {
530   TGenericSeq Sup;
531   tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE];
532 };
533 struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
534   TGenericSeq Sup;
535   tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
536 };
537 struct tySequence__vGU8AyGT6KxtLJwEg0BpNw {
538   TGenericSeq Sup;
539   tyTuple__KvKIqRIx9anKcDMu8DPSkHw data[SEQ_DECL_SIZE];
540 };
541 struct tySequence__Hkw5zrAn53wlKDHdJF1GFA {
542   TGenericSeq Sup;
543   tyTuple__Y6Ewh3MCxsjd1bsriN6Gag data[SEQ_DECL_SIZE];
544 };
545 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newTypeS__semdata_733)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
546 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__ast_3378)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
547 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
548 static N_INLINE(void, asgnRef)(void** dest, void* src);
549 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
550 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
551 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
552 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
553 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
554 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
555 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
556 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
557 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getCurrOwner__semdata_315)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
558 static N_INLINE(void, nimZeroMem)(void* p, NI size);
559 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
560 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, initTabIter__astalgo_3777)(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg* ti, tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab);
561 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
562 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newSym__ast_3445)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options);
563 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
564 N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
565 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3716)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
566 N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__magicsys_136)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* id);
567 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3719)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
568 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeref__lowerings_11)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
569 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, nextIter__astalgo_3762)(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg* ti, tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab);
570 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__tdBuY2ZF9bI7pxZ6PYkeTmw_2 = {
571 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
572 0x00}
573 ;
574 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__tdBuY2ZF9bI7pxZ6PYkeTmw_3 = {
575 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
576 0x00}
577 ;
578 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__tdBuY2ZF9bI7pxZ6PYkeTmw_4 = {
579 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
580 0x00}
581 ;
582 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
N_INLINE(NI,pluspercent___system_696)583 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
584 	NI result;
585 	result = (NI)0;
586 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
587 	return result;
588 }
N_INLINE(void,incRef__system_5308)589 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
590 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
591 }
N_INLINE(NI,minuspercent___system_716)592 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
593 	NI result;
594 	result = (NI)0;
595 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
596 	return result;
597 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5270)598 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
599 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
600 	NI T1_;
601 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
602 	T1_ = (NI)0;
603 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
604 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
605 	return result;
606 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)607 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
608 	NIM_BOOL result;
609 	result = (NIM_BOOL)0;
610 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
611 	return result;
612 }
N_INLINE(void,rtlAddZCT__system_5313)613 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
614 	addZCT__system_5264((&gch__system_5217.zct), c);
615 }
N_INLINE(void,decRef__system_5315)616 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
617 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
618 	{
619 		NIM_BOOL T3_;
620 		T3_ = (NIM_BOOL)0;
621 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
622 		if (!T3_) goto LA4_;
623 		rtlAddZCT__system_5313(c);
624 	}
625 	LA4_: ;
626 }
N_INLINE(void,asgnRef)627 static N_INLINE(void, asgnRef)(void** dest, void* src) {
628 	{
629 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
630 		if (!!((src == NIM_NIL))) goto LA3_;
631 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
632 		T5_ = usrToCell__system_5270(src);
633 		incRef__system_5308(T5_);
634 	}
635 	LA3_: ;
636 	{
637 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
638 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
639 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
640 		T10_ = usrToCell__system_5270((*dest));
641 		decRef__system_5315(T10_);
642 	}
643 	LA8_: ;
644 	(*dest) = src;
645 }
N_INLINE(void,nimSetMem__systemZmemory_7)646 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
647 	void* T1_;
648 	T1_ = (void*)0;
649 	T1_ = memset(a, v, ((size_t) (size)));
650 }
N_INLINE(void,nimZeroMem)651 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
652 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
653 }
N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g,nextSymId__ast_3132)654 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
655 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
656 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
657 	(*x).symId += ((NI) 1);
658 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
659 	result.module = (*x).module;
660 	result.item = (*x).symId;
661 	return result;
662 }
N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newDeref__lowerings_11)663 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeref__lowerings_11)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
664 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
665 	result = NIM_NIL;
666 	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info, (*(*n).typ).sons->data[((NI) 0)]);
667 	add__ast_4797(result, n);
668 	return result;
669 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,semLocals__pluginsZlocals_7)670 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLocals__pluginsZlocals_7)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
671 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
672 	NI counter;
673 	tyObject_TType__facALICuu8zUj0hjvbTLFg* tupleType;
674 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
675 	result = NIM_NIL;
676 	counter = ((NI) 0);
677 	tupleType = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), c);
678 	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37), (*n).info, tupleType);
679 	asgnRef((void**) (&(*tupleType).n), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info));
680 	owner = getCurrOwner__semdata_315(c);
681 	{
682 		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
683 		scope = NIM_NIL;
684 		{
685 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* s;
686 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
687 			s = NIM_NIL;
688 			current = (*c).currentScope;
689 			{
690 				while (1) {
691 					if (!!((current == ((tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*) NIM_NIL)))) goto LA4;
692 					s = current;
693 					{
694 						if (!(s == (*c).topLevelScope)) goto LA7_;
695 						goto LA2;
696 					}
697 					LA7_: ;
698 					scope = s;
699 					{
700 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it;
701 						tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg it_2;
702 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
703 						it = NIM_NIL;
704 						nimZeroMem((void*)(&it_2), sizeof(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg));
705 						s_2 = initTabIter__astalgo_3777((&it_2), (*scope).symbols);
706 						{
707 							while (1) {
708 								if (!!((s_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA11;
709 								it = s_2;
710 								{
711 									NIM_BOOL T14_;
712 									tyObject_TType__facALICuu8zUj0hjvbTLFg* T16_;
713 									T14_ = (NIM_BOOL)0;
714 									T14_ = ((2099976 &((NU32)1<<((NU)((*it).kind)&31U)))!=0);
715 									if (!(T14_)) goto LA15_;
716 									T16_ = NIM_NIL;
717 									T16_ = skipTypes__ast_3735((*it).typ, TM__tdBuY2ZF9bI7pxZ6PYkeTmw_2);
718 									T14_ = !(((*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48) || (*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60) || (*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6) || (*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7) || (*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3)));
719 									LA15_: ;
720 									if (!T14_) goto LA17_;
721 									{
722 										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field;
723 										tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T23_;
724 										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
725 										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
726 										if (!((*it).owner == owner)) goto LA21_;
727 										T23_ = nextSymId__ast_3132((*c).Sup.idgen);
728 										field = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19), (*it).name, T23_, owner, (*n).info, 0);
729 										asgnRef((void**) (&(*field).typ), skipTypes__ast_3735((*it).typ, TM__tdBuY2ZF9bI7pxZ6PYkeTmw_3));
730 										(*field).position = counter;
731 										counter += ((NI) 1);
732 										T24_ = NIM_NIL;
733 										T24_ = newSymNode__ast_3716(field);
734 										add__ast_4797((*tupleType).n, T24_);
735 										addSonSkipIntLit__magicsys_136(tupleType, (*field).typ, (*c).Sup.idgen);
736 										a = newSymNode__ast_3719(it, (*result).info);
737 										{
738 											tyObject_TType__facALICuu8zUj0hjvbTLFg* T27_;
739 											T27_ = NIM_NIL;
740 											T27_ = skipTypes__ast_3735((*it).typ, TM__tdBuY2ZF9bI7pxZ6PYkeTmw_4);
741 											if (!((*T27_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA28_;
742 											a = newDeref__lowerings_11(a);
743 										}
744 										LA28_: ;
745 										add__ast_4797(result, a);
746 									}
747 									LA21_: ;
748 								}
749 								LA17_: ;
750 								s_2 = nextIter__astalgo_3762((&it_2), (*scope).symbols);
751 							} LA11: ;
752 						}
753 					}
754 					current = (*current).parent;
755 				} LA4: ;
756 			}
757 		} LA2: ;
758 	}
759 	return result;
760 }
761