1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3
4 #include "nimbase.h"
5 #include <string.h>
6 #undef LANGUAGE_C
7 #undef MIPSEB
8 #undef MIPSEL
9 #undef PPC
10 #undef R3000
11 #undef R4000
12 #undef i386
13 #undef linux
14 #undef mips
15 #undef near
16 #undef far
17 #undef powerpc
18 #undef unix
19 #define nimfr_(x, y)
20 #define nimln_(x, y)
21 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
22 typedef struct 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_2668)(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_5309)(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_5271)(void* usr);
325 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
326 static N_INLINE(void, decRef__system_5316)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
327 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
328 static N_INLINE(void, rtlAddZCT__system_5314)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
329 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5265)(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_5218;
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_2668((*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)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
1069 return result;
1070 }
N_INLINE(void,incRef__system_5309)1071 static N_INLINE(void, incRef__system_5309)(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)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
1078 return result;
1079 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5271)1080 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5271)(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) 16));
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 = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
1093 return result;
1094 }
N_INLINE(void,rtlAddZCT__system_5314)1095 static N_INLINE(void, rtlAddZCT__system_5314)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1096 addZCT__system_5265((&gch__system_5218.zct), c);
1097 }
N_INLINE(void,decRef__system_5316)1098 static N_INLINE(void, decRef__system_5316)(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_5314(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_5271(src);
1115 incRef__system_5309(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_5271((*dest));
1123 decRef__system_5316(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 2:
1325 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_21))) goto LA50_;
1326 break;
1327 case 4:
1328 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_13))) goto LA42_;
1329 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_18))) goto LA47_;
1330 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_20))) goto LA49_;
1331 break;
1332 case 6:
1333 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_14))) goto LA43_;
1334 break;
1335 case 10:
1336 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_17))) goto LA46_;
1337 break;
1338 case 11:
1339 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_11))) goto LA40_;
1340 break;
1341 case 12:
1342 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_12))) goto LA41_;
1343 break;
1344 case 13:
1345 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_15))) goto LA44_;
1346 break;
1347 case 14:
1348 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_16))) goto LA45_;
1349 if (eqStrings(spec, ((NimStringDesc*) &TM__kdeXVhLeMhTeIyOxnAjnxA_19))) goto LA48_;
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