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