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