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