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