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 NimStringDesc NimStringDesc;
22 typedef struct TGenericSeq TGenericSeq;
23 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
24 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
25 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
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 tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
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 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
36 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
37 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
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 struct TGenericSeq {
55 NI len;
56 NI reserved;
57 };
58 struct NimStringDesc {
59   TGenericSeq Sup;
60 NIM_CHAR data[SEQ_DECL_SIZE];
61 };
62 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
63 NU16 line;
64 NI16 col;
65 NI32 fileIndex;
66 };
67 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
68 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
69 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
70 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
71 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
72 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
73 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
74 union{
75 struct {NI64 intVal;
76 } _kind_1;
77 struct {NF floatVal;
78 } _kind_2;
79 struct {NimStringDesc* strVal;
80 } _kind_3;
81 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
82 } _kind_4;
83 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
84 } _kind_5;
85 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
86 } _kind_6;
87 };
88 };
89 struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
90 NI id;
91 NimStringDesc* s;
92 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
93 NI h;
94 };
95 typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
96 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
97 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
98 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
99 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
100 struct TNimType {
101 NI size;
102 NI align;
103 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
104 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
105 TNimType* base;
106 TNimNode* node;
107 void* finalizer;
108 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
109 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
110 };
111 struct RootObj {
112 TNimType* m_type;
113 };
114 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
115 NI32 module;
116 NI32 item;
117 };
118 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
119   RootObj Sup;
120 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
121 };
122 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
123 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
124 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
125 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
126 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
127 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
128 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
129 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
130 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
131 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
132 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
133 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
134 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
135 };
136 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
137   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
138 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
139 union{
140 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
141 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
142 } _kind_1;
143 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
144 NI bitsize;
145 NI alignment;
146 } _kind_2;
147 };
148 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
149 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
150 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
151 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
152 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
153 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
154 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
155 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
156 NI position;
157 NI offset;
158 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
159 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
160 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
161 };
162 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
163 struct TNimNode {
164 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
165 NI offset;
166 TNimType* typ;
167 NCSTRING name;
168 NI len;
169 TNimNode** sons;
170 };
171 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
172 NI refcount;
173 TNimType* typ;
174 };
175 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
176 void* bottom;
177 };
178 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
179 NI len;
180 NI cap;
181 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
182 };
183 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
184 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
185 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
186 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
187 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
188 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
189 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
190 };
191 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
192 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
193 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
194 NI key;
195 NI upperBound;
196 NI level;
197 };
198 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
199 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
200 NI Field1;
201 };
202 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
203 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
204 NI len;
205 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
206 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
207 };
208 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
209 NI minLargeObj;
210 NI maxLargeObj;
211 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
212 NU32 flBitmap;
213 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
214 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
215 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
216 NI currMem;
217 NI maxMem;
218 NI freeMem;
219 NI occ;
220 NI lastSize;
221 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
222 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
223 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
224 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
225 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
226 NIM_BOOL locked;
227 NIM_BOOL blockChunkSizeIncrease;
228 NI nextChunkSize;
229 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
230 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
231 };
232 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
233 NI stackScans;
234 NI cycleCollections;
235 NI maxThreshold;
236 NI maxStackSize;
237 NI maxStackCells;
238 NI cycleTableSize;
239 NI64 maxPause;
240 };
241 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
242 NI counter;
243 NI max;
244 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
245 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
246 };
247 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
248 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
249 NI cycleThreshold;
250 NI zctThreshold;
251 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
252 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
253 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
254 NI recGcLock;
255 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
256 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
257 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
258 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
259 NI gcThreadId;
260 };
261 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
262   TGenericSeq Sup;
263   NimStringDesc* data[SEQ_DECL_SIZE];
264 };
265 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
266   TGenericSeq Sup;
267   tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
268 };
269 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderPlainSymbolName__typesrenderer_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
270 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
271 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
272 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderDefinitionName__renderer_88)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, NIM_BOOL noQuotes);
273 N_LIB_PRIVATE N_NIMCALL(void, renderParamTypes__typesrenderer_123)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** found, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
274 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderType__typesrenderer_15)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
275 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__types_50)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
276 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
277 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
278 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
279 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
280 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
281 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
282 static N_INLINE(void, X5BX5Deq___system_7376)(NimStringDesc** s, NI i, NIM_CHAR x);
283 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
284 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
285 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
286 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
287 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
288 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
289 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
290 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
291 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
292 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
293 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___renderer_2106)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
294 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
295 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_2, "var", 3);
296 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_3, "ref.", 4);
297 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_4, "ref", 3);
298 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_5, "ptr.", 4);
299 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_6, "ptr", 3);
300 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_7, "proc(", 5);
301 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_8, "proc", 4);
302 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_9, "tuple[", 6);
303 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_10, ", ", 2);
304 extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
305 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
N_INLINE(NI,len__ast_3198)306 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
307 	NI result;
308 	NI T1_;
309 	result = (NI)0;
310 	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
311 	result = T1_;
312 	return result;
313 }
N_NIMCALL(NimStringDesc *,renderPlainSymbolName__typesrenderer_6)314 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderPlainSymbolName__typesrenderer_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
315 	NimStringDesc* result;
316 	result = NIM_NIL;
317 	switch ((*n).kind) {
318 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
319 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
320 	{
321 		NI T2_;
322 		T2_ = (NI)0;
323 		T2_ = len__ast_3198(n);
324 		result = renderPlainSymbolName__typesrenderer_6((*n)._kind_6.sons->data[(NI)(T2_ - ((NI) 1))]);
325 	}
326 	break;
327 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
328 	{
329 		result = copyString((*(*n)._kind_5.ident).s);
330 	}
331 	break;
332 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
333 	{
334 		result = renderDefinitionName__renderer_88((*n)._kind_4.sym, NIM_TRUE);
335 	}
336 	break;
337 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
338 	{
339 		result = renderPlainSymbolName__typesrenderer_6((*n)._kind_6.sons->data[((NI) 0)]);
340 	}
341 	break;
342 	default:
343 	{
344 		result = ((NimStringDesc*) NIM_NIL);
345 	}
346 	break;
347 	}
348 	return result;
349 }
N_INLINE(void,nimCopyMem)350 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
351 	void* T1_;
352 	T1_ = (void*)0;
353 	T1_ = memcpy(dest, source, ((size_t) (size)));
354 }
N_INLINE(void,copyMem__system_1727)355 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
356 	nimCopyMem(dest, source, size);
357 }
N_INLINE(void,appendString)358 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
359 	{
360 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
361 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
362 		(*dest).Sup.len += (*src).Sup.len;
363 	}
364 	LA3_: ;
365 }
N_INLINE(void,appendChar)366 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
367 	(*dest).data[(*dest).Sup.len] = c;
368 	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
369 	(*dest).Sup.len += ((NI) 1);
370 }
N_INLINE(void,X5BX5Deq___system_7376)371 static N_INLINE(void, X5BX5Deq___system_7376)(NimStringDesc** s, NI i, NIM_CHAR x) {
372 	(*s)->data[(NI)(((*s) ? (*s)->Sup.len : 0) - i)] = x;
373 }
N_NIMCALL(NimStringDesc *,renderType__typesrenderer_15)374 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderType__typesrenderer_15)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
375 	NimStringDesc* result;
376 	result = NIM_NIL;
377 	switch ((*n).kind) {
378 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
379 	{
380 		result = copyString((*(*n)._kind_5.ident).s);
381 	}
382 	break;
383 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
384 	{
385 		result = typeToString__types_50((*(*n)._kind_4.sym).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
386 	}
387 	break;
388 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143):
389 	{
390 		{
391 			NI T6_;
392 			T6_ = (NI)0;
393 			T6_ = len__ast_3198(n);
394 			if (!(T6_ == ((NI) 1))) goto LA7_;
395 			result = renderType__typesrenderer_15((*n)._kind_6.sons->data[((NI) 0)]);
396 		}
397 		goto LA4_;
398 		LA7_: ;
399 		{
400 			result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_2));
401 		}
402 		LA4_: ;
403 	}
404 	break;
405 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141):
406 	{
407 		{
408 			NI T13_;
409 			NimStringDesc* T16_;
410 			NimStringDesc* T17_;
411 			T13_ = (NI)0;
412 			T13_ = len__ast_3198(n);
413 			if (!(T13_ == ((NI) 1))) goto LA14_;
414 			T16_ = NIM_NIL;
415 			T17_ = NIM_NIL;
416 			T17_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[((NI) 0)]);
417 			T16_ = rawNewString((T17_ ? T17_->Sup.len : 0) + 4);
418 appendString(T16_, ((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_3));
419 appendString(T16_, T17_);
420 			result = T16_;
421 		}
422 		goto LA11_;
423 		LA14_: ;
424 		{
425 			result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_4));
426 		}
427 		LA11_: ;
428 	}
429 	break;
430 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142):
431 	{
432 		{
433 			NI T22_;
434 			NimStringDesc* T25_;
435 			NimStringDesc* T26_;
436 			T22_ = (NI)0;
437 			T22_ = len__ast_3198(n);
438 			if (!(T22_ == ((NI) 1))) goto LA23_;
439 			T25_ = NIM_NIL;
440 			T26_ = NIM_NIL;
441 			T26_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[((NI) 0)]);
442 			T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + 4);
443 appendString(T25_, ((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_5));
444 appendString(T25_, T26_);
445 			result = T25_;
446 		}
447 		goto LA20_;
448 		LA23_: ;
449 		{
450 			result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_6));
451 		}
452 		LA20_: ;
453 	}
454 	break;
455 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 147):
456 	{
457 		{
458 			NI T31_;
459 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
460 			T31_ = (NI)0;
461 			T31_ = len__ast_3198(n);
462 			if (!(((NI) 1) < T31_)) goto LA32_;
463 			params = (*n)._kind_6.sons->data[((NI) 0)];
464 			result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_7));
465 			{
466 				NI i;
467 				NI colontmp_;
468 				NI i_2;
469 				i = (NI)0;
470 				colontmp_ = (NI)0;
471 				colontmp_ = len__ast_3198(params);
472 				i_2 = ((NI) 1);
473 				{
474 					while (1) {
475 						NimStringDesc* T37_;
476 						NimStringDesc* T38_;
477 						if (!(i_2 < colontmp_)) goto LA36;
478 						i = i_2;
479 						T37_ = NIM_NIL;
480 						T38_ = NIM_NIL;
481 						T38_ = renderType__typesrenderer_15((*params)._kind_6.sons->data[i]);
482 						T37_ = rawNewString((T38_ ? T38_->Sup.len : 0) + 1);
483 appendString(T37_, T38_);
484 appendChar(T37_, 44);
485 						result = resizeString(result, (T37_ ? T37_->Sup.len : 0) + 0);
486 appendString(result, T37_);
487 						i_2 += ((NI) 1);
488 					} LA36: ;
489 				}
490 			}
491 			X5BX5Deq___system_7376((&result), ((NI) 1), 41);
492 		}
493 		goto LA29_;
494 		LA32_: ;
495 		{
496 			result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_8));
497 		}
498 		LA29_: ;
499 	}
500 	break;
501 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
502 	{
503 		NI typePos;
504 		NI T41_;
505 		NimStringDesc* typeStr;
506 		T41_ = (NI)0;
507 		T41_ = len__ast_3198(n);
508 		typePos = (NI)(T41_ - ((NI) 2));
509 		typeStr = renderType__typesrenderer_15((*n)._kind_6.sons->data[typePos]);
510 		result = copyString(typeStr);
511 		{
512 			NI i_3;
513 			NI i_4;
514 			i_3 = (NI)0;
515 			i_4 = ((NI) 1);
516 			{
517 				while (1) {
518 					NimStringDesc* T45_;
519 					if (!(i_4 < typePos)) goto LA44;
520 					i_3 = i_4;
521 					T45_ = NIM_NIL;
522 					T45_ = rawNewString((typeStr ? typeStr->Sup.len : 0) + 1);
523 appendChar(T45_, 44);
524 appendString(T45_, typeStr);
525 					result = resizeString(result, (T45_ ? T45_->Sup.len : 0) + 0);
526 appendString(result, T45_);
527 					i_4 += ((NI) 1);
528 				} LA44: ;
529 			}
530 		}
531 	}
532 	break;
533 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134):
534 	{
535 		result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_9));
536 		{
537 			NI i_5;
538 			NI colontmp__2;
539 			NI i_6;
540 			i_5 = (NI)0;
541 			colontmp__2 = (NI)0;
542 			colontmp__2 = len__ast_3198(n);
543 			i_6 = ((NI) 0);
544 			{
545 				while (1) {
546 					NimStringDesc* T50_;
547 					NimStringDesc* T51_;
548 					if (!(i_6 < colontmp__2)) goto LA49;
549 					i_5 = i_6;
550 					T50_ = NIM_NIL;
551 					T51_ = NIM_NIL;
552 					T51_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[i_5]);
553 					T50_ = rawNewString((T51_ ? T51_->Sup.len : 0) + 1);
554 appendString(T50_, T51_);
555 appendChar(T50_, 44);
556 					result = resizeString(result, (T50_ ? T50_->Sup.len : 0) + 0);
557 appendString(result, T50_);
558 					i_6 += ((NI) 1);
559 				} LA49: ;
560 			}
561 		}
562 		X5BX5Deq___system_7376((&result), ((NI) 1), 93);
563 	}
564 	break;
565 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
566 	{
567 		NimStringDesc* T53_;
568 		NimStringDesc* T54_;
569 		T53_ = NIM_NIL;
570 		T54_ = NIM_NIL;
571 		T54_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[((NI) 0)]);
572 		T53_ = rawNewString((T54_ ? T54_->Sup.len : 0) + 1);
573 appendString(T53_, T54_);
574 appendChar(T53_, 91);
575 		result = T53_;
576 		{
577 			NI i_7;
578 			NI colontmp__3;
579 			NI i_8;
580 			i_7 = (NI)0;
581 			colontmp__3 = (NI)0;
582 			colontmp__3 = len__ast_3198(n);
583 			i_8 = ((NI) 1);
584 			{
585 				while (1) {
586 					NimStringDesc* T58_;
587 					NimStringDesc* T59_;
588 					if (!(i_8 < colontmp__3)) goto LA57;
589 					i_7 = i_8;
590 					T58_ = NIM_NIL;
591 					T59_ = NIM_NIL;
592 					T59_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[i_7]);
593 					T58_ = rawNewString((T59_ ? T59_->Sup.len : 0) + 1);
594 appendString(T58_, T59_);
595 appendChar(T58_, 44);
596 					result = resizeString(result, (T58_ ? T58_->Sup.len : 0) + 0);
597 appendString(result, T58_);
598 					i_8 += ((NI) 1);
599 				} LA57: ;
600 			}
601 		}
602 		X5BX5Deq___system_7376((&result), ((NI) 1), 93);
603 	}
604 	break;
605 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26):
606 	{
607 		result = renderType__typesrenderer_15((*n)._kind_6.sons->data[((NI) 0)]);
608 		{
609 			NI i_9;
610 			NI colontmp__4;
611 			NI i_10;
612 			i_9 = (NI)0;
613 			colontmp__4 = (NI)0;
614 			colontmp__4 = len__ast_3198(n);
615 			i_10 = ((NI) 1);
616 			{
617 				while (1) {
618 					NimStringDesc* T68_;
619 					if (!(i_10 < colontmp__4)) goto LA63;
620 					i_9 = i_10;
621 					{
622 						if (!(((NI) 1) < i_9)) goto LA66_;
623 						result = resizeString(result, 2);
624 appendString(result, ((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_10));
625 					}
626 					LA66_: ;
627 					T68_ = NIM_NIL;
628 					T68_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[i_9]);
629 					result = resizeString(result, (T68_ ? T68_->Sup.len : 0) + 0);
630 appendString(result, T68_);
631 					i_10 += ((NI) 1);
632 				} LA63: ;
633 			}
634 		}
635 	}
636 	break;
637 	default:
638 	{
639 		result = ((NimStringDesc*) NIM_NIL);
640 	}
641 	break;
642 	}
643 	return result;
644 }
N_INLINE(NI,minuspercent___system_716)645 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
646 	NI result;
647 	result = (NI)0;
648 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
649 	return result;
650 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)651 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
652 	NIM_BOOL result;
653 	result = (NIM_BOOL)0;
654 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
655 	return result;
656 }
N_INLINE(void,rtlAddZCT__system_5313)657 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
658 	addZCT__system_5264((&gch__system_5217.zct), c);
659 }
N_INLINE(void,decRef__system_5315)660 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
661 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
662 	{
663 		NIM_BOOL T3_;
664 		T3_ = (NIM_BOOL)0;
665 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
666 		if (!T3_) goto LA4_;
667 		rtlAddZCT__system_5313(c);
668 	}
669 	LA4_: ;
670 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5270)671 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
672 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
673 	NI T1_;
674 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
675 	T1_ = (NI)0;
676 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
677 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
678 	return result;
679 }
N_INLINE(void,nimGCunrefNoCycle)680 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
681 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
682 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
683 	T1_ = usrToCell__system_5270(p);
684 	decRef__system_5315(T1_);
685 }
N_NIMCALL(void,renderParamTypes__typesrenderer_123)686 N_LIB_PRIVATE N_NIMCALL(void, renderParamTypes__typesrenderer_123)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** found, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
687 {	switch ((*n).kind) {
688 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76):
689 	{
690 		{
691 			NI i;
692 			NI colontmp_;
693 			NI i_2;
694 			i = (NI)0;
695 			colontmp_ = (NI)0;
696 			colontmp_ = len__ast_3198(n);
697 			i_2 = ((NI) 1);
698 			{
699 				while (1) {
700 					if (!(i_2 < colontmp_)) goto LA4;
701 					i = i_2;
702 					renderParamTypes__typesrenderer_123(found, (*n)._kind_6.sons->data[i]);
703 					i_2 += ((NI) 1);
704 				} LA4: ;
705 			}
706 		}
707 	}
708 	break;
709 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
710 	{
711 		NI typePos;
712 		NI T6_;
713 		NimStringDesc* typeStr;
714 		T6_ = (NI)0;
715 		T6_ = len__ast_3198(n);
716 		typePos = (NI)(T6_ - ((NI) 2));
717 		typeStr = renderType__typesrenderer_15((*n)._kind_6.sons->data[typePos]);
718 		{
719 			NIM_BOOL T9_;
720 			tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
721 			T9_ = (NIM_BOOL)0;
722 			T9_ = ((typeStr ? typeStr->Sup.len : 0) < ((NI) 1));
723 			if (!(T9_)) goto LA10_;
724 			T9_ = !(((*(*n)._kind_6.sons->data[(NI)(typePos + ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
725 			LA10_: ;
726 			if (!T9_) goto LA11_;
727 			typ = (*(*n)._kind_6.sons->data[(NI)(typePos + ((NI) 1))]).typ;
728 			{
729 				if (!!((typ == 0))) goto LA15_;
730 				typeStr = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 2));
731 			}
732 			LA15_: ;
733 			{
734 				if (!((typeStr ? typeStr->Sup.len : 0) < ((NI) 1))) goto LA19_;
735 				goto BeforeRet_;
736 			}
737 			LA19_: ;
738 		}
739 		LA11_: ;
740 		{
741 			NI i_3;
742 			NI i_4;
743 			i_3 = (NI)0;
744 			i_4 = ((NI) 0);
745 			{
746 				while (1) {
747 					NI T24_;
748 					NimStringDesc* T25_;
749 					if (!(i_4 < typePos)) goto LA23;
750 					i_3 = i_4;
751 					unsureAsgnRef((void**) (&(*found)), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*found)), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
752 					T24_ = (*found)->Sup.len++;
753 					T25_ = NIM_NIL;
754 					T25_ = (*found)->data[T24_]; (*found)->data[T24_] = copyStringRC1(typeStr);
755 					if (T25_) nimGCunrefNoCycle(T25_);
756 					i_4 += ((NI) 1);
757 				} LA23: ;
758 			}
759 		}
760 	}
761 	break;
762 	default:
763 	{
764 		NimStringDesc* T27_;
765 		NI T28_;
766 		NimStringDesc* T29_;
767 		T27_ = NIM_NIL;
768 		T27_ = dollar___renderer_2106(n);
769 		unsureAsgnRef((void**) (&(*found)), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*found)), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
770 		T28_ = (*found)->Sup.len++;
771 		T29_ = NIM_NIL;
772 		T29_ = (*found)->data[T28_]; (*found)->data[T28_] = copyStringRC1(T27_);
773 		if (T29_) nimGCunrefNoCycle(T29_);
774 	}
775 	break;
776 	}
777 	}BeforeRet_: ;
778 }
N_NIMCALL(NimStringDesc *,renderParamTypes__typesrenderer_167)779 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderParamTypes__typesrenderer_167)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* sep) {
780 	NimStringDesc* result;
781 	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* found;
782 	result = NIM_NIL;
783 	result = ((NimStringDesc*) NIM_NIL);
784 	found = NIM_NIL;
785 	renderParamTypes__typesrenderer_123((&found), n);
786 	{
787 		NI T3_;
788 		T3_ = (found ? found->Sup.len : 0);
789 		if (!(((NI) 0) < T3_)) goto LA4_;
790 		result = nsuJoinSep(found->data, (found ? found->Sup.len : 0), sep);
791 	}
792 	LA4_: ;
793 	return result;
794 }
795