1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 
4 #include "nimbase.h"
5 #include <string.h>
6 #undef LANGUAGE_C
7 #undef MIPSEB
8 #undef MIPSEL
9 #undef PPC
10 #undef R3000
11 #undef R4000
12 #undef i386
13 #undef linux
14 #undef mips
15 #undef near
16 #undef far
17 #undef powerpc
18 #undef unix
19 #define nimfr_(x, y)
20 #define nimln_(x, y)
21 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
22 typedef struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug;
23 typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
24 typedef struct tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug;
25 typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
26 typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
27 typedef struct RootObj RootObj;
28 typedef struct TNimType TNimType;
29 typedef struct TNimNode TNimNode;
30 typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
31 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
32 typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
33 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
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 tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
38 typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
39 typedef struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw;
40 typedef struct tySequence__eiMlYcU7NrAOGD2H36QOOQ tySequence__eiMlYcU7NrAOGD2H36QOOQ;
41 typedef struct tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ;
42 typedef struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg;
43 typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ;
44 typedef struct tySequence__oYkV9aFZe0MXcEAprJaOUsA tySequence__oYkV9aFZe0MXcEAprJaOUsA;
45 typedef struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q;
46 typedef struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA tySequence__Mh9agqM29bm9aP5AUL1x7dZGA;
47 typedef struct tySequence__arD7Tw6eD6lvOczWZl9buNg tySequence__arD7Tw6eD6lvOczWZl9buNg;
48 typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
49 typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
50 typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
51 typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
52 typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
53 typedef struct tySequence__jWKvSdankQPoT5bw9cBU9aiw tySequence__jWKvSdankQPoT5bw9cBU9aiw;
54 typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
55 typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
56 typedef struct NimStringDesc NimStringDesc;
57 typedef struct TGenericSeq TGenericSeq;
58 typedef struct tySequence__xSqu3cxq5WeFlOO3YgE6yA tySequence__xSqu3cxq5WeFlOO3YgE6yA;
59 typedef struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w;
60 typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw;
61 typedef struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w;
62 typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
63 typedef struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ;
64 typedef struct tySequence__Hkw5zrAn53wlKDHdJF1GFA tySequence__Hkw5zrAn53wlKDHdJF1GFA;
65 typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
66 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
67 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
68 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
69 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
70 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
71 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
72 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
73 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
74 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
75 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
76 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
77 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
78 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
79 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
80 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
81 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
82 typedef struct tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA;
83 typedef struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ;
84 typedef struct tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w;
85 typedef struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg;
86 typedef struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ;
87 typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
88 typedef struct tyTuple__KNXySARiHvEh2wA9asnyYmw tyTuple__KNXySARiHvEh2wA9asnyYmw;
89 typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
90 typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
91 typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
92 typedef struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag tyTuple__Y6Ewh3MCxsjd1bsriN6Gag;
93 typedef struct tySequence__vGU8AyGT6KxtLJwEg0BpNw tySequence__vGU8AyGT6KxtLJwEg0BpNw;
94 typedef struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw tyTuple__KvKIqRIx9anKcDMu8DPSkHw;
95 struct tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug {
96 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
97 tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* mapping;
98 NI formals;
99 tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
100 NIM_BOOL subMatch;
101 NIM_BOOL mappingIsFull;
102 };
103 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
104 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
105 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
106 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
107 struct TNimType {
108 NI size;
109 NI align;
110 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
111 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
112 TNimType* base;
113 TNimNode* node;
114 void* finalizer;
115 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
116 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
117 };
118 struct RootObj {
119 TNimType* m_type;
120 };
121 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
122 NI32 module;
123 NI32 item;
124 };
125 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
126   RootObj Sup;
127 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
128 };
129 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
130 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
131 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
132 NU16 line;
133 NI16 col;
134 NI32 fileIndex;
135 };
136 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
137 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
138 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
139 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
140 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
141 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
142 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
143 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
144 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
145 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
146 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
147 };
148 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
149   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
150 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
151 union{
152 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
153 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
154 } _kind_1;
155 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
156 NI bitsize;
157 NI alignment;
158 } _kind_2;
159 };
160 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
161 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
162 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
163 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
164 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
165 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
166 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
167 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
168 NI position;
169 NI offset;
170 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
171 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
172 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
173 };
174 struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
175   RootObj Sup;
176 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
177 };
178 typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__d88NmFOoQ1OEoX9af4f9aptg[38];
179 struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q {
180 NI counter;
181 tySequence__Mh9agqM29bm9aP5AUL1x7dZGA* data;
182 };
183 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__RcJNn9bSvWdJgUmA1O6sbHA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
184 typedef NU32 tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ;
185 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__39auogS0nN05zO6JrT7za9cQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
186 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__DZXD9cPwIfL76eNszoUR9aVA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
187 typedef struct {
188 N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
189 void* ClE_0;
190 } tyProc__7JwrY3AhkVNlleAJXClX9cw;
191 typedef NU32 tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
192 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__qlV9aWvA5wrWVg9bI5PqwJyA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
193 typedef N_NIMCALL_PTR(tyObject_TType__facALICuu8zUj0hjvbTLFg*, tyProc__IDzB9bjws1yntQXPpMRrBvA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
194 typedef struct {
195 N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
196 void* ClE_0;
197 } tyProc__3cacbJ4la9bDJNibHybQSnA;
198 typedef struct {
199 N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, void* ClE_0);
200 void* ClE_0;
201 } tyProc__fMj9boIZZOt9cLWRnD3rtKhA;
202 typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
203 struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
204 NI elems;
205 NI counter;
206 NI max;
207 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
208 tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
209 tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
210 };
211 struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
212 NI counter;
213 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data;
214 };
215 typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
216 typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dc, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, NI col);
217 struct TGenericSeq {
218 NI len;
219 NI reserved;
220 };
221 struct NimStringDesc {
222   TGenericSeq Sup;
223 NIM_CHAR data[SEQ_DECL_SIZE];
224 };
225 typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
226 struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w {
227 tySequence__Bis5AbpONWcIRrPyPJS8Yw* data;
228 NI counter;
229 };
230 struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w {
231 tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
232 NI counter;
233 };
234 struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ {
235 tySequence__Hkw5zrAn53wlKDHdJF1GFA* data;
236 NI counter;
237 };
238 struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug {
239   tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
240 tyObject_TType__facALICuu8zUj0hjvbTLFg* enforceVoidContext;
241 tyObject_TType__facALICuu8zUj0hjvbTLFg* voidType;
242 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
243 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* currentScope;
244 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* moduleScope;
245 tySequence__eiMlYcU7NrAOGD2H36QOOQ* imports;
246 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* topLevelScope;
247 tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p;
248 tyArray__d88NmFOoQ1OEoX9af4f9aptg intTypeCache;
249 tyObject_TType__facALICuu8zUj0hjvbTLFg* nilTypeCache;
250 tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* matchedConcept;
251 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* friendModules;
252 NI instCounter;
253 NI* templInstCounter;
254 NI inGenericContext;
255 NI inStaticContext;
256 NI inUnrolledContext;
257 NI compilesContextId;
258 NI compilesContextIdGenerator;
259 NI inGenericInst;
260 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* converters;
261 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* patterns;
262 tySequence__oYkV9aFZe0MXcEAprJaOUsA* optionStack;
263 tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMapping;
264 tySequence__arD7Tw6eD6lvOczWZl9buNg* libs;
265 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstExpr;
266 tyProc__39auogS0nN05zO6JrT7za9cQ semExpr;
267 tyProc__39auogS0nN05zO6JrT7za9cQ semTryExpr;
268 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semTryConstExpr;
269 tyProc__DZXD9cPwIfL76eNszoUR9aVA computeRequiresInit;
270 tyProc__7JwrY3AhkVNlleAJXClX9cw hasUnresolvedArgs;
271 tyProc__39auogS0nN05zO6JrT7za9cQ semOperand;
272 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstBoolExpr;
273 tyProc__qlV9aWvA5wrWVg9bI5PqwJyA semOverloadedCall;
274 tyProc__IDzB9bjws1yntQXPpMRrBvA semTypeNode;
275 tyProc__3cacbJ4la9bDJNibHybQSnA semInferredLambda;
276 tyProc__fMj9boIZZOt9cLWRnD3rtKhA semGenerateInstance;
277 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA includedFiles;
278 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA pureEnumFields;
279 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA userPragmas;
280 tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* evalContext;
281 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA unknownIdents;
282 tySequence__jWKvSdankQPoT5bw9cBU9aiw* generics;
283 NI topStmts;
284 NI lastGenericIdx;
285 NI hloLoopDetector;
286 NI inParallelStmt;
287 tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ instTypeBoundOp;
288 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* selfName;
289 tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
290 tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
291 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA signatures;
292 NimStringDesc* recursiveDep;
293 NIM_BOOL suggestionsMade;
294 NIM_BOOL isAmbiguous;
295 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
296 NI inTypeContext;
297 NI inConceptDecl;
298 tySequence__xSqu3cxq5WeFlOO3YgE6yA* unusedImports;
299 tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w exportIndirections;
300 tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w importModuleMap;
301 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastTLineInfo;
302 tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ sideEffects;
303 NI inUncheckedAssignSection;
304 };
305 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
306 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
307 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
308 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
309   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
310 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
311 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
312 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
313 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
314 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
315 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
316 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
317 NI64 size;
318 NI16 align;
319 NI16 paddingAtEnd;
320 NI16 lockLevel;
321 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
322 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
323 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
324 };
325 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
326 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
327 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
328 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
329 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
330 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
331 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
332 union{
333 struct {NI64 intVal;
334 } _kind_1;
335 struct {NF floatVal;
336 } _kind_2;
337 struct {NimStringDesc* strVal;
338 } _kind_3;
339 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
340 } _kind_4;
341 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
342 } _kind_5;
343 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
344 } _kind_6;
345 };
346 };
347 typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
348 struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
349 NI id;
350 NimStringDesc* s;
351 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
352 NI h;
353 };
354 typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
355 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
356 struct TNimNode {
357 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
358 NI offset;
359 TNimType* typ;
360 NCSTRING name;
361 NI len;
362 TNimNode** sons;
363 };
364 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
365 NI refcount;
366 TNimType* typ;
367 };
368 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
369 void* bottom;
370 };
371 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
372 NI len;
373 NI cap;
374 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
375 };
376 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
377 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
378 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
379 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
380 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
381 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
382 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
383 };
384 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
385 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
386 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
387 NI key;
388 NI upperBound;
389 NI level;
390 };
391 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
392 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
393 NI Field1;
394 };
395 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
396 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
397 NI len;
398 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
399 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
400 };
401 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
402 NI minLargeObj;
403 NI maxLargeObj;
404 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
405 NU32 flBitmap;
406 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
407 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
408 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
409 NI currMem;
410 NI maxMem;
411 NI freeMem;
412 NI occ;
413 NI lastSize;
414 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
415 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
416 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
417 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
418 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
419 NIM_BOOL locked;
420 NIM_BOOL blockChunkSizeIncrease;
421 NI nextChunkSize;
422 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
423 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
424 };
425 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
426 NI stackScans;
427 NI cycleCollections;
428 NI maxThreshold;
429 NI maxStackSize;
430 NI maxStackCells;
431 NI cycleTableSize;
432 NI64 maxPause;
433 };
434 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
435 NI counter;
436 NI max;
437 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
438 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
439 };
440 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
441 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
442 NI cycleThreshold;
443 NI zctThreshold;
444 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
445 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
446 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
447 NI recGcLock;
448 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
449 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
450 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
451 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
452 NI gcThreadId;
453 };
454 struct tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA {
455   RootObj Sup;
456 NI colonstate_;
457 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p1;
458 };
459 typedef struct {
460 N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn, void* ClE_0);
461 void* ClE_0;
462 } tyProc__2zVtpTRUOsHSWXUjCANYlA;
463 typedef N_CLOSURE_PTR(NIM_BOOL, TM__1E9cVLQUjhbw81lEou89bC9bw_7) (tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn);
464 typedef N_CLOSURE_PTR(NIM_BOOL, TM__1E9cVLQUjhbw81lEou89bC9bw_8) (tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn);
465 typedef N_CLOSURE_PTR(NIM_BOOL, TM__1E9cVLQUjhbw81lEou89bC9bw_9) (tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn);
466 typedef NU8 tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw;
467 typedef NU8 tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w;
468 typedef NU8 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ;
469 struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ {
470 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
471 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ mode;
472 union{
473 struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA imported;
474 } _mode_2;
475 struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA exceptSet;
476 } _mode_3;
477 };
478 };
479 struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg {
480 tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key;
481 RootObj* val;
482 };
483 struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ {
484 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genericSym;
485 tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
486 };
487 struct tyTuple__KNXySARiHvEh2wA9asnyYmw {
488 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
489 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field1;
490 };
491 struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
492 NI Field0;
493 NI Field1;
494 };
495 struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
496 NI Field0;
497 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
498 };
499 struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
500 NI Field0;
501 NI Field1;
502 NI Field2;
503 };
504 struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw {
505 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
506 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
507 };
508 struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag {
509 NI Field0;
510 NI Field1;
511 tySequence__vGU8AyGT6KxtLJwEg0BpNw* Field2;
512 };
513 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
514   TGenericSeq Sup;
515   tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
516 };
517 struct tySequence__eiMlYcU7NrAOGD2H36QOOQ {
518   TGenericSeq Sup;
519   tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ data[SEQ_DECL_SIZE];
520 };
521 struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ {
522   TGenericSeq Sup;
523   tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE];
524 };
525 struct tySequence__oYkV9aFZe0MXcEAprJaOUsA {
526   TGenericSeq Sup;
527   tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* data[SEQ_DECL_SIZE];
528 };
529 struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA {
530   TGenericSeq Sup;
531   tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE];
532 };
533 struct tySequence__arD7Tw6eD6lvOczWZl9buNg {
534   TGenericSeq Sup;
535   tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* data[SEQ_DECL_SIZE];
536 };
537 struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
538   TGenericSeq Sup;
539   tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
540 };
541 struct tySequence__jWKvSdankQPoT5bw9cBU9aiw {
542   TGenericSeq Sup;
543   tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ data[SEQ_DECL_SIZE];
544 };
545 struct tySequence__xSqu3cxq5WeFlOO3YgE6yA {
546   TGenericSeq Sup;
547   tyTuple__KNXySARiHvEh2wA9asnyYmw data[SEQ_DECL_SIZE];
548 };
549 struct tySequence__Bis5AbpONWcIRrPyPJS8Yw {
550   TGenericSeq Sup;
551   tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE];
552 };
553 struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
554   TGenericSeq Sup;
555   tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
556 };
557 struct tySequence__vGU8AyGT6KxtLJwEg0BpNw {
558   TGenericSeq Sup;
559   tyTuple__KvKIqRIx9anKcDMu8DPSkHw data[SEQ_DECL_SIZE];
560 };
561 struct tySequence__Hkw5zrAn53wlKDHdJF1GFA {
562   TGenericSeq Sup;
563   tyTuple__Y6Ewh3MCxsjd1bsriN6Gag data[SEQ_DECL_SIZE];
564 };
565 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
566   TGenericSeq Sup;
567   tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
568 };
569 static N_INLINE(void, nimZeroMem)(void* p, NI size);
570 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
571 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
572 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, matchStmtList__patterns_432)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
573 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
574 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, flattenStmts__trees_355)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
575 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchRange__patterns_437)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i);
576 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__patterns_29)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
577 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipHidden__types_3604)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
578 static N_INLINE(NIM_BOOL, isPatternParam__patterns_114)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p);
579 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bindOrCheck__patterns_144)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
580 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getLazy__patterns_17)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
581 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTrees__patterns_48)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
582 static N_INLINE(NIM_BOOL, sameKinds__patterns_36)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
583 N_LIB_PRIVATE N_NIMCALL(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw, canonKind__patterns_33)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
584 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
585 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
586 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
587 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_1839)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
588 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkTypes__patterns_98)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
589 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNodeKinds__parampatterns_505)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
590 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argtypeMatches__sigmatch_4281)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, NIM_BOOL fromHlo);
591 N_LIB_PRIVATE N_NIMCALL(void, putLazy__patterns_21)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
592 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
593 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
594 static N_INLINE(void, asgnRef)(void** dest, void* src);
595 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
596 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
597 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
598 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
599 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
600 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
601 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
602 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
603 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSymChoice__patterns_72)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
604 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchChoice__patterns_130)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
605 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNested__patterns_176)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL rpn);
606 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
607 static N_NIMCALL(void, Marker_tyRef__jrUntIBTBNpJiJYXuyZctg)(void* p, NI op);
608 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
609 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
610 N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, matchStarAux__patterns_182)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn, void* ClE_0);
611 N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
612 N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
613 N_LIB_PRIVATE N_NIMCALL(void, gather__patterns_158)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
614 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3360)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
615 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4832)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
616 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, extractRange__trees_362)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI a, NI b);
617 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3719)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
618 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, aliasAnalysisRequested__patterns_495)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params);
619 N_LIB_PRIVATE N_NIMCALL(tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw, whichAlias__parampatterns_48)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* p);
620 N_LIB_PRIVATE N_NIMCALL(void, addToArgList__patterns_516)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
621 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
622 N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w, isPartOf__aliases_129)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
623 N_LIB_PRIVATE N_NIMCALL(void, markUsed__sigmatch_85)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
624 extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
625 STRING_LITERAL(TM__1E9cVLQUjhbw81lEou89bC9bw_2, "|", 1);
626 STRING_LITERAL(TM__1E9cVLQUjhbw81lEou89bC9bw_3, "*", 1);
627 STRING_LITERAL(TM__1E9cVLQUjhbw81lEou89bC9bw_4, "**", 2);
628 STRING_LITERAL(TM__1E9cVLQUjhbw81lEou89bC9bw_5, "~", 1);
629 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
630 N_LIB_PRIVATE TNimType NTIobject__MvzTl9buOo7Gy8twSJhcfLA_;
631 extern TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
632 extern TNimType NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_;
633 N_LIB_PRIVATE TNimType NTIrefobject__jrUntIBTBNpJiJYXuyZctg_;
634 STRING_LITERAL(TM__1E9cVLQUjhbw81lEou89bC9bw_10, "patterns.nim(155, 19) `false` invalid pattern", 45);
635 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
N_INLINE(void,nimSetMem__systemZmemory_7)636 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
637 	void* T1_;
638 	T1_ = (void*)0;
639 	T1_ = memset(a, v, ((size_t) (size)));
640 }
N_INLINE(void,nimZeroMem)641 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
642 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
643 }
N_INLINE(NI,len__ast_4002)644 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n) {
645 	NI result;
646 	NI T1_;
647 	result = (NI)0;
648 	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
649 	result = T1_;
650 	return result;
651 }
N_INLINE(NI,len__ast_3198)652 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
653 	NI result;
654 	NI T1_;
655 	result = (NI)0;
656 	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
657 	result = T1_;
658 	return result;
659 }
N_INLINE(NIM_BOOL,isPatternParam__patterns_114)660 static N_INLINE(NIM_BOOL, isPatternParam__patterns_114)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p) {
661 	NIM_BOOL result;
662 	NIM_BOOL T1_;
663 	NIM_BOOL T2_;
664 	result = (NIM_BOOL)0;
665 	T1_ = (NIM_BOOL)0;
666 	T2_ = (NIM_BOOL)0;
667 	T2_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
668 	if (!(T2_)) goto LA3_;
669 	T2_ = ((*(*p)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
670 	LA3_: ;
671 	T1_ = T2_;
672 	if (!(T1_)) goto LA4_;
673 	T1_ = ((*(*p)._kind_4.sym).owner == (*c).owner);
674 	LA4_: ;
675 	result = T1_;
676 	return result;
677 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,getLazy__patterns_17)678 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getLazy__patterns_17)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym) {
679 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
680 	result = NIM_NIL;
681 	{
682 		if (!(*c).mappingIsFull) goto LA3_;
683 		result = (*c).mapping->data[(*sym).position];
684 	}
685 	LA3_: ;
686 	return result;
687 }
N_NIMCALL(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw,canonKind__patterns_33)688 N_LIB_PRIVATE N_NIMCALL(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw, canonKind__patterns_33)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
689 	tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw result;
690 	result = (tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)0;
691 	result = (*n).kind;
692 	switch (result) {
693 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
694 	{
695 		result = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27);
696 	}
697 	break;
698 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
699 	{
700 		result = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20);
701 	}
702 	break;
703 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
704 	{
705 		result = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73);
706 	}
707 	break;
708 	default:
709 	{
710 	}
711 	break;
712 	}
713 	return result;
714 }
N_INLINE(NIM_BOOL,sameKinds__patterns_36)715 static N_INLINE(NIM_BOOL, sameKinds__patterns_36)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
716 	NIM_BOOL result;
717 	NIM_BOOL T1_;
718 	tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw T3_;
719 	tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw T4_;
720 	result = (NIM_BOOL)0;
721 	T1_ = (NIM_BOOL)0;
722 	T1_ = ((*a).kind == (*b).kind);
723 	if (T1_) goto LA2_;
724 	T3_ = (tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)0;
725 	T3_ = canonKind__patterns_33(a);
726 	T4_ = (tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)0;
727 	T4_ = canonKind__patterns_33(b);
728 	T1_ = (T3_ == T4_);
729 	LA2_: ;
730 	result = T1_;
731 	return result;
732 }
N_INLINE(int,nimCmpMem)733 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
734 	int result;
735 	result = (int)0;
736 	result = memcmp(a, b, ((size_t) (size)));
737 	return result;
738 }
N_INLINE(NIM_BOOL,equalMem__system_1735)739 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
740 	NIM_BOOL result;
741 	int T1_;
742 	result = (NIM_BOOL)0;
743 	T1_ = (int)0;
744 	T1_ = nimCmpMem(a, b, size);
745 	result = (T1_ == ((NI32) 0));
746 	return result;
747 }
N_INLINE(NIM_BOOL,eqStrings)748 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
749 	NIM_BOOL result;
750 	NI alen;
751 	NI blen;
752 {	result = (NIM_BOOL)0;
753 	alen = (a ? a->Sup.len : 0);
754 	blen = (b ? b->Sup.len : 0);
755 	{
756 		if (!(alen == blen)) goto LA3_;
757 		{
758 			if (!(alen == ((NI) 0))) goto LA7_;
759 			result = NIM_TRUE;
760 			goto BeforeRet_;
761 		}
762 		LA7_: ;
763 		result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
764 		goto BeforeRet_;
765 	}
766 	LA3_: ;
767 	}BeforeRet_: ;
768 	return result;
769 }
N_NIMCALL(NIM_BOOL,sameTrees__patterns_48)770 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTrees__patterns_48)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
771 	NIM_BOOL result;
772 {	result = (NIM_BOOL)0;
773 	{
774 		NIM_BOOL T3_;
775 		T3_ = (NIM_BOOL)0;
776 		T3_ = sameKinds__patterns_36(a, b);
777 		if (!T3_) goto LA4_;
778 		switch ((*a).kind) {
779 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
780 		{
781 			result = ((*a)._kind_4.sym == (*b)._kind_4.sym);
782 		}
783 		break;
784 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
785 		{
786 			result = ((*(*a)._kind_5.ident).id == (*(*b)._kind_5.ident).id);
787 		}
788 		break;
789 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
790 		{
791 			result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal);
792 		}
793 		break;
794 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
795 		{
796 			result = ((*a)._kind_2.floatVal == (*b)._kind_2.floatVal);
797 		}
798 		break;
799 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
800 		{
801 			result = eqStrings((*a)._kind_3.strVal, (*b)._kind_3.strVal);
802 		}
803 		break;
804 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
805 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
806 		{
807 			result = NIM_TRUE;
808 		}
809 		break;
810 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
811 		{
812 			result = sameTypeOrNil__types_1839((*a).typ, (*b).typ, 0);
813 		}
814 		break;
815 		default:
816 		{
817 			{
818 				NI T16_;
819 				NI T17_;
820 				T16_ = (NI)0;
821 				T16_ = len__ast_3198(a);
822 				T17_ = (NI)0;
823 				T17_ = len__ast_3198(b);
824 				if (!(T16_ == T17_)) goto LA18_;
825 				{
826 					NI i;
827 					NI colontmp_;
828 					NI i_2;
829 					i = (NI)0;
830 					colontmp_ = (NI)0;
831 					colontmp_ = len__ast_3198(a);
832 					i_2 = ((NI) 0);
833 					{
834 						while (1) {
835 							if (!(i_2 < colontmp_)) goto LA22;
836 							i = i_2;
837 							{
838 								NIM_BOOL T25_;
839 								T25_ = (NIM_BOOL)0;
840 								T25_ = sameTrees__patterns_48((*a)._kind_6.sons->data[i], (*b)._kind_6.sons->data[i]);
841 								if (!!(T25_)) goto LA26_;
842 								goto BeforeRet_;
843 							}
844 							LA26_: ;
845 							i_2 += ((NI) 1);
846 						} LA22: ;
847 					}
848 				}
849 				result = NIM_TRUE;
850 			}
851 			LA18_: ;
852 		}
853 		break;
854 		}
855 	}
856 	LA4_: ;
857 	}BeforeRet_: ;
858 	return result;
859 }
N_NIMCALL(NIM_BOOL,checkTypes__patterns_98)860 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkTypes__patterns_98)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
861 	NIM_BOOL result;
862 {	result = (NIM_BOOL)0;
863 	{
864 		if (!!(((*p).constraint == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
865 		result = matchNodeKinds__parampatterns_505((*p).constraint, n);
866 		{
867 			if (!!(result)) goto LA7_;
868 			goto BeforeRet_;
869 		}
870 		LA7_: ;
871 	}
872 	LA3_: ;
873 	{
874 		if (!((*n).typ == 0)) goto LA11_;
875 		result = ((*(*p).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*(*p).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
876 	}
877 	goto LA9_;
878 	LA11_: ;
879 	{
880 		result = argtypeMatches__sigmatch_4281((*c).c, (*p).typ, (*n).typ, NIM_TRUE);
881 	}
882 	LA9_: ;
883 	}BeforeRet_: ;
884 	return result;
885 }
N_INLINE(NI,pluspercent___system_696)886 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
887 	NI result;
888 	result = (NI)0;
889 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
890 	return result;
891 }
N_INLINE(void,incRef__system_5308)892 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
893 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
894 }
N_INLINE(NI,minuspercent___system_716)895 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
896 	NI result;
897 	result = (NI)0;
898 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
899 	return result;
900 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5270)901 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
902 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
903 	NI T1_;
904 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
905 	T1_ = (NI)0;
906 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
907 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
908 	return result;
909 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)910 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
911 	NIM_BOOL result;
912 	result = (NIM_BOOL)0;
913 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
914 	return result;
915 }
N_INLINE(void,rtlAddZCT__system_5313)916 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
917 	addZCT__system_5264((&gch__system_5217.zct), c);
918 }
N_INLINE(void,decRef__system_5315)919 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
920 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
921 	{
922 		NIM_BOOL T3_;
923 		T3_ = (NIM_BOOL)0;
924 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
925 		if (!T3_) goto LA4_;
926 		rtlAddZCT__system_5313(c);
927 	}
928 	LA4_: ;
929 }
N_INLINE(void,asgnRef)930 static N_INLINE(void, asgnRef)(void** dest, void* src) {
931 	{
932 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
933 		if (!!((src == NIM_NIL))) goto LA3_;
934 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
935 		T5_ = usrToCell__system_5270(src);
936 		incRef__system_5308(T5_);
937 	}
938 	LA3_: ;
939 	{
940 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
941 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
942 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
943 		T10_ = usrToCell__system_5270((*dest));
944 		decRef__system_5315(T10_);
945 	}
946 	LA8_: ;
947 	(*dest) = src;
948 }
N_NIMCALL(void,putLazy__patterns_21)949 N_LIB_PRIVATE N_NIMCALL(void, putLazy__patterns_21)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
950 	{
951 		if (!!((*c).mappingIsFull)) goto LA3_;
952 		unsureAsgnRef((void**) (&(*c).mapping), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) newSeq((&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) ((*c).formals))));
953 		(*c).mappingIsFull = NIM_TRUE;
954 	}
955 	LA3_: ;
956 	asgnRef((void**) (&(*c).mapping->data[(*sym).position]), n);
957 }
N_NIMCALL(NIM_BOOL,bindOrCheck__patterns_144)958 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bindOrCheck__patterns_144)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
959 	NIM_BOOL result;
960 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pp;
961 	result = (NIM_BOOL)0;
962 	pp = getLazy__patterns_17(c, param);
963 	{
964 		if (!!((pp == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
965 		result = sameTrees__patterns_48(pp, n);
966 	}
967 	goto LA1_;
968 	LA3_: ;
969 	{
970 		NIM_BOOL T6_;
971 		T6_ = (NIM_BOOL)0;
972 		T6_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152));
973 		if (T6_) goto LA7_;
974 		T6_ = checkTypes__patterns_98(c, param, n);
975 		LA7_: ;
976 		if (!T6_) goto LA8_;
977 		putLazy__patterns_21(c, param, n);
978 		result = NIM_TRUE;
979 	}
980 	goto LA1_;
981 	LA8_: ;
982 	LA1_: ;
983 	return result;
984 }
N_NIMCALL(NIM_BOOL,inSymChoice__patterns_72)985 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSymChoice__patterns_72)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
986 	NIM_BOOL result;
987 {	result = (NIM_BOOL)0;
988 	{
989 		if (!((*sc).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56))) goto LA3_;
990 		{
991 			NI i;
992 			NI colontmp_;
993 			NI i_2;
994 			i = (NI)0;
995 			colontmp_ = (NI)0;
996 			colontmp_ = len__ast_3198(sc);
997 			i_2 = ((NI) 0);
998 			{
999 				while (1) {
1000 					if (!(i_2 < colontmp_)) goto LA7;
1001 					i = i_2;
1002 					{
1003 						if (!((*(*sc)._kind_6.sons->data[i])._kind_4.sym == (*x)._kind_4.sym)) goto LA10_;
1004 						result = NIM_TRUE;
1005 						goto BeforeRet_;
1006 					}
1007 					LA10_: ;
1008 					i_2 += ((NI) 1);
1009 				} LA7: ;
1010 			}
1011 		}
1012 	}
1013 	goto LA1_;
1014 	LA3_: ;
1015 	{
1016 		if (!((*sc).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57))) goto LA13_;
1017 		result = ((*(*(*(*sc)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).id == (*(*(*x)._kind_4.sym).name).id);
1018 	}
1019 	goto LA1_;
1020 	LA13_: ;
1021 	LA1_: ;
1022 	}BeforeRet_: ;
1023 	return result;
1024 }
N_NIMCALL(NIM_BOOL,matchChoice__patterns_130)1025 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchChoice__patterns_130)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1026 	NIM_BOOL result;
1027 {	result = (NIM_BOOL)0;
1028 	{
1029 		NI i;
1030 		NI colontmp_;
1031 		NI i_2;
1032 		i = (NI)0;
1033 		colontmp_ = (NI)0;
1034 		colontmp_ = len__ast_3198(p);
1035 		i_2 = ((NI) 1);
1036 		{
1037 			while (1) {
1038 				if (!(i_2 < colontmp_)) goto LA3;
1039 				i = i_2;
1040 				{
1041 					NIM_BOOL T6_;
1042 					T6_ = (NIM_BOOL)0;
1043 					T6_ = matches__patterns_29(c, (*p)._kind_6.sons->data[i], n);
1044 					if (!T6_) goto LA7_;
1045 					result = NIM_TRUE;
1046 					goto BeforeRet_;
1047 				}
1048 				LA7_: ;
1049 				i_2 += ((NI) 1);
1050 			} LA3: ;
1051 		}
1052 	}
1053 	}BeforeRet_: ;
1054 	return result;
1055 }
N_NIMCALL(void,Marker_tyRef__jrUntIBTBNpJiJYXuyZctg)1056 static N_NIMCALL(void, Marker_tyRef__jrUntIBTBNpJiJYXuyZctg)(void* p, NI op) {
1057 	tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA* a;
1058 	a = (tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA*)p;
1059 	nimGCvisit((void*)(*a).p1, op);
1060 }
N_CLOSURE(NIM_BOOL,matchStarAux__patterns_182)1061 N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, matchStarAux__patterns_182)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn, void* ClE_0) {
1062 	NIM_BOOL result;
1063 	tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA* colonenvP_;
1064 {	result = (NIM_BOOL)0;
1065 	colonenvP_ = (tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA*) ClE_0;
1066 	result = NIM_TRUE;
1067 	{
1068 		NIM_BOOL T3_;
1069 		T3_ = (NIM_BOOL)0;
1070 		T3_ = ((*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));
1071 		if (!(T3_)) goto LA4_;
1072 		T3_ = matches__patterns_29(c, (*op)._kind_6.sons->data[((NI) 1)], (*n)._kind_6.sons->data[((NI) 0)]);
1073 		LA4_: ;
1074 		if (!T3_) goto LA5_;
1075 		{
1076 			NI i;
1077 			NI colontmp_;
1078 			NI i_2;
1079 			i = (NI)0;
1080 			colontmp_ = (NI)0;
1081 			colontmp_ = len__ast_3198(n);
1082 			i_2 = ((NI) 1);
1083 			{
1084 				while (1) {
1085 					if (!(i_2 < colontmp_)) goto LA9;
1086 					i = i_2;
1087 					{
1088 						tyProc__2zVtpTRUOsHSWXUjCANYlA T12_;
1089 						NIM_BOOL T13_;
1090 						nimZeroMem((void*)(&T12_), sizeof(tyProc__2zVtpTRUOsHSWXUjCANYlA));
1091 						T12_.ClP_0 = matchStarAux__patterns_182; T12_.ClE_0 = colonenvP_;
1092 						T13_ = (NIM_BOOL)0;
1093 						T13_ = T12_.ClE_0? T12_.ClP_0(c, op, (*n)._kind_6.sons->data[i], arglist, rpn, T12_.ClE_0):((TM__1E9cVLQUjhbw81lEou89bC9bw_7)(T12_.ClP_0))(c, op, (*n)._kind_6.sons->data[i], arglist, rpn);
1094 						if (!!(T13_)) goto LA14_;
1095 						result = NIM_FALSE;
1096 						goto BeforeRet_;
1097 					}
1098 					LA14_: ;
1099 					i_2 += ((NI) 1);
1100 				} LA9: ;
1101 			}
1102 		}
1103 		{
1104 			if (!rpn) goto LA18_;
1105 			add__ast_4797(arglist, (*n)._kind_6.sons->data[((NI) 0)]);
1106 		}
1107 		LA18_: ;
1108 	}
1109 	goto LA1_;
1110 	LA5_: ;
1111 	{
1112 		NIM_BOOL T21_;
1113 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
1114 		T21_ = (NIM_BOOL)0;
1115 		T21_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58));
1116 		if (!(T21_)) goto LA22_;
1117 		T21_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
1118 		LA22_: ;
1119 		if (!T21_) goto LA23_;
1120 		n_2 = (*n)._kind_6.sons->data[((NI) 1)];
1121 		{
1122 			NI i_3;
1123 			NI colontmp__2;
1124 			NI i_4;
1125 			i_3 = (NI)0;
1126 			colontmp__2 = (NI)0;
1127 			colontmp__2 = len__ast_3198(n_2);
1128 			i_4 = ((NI) 0);
1129 			{
1130 				while (1) {
1131 					if (!(i_4 < colontmp__2)) goto LA27;
1132 					i_3 = i_4;
1133 					{
1134 						tyProc__2zVtpTRUOsHSWXUjCANYlA T30_;
1135 						NIM_BOOL T31_;
1136 						nimZeroMem((void*)(&T30_), sizeof(tyProc__2zVtpTRUOsHSWXUjCANYlA));
1137 						T30_.ClP_0 = matchStarAux__patterns_182; T30_.ClE_0 = colonenvP_;
1138 						T31_ = (NIM_BOOL)0;
1139 						T31_ = T30_.ClE_0? T30_.ClP_0(c, op, (*n_2)._kind_6.sons->data[i_3], arglist, rpn, T30_.ClE_0):((TM__1E9cVLQUjhbw81lEou89bC9bw_8)(T30_.ClP_0))(c, op, (*n_2)._kind_6.sons->data[i_3], arglist, rpn);
1140 						if (!!(T31_)) goto LA32_;
1141 						result = NIM_FALSE;
1142 						goto BeforeRet_;
1143 					}
1144 					LA32_: ;
1145 					i_4 += ((NI) 1);
1146 				} LA27: ;
1147 			}
1148 		}
1149 	}
1150 	goto LA1_;
1151 	LA23_: ;
1152 	{
1153 		NIM_BOOL T35_;
1154 		T35_ = (NIM_BOOL)0;
1155 		T35_ = checkTypes__patterns_98(c, (*(*(*colonenvP_).p1)._kind_6.sons->data[((NI) 2)])._kind_4.sym, n);
1156 		if (!T35_) goto LA36_;
1157 		add__ast_4797(arglist, n);
1158 	}
1159 	goto LA1_;
1160 	LA36_: ;
1161 	{
1162 		result = NIM_FALSE;
1163 	}
1164 	LA1_: ;
1165 	}BeforeRet_: ;
1166 	return result;
1167 }
N_NIMCALL(NIM_BOOL,matchNested__patterns_176)1168 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNested__patterns_176)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL rpn) {
1169 	NIM_BOOL result;
1170 	tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA* colonenv_;
1171 {	result = (NIM_BOOL)0;
1172 	colonenv_ = NIM_NIL;
1173 	colonenv_ = (tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA*) newObj((&NTIrefobject__jrUntIBTBNpJiJYXuyZctg_), sizeof(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA));
1174 	(*colonenv_).Sup.m_type = (&NTIobject__MvzTl9buOo7Gy8twSJhcfLA_);
1175 	asgnRef((void**) (&(*colonenv_).p1), p);
1176 	{
1177 		if (!!(((*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)))) goto LA3_;
1178 		result = NIM_FALSE;
1179 		goto BeforeRet_;
1180 	}
1181 	LA3_: ;
1182 	{
1183 		NIM_BOOL T7_;
1184 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist;
1185 		T7_ = (NIM_BOOL)0;
1186 		T7_ = matches__patterns_29(c, (*(*colonenv_).p1)._kind_6.sons->data[((NI) 1)], (*n)._kind_6.sons->data[((NI) 0)]);
1187 		if (!T7_) goto LA8_;
1188 		arglist = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n).info);
1189 		{
1190 			tyProc__2zVtpTRUOsHSWXUjCANYlA T12_;
1191 			NIM_BOOL T13_;
1192 			nimZeroMem((void*)(&T12_), sizeof(tyProc__2zVtpTRUOsHSWXUjCANYlA));
1193 			T12_.ClP_0 = matchStarAux__patterns_182; T12_.ClE_0 = colonenv_;
1194 			T13_ = (NIM_BOOL)0;
1195 			T13_ = T12_.ClE_0? T12_.ClP_0(c, (*colonenv_).p1, n, arglist, rpn, T12_.ClE_0):((TM__1E9cVLQUjhbw81lEou89bC9bw_9)(T12_.ClP_0))(c, (*colonenv_).p1, n, arglist, rpn);
1196 			if (!T13_) goto LA14_;
1197 			result = bindOrCheck__patterns_144(c, (*(*(*colonenv_).p1)._kind_6.sons->data[((NI) 2)])._kind_4.sym, arglist);
1198 		}
1199 		LA14_: ;
1200 	}
1201 	LA8_: ;
1202 	}BeforeRet_: ;
1203 	return result;
1204 }
N_NIMCALL(void,gather__patterns_158)1205 N_LIB_PRIVATE N_NIMCALL(void, gather__patterns_158)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1206 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pp;
1207 	pp = getLazy__patterns_17(c, param);
1208 	{
1209 		NIM_BOOL T3_;
1210 		T3_ = (NIM_BOOL)0;
1211 		T3_ = !((pp == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
1212 		if (!(T3_)) goto LA4_;
1213 		T3_ = ((*pp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152));
1214 		LA4_: ;
1215 		if (!T3_) goto LA5_;
1216 		add__ast_4797(pp, n);
1217 	}
1218 	goto LA1_;
1219 	LA5_: ;
1220 	{
1221 		pp = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n).info, ((NI) 1));
1222 		asgnRef((void**) (&(*pp)._kind_6.sons->data[((NI) 0)]), n);
1223 		putLazy__patterns_21(c, param, pp);
1224 	}
1225 	LA1_: ;
1226 }
N_NIMCALL(NIM_BOOL,matches__patterns_29)1227 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__patterns_29)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1228 	NIM_BOOL result;
1229 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
1230 {	result = (NIM_BOOL)0;
1231 	n_2 = skipHidden__types_3604(n);
1232 	{
1233 		if (!(((*n_2).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 6))&31U)))!=0)) goto LA3_;
1234 		result = NIM_FALSE;
1235 	}
1236 	goto LA1_;
1237 	LA3_: ;
1238 	{
1239 		NIM_BOOL T6_;
1240 		T6_ = (NIM_BOOL)0;
1241 		T6_ = isPatternParam__patterns_114(c, p);
1242 		if (!T6_) goto LA7_;
1243 		result = bindOrCheck__patterns_144(c, (*p)._kind_4.sym, n_2);
1244 	}
1245 	goto LA1_;
1246 	LA7_: ;
1247 	{
1248 		NIM_BOOL T10_;
1249 		T10_ = (NIM_BOOL)0;
1250 		T10_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
1251 		if (!(T10_)) goto LA11_;
1252 		T10_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
1253 		LA11_: ;
1254 		if (!T10_) goto LA12_;
1255 		result = ((*(*p)._kind_5.ident).id == (*(*(*n_2)._kind_4.sym).name).id);
1256 	}
1257 	goto LA1_;
1258 	LA12_: ;
1259 	{
1260 		NIM_BOOL T15_;
1261 		T15_ = (NIM_BOOL)0;
1262 		T15_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
1263 		if (!(T15_)) goto LA16_;
1264 		T15_ = inSymChoice__patterns_72(p, n_2);
1265 		LA16_: ;
1266 		if (!T15_) goto LA17_;
1267 		result = NIM_TRUE;
1268 	}
1269 	goto LA1_;
1270 	LA17_: ;
1271 	{
1272 		NIM_BOOL T20_;
1273 		T20_ = (NIM_BOOL)0;
1274 		T20_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
1275 		if (!(T20_)) goto LA21_;
1276 		T20_ = ((*(*n_2)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10));
1277 		LA21_: ;
1278 		if (!T20_) goto LA22_;
1279 		{
1280 			if (!((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA26_;
1281 			result = ((*p)._kind_4.sym == (*n_2)._kind_4.sym);
1282 		}
1283 		goto LA24_;
1284 		LA26_: ;
1285 		{
1286 			NIM_BOOL T29_;
1287 			T29_ = (NIM_BOOL)0;
1288 			T29_ = matches__patterns_29(c, p, (*(*n_2)._kind_4.sym).ast);
1289 			if (!T29_) goto LA30_;
1290 			result = NIM_TRUE;
1291 		}
1292 		goto LA24_;
1293 		LA30_: ;
1294 		LA24_: ;
1295 	}
1296 	goto LA1_;
1297 	LA22_: ;
1298 	{
1299 		NimStringDesc* opr;
1300 		if (!((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 153))) goto LA33_;
1301 		opr = (*(*(*p)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s;
1302 		if (eqStrings(opr, ((NimStringDesc*) &TM__1E9cVLQUjhbw81lEou89bC9bw_2))) goto LA35_;
1303 		if (eqStrings(opr, ((NimStringDesc*) &TM__1E9cVLQUjhbw81lEou89bC9bw_3))) goto LA36_;
1304 		if (eqStrings(opr, ((NimStringDesc*) &TM__1E9cVLQUjhbw81lEou89bC9bw_4))) goto LA37_;
1305 		if (eqStrings(opr, ((NimStringDesc*) &TM__1E9cVLQUjhbw81lEou89bC9bw_5))) goto LA38_;
1306 		goto LA39_;
1307 		LA35_: ;
1308 		{
1309 			result = matchChoice__patterns_130(c, p, n_2);
1310 		}
1311 		goto LA40_;
1312 		LA36_: ;
1313 		{
1314 			result = matchNested__patterns_176(c, p, n_2, NIM_FALSE);
1315 		}
1316 		goto LA40_;
1317 		LA37_: ;
1318 		{
1319 			result = matchNested__patterns_176(c, p, n_2, NIM_TRUE);
1320 		}
1321 		goto LA40_;
1322 		LA38_: ;
1323 		{
1324 			NIM_BOOL T45_;
1325 			T45_ = (NIM_BOOL)0;
1326 			T45_ = matches__patterns_29(c, (*p)._kind_6.sons->data[((NI) 1)], n_2);
1327 			result = !(T45_);
1328 		}
1329 		goto LA40_;
1330 		LA39_: ;
1331 		{
1332 			{
1333 				if (!NIM_TRUE) goto LA49_;
1334 				failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__1E9cVLQUjhbw81lEou89bC9bw_10));
1335 			}
1336 			LA49_: ;
1337 		}
1338 		LA40_: ;
1339 	}
1340 	goto LA1_;
1341 	LA33_: ;
1342 	{
1343 		if (!((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40))) goto LA52_;
1344 		{
1345 			if (!((*(*p)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30))) goto LA56_;
1346 			{
1347 				NIM_BOOL T60_;
1348 				T60_ = (NIM_BOOL)0;
1349 				T60_ = matches__patterns_29(c, (*p)._kind_6.sons->data[((NI) 0)], n_2);
1350 				if (!T60_) goto LA61_;
1351 				gather__patterns_158(c, (*(*(*p)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)])._kind_4.sym, n_2);
1352 				result = NIM_TRUE;
1353 			}
1354 			LA61_: ;
1355 		}
1356 		goto LA54_;
1357 		LA56_: ;
1358 		{
1359 			{
1360 				NIM_BOOL T66_;
1361 				T66_ = (NIM_BOOL)0;
1362 				T66_ = matches__patterns_29(c, (*p)._kind_6.sons->data[((NI) 0)], n_2);
1363 				if (!T66_) goto LA67_;
1364 				result = bindOrCheck__patterns_144(c, (*(*p)._kind_6.sons->data[((NI) 1)])._kind_4.sym, n_2);
1365 			}
1366 			LA67_: ;
1367 		}
1368 		LA54_: ;
1369 	}
1370 	goto LA1_;
1371 	LA52_: ;
1372 	{
1373 		NIM_BOOL T70_;
1374 		T70_ = (NIM_BOOL)0;
1375 		T70_ = sameKinds__patterns_36(p, n_2);
1376 		if (!T70_) goto LA71_;
1377 		switch ((*p).kind) {
1378 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
1379 		{
1380 			result = ((*p)._kind_4.sym == (*n_2)._kind_4.sym);
1381 		}
1382 		break;
1383 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
1384 		{
1385 			result = ((*(*p)._kind_5.ident).id == (*(*n_2)._kind_5.ident).id);
1386 		}
1387 		break;
1388 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
1389 		{
1390 			result = ((*p)._kind_1.intVal == (*n_2)._kind_1.intVal);
1391 		}
1392 		break;
1393 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
1394 		{
1395 			result = ((*p)._kind_2.floatVal == (*n_2)._kind_2.floatVal);
1396 		}
1397 		break;
1398 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
1399 		{
1400 			result = eqStrings((*p)._kind_3.strVal, (*n_2)._kind_3.strVal);
1401 		}
1402 		break;
1403 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
1404 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
1405 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
1406 		{
1407 			result = NIM_TRUE;
1408 		}
1409 		break;
1410 		default:
1411 		{
1412 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
1413 			v = lastSon__ast_4832(p);
1414 			{
1415 				NIM_BOOL T82_;
1416 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist;
1417 				T82_ = (NIM_BOOL)0;
1418 				T82_ = isPatternParam__patterns_114(c, v);
1419 				if (!(T82_)) goto LA83_;
1420 				T82_ = ((*(*(*v)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48));
1421 				LA83_: ;
1422 				if (!T82_) goto LA84_;
1423 				arglist = NIM_NIL;
1424 				{
1425 					NI T88_;
1426 					NI T89_;
1427 					T88_ = (NI)0;
1428 					T88_ = len__ast_3198(p);
1429 					T89_ = (NI)0;
1430 					T89_ = len__ast_3198(n_2);
1431 					if (!(T88_ <= T89_)) goto LA90_;
1432 					{
1433 						NI i;
1434 						NI colontmp_;
1435 						NI T93_;
1436 						NI i_2;
1437 						i = (NI)0;
1438 						colontmp_ = (NI)0;
1439 						T93_ = (NI)0;
1440 						T93_ = len__ast_3198(p);
1441 						colontmp_ = (NI)(T93_ - ((NI) 1));
1442 						i_2 = ((NI) 0);
1443 						{
1444 							while (1) {
1445 								if (!(i_2 < colontmp_)) goto LA95;
1446 								i = i_2;
1447 								{
1448 									NIM_BOOL T98_;
1449 									T98_ = (NIM_BOOL)0;
1450 									T98_ = matches__patterns_29(c, (*p)._kind_6.sons->data[i], (*n_2)._kind_6.sons->data[i]);
1451 									if (!!(T98_)) goto LA99_;
1452 									goto BeforeRet_;
1453 								}
1454 								LA99_: ;
1455 								i_2 += ((NI) 1);
1456 							} LA95: ;
1457 						}
1458 					}
1459 					{
1460 						NIM_BOOL T103_;
1461 						NIM_BOOL T104_;
1462 						NI T105_;
1463 						NI T106_;
1464 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T108_;
1465 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T110_;
1466 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_3;
1467 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T113_;
1468 						NI T114_;
1469 						T103_ = (NIM_BOOL)0;
1470 						T104_ = (NIM_BOOL)0;
1471 						T105_ = (NI)0;
1472 						T105_ = len__ast_3198(p);
1473 						T106_ = (NI)0;
1474 						T106_ = len__ast_3198(n_2);
1475 						T104_ = (T105_ == T106_);
1476 						if (!(T104_)) goto LA107_;
1477 						T108_ = NIM_NIL;
1478 						T108_ = lastSon__ast_4832(n_2);
1479 						T104_ = ((*T108_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58));
1480 						LA107_: ;
1481 						T103_ = T104_;
1482 						if (!(T103_)) goto LA109_;
1483 						T110_ = NIM_NIL;
1484 						T110_ = lastSon__ast_4832(n_2);
1485 						T103_ = ((*(*T110_)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
1486 						LA109_: ;
1487 						if (!T103_) goto LA111_;
1488 						T113_ = NIM_NIL;
1489 						T113_ = lastSon__ast_4832(n_2);
1490 						n_3 = (*T113_)._kind_6.sons->data[((NI) 1)];
1491 						T114_ = (NI)0;
1492 						T114_ = len__ast_3198(n_3);
1493 						arglist = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n_3).info, T114_);
1494 						{
1495 							NI i_3;
1496 							NI colontmp__2;
1497 							NI i_4;
1498 							i_3 = (NI)0;
1499 							colontmp__2 = (NI)0;
1500 							colontmp__2 = len__ast_3198(n_3);
1501 							i_4 = ((NI) 0);
1502 							{
1503 								while (1) {
1504 									if (!(i_4 < colontmp__2)) goto LA117;
1505 									i_3 = i_4;
1506 									asgnRef((void**) (&(*arglist)._kind_6.sons->data[i_3]), (*n_3)._kind_6.sons->data[i_3]);
1507 									i_4 += ((NI) 1);
1508 								} LA117: ;
1509 							}
1510 						}
1511 					}
1512 					goto LA101_;
1513 					LA111_: ;
1514 					{
1515 						NI T119_;
1516 						NI T120_;
1517 						T119_ = (NI)0;
1518 						T119_ = len__ast_3198(n_2);
1519 						T120_ = (NI)0;
1520 						T120_ = len__ast_3198(p);
1521 						arglist = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n_2).info, (NI)((NI)(T119_ - T120_) + ((NI) 1)));
1522 						{
1523 							NI i_5;
1524 							NI colontmp__3;
1525 							NI T122_;
1526 							NI T123_;
1527 							NI res;
1528 							i_5 = (NI)0;
1529 							colontmp__3 = (NI)0;
1530 							T122_ = (NI)0;
1531 							T122_ = len__ast_3198(n_2);
1532 							T123_ = (NI)0;
1533 							T123_ = len__ast_3198(p);
1534 							colontmp__3 = (NI)(T122_ - T123_);
1535 							res = ((NI) 0);
1536 							{
1537 								while (1) {
1538 									NI T126_;
1539 									if (!(res <= colontmp__3)) goto LA125;
1540 									i_5 = res;
1541 									T126_ = (NI)0;
1542 									T126_ = len__ast_3198(p);
1543 									asgnRef((void**) (&(*arglist)._kind_6.sons->data[i_5]), (*n_2)._kind_6.sons->data[(NI)((NI)(i_5 + T126_) - ((NI) 1))]);
1544 									res += ((NI) 1);
1545 								} LA125: ;
1546 							}
1547 						}
1548 					}
1549 					LA101_: ;
1550 					result = bindOrCheck__patterns_144(c, (*v)._kind_4.sym, arglist);
1551 					goto BeforeRet_;
1552 				}
1553 				goto LA86_;
1554 				LA90_: ;
1555 				{
1556 					NI T128_;
1557 					NI T129_;
1558 					T128_ = (NI)0;
1559 					T128_ = len__ast_3198(p);
1560 					T129_ = (NI)0;
1561 					T129_ = len__ast_3198(n_2);
1562 					if (!((NI)(T128_ - ((NI) 1)) == T129_)) goto LA130_;
1563 					{
1564 						NI i_6;
1565 						NI colontmp__4;
1566 						NI T133_;
1567 						NI i_7;
1568 						i_6 = (NI)0;
1569 						colontmp__4 = (NI)0;
1570 						T133_ = (NI)0;
1571 						T133_ = len__ast_3198(p);
1572 						colontmp__4 = (NI)(T133_ - ((NI) 1));
1573 						i_7 = ((NI) 0);
1574 						{
1575 							while (1) {
1576 								if (!(i_7 < colontmp__4)) goto LA135;
1577 								i_6 = i_7;
1578 								{
1579 									NIM_BOOL T138_;
1580 									T138_ = (NIM_BOOL)0;
1581 									T138_ = matches__patterns_29(c, (*p)._kind_6.sons->data[i_6], (*n_2)._kind_6.sons->data[i_6]);
1582 									if (!!(T138_)) goto LA139_;
1583 									goto BeforeRet_;
1584 								}
1585 								LA139_: ;
1586 								i_7 += ((NI) 1);
1587 							} LA135: ;
1588 						}
1589 					}
1590 					arglist = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n_2).info);
1591 					result = bindOrCheck__patterns_144(c, (*v)._kind_4.sym, arglist);
1592 					goto BeforeRet_;
1593 				}
1594 				goto LA86_;
1595 				LA130_: ;
1596 				LA86_: ;
1597 			}
1598 			LA84_: ;
1599 			{
1600 				NI T143_;
1601 				NI T144_;
1602 				T143_ = (NI)0;
1603 				T143_ = len__ast_3198(p);
1604 				T144_ = (NI)0;
1605 				T144_ = len__ast_3198(n_2);
1606 				if (!(T143_ == T144_)) goto LA145_;
1607 				{
1608 					NI i_8;
1609 					NI colontmp__5;
1610 					NI i_9;
1611 					i_8 = (NI)0;
1612 					colontmp__5 = (NI)0;
1613 					colontmp__5 = len__ast_3198(p);
1614 					i_9 = ((NI) 0);
1615 					{
1616 						while (1) {
1617 							if (!(i_9 < colontmp__5)) goto LA149;
1618 							i_8 = i_9;
1619 							{
1620 								NIM_BOOL T152_;
1621 								T152_ = (NIM_BOOL)0;
1622 								T152_ = matches__patterns_29(c, (*p)._kind_6.sons->data[i_8], (*n_2)._kind_6.sons->data[i_8]);
1623 								if (!!(T152_)) goto LA153_;
1624 								goto BeforeRet_;
1625 							}
1626 							LA153_: ;
1627 							i_9 += ((NI) 1);
1628 						} LA149: ;
1629 					}
1630 				}
1631 				result = NIM_TRUE;
1632 			}
1633 			LA145_: ;
1634 		}
1635 		break;
1636 		}
1637 	}
1638 	goto LA1_;
1639 	LA71_: ;
1640 	LA1_: ;
1641 	}BeforeRet_: ;
1642 	return result;
1643 }
N_NIMCALL(NIM_BOOL,matchRange__patterns_437)1644 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchRange__patterns_437)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i) {
1645 	NIM_BOOL result;
1646 {	result = (NIM_BOOL)0;
1647 	{
1648 		NI j;
1649 		NI colontmp_;
1650 		NI i_2;
1651 		j = (NI)0;
1652 		colontmp_ = (NI)0;
1653 		colontmp_ = len__ast_3198(p);
1654 		i_2 = ((NI) 0);
1655 		{
1656 			while (1) {
1657 				if (!(i_2 < colontmp_)) goto LA3;
1658 				j = i_2;
1659 				{
1660 					NIM_BOOL T6_;
1661 					T6_ = (NIM_BOOL)0;
1662 					T6_ = matches__patterns_29(c, (*p)._kind_6.sons->data[j], (*n)._kind_6.sons->data[(NI)(i + j)]);
1663 					if (!!(T6_)) goto LA7_;
1664 					unsureAsgnRef((void**) (&(*c).mapping), NIM_NIL);
1665 					(*c).mappingIsFull = NIM_FALSE;
1666 					result = NIM_FALSE;
1667 					goto BeforeRet_;
1668 				}
1669 				LA7_: ;
1670 				i_2 += ((NI) 1);
1671 			} LA3: ;
1672 		}
1673 	}
1674 	result = NIM_TRUE;
1675 	}BeforeRet_: ;
1676 	return result;
1677 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,matchStmtList__patterns_432)1678 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, matchStmtList__patterns_432)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1679 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
1680 	result = NIM_NIL;
1681 	{
1682 		NIM_BOOL T3_;
1683 		NIM_BOOL T4_;
1684 		NI T7_;
1685 		NI T8_;
1686 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
1687 		T3_ = (NIM_BOOL)0;
1688 		T4_ = (NIM_BOOL)0;
1689 		T4_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
1690 		if (!(T4_)) goto LA5_;
1691 		T4_ = ((*n).kind == (*p).kind);
1692 		LA5_: ;
1693 		T3_ = T4_;
1694 		if (!(T3_)) goto LA6_;
1695 		T7_ = (NI)0;
1696 		T7_ = len__ast_3198(p);
1697 		T8_ = (NI)0;
1698 		T8_ = len__ast_3198(n);
1699 		T3_ = (T7_ < T8_);
1700 		LA6_: ;
1701 		if (!T3_) goto LA9_;
1702 		n_2 = flattenStmts__trees_355(n);
1703 		{
1704 			NI i;
1705 			NI colontmp_;
1706 			NI T12_;
1707 			NI T13_;
1708 			NI res;
1709 			i = (NI)0;
1710 			colontmp_ = (NI)0;
1711 			T12_ = (NI)0;
1712 			T12_ = len__ast_3198(n_2);
1713 			T13_ = (NI)0;
1714 			T13_ = len__ast_3198(p);
1715 			colontmp_ = (NI)(T12_ - T13_);
1716 			res = ((NI) 0);
1717 			{
1718 				while (1) {
1719 					if (!(res <= colontmp_)) goto LA15;
1720 					i = res;
1721 					{
1722 						NIM_BOOL T18_;
1723 						NI T21_;
1724 						NI T22_;
1725 						NI T23_;
1726 						T18_ = (NIM_BOOL)0;
1727 						T18_ = matchRange__patterns_437(c, p, n_2, i);
1728 						if (!T18_) goto LA19_;
1729 						(*c).subMatch = NIM_TRUE;
1730 						result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n_2).info, ((NI) 3));
1731 						asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), extractRange__trees_362(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), n_2, ((NI) 0), (NI)(i - ((NI) 1))));
1732 						T21_ = (NI)0;
1733 						T21_ = len__ast_3198(p);
1734 						asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), extractRange__trees_362(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), n_2, i, (NI)((NI)(i + T21_) - ((NI) 1))));
1735 						T22_ = (NI)0;
1736 						T22_ = len__ast_3198(p);
1737 						T23_ = (NI)0;
1738 						T23_ = len__ast_3198(n_2);
1739 						asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), extractRange__trees_362(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), n_2, (NI)(i + T22_), (NI)(T23_ - ((NI) 1))));
1740 						goto LA11;
1741 					}
1742 					LA19_: ;
1743 					res += ((NI) 1);
1744 				} LA15: ;
1745 			}
1746 		} LA11: ;
1747 	}
1748 	goto LA1_;
1749 	LA9_: ;
1750 	{
1751 		NIM_BOOL T25_;
1752 		T25_ = (NIM_BOOL)0;
1753 		T25_ = matches__patterns_29(c, p, n);
1754 		if (!T25_) goto LA26_;
1755 		result = n;
1756 	}
1757 	goto LA1_;
1758 	LA26_: ;
1759 	LA1_: ;
1760 	return result;
1761 }
N_NIMCALL(NIM_BOOL,aliasAnalysisRequested__patterns_495)1762 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, aliasAnalysisRequested__patterns_495)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params) {
1763 	NIM_BOOL result;
1764 {	result = (NIM_BOOL)0;
1765 	{
1766 		NI T3_;
1767 		T3_ = (NI)0;
1768 		T3_ = len__ast_3198(params);
1769 		if (!(((NI) 2) <= T3_)) goto LA4_;
1770 		{
1771 			NI i;
1772 			NI colontmp_;
1773 			NI i_2;
1774 			i = (NI)0;
1775 			colontmp_ = (NI)0;
1776 			colontmp_ = len__ast_3198(params);
1777 			i_2 = ((NI) 1);
1778 			{
1779 				while (1) {
1780 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param;
1781 					if (!(i_2 < colontmp_)) goto LA8;
1782 					i = i_2;
1783 					param = (*(*params)._kind_6.sons->data[i])._kind_4.sym;
1784 					{
1785 						tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw T11_;
1786 						T11_ = (tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw)0;
1787 						T11_ = whichAlias__parampatterns_48(param);
1788 						if (!!((T11_ == ((tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw) 1)))) goto LA12_;
1789 						result = NIM_TRUE;
1790 						goto BeforeRet_;
1791 					}
1792 					LA12_: ;
1793 					i_2 += ((NI) 1);
1794 				} LA8: ;
1795 			}
1796 		}
1797 	}
1798 	LA4_: ;
1799 	}BeforeRet_: ;
1800 	return result;
1801 }
N_NIMCALL(void,addToArgList__patterns_516)1802 N_LIB_PRIVATE N_NIMCALL(void, addToArgList__patterns_516)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1803 	{
1804 		NIM_BOOL T3_;
1805 		T3_ = (NIM_BOOL)0;
1806 		T3_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
1807 		if (!(T3_)) goto LA4_;
1808 		T3_ = !(((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7)));
1809 		LA4_: ;
1810 		if (!T3_) goto LA5_;
1811 		{
1812 			if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)))) goto LA9_;
1813 			add__ast_4797(result, n);
1814 		}
1815 		goto LA7_;
1816 		LA9_: ;
1817 		{
1818 			{
1819 				NI i;
1820 				NI colontmp_;
1821 				NI i_2;
1822 				i = (NI)0;
1823 				colontmp_ = (NI)0;
1824 				colontmp_ = len__ast_3198(n);
1825 				i_2 = ((NI) 0);
1826 				{
1827 					while (1) {
1828 						if (!(i_2 < colontmp_)) goto LA14;
1829 						i = i_2;
1830 						add__ast_4797(result, (*n)._kind_6.sons->data[i]);
1831 						i_2 += ((NI) 1);
1832 					} LA14: ;
1833 				}
1834 			}
1835 		}
1836 		LA7_: ;
1837 	}
1838 	LA5_: ;
1839 }
N_INLINE(NI,safeLen__ast_3191)1840 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1841 	NI result;
1842 	result = (NI)0;
1843 	{
1844 		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
1845 		result = ((NI) 0);
1846 	}
1847 	goto LA1_;
1848 	LA3_: ;
1849 	{
1850 		result = len__ast_3198(n);
1851 	}
1852 	LA1_: ;
1853 	return result;
1854 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,applyRule__patterns_548)1855 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyRule__patterns_548)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1856 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
1857 	tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug ctx;
1858 	NI T1_;
1859 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
1860 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
1861 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
1862 	NIM_BOOL requiresAA;
1863 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* args;
1864 {	result = NIM_NIL;
1865 	nimZeroMem((void*)(&ctx), sizeof(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug));
1866 	ctx.owner = s;
1867 	ctx.c = c;
1868 	T1_ = (NI)0;
1869 	T1_ = len__ast_4002((*s).typ);
1870 	ctx.formals = (NI)(T1_ - ((NI) 1));
1871 	m = matchStmtList__patterns_432((&ctx), (*(*s).ast)._kind_6.sons->data[((NI) 1)], n);
1872 	{
1873 		if (!(m == 0)) goto LA4_;
1874 		result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
1875 		goto BeforeRet_;
1876 	}
1877 	LA4_: ;
1878 	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
1879 	T6_ = NIM_NIL;
1880 	T6_ = newSymNode__ast_3719(s, (*n).info);
1881 	add__ast_4797(result, T6_);
1882 	params = (*(*s).typ).n;
1883 	requiresAA = aliasAnalysisRequested__patterns_495(params);
1884 	args = NIM_NIL;
1885 	{
1886 		if (!requiresAA) goto LA9_;
1887 		args = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n).info);
1888 	}
1889 	LA9_: ;
1890 	{
1891 		NI i;
1892 		NI colontmp_;
1893 		NI i_2;
1894 		i = (NI)0;
1895 		colontmp_ = (NI)0;
1896 		colontmp_ = len__ast_3198(params);
1897 		i_2 = ((NI) 1);
1898 		{
1899 			while (1) {
1900 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param;
1901 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
1902 				if (!(i_2 < colontmp_)) goto LA13;
1903 				i = i_2;
1904 				param = (*(*params)._kind_6.sons->data[i])._kind_4.sym;
1905 				x = getLazy__patterns_17((&ctx), param);
1906 				{
1907 					if (!(x == 0)) goto LA16_;
1908 					result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
1909 					goto BeforeRet_;
1910 				}
1911 				LA16_: ;
1912 				add__ast_4797(result, x);
1913 				{
1914 					if (!requiresAA) goto LA20_;
1915 					addToArgList__patterns_516(args, x);
1916 				}
1917 				LA20_: ;
1918 				i_2 += ((NI) 1);
1919 			} LA13: ;
1920 		}
1921 	}
1922 	{
1923 		if (!requiresAA) goto LA24_;
1924 		{
1925 			NI i_3;
1926 			NI colontmp__2;
1927 			NI i_4;
1928 			i_3 = (NI)0;
1929 			colontmp__2 = (NI)0;
1930 			colontmp__2 = len__ast_3198(params);
1931 			i_4 = ((NI) 1);
1932 			{
1933 				while (1) {
1934 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rs;
1935 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param_2;
1936 					tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw T29_;
1937 					if (!(i_4 < colontmp__2)) goto LA28;
1938 					i_3 = i_4;
1939 					rs = (*result)._kind_6.sons->data[i_3];
1940 					param_2 = (*(*params)._kind_6.sons->data[i_3])._kind_4.sym;
1941 					T29_ = (tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw)0;
1942 					T29_ = whichAlias__parampatterns_48(param_2);
1943 					switch (T29_) {
1944 					case ((tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw) 1):
1945 					{
1946 					}
1947 					break;
1948 					case ((tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw) 2):
1949 					{
1950 						NIM_BOOL ok;
1951 						ok = NIM_FALSE;
1952 						{
1953 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
1954 							arg = NIM_NIL;
1955 							{
1956 								NI i_5;
1957 								NI colontmp__3;
1958 								NI i_6;
1959 								i_5 = (NI)0;
1960 								colontmp__3 = (NI)0;
1961 								colontmp__3 = safeLen__ast_3191(args);
1962 								i_6 = ((NI) 0);
1963 								{
1964 									while (1) {
1965 										if (!(i_6 < colontmp__3)) goto LA35;
1966 										i_5 = i_6;
1967 										arg = (*args)._kind_6.sons->data[i_5];
1968 										{
1969 											NIM_BOOL T38_;
1970 											tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w T40_;
1971 											T38_ = (NIM_BOOL)0;
1972 											T38_ = !((arg == rs));
1973 											if (!(T38_)) goto LA39_;
1974 											T40_ = (tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w)0;
1975 											T40_ = isPartOf__aliases_129(rs, arg);
1976 											T38_ = (T40_ == ((tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w) 2));
1977 											LA39_: ;
1978 											if (!T38_) goto LA41_;
1979 											ok = NIM_TRUE;
1980 											goto LA32;
1981 										}
1982 										LA41_: ;
1983 										i_6 += ((NI) 1);
1984 									} LA35: ;
1985 								}
1986 							}
1987 						} LA32: ;
1988 						{
1989 							if (!!(ok)) goto LA45_;
1990 							result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
1991 							goto BeforeRet_;
1992 						}
1993 						LA45_: ;
1994 					}
1995 					break;
1996 					case ((tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw) 3):
1997 					{
1998 						NIM_BOOL ok_2;
1999 						ok_2 = NIM_TRUE;
2000 						{
2001 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg_2;
2002 							arg_2 = NIM_NIL;
2003 							{
2004 								NI i_7;
2005 								NI colontmp__4;
2006 								NI i_8;
2007 								i_7 = (NI)0;
2008 								colontmp__4 = (NI)0;
2009 								colontmp__4 = safeLen__ast_3191(args);
2010 								i_8 = ((NI) 0);
2011 								{
2012 									while (1) {
2013 										if (!(i_8 < colontmp__4)) goto LA51;
2014 										i_7 = i_8;
2015 										arg_2 = (*args)._kind_6.sons->data[i_7];
2016 										{
2017 											NIM_BOOL T54_;
2018 											tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w T56_;
2019 											T54_ = (NIM_BOOL)0;
2020 											T54_ = !((arg_2 == rs));
2021 											if (!(T54_)) goto LA55_;
2022 											T56_ = (tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w)0;
2023 											T56_ = isPartOf__aliases_129(rs, arg_2);
2024 											T54_ = !((T56_ == ((tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w) 0)));
2025 											LA55_: ;
2026 											if (!T54_) goto LA57_;
2027 											ok_2 = NIM_FALSE;
2028 											goto LA48;
2029 										}
2030 										LA57_: ;
2031 										i_8 += ((NI) 1);
2032 									} LA51: ;
2033 								}
2034 							}
2035 						} LA48: ;
2036 						{
2037 							if (!!(ok_2)) goto LA61_;
2038 							result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
2039 							goto BeforeRet_;
2040 						}
2041 						LA61_: ;
2042 					}
2043 					break;
2044 					}
2045 					i_4 += ((NI) 1);
2046 				} LA28: ;
2047 			}
2048 		}
2049 	}
2050 	LA24_: ;
2051 	markUsed__sigmatch_85(c, (*n).info, s);
2052 	{
2053 		if (!ctx.subMatch) goto LA65_;
2054 		asgnRef((void**) (&(*m)._kind_6.sons->data[((NI) 1)]), result);
2055 		result = m;
2056 	}
2057 	LA65_: ;
2058 	}BeforeRet_: ;
2059 	return result;
2060 }
N_NIMCALL(void,compiler_patternsDatInit000)2061 N_LIB_PRIVATE N_NIMCALL(void, compiler_patternsDatInit000)(void) {
2062 static TNimNode* TM__1E9cVLQUjhbw81lEou89bC9bw_6_2[2];
2063 static TNimNode TM__1E9cVLQUjhbw81lEou89bC9bw_0[3];
2064 NTIobject__MvzTl9buOo7Gy8twSJhcfLA_.size = sizeof(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA);
2065 NTIobject__MvzTl9buOo7Gy8twSJhcfLA_.align = NIM_ALIGNOF(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA);
2066 NTIobject__MvzTl9buOo7Gy8twSJhcfLA_.kind = 17;
2067 NTIobject__MvzTl9buOo7Gy8twSJhcfLA_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
2068 TM__1E9cVLQUjhbw81lEou89bC9bw_6_2[0] = &TM__1E9cVLQUjhbw81lEou89bC9bw_0[1];
2069 TM__1E9cVLQUjhbw81lEou89bC9bw_0[1].kind = 1;
2070 TM__1E9cVLQUjhbw81lEou89bC9bw_0[1].offset = offsetof(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA, colonstate_);
2071 TM__1E9cVLQUjhbw81lEou89bC9bw_0[1].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
2072 TM__1E9cVLQUjhbw81lEou89bC9bw_0[1].name = ":state";
2073 TM__1E9cVLQUjhbw81lEou89bC9bw_6_2[1] = &TM__1E9cVLQUjhbw81lEou89bC9bw_0[2];
2074 TM__1E9cVLQUjhbw81lEou89bC9bw_0[2].kind = 1;
2075 TM__1E9cVLQUjhbw81lEou89bC9bw_0[2].offset = offsetof(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA, p1);
2076 TM__1E9cVLQUjhbw81lEou89bC9bw_0[2].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
2077 TM__1E9cVLQUjhbw81lEou89bC9bw_0[2].name = "p1";
2078 TM__1E9cVLQUjhbw81lEou89bC9bw_0[0].len = 2; TM__1E9cVLQUjhbw81lEou89bC9bw_0[0].kind = 2; TM__1E9cVLQUjhbw81lEou89bC9bw_0[0].sons = &TM__1E9cVLQUjhbw81lEou89bC9bw_6_2[0];
2079 NTIobject__MvzTl9buOo7Gy8twSJhcfLA_.node = &TM__1E9cVLQUjhbw81lEou89bC9bw_0[0];
2080 NTIrefobject__jrUntIBTBNpJiJYXuyZctg_.size = sizeof(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA*);
2081 NTIrefobject__jrUntIBTBNpJiJYXuyZctg_.align = NIM_ALIGNOF(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA*);
2082 NTIrefobject__jrUntIBTBNpJiJYXuyZctg_.kind = 22;
2083 NTIrefobject__jrUntIBTBNpJiJYXuyZctg_.base = (&NTIobject__MvzTl9buOo7Gy8twSJhcfLA_);
2084 NTIrefobject__jrUntIBTBNpJiJYXuyZctg_.marker = Marker_tyRef__jrUntIBTBNpJiJYXuyZctg;
2085 }
2086 
2087