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 NimStringDesc NimStringDesc;
23 typedef struct TGenericSeq TGenericSeq;
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 tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
30 typedef struct RootObj RootObj;
31 typedef struct TNimType TNimType;
32 typedef struct TNimNode TNimNode;
33 typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
34 typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
35 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
36 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
37 typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
38 typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
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 typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
56 typedef NIM_BOOL tyArray__zl3qUQvo0CT9bJi9b5H7mRkw[65];
57 struct TGenericSeq {
58 NI len;
59 NI reserved;
60 };
61 struct NimStringDesc {
62   TGenericSeq Sup;
63 NIM_CHAR data[SEQ_DECL_SIZE];
64 };
65 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
66 NU16 line;
67 NI16 col;
68 NI32 fileIndex;
69 };
70 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
71 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
72 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
73 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
74 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
75 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
76 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
77 union{
78 struct {NI64 intVal;
79 } _kind_1;
80 struct {NF floatVal;
81 } _kind_2;
82 struct {NimStringDesc* strVal;
83 } _kind_3;
84 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
85 } _kind_4;
86 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
87 } _kind_5;
88 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
89 } _kind_6;
90 };
91 };
92 typedef NU8 tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA;
93 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
94 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
95 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
96 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
97 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
98 struct TNimType {
99 NI size;
100 NI align;
101 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
102 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
103 TNimType* base;
104 TNimNode* node;
105 void* finalizer;
106 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
107 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
108 };
109 struct RootObj {
110 TNimType* m_type;
111 };
112 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
113 NI32 module;
114 NI32 item;
115 };
116 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
117   RootObj Sup;
118 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
119 };
120 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
121 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
122 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
123 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
124 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
125 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
126 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
127 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
128 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
129 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
130 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
131 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
132 };
133 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
134   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
135 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
136 union{
137 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
138 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
139 } _kind_1;
140 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
141 NI bitsize;
142 NI alignment;
143 } _kind_2;
144 };
145 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
146 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
147 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
148 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
149 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
150 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
151 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
152 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
153 NI position;
154 NI offset;
155 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
156 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
157 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
158 };
159 typedef NU8 tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag;
160 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
161 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
162 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
163 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
164   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
165 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
166 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
167 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
168 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
169 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
170 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
171 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
172 NI64 size;
173 NI16 align;
174 NI16 paddingAtEnd;
175 NI16 lockLevel;
176 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
177 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
178 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
179 };
180 typedef NU32 tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
181 typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
182 typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
183 typedef NU8 tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg;
184 typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
185 typedef NU8 tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw;
186 typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
187 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
188 NI refcount;
189 TNimType* typ;
190 };
191 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
192 void* bottom;
193 };
194 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
195 NI len;
196 NI cap;
197 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
198 };
199 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
200 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
201 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
202 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
203 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
204 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
205 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
206 };
207 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
208 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
209 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
210 NI key;
211 NI upperBound;
212 NI level;
213 };
214 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
215 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
216 NI Field1;
217 };
218 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
219 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
220 NI len;
221 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
222 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
223 };
224 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
225 NI minLargeObj;
226 NI maxLargeObj;
227 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
228 NU32 flBitmap;
229 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
230 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
231 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
232 NI currMem;
233 NI maxMem;
234 NI freeMem;
235 NI occ;
236 NI lastSize;
237 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
238 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
239 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
240 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
241 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
242 NIM_BOOL locked;
243 NIM_BOOL blockChunkSizeIncrease;
244 NI nextChunkSize;
245 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
246 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
247 };
248 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
249 NI stackScans;
250 NI cycleCollections;
251 NI maxThreshold;
252 NI maxStackSize;
253 NI maxStackCells;
254 NI cycleTableSize;
255 NI64 maxPause;
256 };
257 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
258 NI counter;
259 NI max;
260 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
261 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
262 };
263 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
264 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
265 NI cycleThreshold;
266 NI zctThreshold;
267 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
268 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
269 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
270 NI recGcLock;
271 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
272 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
273 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
274 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
275 NI gcThreadId;
276 };
277 typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
278 typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
279 struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
280 NimStringDesc* Field0;
281 NI Field1;
282 NI Field2;
283 };
284 typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
285 struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
286 NI id;
287 NimStringDesc* s;
288 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
289 NI h;
290 };
291 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
292 struct TNimNode {
293 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
294 NI offset;
295 TNimType* typ;
296 NCSTRING name;
297 NI len;
298 TNimNode** sons;
299 };
300 typedef NU8 tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw;
301 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
302   TGenericSeq Sup;
303   tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
304 };
305 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
306   TGenericSeq Sup;
307   tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
308 };
309 static N_INLINE(NIM_BOOL, isAtom__ast_4768)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
310 N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag, isAssignable__parampatterns_334)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr);
311 static N_INLINE(NIM_BOOL, dontInlineConstant__trees_420)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cnst);
312 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
313 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
314 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compareTypes__types_2659)(tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TType__facALICuu8zUj0hjvbTLFg* y, tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg cmp, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
315 N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg, getMagic__trees_137)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op);
316 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4832)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
317 N_LIB_PRIVATE N_NIMCALL(tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw, checkForSideEffects__parampatterns_218)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
318 static N_INLINE(NIM_BOOL, isRoutine__ast_4676)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
319 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
320 N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
321 static N_INLINE(void, asgnRef)(void** dest, void* src);
322 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
323 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
324 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
325 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
326 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
327 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
328 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
329 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
330 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
331 N_LIB_PRIVATE N_NIMCALL(void, compileConstraints__parampatterns_67)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
332 N_LIB_PRIVATE N_NIMCALL(void, patternError__parampatterns_38)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
333 N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1118)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
334 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
335 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
336 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
337 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__renderer_46)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
338 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
339 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
340 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
341 static N_INLINE(void, add__parampatterns_41)(NimStringDesc** code, tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA op);
342 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
343 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
344 N_LIB_PRIVATE N_NIMCALL(NI, hashString)(NimStringDesc* s);
345 static N_INLINE(NimStringDesc*, toFileLineCol__msgs_615)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info);
346 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
347 static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x);
348 N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_167)(NimStringDesc** result, NI64 x);
349 N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1431)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
350 N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
351 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toHumanStr__ast_5158)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
352 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
353 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__kdeXVhLeMhTeIyOxnAjnxA_2 = {
354 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
355 0x00}
356 ;
357 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__kdeXVhLeMhTeIyOxnAjnxA_3 = {
358 0x10, 0xa8, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
359 0x00}
360 ;
361 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__kdeXVhLeMhTeIyOxnAjnxA_4 = {
362 0x10, 0xa8, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
363 0x00}
364 ;
365 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_5, "illformed AST: ", 15);
366 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_7, "/home/runner/work/nightlies/nightlies/nim/compiler/parampatterns.nim", 68);
367 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__kdeXVhLeMhTeIyOxnAjnxA_6 = {((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_7),
368 ((NI) 46),
369 ((NI) 12)}
370 ;
371 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_8, "|", 1);
372 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_9, "&", 1);
373 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_10, "~", 1);
374 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_11, "atom", 4);
375 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_12, "lit", 3);
376 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_13, "sym", 3);
377 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_14, "ident", 5);
378 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_15, "call", 4);
379 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_16, "alias", 5);
380 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_17, "noalias", 7);
381 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_18, "lvalue", 6);
382 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_19, "local", 5);
383 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_20, "sideeffect", 10);
384 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_21, "nosideeffect", 12);
385 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_22, "(", 1);
386 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_23, ", ", 2);
387 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_24, ")", 1);
388 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__kdeXVhLeMhTeIyOxnAjnxA_25 = {((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_7),
389 ((NI) 101),
390 ((NI) 21)}
391 ;
392 extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__lineinfos_280;
393 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__kdeXVhLeMhTeIyOxnAjnxA_26 = {((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_7),
394 ((NI) 108),
395 ((NI) 21)}
396 ;
397 extern TNimType NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_;
398 STRING_LITERAL(TM__kdeXVhLeMhTeIyOxnAjnxA_27, "parameter pattern too complex", 29);
399 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__kdeXVhLeMhTeIyOxnAjnxA_28 = {((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_7),
400 ((NI) 128),
401 ((NI) 19)}
402 ;
403 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__kdeXVhLeMhTeIyOxnAjnxA_29 = {
404 0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
405 0x00}
406 ;
407 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
N_INLINE(NIM_BOOL,isAtom__ast_4768)408 static N_INLINE(NIM_BOOL, isAtom__ast_4768)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
409 	NIM_BOOL result;
410 	NIM_BOOL T1_;
411 	result = (NIM_BOOL)0;
412 	T1_ = (NIM_BOOL)0;
413 	T1_ = (((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) <= (*n).kind);
414 	if (!(T1_)) goto LA2_;
415 	T1_ = ((*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
416 	LA2_: ;
417 	result = T1_;
418 	return result;
419 }
N_INLINE(NI,len__ast_3198)420 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
421 	NI result;
422 	NI T1_;
423 	result = (NI)0;
424 	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
425 	result = T1_;
426 	return result;
427 }
N_INLINE(NIM_BOOL,dontInlineConstant__trees_420)428 static N_INLINE(NIM_BOOL, dontInlineConstant__trees_420)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cnst) {
429 	NIM_BOOL result;
430 	NIM_BOOL T1_;
431 	NIM_BOOL T2_;
432 	NI T5_;
433 	result = (NIM_BOOL)0;
434 	T1_ = (NIM_BOOL)0;
435 	T2_ = (NIM_BOOL)0;
436 	T2_ = !(((*orig).kind == (*cnst).kind));
437 	if (!(T2_)) goto LA3_;
438 	T2_ = ((*cnst).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39) || (*cnst).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*cnst).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160) || (*cnst).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41) || (*cnst).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38));
439 	LA3_: ;
440 	T1_ = T2_;
441 	if (!(T1_)) goto LA4_;
442 	T5_ = (NI)0;
443 	T5_ = len__ast_3198(cnst);
444 	T1_ = (((*cnst).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38)) < T5_);
445 	LA4_: ;
446 	result = T1_;
447 	return result;
448 }
N_NIMCALL(tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag,isAssignable__parampatterns_334)449 N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag, isAssignable__parampatterns_334)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr) {
450 	tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag result;
451 	result = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
452 	result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 0);
453 	switch ((*n).kind) {
454 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
455 	{
456 		{
457 			NIM_BOOL T4_;
458 			T4_ = (NIM_BOOL)0;
459 			T4_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
460 			if (!(T4_)) goto LA5_;
461 			T4_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
462 			LA5_: ;
463 			if (!T4_) goto LA6_;
464 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
465 		}
466 		LA6_: ;
467 	}
468 	break;
469 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
470 	{
471 		tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kinds;
472 		{
473 			if (!isUnsafeAddr) goto LA11_;
474 			kinds = 2100008;
475 		}
476 		goto LA9_;
477 		LA11_: ;
478 		{
479 			kinds = 2336;
480 		}
481 		LA9_: ;
482 		{
483 			NIM_BOOL T16_;
484 			T16_ = (NIM_BOOL)0;
485 			T16_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
486 			if (!(T16_)) goto LA17_;
487 			T16_ = ((*(*(*n)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*(*n)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
488 			LA17_: ;
489 			if (!T16_) goto LA18_;
490 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
491 		}
492 		goto LA14_;
493 		LA18_: ;
494 		{
495 			NIM_BOOL T21_;
496 			T21_ = (NIM_BOOL)0;
497 			T21_ = isUnsafeAddr;
498 			if (!(T21_)) goto LA22_;
499 			T21_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
500 			LA22_: ;
501 			if (!T21_) goto LA23_;
502 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
503 		}
504 		goto LA14_;
505 		LA23_: ;
506 		{
507 			NIM_BOOL T26_;
508 			NIM_BOOL T27_;
509 			T26_ = (NIM_BOOL)0;
510 			T27_ = (NIM_BOOL)0;
511 			T27_ = isUnsafeAddr;
512 			if (!(T27_)) goto LA28_;
513 			T27_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10));
514 			LA28_: ;
515 			T26_ = T27_;
516 			if (!(T26_)) goto LA29_;
517 			T26_ = dontInlineConstant__trees_420(n, (*(*n)._kind_4.sym).ast);
518 			LA29_: ;
519 			if (!T26_) goto LA30_;
520 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
521 		}
522 		goto LA14_;
523 		LA30_: ;
524 		{
525 			if (!((kinds &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0)) goto LA33_;
526 			{
527 				NIM_BOOL T37_;
528 				NIM_BOOL T38_;
529 				T37_ = (NIM_BOOL)0;
530 				T38_ = (NIM_BOOL)0;
531 				T38_ = !((owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
532 				if (!(T38_)) goto LA39_;
533 				T38_ = (owner == (*(*n)._kind_4.sym).owner);
534 				LA39_: ;
535 				T37_ = T38_;
536 				if (!(T37_)) goto LA40_;
537 				T37_ = !((((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0));
538 				LA40_: ;
539 				if (!T37_) goto LA41_;
540 				result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 2);
541 			}
542 			goto LA35_;
543 			LA41_: ;
544 			{
545 				result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
546 			}
547 			LA35_: ;
548 		}
549 		goto LA14_;
550 		LA33_: ;
551 		{
552 			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
553 			if (!((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7))) goto LA45_;
554 			t = skipTypes__ast_3735((*(*n)._kind_4.sym).typ, TM__kdeXVhLeMhTeIyOxnAjnxA_2);
555 			{
556 				if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA49_;
557 				result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 5);
558 			}
559 			LA49_: ;
560 		}
561 		goto LA14_;
562 		LA45_: ;
563 		LA14_: ;
564 	}
565 	break;
566 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
567 	{
568 		tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
569 		t_2 = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__kdeXVhLeMhTeIyOxnAjnxA_3);
570 		{
571 			if (!((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA54_;
572 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
573 		}
574 		goto LA52_;
575 		LA54_: ;
576 		{
577 			NIM_BOOL T57_;
578 			T57_ = (NIM_BOOL)0;
579 			T57_ = isUnsafeAddr;
580 			if (!(T57_)) goto LA58_;
581 			T57_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
582 			LA58_: ;
583 			if (!T57_) goto LA59_;
584 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
585 		}
586 		goto LA52_;
587 		LA59_: ;
588 		{
589 			result = isAssignable__parampatterns_334(owner, (*n)._kind_6.sons->data[((NI) 0)], isUnsafeAddr);
590 		}
591 		LA52_: ;
592 		{
593 			NIM_BOOL T64_;
594 			NIM_BOOL T65_;
595 			T64_ = (NIM_BOOL)0;
596 			T65_ = (NIM_BOOL)0;
597 			T65_ = !((result == ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 0)));
598 			if (!(T65_)) goto LA66_;
599 			T65_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
600 			LA66_: ;
601 			T64_ = T65_;
602 			if (!(T64_)) goto LA67_;
603 			T64_ = (((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 20))&63U)))!=0);
604 			LA67_: ;
605 			if (!T64_) goto LA68_;
606 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 3);
607 		}
608 		LA68_: ;
609 	}
610 	break;
611 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
612 	{
613 		tyObject_TType__facALICuu8zUj0hjvbTLFg* t_3;
614 		t_3 = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__kdeXVhLeMhTeIyOxnAjnxA_3);
615 		{
616 			if (!((*t_3).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t_3).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*t_3).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*t_3).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA73_;
617 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
618 		}
619 		goto LA71_;
620 		LA73_: ;
621 		{
622 			NIM_BOOL T76_;
623 			T76_ = (NIM_BOOL)0;
624 			T76_ = isUnsafeAddr;
625 			if (!(T76_)) goto LA77_;
626 			T76_ = ((*t_3).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
627 			LA77_: ;
628 			if (!T76_) goto LA78_;
629 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
630 		}
631 		goto LA71_;
632 		LA78_: ;
633 		{
634 			result = isAssignable__parampatterns_334(owner, (*n)._kind_6.sons->data[((NI) 0)], isUnsafeAddr);
635 		}
636 		LA71_: ;
637 	}
638 	break;
639 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
640 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
641 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
642 	{
643 		{
644 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T84_;
645 			T84_ = NIM_NIL;
646 			T84_ = skipTypes__ast_3735((*n).typ, TM__kdeXVhLeMhTeIyOxnAjnxA_4);
647 			if (!((*T84_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T84_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*T84_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA85_;
648 			result = isAssignable__parampatterns_334(owner, (*n)._kind_6.sons->data[((NI) 1)], isUnsafeAddr);
649 		}
650 		goto LA82_;
651 		LA85_: ;
652 		{
653 			NIM_BOOL T88_;
654 			T88_ = (NIM_BOOL)0;
655 			T88_ = compareTypes__types_2659((*n).typ, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 1), 0);
656 			if (!T88_) goto LA89_;
657 			result = isAssignable__parampatterns_334(owner, (*n)._kind_6.sons->data[((NI) 1)], isUnsafeAddr);
658 		}
659 		goto LA82_;
660 		LA89_: ;
661 		LA82_: ;
662 	}
663 	break;
664 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
665 	{
666 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n0;
667 		n0 = (*n)._kind_6.sons->data[((NI) 0)];
668 		{
669 			if (!((*(*n0).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA94_;
670 			{
671 				NIM_BOOL T98_;
672 				NIM_BOOL T100_;
673 				T98_ = (NIM_BOOL)0;
674 				T98_ = isUnsafeAddr;
675 				if (T98_) goto LA99_;
676 				T100_ = (NIM_BOOL)0;
677 				T100_ = ((*n0).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
678 				if (!(T100_)) goto LA101_;
679 				T100_ = ((*(*n0)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
680 				LA101_: ;
681 				T98_ = T100_;
682 				LA99_: ;
683 				if (!T98_) goto LA102_;
684 				result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
685 			}
686 			goto LA96_;
687 			LA102_: ;
688 			{
689 				result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 4);
690 			}
691 			LA96_: ;
692 		}
693 		goto LA92_;
694 		LA94_: ;
695 		{
696 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
697 		}
698 		LA92_: ;
699 	}
700 	break;
701 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
702 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
703 	{
704 		result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
705 	}
706 	break;
707 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
708 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
709 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
710 	{
711 		result = isAssignable__parampatterns_334(owner, (*n)._kind_6.sons->data[((NI) 0)], isUnsafeAddr);
712 	}
713 	break;
714 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
715 	{
716 		{
717 			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T111_;
718 			T111_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
719 			T111_ = getMagic__trees_137(n);
720 			if (!(T111_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5) || T111_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126))) goto LA112_;
721 			result = isAssignable__parampatterns_334(owner, (*n)._kind_6.sons->data[((NI) 1)], isUnsafeAddr);
722 		}
723 		goto LA109_;
724 		LA112_: ;
725 		{
726 			NIM_BOOL T115_;
727 			T115_ = (NIM_BOOL)0;
728 			T115_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
729 			if (!(T115_)) goto LA116_;
730 			T115_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
731 			LA116_: ;
732 			if (!T115_) goto LA117_;
733 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
734 		}
735 		goto LA109_;
736 		LA117_: ;
737 		{
738 			NIM_BOOL T120_;
739 			NIM_BOOL T121_;
740 			T120_ = (NIM_BOOL)0;
741 			T121_ = (NIM_BOOL)0;
742 			T121_ = isUnsafeAddr;
743 			if (!(T121_)) goto LA122_;
744 			T121_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
745 			LA122_: ;
746 			T120_ = T121_;
747 			if (!(T120_)) goto LA123_;
748 			T120_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
749 			LA123_: ;
750 			if (!T120_) goto LA124_;
751 			result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
752 		}
753 		goto LA109_;
754 		LA124_: ;
755 		LA109_: ;
756 	}
757 	break;
758 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
759 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
760 	{
761 		{
762 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T131_;
763 			if (!!(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA129_;
764 			T131_ = NIM_NIL;
765 			T131_ = lastSon__ast_4832(n);
766 			result = isAssignable__parampatterns_334(owner, T131_, isUnsafeAddr);
767 		}
768 		LA129_: ;
769 	}
770 	break;
771 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143):
772 	{
773 		result = ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1);
774 	}
775 	break;
776 	default:
777 	{
778 	}
779 	break;
780 	}
781 	return result;
782 }
N_INLINE(NIM_BOOL,isRoutine__ast_4676)783 static N_INLINE(NIM_BOOL, isRoutine__ast_4676)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
784 	NIM_BOOL result;
785 	result = (NIM_BOOL)0;
786 	result = ((520192 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
787 	return result;
788 }
N_NIMCALL(tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw,checkForSideEffects__parampatterns_218)789 N_LIB_PRIVATE N_NIMCALL(tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw, checkForSideEffects__parampatterns_218)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
790 	tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw result;
791 {	result = (tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw)0;
792 	switch ((*n).kind) {
793 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
794 	{
795 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op;
796 		op = (*n)._kind_6.sons->data[((NI) 0)];
797 		{
798 			NIM_BOOL T4_;
799 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
800 			T4_ = (NIM_BOOL)0;
801 			T4_ = ((*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
802 			if (!(T4_)) goto LA5_;
803 			T4_ = isRoutine__ast_4676((*op)._kind_4.sym);
804 			LA5_: ;
805 			if (!T4_) goto LA6_;
806 			s = (*op)._kind_4.sym;
807 			{
808 				if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0)) goto LA10_;
809 				result = ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 1);
810 				goto BeforeRet_;
811 			}
812 			LA10_: ;
813 			result = ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 2);
814 		}
815 		goto LA2_;
816 		LA6_: ;
817 		{
818 			if (!(((*(*op).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0)) goto LA13_;
819 			result = ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 2);
820 		}
821 		goto LA2_;
822 		LA13_: ;
823 		{
824 			result = ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 1);
825 			goto BeforeRet_;
826 		}
827 		LA2_: ;
828 		{
829 			NI i;
830 			NI colontmp_;
831 			NI i_2;
832 			i = (NI)0;
833 			colontmp_ = (NI)0;
834 			colontmp_ = len__ast_3198(n);
835 			i_2 = ((NI) 0);
836 			{
837 				while (1) {
838 					tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw ret;
839 					if (!(i_2 < colontmp_)) goto LA18;
840 					i = i_2;
841 					ret = checkForSideEffects__parampatterns_218((*n)._kind_6.sons->data[i]);
842 					{
843 						if (!(ret == ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 1))) goto LA21_;
844 						result = ret;
845 						goto BeforeRet_;
846 					}
847 					goto LA19_;
848 					LA21_: ;
849 					{
850 						NIM_BOOL T24_;
851 						T24_ = (NIM_BOOL)0;
852 						T24_ = (ret == ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 0));
853 						if (!(T24_)) goto LA25_;
854 						T24_ = (result == ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 2));
855 						LA25_: ;
856 						if (!T24_) goto LA26_;
857 						result = ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 0);
858 					}
859 					goto LA19_;
860 					LA26_: ;
861 					LA19_: ;
862 					i_2 += ((NI) 1);
863 				} LA18: ;
864 			}
865 		}
866 	}
867 	break;
868 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
869 	{
870 		result = ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 2);
871 	}
872 	break;
873 	default:
874 	{
875 		result = ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 2);
876 		{
877 			NI i_3;
878 			NI colontmp__2;
879 			NI i_4;
880 			i_3 = (NI)0;
881 			colontmp__2 = (NI)0;
882 			colontmp__2 = len__ast_3198(n);
883 			i_4 = ((NI) 0);
884 			{
885 				while (1) {
886 					tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw ret_2;
887 					if (!(i_4 < colontmp__2)) goto LA32;
888 					i_3 = i_4;
889 					ret_2 = checkForSideEffects__parampatterns_218((*n)._kind_6.sons->data[i_3]);
890 					{
891 						if (!(ret_2 == ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 1))) goto LA35_;
892 						result = ret_2;
893 						goto BeforeRet_;
894 					}
895 					goto LA33_;
896 					LA35_: ;
897 					{
898 						NIM_BOOL T38_;
899 						T38_ = (NIM_BOOL)0;
900 						T38_ = (ret_2 == ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 0));
901 						if (!(T38_)) goto LA39_;
902 						T38_ = (result == ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 2));
903 						LA39_: ;
904 						if (!T38_) goto LA40_;
905 						result = ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 0);
906 					}
907 					goto LA33_;
908 					LA40_: ;
909 					LA33_: ;
910 					i_4 += ((NI) 1);
911 				} LA32: ;
912 			}
913 		}
914 	}
915 	break;
916 	}
917 	}BeforeRet_: ;
918 	return result;
919 }
N_NIMCALL(NIM_BOOL,matchNodeKinds__parampatterns_505)920 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNodeKinds__parampatterns_505)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
921 	NIM_BOOL result;
922 	tyArray__zl3qUQvo0CT9bJi9b5H7mRkw stack;
923 	NI sp;
924 	NimStringDesc* code;
925 	NI pc;
926 	result = (NIM_BOOL)0;
927 	stack[(((NI) 0))- 0] = NIM_TRUE;
928 	sp = ((NI) 1);
929 	code = (*p)._kind_3.strVal;
930 	pc = ((NI) 1);
931 	{
932 		while (1) {
933 			switch (((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) (((NU8)(code->data[pc]))))) {
934 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 1):
935 			{
936 				goto LA1;
937 			}
938 			break;
939 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 2):
940 			{
941 				NIM_BOOL T5_;
942 				T5_ = (NIM_BOOL)0;
943 				T5_ = stack[((NI)(sp - ((NI) 1)))- 0];
944 				if (T5_) goto LA6_;
945 				T5_ = stack[((NI)(sp - ((NI) 2)))- 0];
946 				LA6_: ;
947 				stack[((NI)(sp - ((NI) 2)))- 0] = T5_;
948 				sp -= ((NI) 1);
949 			}
950 			break;
951 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 3):
952 			{
953 				NIM_BOOL T8_;
954 				T8_ = (NIM_BOOL)0;
955 				T8_ = stack[((NI)(sp - ((NI) 1)))- 0];
956 				if (!(T8_)) goto LA9_;
957 				T8_ = stack[((NI)(sp - ((NI) 2)))- 0];
958 				LA9_: ;
959 				stack[((NI)(sp - ((NI) 2)))- 0] = T8_;
960 				sp -= ((NI) 1);
961 			}
962 			break;
963 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 4):
964 			{
965 				stack[((NI)(sp - ((NI) 1)))- 0] = !(stack[((NI)(sp - ((NI) 1)))- 0]);
966 			}
967 			break;
968 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 5):
969 			{
970 				stack[(sp)- 0] = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
971 				sp += ((NI) 1);
972 			}
973 			break;
974 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 6):
975 			{
976 				stack[(sp)- 0] = isAtom__ast_4768(n);
977 				sp += ((NI) 1);
978 			}
979 			break;
980 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 7):
981 			{
982 				stack[(sp)- 0] = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
983 				sp += ((NI) 1);
984 			}
985 			break;
986 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 8):
987 			{
988 				stack[(sp)- 0] = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
989 				sp += ((NI) 1);
990 			}
991 			break;
992 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 9):
993 			{
994 				stack[(sp)- 0] = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
995 				sp += ((NI) 1);
996 			}
997 			break;
998 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 10):
999 			{
1000 				tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
1001 				NIM_BOOL T17_;
1002 				kind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) (((NU8)(code->data[(NI)(pc + ((NI) 1))]))));
1003 				T17_ = (NIM_BOOL)0;
1004 				T17_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
1005 				if (!(T17_)) goto LA18_;
1006 				T17_ = ((*(*n)._kind_4.sym).kind == kind);
1007 				LA18_: ;
1008 				stack[(sp)- 0] = T17_;
1009 				sp += ((NI) 1);
1010 				pc += ((NI) 1);
1011 			}
1012 			break;
1013 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 11):
1014 			{
1015 				tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind_2;
1016 				kind_2 = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) (((NU8)(code->data[(NI)(pc + ((NI) 1))]))));
1017 				stack[(sp)- 0] = ((*n).kind == kind_2);
1018 				sp += ((NI) 1);
1019 				pc += ((NI) 1);
1020 			}
1021 			break;
1022 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 12):
1023 			{
1024 				tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag T21_;
1025 				T21_ = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
1026 				T21_ = isAssignable__parampatterns_334(((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL), n, NIM_FALSE);
1027 				stack[(sp)- 0] = ((6 &((NU8)1<<((NU)(T21_)&7U)))!=0);
1028 				sp += ((NI) 1);
1029 			}
1030 			break;
1031 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 13):
1032 			{
1033 				tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag T23_;
1034 				T23_ = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
1035 				T23_ = isAssignable__parampatterns_334(((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL), n, NIM_FALSE);
1036 				stack[(sp)- 0] = (T23_ == ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 2));
1037 				sp += ((NI) 1);
1038 			}
1039 			break;
1040 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 14):
1041 			{
1042 				tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw T25_;
1043 				T25_ = (tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw)0;
1044 				T25_ = checkForSideEffects__parampatterns_218(n);
1045 				stack[(sp)- 0] = (T25_ == ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 1));
1046 				sp += ((NI) 1);
1047 			}
1048 			break;
1049 			case ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 15):
1050 			{
1051 				tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw T27_;
1052 				T27_ = (tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw)0;
1053 				T27_ = checkForSideEffects__parampatterns_218(n);
1054 				stack[(sp)- 0] = !((T27_ == ((tyEnum_TSideEffectAnalysis__39b55cGxMJkG5uRuPt6svRw) 1)));
1055 				sp += ((NI) 1);
1056 			}
1057 			break;
1058 			}
1059 			pc += ((NI) 1);
1060 		}
1061 	} LA1: ;
1062 	result = stack[((NI)(sp - ((NI) 1)))- 0];
1063 	return result;
1064 }
N_INLINE(NI,pluspercent___system_696)1065 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
1066 	NI result;
1067 	result = (NI)0;
1068 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
1069 	return result;
1070 }
N_INLINE(void,incRef__system_5308)1071 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1072 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
1073 }
N_INLINE(NI,minuspercent___system_716)1074 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
1075 	NI result;
1076 	result = (NI)0;
1077 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
1078 	return result;
1079 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5270)1080 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
1081 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
1082 	NI T1_;
1083 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1084 	T1_ = (NI)0;
1085 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
1086 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
1087 	return result;
1088 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)1089 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
1090 	NIM_BOOL result;
1091 	result = (NIM_BOOL)0;
1092 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
1093 	return result;
1094 }
N_INLINE(void,rtlAddZCT__system_5313)1095 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1096 	addZCT__system_5264((&gch__system_5217.zct), c);
1097 }
N_INLINE(void,decRef__system_5315)1098 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1099 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
1100 	{
1101 		NIM_BOOL T3_;
1102 		T3_ = (NIM_BOOL)0;
1103 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
1104 		if (!T3_) goto LA4_;
1105 		rtlAddZCT__system_5313(c);
1106 	}
1107 	LA4_: ;
1108 }
N_INLINE(void,asgnRef)1109 static N_INLINE(void, asgnRef)(void** dest, void* src) {
1110 	{
1111 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
1112 		if (!!((src == NIM_NIL))) goto LA3_;
1113 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1114 		T5_ = usrToCell__system_5270(src);
1115 		incRef__system_5308(T5_);
1116 	}
1117 	LA3_: ;
1118 	{
1119 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
1120 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
1121 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1122 		T10_ = usrToCell__system_5270((*dest));
1123 		decRef__system_5315(T10_);
1124 	}
1125 	LA8_: ;
1126 	(*dest) = src;
1127 }
N_INLINE(void,nimCopyMem)1128 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
1129 	void* T1_;
1130 	T1_ = (void*)0;
1131 	T1_ = memcpy(dest, source, ((size_t) (size)));
1132 }
N_INLINE(void,copyMem__system_1727)1133 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
1134 	nimCopyMem(dest, source, size);
1135 }
N_INLINE(void,appendString)1136 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
1137 	{
1138 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
1139 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
1140 		(*dest).Sup.len += (*src).Sup.len;
1141 	}
1142 	LA3_: ;
1143 }
N_NIMCALL(void,patternError__parampatterns_38)1144 N_LIB_PRIVATE N_NIMCALL(void, patternError__parampatterns_38)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
1145 	NimStringDesc* T1_;
1146 	NimStringDesc* T2_;
1147 	T1_ = NIM_NIL;
1148 	T2_ = NIM_NIL;
1149 	T2_ = renderTree__renderer_46(n, 4);
1150 	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 15);
1151 appendString(T1_, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_5));
1152 appendString(T1_, T2_);
1153 	liMessage__msgs_1118(conf, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T1_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__kdeXVhLeMhTeIyOxnAjnxA_6, NIM_FALSE);
1154 }
N_INLINE(int,nimCmpMem)1155 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
1156 	int result;
1157 	result = (int)0;
1158 	result = memcmp(a, b, ((size_t) (size)));
1159 	return result;
1160 }
N_INLINE(NIM_BOOL,equalMem__system_1735)1161 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
1162 	NIM_BOOL result;
1163 	int T1_;
1164 	result = (NIM_BOOL)0;
1165 	T1_ = (int)0;
1166 	T1_ = nimCmpMem(a, b, size);
1167 	result = (T1_ == ((NI32) 0));
1168 	return result;
1169 }
N_INLINE(NIM_BOOL,eqStrings)1170 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
1171 	NIM_BOOL result;
1172 	NI alen;
1173 	NI blen;
1174 {	result = (NIM_BOOL)0;
1175 	alen = (a ? a->Sup.len : 0);
1176 	blen = (b ? b->Sup.len : 0);
1177 	{
1178 		if (!(alen == blen)) goto LA3_;
1179 		{
1180 			if (!(alen == ((NI) 0))) goto LA7_;
1181 			result = NIM_TRUE;
1182 			goto BeforeRet_;
1183 		}
1184 		LA7_: ;
1185 		result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
1186 		goto BeforeRet_;
1187 	}
1188 	LA3_: ;
1189 	}BeforeRet_: ;
1190 	return result;
1191 }
N_INLINE(void,add__parampatterns_41)1192 static N_INLINE(void, add__parampatterns_41)(NimStringDesc** code, tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA op) {
1193 	unsureAsgnRef((void**) (&(*code)), addChar((*code), ((NIM_CHAR) (((NI) (op))))));
1194 }
N_INLINE(void,addInt__stdZprivateZdigitsutils_189)1195 static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x) {
1196 	addInt__stdZprivateZdigitsutils_167(result, ((NI64) (x)));
1197 }
N_INLINE(NimStringDesc *,toFileLineCol__msgs_615)1198 static N_INLINE(NimStringDesc*, toFileLineCol__msgs_615)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info) {
1199 	NimStringDesc* result;
1200 	result = NIM_NIL;
1201 	result = resizeString(result, (info.Field0 ? info.Field0->Sup.len : 0) + 0);
1202 appendString(result, info.Field0);
1203 	{
1204 		if (!(((NI) 0) < info.Field1)) goto LA3_;
1205 		result = resizeString(result, 1);
1206 appendString(result, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_22));
1207 		addInt__stdZprivateZdigitsutils_189((&result), info.Field1);
1208 		{
1209 			if (!(((NI) 0) < (NI)(info.Field2 + ((NI) 1)))) goto LA7_;
1210 			result = resizeString(result, 2);
1211 appendString(result, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_23));
1212 			addInt__stdZprivateZdigitsutils_189((&result), (NI)(info.Field2 + ((NI) 1)));
1213 		}
1214 		LA7_: ;
1215 		result = resizeString(result, 1);
1216 appendString(result, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_24));
1217 	}
1218 	LA3_: ;
1219 	return result;
1220 }
N_NIMCALL(void,compileConstraints__parampatterns_67)1221 N_LIB_PRIVATE N_NIMCALL(void, compileConstraints__parampatterns_67)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
1222 {	switch ((*p).kind) {
1223 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
1224 	{
1225 		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* op;
1226 		{
1227 			if (!!(((*(*p)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2)))) goto LA4_;
1228 			patternError__parampatterns_38((*p)._kind_6.sons->data[((NI) 0)], conf);
1229 			goto BeforeRet_;
1230 		}
1231 		LA4_: ;
1232 		op = (*(*p)._kind_6.sons->data[((NI) 0)])._kind_5.ident;
1233 		{
1234 			NI T8_;
1235 			T8_ = (NI)0;
1236 			T8_ = len__ast_3198(p);
1237 			if (!(T8_ == ((NI) 3))) goto LA9_;
1238 			{
1239 				NIM_BOOL T13_;
1240 				T13_ = (NIM_BOOL)0;
1241 				T13_ = eqStrings((*op).s, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_8));
1242 				if (T13_) goto LA14_;
1243 				T13_ = ((*op).id == ((NI) 47));
1244 				LA14_: ;
1245 				if (!T13_) goto LA15_;
1246 				compileConstraints__parampatterns_67((*p)._kind_6.sons->data[((NI) 1)], result, conf);
1247 				compileConstraints__parampatterns_67((*p)._kind_6.sons->data[((NI) 2)], result, conf);
1248 				add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 2));
1249 			}
1250 			goto LA11_;
1251 			LA15_: ;
1252 			{
1253 				NIM_BOOL T18_;
1254 				T18_ = (NIM_BOOL)0;
1255 				T18_ = eqStrings((*op).s, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_9));
1256 				if (T18_) goto LA19_;
1257 				T18_ = ((*op).id == ((NI) 2));
1258 				LA19_: ;
1259 				if (!T18_) goto LA20_;
1260 				compileConstraints__parampatterns_67((*p)._kind_6.sons->data[((NI) 1)], result, conf);
1261 				compileConstraints__parampatterns_67((*p)._kind_6.sons->data[((NI) 2)], result, conf);
1262 				add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 3));
1263 			}
1264 			goto LA11_;
1265 			LA20_: ;
1266 			{
1267 				patternError__parampatterns_38(p, conf);
1268 			}
1269 			LA11_: ;
1270 		}
1271 		goto LA6_;
1272 		LA9_: ;
1273 		{
1274 			NIM_BOOL T24_;
1275 			NI T25_;
1276 			NIM_BOOL T27_;
1277 			T24_ = (NIM_BOOL)0;
1278 			T25_ = (NI)0;
1279 			T25_ = len__ast_3198(p);
1280 			T24_ = (T25_ == ((NI) 2));
1281 			if (!(T24_)) goto LA26_;
1282 			T27_ = (NIM_BOOL)0;
1283 			T27_ = eqStrings((*op).s, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_10));
1284 			if (T27_) goto LA28_;
1285 			T27_ = ((*op).id == ((NI) 43));
1286 			LA28_: ;
1287 			T24_ = T27_;
1288 			LA26_: ;
1289 			if (!T24_) goto LA29_;
1290 			compileConstraints__parampatterns_67((*p)._kind_6.sons->data[((NI) 1)], result, conf);
1291 			add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 4));
1292 		}
1293 		goto LA6_;
1294 		LA29_: ;
1295 		{
1296 			patternError__parampatterns_38(p, conf);
1297 		}
1298 		LA6_: ;
1299 	}
1300 	break;
1301 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
1302 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
1303 	{
1304 		{
1305 			NI T35_;
1306 			T35_ = (NI)0;
1307 			T35_ = len__ast_3198(p);
1308 			if (!(T35_ == ((NI) 1))) goto LA36_;
1309 			compileConstraints__parampatterns_67((*p)._kind_6.sons->data[((NI) 0)], result, conf);
1310 		}
1311 		goto LA33_;
1312 		LA36_: ;
1313 		{
1314 			patternError__parampatterns_38(p, conf);
1315 		}
1316 		LA33_: ;
1317 	}
1318 	break;
1319 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
1320 	{
1321 		NimStringDesc* spec;
1322 		spec = nsuNormalize((*(*p)._kind_5.ident).s);
1323 		switch (hashString(spec) & 15) {
1324 		case 1:
1325 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_21))) goto LA50_;
1326 break;
1327 		case 3:
1328 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_17))) goto LA46_;
1329 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_18))) goto LA47_;
1330 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_20))) goto LA49_;
1331 break;
1332 		case 4:
1333 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_13))) goto LA42_;
1334 break;
1335 		case 6:
1336 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_14))) goto LA43_;
1337 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_19))) goto LA48_;
1338 break;
1339 		case 11:
1340 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_11))) goto LA40_;
1341 break;
1342 		case 12:
1343 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_12))) goto LA41_;
1344 break;
1345 		case 13:
1346 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_15))) goto LA44_;
1347 break;
1348 		case 14:
1349 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_16))) goto LA45_;
1350 break;
1351 		}
1352 		goto LA51_;
1353 		LA40_: ;
1354 		{
1355 			add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 6));
1356 		}
1357 		goto LA52_;
1358 		LA41_: ;
1359 		{
1360 			add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 7));
1361 		}
1362 		goto LA52_;
1363 		LA42_: ;
1364 		{
1365 			add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 5));
1366 		}
1367 		goto LA52_;
1368 		LA43_: ;
1369 		{
1370 			add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 8));
1371 		}
1372 		goto LA52_;
1373 		LA44_: ;
1374 		{
1375 			add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 9));
1376 		}
1377 		goto LA52_;
1378 		LA45_: ;
1379 		{
1380 			(*result)->data[((NI) 0)] = 2;
1381 		}
1382 		goto LA52_;
1383 		LA46_: ;
1384 		{
1385 			(*result)->data[((NI) 0)] = 3;
1386 		}
1387 		goto LA52_;
1388 		LA47_: ;
1389 		{
1390 			add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 12));
1391 		}
1392 		goto LA52_;
1393 		LA48_: ;
1394 		{
1395 			add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 13));
1396 		}
1397 		goto LA52_;
1398 		LA49_: ;
1399 		{
1400 			add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 14));
1401 		}
1402 		goto LA52_;
1403 		LA50_: ;
1404 		{
1405 			add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 15));
1406 		}
1407 		goto LA52_;
1408 		LA51_: ;
1409 		{
1410 			{
1411 				NimStringDesc* argX60gensym13_;
1412 				if (!NIM_FALSE) goto LA67_;
1413 				argX60gensym13_ = toFileLineCol__msgs_615(TM__kdeXVhLeMhTeIyOxnAjnxA_25);
1414 				internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, argX60gensym13_, TM__kdeXVhLeMhTeIyOxnAjnxA_25);
1415 			}
1416 			LA67_: ;
1417 			{
1418 				tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw i;
1419 				i = (tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw)0;
1420 				{
1421 					tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw v;
1422 					NI res;
1423 					v = (tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw)0;
1424 					res = ((NI) 0);
1425 					{
1426 						while (1) {
1427 							if (!(res <= ((NI) 25))) goto LA72;
1428 							v = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) (res));
1429 							i = v;
1430 							{
1431 								NimStringDesc* T75_;
1432 								NI T76_;
1433 								T75_ = NIM_NIL;
1434 								T75_ = toHumanStr__ast_5158(i);
1435 								T76_ = (NI)0;
1436 								T76_ = nsuCmpIgnoreStyle(T75_, spec);
1437 								if (!(T76_ == ((NI) 0))) goto LA77_;
1438 								add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 10));
1439 								unsureAsgnRef((void**) (&(*result)), addChar((*result), ((NIM_CHAR) (((NI) (i))))));
1440 								goto BeforeRet_;
1441 							}
1442 							LA77_: ;
1443 							res += ((NI) 1);
1444 						} LA72: ;
1445 					}
1446 				}
1447 			}
1448 			{
1449 				NimStringDesc* argX60gensym15_;
1450 				if (!NIM_FALSE) goto LA81_;
1451 				argX60gensym15_ = toFileLineCol__msgs_615(TM__kdeXVhLeMhTeIyOxnAjnxA_26);
1452 				internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, argX60gensym15_, TM__kdeXVhLeMhTeIyOxnAjnxA_26);
1453 			}
1454 			LA81_: ;
1455 			{
1456 				tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw i_2;
1457 				i_2 = (tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)0;
1458 				{
1459 					tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw v_2;
1460 					NI res_2;
1461 					v_2 = (tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)0;
1462 					res_2 = ((NI) 0);
1463 					{
1464 						while (1) {
1465 							if (!(res_2 <= ((NI) 164))) goto LA86;
1466 							v_2 = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) (res_2));
1467 							i_2 = v_2;
1468 							{
1469 								NI T89_;
1470 								T89_ = (NI)0;
1471 								T89_ = nsuCmpIgnoreStyle(reprEnum((NI)i_2, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)), spec);
1472 								if (!(T89_ == ((NI) 0))) goto LA90_;
1473 								add__parampatterns_41(result, ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 11));
1474 								unsureAsgnRef((void**) (&(*result)), addChar((*result), ((NIM_CHAR) (((NI) (i_2))))));
1475 								goto BeforeRet_;
1476 							}
1477 							LA90_: ;
1478 							res_2 += ((NI) 1);
1479 						} LA86: ;
1480 					}
1481 				}
1482 			}
1483 			patternError__parampatterns_38(p, conf);
1484 		}
1485 		LA52_: ;
1486 	}
1487 	break;
1488 	default:
1489 	{
1490 		patternError__parampatterns_38(p, conf);
1491 	}
1492 	break;
1493 	}
1494 	}BeforeRet_: ;
1495 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,semNodeKindConstraints__parampatterns_186)1496 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semNodeKindConstraints__parampatterns_186)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI start) {
1497 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
1498 	result = NIM_NIL;
1499 	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), (*n).info);
1500 	asgnRef((void**) (&(*result)._kind_3.strVal), rawNewString(((NI) 10)));
1501 	asgnRef((void**) (&(*result)._kind_3.strVal), addChar((*result)._kind_3.strVal, 1));
1502 	{
1503 		NI T3_;
1504 		T3_ = (NI)0;
1505 		T3_ = len__ast_3198(n);
1506 		if (!(((NI) 2) <= T3_)) goto LA4_;
1507 		{
1508 			NI i;
1509 			NI colontmp_;
1510 			NI T7_;
1511 			NI i_2;
1512 			i = (NI)0;
1513 			colontmp_ = (NI)0;
1514 			T7_ = (NI)0;
1515 			T7_ = len__ast_3198(n);
1516 			colontmp_ = ((NI) (T7_));
1517 			i_2 = start;
1518 			{
1519 				while (1) {
1520 					if (!(((NI) (i_2)) < ((NI) (colontmp_)))) goto LA9;
1521 					i = i_2;
1522 					compileConstraints__parampatterns_67((*n)._kind_6.sons->data[i], (&(*result)._kind_3.strVal), conf);
1523 					i_2 += ((NI) 1);
1524 				} LA9: ;
1525 			}
1526 		}
1527 		{
1528 			if (!(((NI) 63) < ((*result)._kind_3.strVal ? (*result)._kind_3.strVal->Sup.len : 0))) goto LA12_;
1529 			internalErrorImpl__msgs_1431(conf, (*n).info, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_27), TM__kdeXVhLeMhTeIyOxnAjnxA_28);
1530 		}
1531 		LA12_: ;
1532 	}
1533 	goto LA1_;
1534 	LA4_: ;
1535 	{
1536 		patternError__parampatterns_38(n, conf);
1537 	}
1538 	LA1_: ;
1539 	add__parampatterns_41((&(*result)._kind_3.strVal), ((tyEnum_TOpcode__cKhgukabZvDBOVLlPOrptA) 1));
1540 	return result;
1541 }
N_NIMCALL(tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw,whichAlias__parampatterns_48)1542 N_LIB_PRIVATE N_NIMCALL(tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw, whichAlias__parampatterns_48)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* p) {
1543 	tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw result;
1544 	result = (tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw)0;
1545 	{
1546 		if (!!(((*p).constraint == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
1547 		result = ((tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw) (((NU8)((*(*p).constraint)._kind_3.strVal->data[((NI) 0)]))));
1548 	}
1549 	goto LA1_;
1550 	LA3_: ;
1551 	{
1552 		result = ((tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw) 1);
1553 	}
1554 	LA1_: ;
1555 	return result;
1556 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,exprRoot__parampatterns_300)1557 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, exprRoot__parampatterns_300)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1558 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
1559 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
1560 {	result = NIM_NIL;
1561 	it = n;
1562 	{
1563 		while (1) {
1564 			switch ((*it).kind) {
1565 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
1566 			{
1567 				result = (*it)._kind_4.sym;
1568 				goto BeforeRet_;
1569 			}
1570 			break;
1571 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
1572 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
1573 			{
1574 				{
1575 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T7_;
1576 					T7_ = NIM_NIL;
1577 					T7_ = skipTypes__ast_3735((*(*it)._kind_6.sons->data[((NI) 0)]).typ, TM__kdeXVhLeMhTeIyOxnAjnxA_29);
1578 					if (!((*T7_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T7_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA8_;
1579 					goto LA1;
1580 				}
1581 				goto LA5_;
1582 				LA8_: ;
1583 				{
1584 					it = (*it)._kind_6.sons->data[((NI) 0)];
1585 				}
1586 				LA5_: ;
1587 			}
1588 			break;
1589 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
1590 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
1591 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
1592 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
1593 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
1594 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
1595 			{
1596 				it = (*it)._kind_6.sons->data[((NI) 0)];
1597 			}
1598 			break;
1599 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
1600 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
1601 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
1602 			{
1603 				it = (*it)._kind_6.sons->data[((NI) 1)];
1604 			}
1605 			break;
1606 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
1607 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
1608 			{
1609 				{
1610 					NIM_BOOL T16_;
1611 					NI T17_;
1612 					T16_ = (NIM_BOOL)0;
1613 					T17_ = (NI)0;
1614 					T17_ = len__ast_3198(it);
1615 					T16_ = (((NI) 0) < T17_);
1616 					if (!(T16_)) goto LA18_;
1617 					T16_ = !(((*it).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
1618 					LA18_: ;
1619 					if (!T16_) goto LA19_;
1620 					it = lastSon__ast_4832(it);
1621 				}
1622 				goto LA14_;
1623 				LA19_: ;
1624 				{
1625 					goto LA1;
1626 				}
1627 				LA14_: ;
1628 			}
1629 			break;
1630 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
1631 			{
1632 				{
1633 					NIM_BOOL T25_;
1634 					NIM_BOOL T26_;
1635 					NI T29_;
1636 					T25_ = (NIM_BOOL)0;
1637 					T26_ = (NIM_BOOL)0;
1638 					T26_ = !(((*it).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
1639 					if (!(T26_)) goto LA27_;
1640 					T26_ = ((*(*it).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*it).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
1641 					LA27_: ;
1642 					T25_ = T26_;
1643 					if (!(T25_)) goto LA28_;
1644 					T29_ = (NI)0;
1645 					T29_ = len__ast_3198(it);
1646 					T25_ = (((NI) 1) < T29_);
1647 					LA28_: ;
1648 					if (!T25_) goto LA30_;
1649 					it = (*it)._kind_6.sons->data[((NI) 1)];
1650 				}
1651 				goto LA23_;
1652 				LA30_: ;
1653 				{
1654 					goto LA1;
1655 				}
1656 				LA23_: ;
1657 			}
1658 			break;
1659 			default:
1660 			{
1661 				goto LA1;
1662 			}
1663 			break;
1664 			}
1665 		}
1666 	} LA1: ;
1667 	}BeforeRet_: ;
1668 	return result;
1669 }
N_NIMCALL(NIM_BOOL,isLValue__parampatterns_497)1670 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLValue__parampatterns_497)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1671 	NIM_BOOL result;
1672 	tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag T1_;
1673 	result = (NIM_BOOL)0;
1674 	T1_ = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
1675 	T1_ = isAssignable__parampatterns_334(((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL), n, NIM_FALSE);
1676 	result = ((38 &((NU8)1<<((NU)(T1_)&7U)))!=0);
1677 	return result;
1678 }
1679