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_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
23 typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
24 typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
25 typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
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 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
32 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
33 typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
34 typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
35 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
36 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
37 typedef struct NimStringDesc NimStringDesc;
38 typedef struct TGenericSeq TGenericSeq;
39 typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
40 typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
41 typedef struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug;
42 typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
43 typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
44 typedef struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw;
45 typedef struct tySequence__eiMlYcU7NrAOGD2H36QOOQ tySequence__eiMlYcU7NrAOGD2H36QOOQ;
46 typedef struct tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ;
47 typedef struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg;
48 typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ;
49 typedef struct tySequence__oYkV9aFZe0MXcEAprJaOUsA tySequence__oYkV9aFZe0MXcEAprJaOUsA;
50 typedef struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q;
51 typedef struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA tySequence__Mh9agqM29bm9aP5AUL1x7dZGA;
52 typedef struct tySequence__arD7Tw6eD6lvOczWZl9buNg tySequence__arD7Tw6eD6lvOczWZl9buNg;
53 typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
54 typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
55 typedef struct tySequence__jWKvSdankQPoT5bw9cBU9aiw tySequence__jWKvSdankQPoT5bw9cBU9aiw;
56 typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
57 typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
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 tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ;
66 typedef struct tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w;
67 typedef struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg;
68 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
69 typedef struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ;
70 typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
71 typedef struct tyTuple__KNXySARiHvEh2wA9asnyYmw tyTuple__KNXySARiHvEh2wA9asnyYmw;
72 typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
73 typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
74 typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
75 typedef struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag tyTuple__Y6Ewh3MCxsjd1bsriN6Gag;
76 typedef struct tySequence__vGU8AyGT6KxtLJwEg0BpNw tySequence__vGU8AyGT6KxtLJwEg0BpNw;
77 typedef struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw tyTuple__KvKIqRIx9anKcDMu8DPSkHw;
78 typedef NU8 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog;
79 typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
80 struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
81 NI elems;
82 NI counter;
83 NI max;
84 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
85 tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
86 tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
87 };
88 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
89 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
90 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
91 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
92 struct TNimType {
93 NI size;
94 NI align;
95 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
96 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
97 TNimType* base;
98 TNimNode* node;
99 void* finalizer;
100 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
101 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
102 };
103 struct RootObj {
104 TNimType* m_type;
105 };
106 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
107 NI32 module;
108 NI32 item;
109 };
110 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
111 RootObj Sup;
112 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
113 };
114 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
115 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
116 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
117 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
118 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
119 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
120 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
121 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
122 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
123 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
124 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
125 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
126 };
127 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
128 tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
129 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
130 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
131 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
132 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
133 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
134 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
135 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
136 NI64 size;
137 NI16 align;
138 NI16 paddingAtEnd;
139 NI16 lockLevel;
140 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
141 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
142 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
143 };
144 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
145 NU16 line;
146 NI16 col;
147 NI32 fileIndex;
148 };
149 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
150 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
151 struct TGenericSeq {
152 NI len;
153 NI reserved;
154 };
155 struct NimStringDesc {
156 TGenericSeq Sup;
157 NIM_CHAR data[SEQ_DECL_SIZE];
158 };
159 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
160 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
161 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
162 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
163 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
164 union{
165 struct {NI64 intVal;
166 } _kind_1;
167 struct {NF floatVal;
168 } _kind_2;
169 struct {NimStringDesc* strVal;
170 } _kind_3;
171 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
172 } _kind_4;
173 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
174 } _kind_5;
175 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
176 } _kind_6;
177 };
178 };
179 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
180 typedef NU8 tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg;
181 typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
182 struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
183 RootObj Sup;
184 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
185 };
186 typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__d88NmFOoQ1OEoX9af4f9aptg[38];
187 struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q {
188 NI counter;
189 tySequence__Mh9agqM29bm9aP5AUL1x7dZGA* data;
190 };
191 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__RcJNn9bSvWdJgUmA1O6sbHA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
192 typedef NU32 tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ;
193 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__39auogS0nN05zO6JrT7za9cQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
194 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__DZXD9cPwIfL76eNszoUR9aVA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
195 typedef struct {
196 N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
197 void* ClE_0;
198 } tyProc__7JwrY3AhkVNlleAJXClX9cw;
199 typedef NU32 tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
200 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);
201 typedef N_NIMCALL_PTR(tyObject_TType__facALICuu8zUj0hjvbTLFg*, tyProc__IDzB9bjws1yntQXPpMRrBvA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
202 typedef struct {
203 N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
204 void* ClE_0;
205 } tyProc__3cacbJ4la9bDJNibHybQSnA;
206 typedef struct {
207 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);
208 void* ClE_0;
209 } tyProc__fMj9boIZZOt9cLWRnD3rtKhA;
210 struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
211 NI counter;
212 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data;
213 };
214 typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
215 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);
216 typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
217 struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w {
218 tySequence__Bis5AbpONWcIRrPyPJS8Yw* data;
219 NI counter;
220 };
221 struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w {
222 tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
223 NI counter;
224 };
225 struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ {
226 tySequence__Hkw5zrAn53wlKDHdJF1GFA* data;
227 NI counter;
228 };
229 struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug {
230 tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
231 tyObject_TType__facALICuu8zUj0hjvbTLFg* enforceVoidContext;
232 tyObject_TType__facALICuu8zUj0hjvbTLFg* voidType;
233 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
234 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* currentScope;
235 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* moduleScope;
236 tySequence__eiMlYcU7NrAOGD2H36QOOQ* imports;
237 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* topLevelScope;
238 tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p;
239 tyArray__d88NmFOoQ1OEoX9af4f9aptg intTypeCache;
240 tyObject_TType__facALICuu8zUj0hjvbTLFg* nilTypeCache;
241 tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* matchedConcept;
242 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* friendModules;
243 NI instCounter;
244 NI* templInstCounter;
245 NI inGenericContext;
246 NI inStaticContext;
247 NI inUnrolledContext;
248 NI compilesContextId;
249 NI compilesContextIdGenerator;
250 NI inGenericInst;
251 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* converters;
252 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* patterns;
253 tySequence__oYkV9aFZe0MXcEAprJaOUsA* optionStack;
254 tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMapping;
255 tySequence__arD7Tw6eD6lvOczWZl9buNg* libs;
256 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstExpr;
257 tyProc__39auogS0nN05zO6JrT7za9cQ semExpr;
258 tyProc__39auogS0nN05zO6JrT7za9cQ semTryExpr;
259 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semTryConstExpr;
260 tyProc__DZXD9cPwIfL76eNszoUR9aVA computeRequiresInit;
261 tyProc__7JwrY3AhkVNlleAJXClX9cw hasUnresolvedArgs;
262 tyProc__39auogS0nN05zO6JrT7za9cQ semOperand;
263 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstBoolExpr;
264 tyProc__qlV9aWvA5wrWVg9bI5PqwJyA semOverloadedCall;
265 tyProc__IDzB9bjws1yntQXPpMRrBvA semTypeNode;
266 tyProc__3cacbJ4la9bDJNibHybQSnA semInferredLambda;
267 tyProc__fMj9boIZZOt9cLWRnD3rtKhA semGenerateInstance;
268 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA includedFiles;
269 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA pureEnumFields;
270 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA userPragmas;
271 tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* evalContext;
272 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA unknownIdents;
273 tySequence__jWKvSdankQPoT5bw9cBU9aiw* generics;
274 NI topStmts;
275 NI lastGenericIdx;
276 NI hloLoopDetector;
277 NI inParallelStmt;
278 tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ instTypeBoundOp;
279 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* selfName;
280 tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
281 tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
282 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA signatures;
283 NimStringDesc* recursiveDep;
284 NIM_BOOL suggestionsMade;
285 NIM_BOOL isAmbiguous;
286 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
287 NI inTypeContext;
288 NI inConceptDecl;
289 tySequence__xSqu3cxq5WeFlOO3YgE6yA* unusedImports;
290 tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w exportIndirections;
291 tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w importModuleMap;
292 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastTLineInfo;
293 tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ sideEffects;
294 NI inUncheckedAssignSection;
295 };
296 typedef NU8 tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
297 typedef NU8 tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg;
298 typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
299 typedef NU8 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ;
300 struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ {
301 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
302 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ mode;
303 union{
304 struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA imported;
305 } _mode_2;
306 struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA exceptSet;
307 } _mode_3;
308 };
309 };
310 struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg {
311 tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key;
312 RootObj* val;
313 };
314 struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ {
315 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genericSym;
316 tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
317 };
318 struct tyTuple__KNXySARiHvEh2wA9asnyYmw {
319 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
320 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field1;
321 };
322 struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
323 NI Field0;
324 NI Field1;
325 };
326 struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
327 NI Field0;
328 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
329 };
330 struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
331 NI Field0;
332 NI Field1;
333 NI Field2;
334 };
335 struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw {
336 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
337 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
338 };
339 struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag {
340 NI Field0;
341 NI Field1;
342 tySequence__vGU8AyGT6KxtLJwEg0BpNw* Field2;
343 };
344 struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
345 TGenericSeq Sup;
346 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
347 };
348 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
349 TGenericSeq Sup;
350 tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
351 };
352 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
353 TGenericSeq Sup;
354 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
355 };
356 struct tySequence__eiMlYcU7NrAOGD2H36QOOQ {
357 TGenericSeq Sup;
358 tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ data[SEQ_DECL_SIZE];
359 };
360 struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ {
361 TGenericSeq Sup;
362 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE];
363 };
364 struct tySequence__oYkV9aFZe0MXcEAprJaOUsA {
365 TGenericSeq Sup;
366 tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* data[SEQ_DECL_SIZE];
367 };
368 struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA {
369 TGenericSeq Sup;
370 tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE];
371 };
372 struct tySequence__arD7Tw6eD6lvOczWZl9buNg {
373 TGenericSeq Sup;
374 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* data[SEQ_DECL_SIZE];
375 };
376 struct tySequence__jWKvSdankQPoT5bw9cBU9aiw {
377 TGenericSeq Sup;
378 tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ data[SEQ_DECL_SIZE];
379 };
380 struct tySequence__xSqu3cxq5WeFlOO3YgE6yA {
381 TGenericSeq Sup;
382 tyTuple__KNXySARiHvEh2wA9asnyYmw data[SEQ_DECL_SIZE];
383 };
384 struct tySequence__Bis5AbpONWcIRrPyPJS8Yw {
385 TGenericSeq Sup;
386 tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE];
387 };
388 struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
389 TGenericSeq Sup;
390 tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
391 };
392 struct tySequence__vGU8AyGT6KxtLJwEg0BpNw {
393 TGenericSeq Sup;
394 tyTuple__KvKIqRIx9anKcDMu8DPSkHw data[SEQ_DECL_SIZE];
395 };
396 struct tySequence__Hkw5zrAn53wlKDHdJF1GFA {
397 TGenericSeq Sup;
398 tyTuple__Y6Ewh3MCxsjd1bsriN6Gag data[SEQ_DECL_SIZE];
399 };
400 static N_INLINE(void, nimZeroMem)(void* p, NI size);
401 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
402 static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
403 N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_16)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
404 N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, classifyViewTypeAux__typeallowed_503)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
405 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__astalgo_402)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
406 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, lastSon__ast_3743)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
407 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
408 static N_INLINE(void, combine__typeallowed_486)(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog* dest, tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog b);
409 N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, classifyViewTypeNode__typeallowed_506)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
410 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4832)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
411 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
412 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
413 N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, classifyViewType__typeallowed_564)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
414 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, typeAllowedAux__typeallowed_19)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg flags);
415 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
416 static N_INLINE(NIM_BOOL, isInlineIterator__ast_4989)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
417 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, typeAllowedNode__typeallowed_25)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg flags);
418 N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, directViewType__typeallowed_568)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
419 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__FLm9aU7VXleJfAvJR1cpHXQ_2 = {
420 0x10, 0xa8, 0x00, 0x00, 0x00, 0x20, 0x80, 0x00,
421 0x00}
422 ;
423 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__FLm9aU7VXleJfAvJR1cpHXQ_3 = {
424 0x10, 0xa8, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
425 0x00}
426 ;
427 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__FLm9aU7VXleJfAvJR1cpHXQ_4 = {
428 0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
429 0x00}
430 ;
N_INLINE(void,nimSetMem__systemZmemory_7)431 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
432 void* T1_;
433 T1_ = (void*)0;
434 T1_ = memset(a, v, ((size_t) (size)));
435 }
N_INLINE(void,nimZeroMem)436 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
437 nimSetMem__systemZmemory_7(p, ((int) 0), size);
438 }
N_INLINE(void,initIntSet__pureZcollectionsZintsets_238)439 static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
440 initPackedSet__pureZcollectionsZintsets_16(Result);
441 }
N_INLINE(NI,len__ast_4002)442 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n) {
443 NI result;
444 NI T1_;
445 result = (NI)0;
446 T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
447 result = T1_;
448 return result;
449 }
N_INLINE(void,combine__typeallowed_486)450 static N_INLINE(void, combine__typeallowed_486)(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog* dest, tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog b) {
451 switch ((*dest)) {
452 case ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0):
453 case ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 2):
454 {
455 (*dest) = b;
456 }
457 break;
458 case ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 1):
459 {
460 {
461 if (!(b == ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 2))) goto LA5_;
462 (*dest) = b;
463 }
464 LA5_: ;
465 }
466 break;
467 }
468 }
N_INLINE(NI,len__ast_3198)469 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
470 NI result;
471 NI T1_;
472 result = (NI)0;
473 T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
474 result = T1_;
475 return result;
476 }
N_INLINE(NI,safeLen__ast_3191)477 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
478 NI result;
479 result = (NI)0;
480 {
481 if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
482 result = ((NI) 0);
483 }
484 goto LA1_;
485 LA3_: ;
486 {
487 result = len__ast_3198(n);
488 }
489 LA1_: ;
490 return result;
491 }
N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog,classifyViewTypeNode__typeallowed_506)492 N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, classifyViewTypeNode__typeallowed_506)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
493 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog result;
494 result = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
495 switch ((*n).kind) {
496 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
497 {
498 result = classifyViewTypeAux__typeallowed_503(marker, (*n).typ);
499 }
500 break;
501 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
502 {
503 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
504 T3_ = NIM_NIL;
505 T3_ = lastSon__ast_4832(n);
506 result = classifyViewTypeNode__typeallowed_506(marker, T3_);
507 }
508 break;
509 default:
510 {
511 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0);
512 {
513 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
514 child = NIM_NIL;
515 {
516 NI i;
517 NI colontmp_;
518 NI i_2;
519 i = (NI)0;
520 colontmp_ = (NI)0;
521 colontmp_ = safeLen__ast_3191(n);
522 i_2 = ((NI) 0);
523 {
524 while (1) {
525 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T9_;
526 if (!(i_2 < colontmp_)) goto LA8;
527 i = i_2;
528 child = (*n)._kind_6.sons->data[i];
529 T9_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
530 T9_ = classifyViewTypeNode__typeallowed_506(marker, child);
531 combine__typeallowed_486((&result), T9_);
532 {
533 if (!(result == ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 2))) goto LA12_;
534 goto LA5;
535 }
536 LA12_: ;
537 i_2 += ((NI) 1);
538 } LA8: ;
539 }
540 }
541 } LA5: ;
542 }
543 break;
544 }
545 return result;
546 }
N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog,classifyViewTypeAux__typeallowed_503)547 N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, classifyViewTypeAux__typeallowed_503)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
548 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog result;
549 { result = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
550 {
551 tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym87_;
552 NIM_BOOL T3_;
553 xX60gensym87_ = t;
554 T3_ = (NIM_BOOL)0;
555 T3_ = containsOrIncl__astalgo_402(marker, (NI)((NI)((NU64)(((NI) ((*xX60gensym87_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym87_).Sup.itemId.item))));
556 if (!T3_) goto LA4_;
557 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0);
558 goto BeforeRet_;
559 }
560 LA4_: ;
561 switch ((*t).kind) {
562 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
563 {
564 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 2);
565 }
566 break;
567 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
568 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
569 {
570 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 1);
571 }
572 break;
573 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
574 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
575 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
576 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
577 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
578 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
579 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
580 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
581 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
582 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
583 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
584 {
585 tyObject_TType__facALICuu8zUj0hjvbTLFg* T9_;
586 T9_ = NIM_NIL;
587 T9_ = lastSon__ast_3743(t);
588 result = classifyViewTypeAux__typeallowed_503(marker, T9_);
589 }
590 break;
591 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
592 {
593 {
594 NI T13_;
595 tyObject_TType__facALICuu8zUj0hjvbTLFg* T16_;
596 T13_ = (NI)0;
597 T13_ = len__ast_4002(t);
598 if (!(((NI) 0) < T13_)) goto LA14_;
599 T16_ = NIM_NIL;
600 T16_ = lastSon__ast_3743(t);
601 result = classifyViewTypeAux__typeallowed_503(marker, T16_);
602 }
603 goto LA11_;
604 LA14_: ;
605 {
606 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0);
607 }
608 LA11_: ;
609 }
610 break;
611 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
612 {
613 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0);
614 {
615 NI i;
616 NI colontmp_;
617 NI i_2;
618 i = (NI)0;
619 colontmp_ = (NI)0;
620 colontmp_ = len__ast_4002(t);
621 i_2 = ((NI) 0);
622 {
623 while (1) {
624 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T22_;
625 if (!(i_2 < colontmp_)) goto LA21;
626 i = i_2;
627 T22_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
628 T22_ = classifyViewTypeAux__typeallowed_503(marker, (*t).sons->data[i]);
629 combine__typeallowed_486((&result), T22_);
630 {
631 if (!(result == ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 2))) goto LA25_;
632 goto LA19;
633 }
634 LA25_: ;
635 i_2 += ((NI) 1);
636 } LA21: ;
637 }
638 } LA19: ;
639 }
640 break;
641 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
642 {
643 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0);
644 {
645 if (!!(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA30_;
646 result = classifyViewTypeNode__typeallowed_506(marker, (*t).n);
647 }
648 LA30_: ;
649 {
650 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T36_;
651 if (!!(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA34_;
652 T36_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
653 T36_ = classifyViewTypeAux__typeallowed_503(marker, (*t).sons->data[((NI) 0)]);
654 combine__typeallowed_486((&result), T36_);
655 }
656 LA34_: ;
657 }
658 break;
659 default:
660 {
661 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0);
662 }
663 break;
664 }
665 }BeforeRet_: ;
666 return result;
667 }
N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog,classifyViewType__typeallowed_564)668 N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, classifyViewType__typeallowed_564)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
669 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog result;
670 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
671 result = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
672 nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
673 initIntSet__pureZcollectionsZintsets_238((&marker));
674 result = classifyViewTypeAux__typeallowed_503((&marker), t);
675 return result;
676 }
N_NIMCALL(NIM_BOOL,requiresInit__typeallowed_578)677 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, requiresInit__typeallowed_578)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
678 NIM_BOOL result;
679 NIM_BOOL T1_;
680 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T3_;
681 result = (NIM_BOOL)0;
682 T1_ = (NIM_BOOL)0;
683 T1_ = !((((*t).flags & 917504) == 0));
684 if (T1_) goto LA2_;
685 T3_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
686 T3_ = classifyViewType__typeallowed_564(t);
687 T1_ = !((T3_ == ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0)));
688 LA2_: ;
689 result = T1_;
690 return result;
691 }
N_INLINE(NIM_BOOL,isInlineIterator__ast_4989)692 static N_INLINE(NIM_BOOL, isInlineIterator__ast_4989)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
693 NIM_BOOL result;
694 NIM_BOOL T1_;
695 NIM_BOOL T2_;
696 result = (NIM_BOOL)0;
697 T1_ = (NIM_BOOL)0;
698 T2_ = (NIM_BOOL)0;
699 T2_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
700 if (!(T2_)) goto LA3_;
701 T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
702 LA3_: ;
703 T1_ = T2_;
704 if (!(T1_)) goto LA4_;
705 T1_ = !(((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)));
706 LA4_: ;
707 result = T1_;
708 return result;
709 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,typeAllowedNode__typeallowed_25)710 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, typeAllowedNode__typeallowed_25)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg flags) {
711 tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
712 result = NIM_NIL;
713 {
714 if (!!((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
715 result = typeAllowedAux__typeallowed_19(marker, (*n).typ, kind, c, flags);
716 {
717 if (!(result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA7_;
718 switch ((*n).kind) {
719 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
720 {
721 }
722 break;
723 default:
724 {
725 {
726 NI i;
727 NI colontmp_;
728 NI i_2;
729 i = (NI)0;
730 colontmp_ = (NI)0;
731 colontmp_ = len__ast_3198(n);
732 i_2 = ((NI) 0);
733 {
734 while (1) {
735 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
736 if (!(i_2 < colontmp_)) goto LA13;
737 i = i_2;
738 it = (*n)._kind_6.sons->data[i];
739 result = typeAllowedNode__typeallowed_25(marker, it, kind, c, flags);
740 {
741 if (!!((result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA16_;
742 goto LA11;
743 }
744 LA16_: ;
745 i_2 += ((NI) 1);
746 } LA13: ;
747 }
748 } LA11: ;
749 }
750 break;
751 }
752 }
753 LA7_: ;
754 }
755 LA3_: ;
756 return result;
757 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,typeAllowedAux__typeallowed_19)758 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, typeAllowedAux__typeallowed_19)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg flags) {
759 tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
760 tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
761 { result = NIM_NIL;
762 result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
763 {
764 if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
765 result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
766 goto BeforeRet_;
767 }
768 LA3_: ;
769 {
770 tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym6_;
771 NIM_BOOL T7_;
772 xX60gensym6_ = typ;
773 T7_ = (NIM_BOOL)0;
774 T7_ = containsOrIncl__astalgo_402(marker, (NI)((NI)((NU64)(((NI) ((*xX60gensym6_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym6_).Sup.itemId.item))));
775 if (!T7_) goto LA8_;
776 result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
777 goto BeforeRet_;
778 }
779 LA8_: ;
780 t = skipTypes__ast_3735(typ, TM__FLm9aU7VXleJfAvJR1cpHXQ_2);
781 switch ((*t).kind) {
782 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
783 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
784 {
785 {
786 NIM_BOOL T13_;
787 T13_ = (NIM_BOOL)0;
788 T13_ = ((13312 &((NU32)1<<((NU)(kind)&31U)))!=0);
789 if (!(T13_)) goto LA14_;
790 T13_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 13))&31U)))!=0));
791 LA14_: ;
792 if (!T13_) goto LA15_;
793 result = t;
794 }
795 goto LA11_;
796 LA15_: ;
797 {
798 NIM_BOOL T18_;
799 NIM_BOOL T20_;
800 NIM_BOOL T21_;
801 T18_ = (NIM_BOOL)0;
802 T18_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
803 if (!(T18_)) goto LA19_;
804 T20_ = (NIM_BOOL)0;
805 T21_ = (NIM_BOOL)0;
806 T21_ = !((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11)));
807 if (!(T21_)) goto LA22_;
808 T21_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 13))&31U)))!=0));
809 LA22_: ;
810 T20_ = T21_;
811 if (T20_) goto LA23_;
812 T20_ = (kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
813 LA23_: ;
814 T18_ = T20_;
815 LA19_: ;
816 if (!T18_) goto LA24_;
817 result = t;
818 }
819 goto LA11_;
820 LA24_: ;
821 {
822 tyObject_TType__facALICuu8zUj0hjvbTLFg* t2;
823 t2 = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__FLm9aU7VXleJfAvJR1cpHXQ_2);
824 switch ((*t2).kind) {
825 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
826 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
827 {
828 {
829 if (!!(((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 1))&7U)))!=0))) goto LA30_;
830 result = t2;
831 }
832 LA30_: ;
833 }
834 break;
835 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
836 {
837 {
838 NIM_BOOL T35_;
839 NIM_BOOL T36_;
840 T35_ = (NIM_BOOL)0;
841 T36_ = (NIM_BOOL)0;
842 T36_ = !((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
843 if (!(T36_)) goto LA37_;
844 T36_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 13))&31U)))!=0));
845 LA37_: ;
846 T35_ = T36_;
847 if (T35_) goto LA38_;
848 T35_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 3))&7U)))!=0);
849 LA38_: ;
850 if (!T35_) goto LA39_;
851 result = t;
852 }
853 goto LA33_;
854 LA39_: ;
855 {
856 result = typeAllowedAux__typeallowed_19(marker, (*t2).sons->data[((NI) 0)], kind, c, (flags | 8));
857 }
858 LA33_: ;
859 }
860 break;
861 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
862 {
863 {
864 NIM_BOOL T45_;
865 T45_ = (NIM_BOOL)0;
866 T45_ = !((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
867 if (!(T45_)) goto LA46_;
868 T45_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 13))&31U)))!=0));
869 LA46_: ;
870 if (!T45_) goto LA47_;
871 result = t;
872 }
873 goto LA43_;
874 LA47_: ;
875 {
876 result = typeAllowedAux__typeallowed_19(marker, (*t2).sons->data[((NI) 0)], kind, c, flags);
877 }
878 LA43_: ;
879 }
880 break;
881 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
882 {
883 result = t;
884 }
885 break;
886 default:
887 {
888 {
889 NIM_BOOL T54_;
890 T54_ = (NIM_BOOL)0;
891 T54_ = !(((2056 &((NU32)1<<((NU)(kind)&31U)))!=0));
892 if (!(T54_)) goto LA55_;
893 T54_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 13))&31U)))!=0));
894 LA55_: ;
895 if (!T54_) goto LA56_;
896 result = t;
897 }
898 goto LA52_;
899 LA56_: ;
900 {
901 result = typeAllowedAux__typeallowed_19(marker, t2, kind, c, flags);
902 }
903 LA52_: ;
904 }
905 break;
906 }
907 }
908 LA11_: ;
909 }
910 break;
911 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
912 {
913 {
914 NIM_BOOL T62_;
915 T62_ = (NIM_BOOL)0;
916 T62_ = ((1792 &((NU32)1<<((NU)(kind)&31U)))!=0);
917 if (!(T62_)) goto LA63_;
918 T62_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 5))&7U)))!=0);
919 LA63_: ;
920 if (!T62_) goto LA64_;
921 result = t;
922 }
923 goto LA60_;
924 LA64_: ;
925 {
926 tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg f;
927 {
928 NIM_BOOL T69_;
929 T69_ = (NIM_BOOL)0;
930 T69_ = isInlineIterator__ast_4989(typ);
931 if (!(T69_)) goto LA70_;
932 T69_ = ((3848 &((NU32)1<<((NU)(kind)&31U)))!=0);
933 LA70_: ;
934 if (!T69_) goto LA71_;
935 result = t;
936 }
937 LA71_: ;
938 {
939 if (!((12288 &((NU32)1<<((NU)(kind)&31U)))!=0)) goto LA75_;
940 f = (flags | 16);
941 }
942 goto LA73_;
943 LA75_: ;
944 {
945 f = flags;
946 }
947 LA73_: ;
948 {
949 NI i;
950 NI colontmp_;
951 NI i_2;
952 i = (NI)0;
953 colontmp_ = (NI)0;
954 colontmp_ = len__ast_4002(t);
955 i_2 = ((NI) 1);
956 {
957 while (1) {
958 if (!(i_2 < colontmp_)) goto LA80;
959 i = i_2;
960 {
961 if (!!((result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA83_;
962 goto LA78;
963 }
964 LA83_: ;
965 result = typeAllowedAux__typeallowed_19(marker, (*t).sons->data[i], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), c, (f & ~ 8));
966 i_2 += ((NI) 1);
967 } LA80: ;
968 }
969 } LA78: ;
970 {
971 NIM_BOOL T87_;
972 T87_ = (NIM_BOOL)0;
973 T87_ = (result == 0);
974 if (!(T87_)) goto LA88_;
975 T87_ = !(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
976 LA88_: ;
977 if (!T87_) goto LA89_;
978 result = typeAllowedAux__typeallowed_19(marker, (*t).sons->data[((NI) 0)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11), c, flags);
979 }
980 LA89_: ;
981 }
982 LA60_: ;
983 }
984 break;
985 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
986 {
987 {
988 NIM_BOOL T94_;
989 T94_ = (NIM_BOOL)0;
990 T94_ = ((1792 &((NU32)1<<((NU)(kind)&31U)))!=0);
991 if (!(T94_)) goto LA95_;
992 T94_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 6))&7U)))!=0);
993 LA95_: ;
994 if (!T94_) goto LA96_;
995 result = t;
996 }
997 goto LA92_;
998 LA96_: ;
999 {
1000 result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
1001 }
1002 LA92_: ;
1003 }
1004 break;
1005 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
1006 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
1007 {
1008 {
1009 NIM_BOOL T102_;
1010 T102_ = (NIM_BOOL)0;
1011 T102_ = !(((2056 &((NU32)1<<((NU)(kind)&31U)))!=0));
1012 if (T102_) goto LA103_;
1013 T102_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 4))&7U)))!=0);
1014 LA103_: ;
1015 if (!T102_) goto LA104_;
1016 result = t;
1017 }
1018 LA104_: ;
1019 }
1020 break;
1021 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64):
1022 {
1023 {
1024 NIM_BOOL T109_;
1025 T109_ = (NIM_BOOL)0;
1026 T109_ = !(((8 &((NU32)1<<((NU)(kind)&31U)))!=0));
1027 if (T109_) goto LA110_;
1028 T109_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 4))&7U)))!=0);
1029 LA110_: ;
1030 if (!T109_) goto LA111_;
1031 result = t;
1032 }
1033 LA111_: ;
1034 }
1035 break;
1036 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
1037 {
1038 {
1039 if (!!(((8 &((NU32)1<<((NU)(kind)&31U)))!=0))) goto LA116_;
1040 result = t;
1041 }
1042 LA116_: ;
1043 }
1044 break;
1045 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63):
1046 {
1047 {
1048 if (!!(((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 0))&7U)))!=0))) goto LA121_;
1049 result = t;
1050 }
1051 LA121_: ;
1052 }
1053 break;
1054 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
1055 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
1056 {
1057 {
1058 NIM_BOOL T126_;
1059 T126_ = (NIM_BOOL)0;
1060 T126_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 25))&63U)))!=0);
1061 if (T126_) goto LA127_;
1062 T126_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 2))&7U)))!=0);
1063 LA127_: ;
1064 if (!T126_) goto LA128_;
1065 }
1066 goto LA124_;
1067 LA128_: ;
1068 {
1069 tyObject_TType__facALICuu8zUj0hjvbTLFg* T133_;
1070 if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0)) goto LA131_;
1071 T133_ = NIM_NIL;
1072 T133_ = lastSon__ast_3743(t);
1073 result = typeAllowedAux__typeallowed_19(marker, T133_, kind, c, flags);
1074 }
1075 goto LA124_;
1076 LA131_: ;
1077 {
1078 if (!!(((2056 &((NU32)1<<((NU)(kind)&31U)))!=0))) goto LA135_;
1079 result = t;
1080 }
1081 goto LA124_;
1082 LA135_: ;
1083 LA124_: ;
1084 }
1085 break;
1086 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
1087 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
1088 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
1089 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0):
1090 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
1091 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
1092 {
1093 result = t;
1094 }
1095 break;
1096 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
1097 {
1098 {
1099 NIM_BOOL T141_;
1100 T141_ = (NIM_BOOL)0;
1101 T141_ = !((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10)));
1102 if (!(T141_)) goto LA142_;
1103 T141_ = !((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
1104 LA142_: ;
1105 if (!T141_) goto LA143_;
1106 result = t;
1107 }
1108 LA143_: ;
1109 }
1110 break;
1111 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
1112 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
1113 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
1114 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
1115 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
1116 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
1117 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
1118 {
1119 result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
1120 }
1121 break;
1122 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
1123 {
1124 {
1125 if (!!((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)))) goto LA149_;
1126 result = t;
1127 }
1128 LA149_: ;
1129 }
1130 break;
1131 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
1132 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
1133 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
1134 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
1135 {
1136 tyObject_TType__facALICuu8zUj0hjvbTLFg* T152_;
1137 T152_ = NIM_NIL;
1138 T152_ = lastSon__ast_3743(t);
1139 result = typeAllowedAux__typeallowed_19(marker, T152_, kind, c, flags);
1140 }
1141 break;
1142 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
1143 {
1144 {
1145 tyObject_TType__facALICuu8zUj0hjvbTLFg* T156_;
1146 T156_ = NIM_NIL;
1147 T156_ = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__FLm9aU7VXleJfAvJR1cpHXQ_3);
1148 if (!!(((*T156_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*T156_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*T156_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T156_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*T156_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T156_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44) || (*T156_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20)))) goto LA157_;
1149 result = t;
1150 }
1151 LA157_: ;
1152 }
1153 break;
1154 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
1155 {
1156 {
1157 NIM_BOOL T162_;
1158 NIM_BOOL T163_;
1159 T162_ = (NIM_BOOL)0;
1160 T163_ = (NIM_BOOL)0;
1161 T163_ = !((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
1162 if (T163_) goto LA164_;
1163 T163_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 3))&7U)))!=0);
1164 LA164_: ;
1165 T162_ = T163_;
1166 if (!(T162_)) goto LA165_;
1167 T162_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 13))&31U)))!=0));
1168 LA165_: ;
1169 if (!T162_) goto LA166_;
1170 result = t;
1171 }
1172 goto LA160_;
1173 LA166_: ;
1174 {
1175 result = typeAllowedAux__typeallowed_19(marker, (*t).sons->data[((NI) 0)], kind, c, (flags | 8));
1176 }
1177 LA160_: ;
1178 }
1179 break;
1180 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
1181 {
1182 {
1183 NIM_BOOL T172_;
1184 T172_ = (NIM_BOOL)0;
1185 T172_ = !((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
1186 if (T172_) goto LA173_;
1187 T172_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 3))&7U)))!=0);
1188 LA173_: ;
1189 if (!T172_) goto LA174_;
1190 result = t;
1191 }
1192 goto LA170_;
1193 LA174_: ;
1194 {
1195 result = typeAllowedAux__typeallowed_19(marker, (*t).sons->data[((NI) 0)], kind, c, (flags | 8));
1196 }
1197 LA170_: ;
1198 }
1199 break;
1200 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
1201 {
1202 {
1203 NIM_BOOL T180_;
1204 NIM_BOOL T181_;
1205 T180_ = (NIM_BOOL)0;
1206 T181_ = (NIM_BOOL)0;
1207 T181_ = !((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
1208 if (T181_) goto LA182_;
1209 T181_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 3))&7U)))!=0);
1210 LA182_: ;
1211 T180_ = T181_;
1212 if (T180_) goto LA183_;
1213 T180_ = ((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
1214 LA183_: ;
1215 if (!T180_) goto LA184_;
1216 result = t;
1217 }
1218 goto LA178_;
1219 LA184_: ;
1220 {
1221 result = typeAllowedAux__typeallowed_19(marker, (*t).sons->data[((NI) 0)], kind, c, flags);
1222 }
1223 LA178_: ;
1224 }
1225 break;
1226 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
1227 {
1228 {
1229 NIM_BOOL T190_;
1230 T190_ = (NIM_BOOL)0;
1231 T190_ = !((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
1232 if (!(T190_)) goto LA191_;
1233 T190_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 1))&7U)))!=0));
1234 LA191_: ;
1235 if (!T190_) goto LA192_;
1236 result = t;
1237 }
1238 goto LA188_;
1239 LA192_: ;
1240 {
1241 tyObject_TType__facALICuu8zUj0hjvbTLFg* T195_;
1242 T195_ = NIM_NIL;
1243 T195_ = lastSon__ast_3743(t);
1244 result = typeAllowedAux__typeallowed_19(marker, T195_, kind, c, (flags & ~ 2));
1245 }
1246 LA188_: ;
1247 }
1248 break;
1249 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
1250 {
1251 {
1252 if (!!(((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3)))) goto LA199_;
1253 result = typeAllowedAux__typeallowed_19(marker, (*t).sons->data[((NI) 0)], kind, c, (flags | 2));
1254 }
1255 goto LA197_;
1256 LA199_: ;
1257 {
1258 if (!((768 &((NU32)1<<((NU)(kind)&31U)))!=0)) goto LA202_;
1259 result = (*t).sons->data[((NI) 0)];
1260 }
1261 goto LA197_;
1262 LA202_: ;
1263 LA197_: ;
1264 }
1265 break;
1266 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
1267 {
1268 {
1269 if (!((*(*t).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA207_;
1270 result = (*t).sons->data[((NI) 1)];
1271 }
1272 goto LA205_;
1273 LA207_: ;
1274 {
1275 if (!!(((*(*t).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3)))) goto LA210_;
1276 result = typeAllowedAux__typeallowed_19(marker, (*t).sons->data[((NI) 1)], kind, c, flags);
1277 }
1278 goto LA205_;
1279 LA210_: ;
1280 {
1281 if (!((768 &((NU32)1<<((NU)(kind)&31U)))!=0)) goto LA213_;
1282 result = (*t).sons->data[((NI) 1)];
1283 }
1284 goto LA205_;
1285 LA213_: ;
1286 LA205_: ;
1287 }
1288 break;
1289 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
1290 {
1291 {
1292 if (!(kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10))) goto LA218_;
1293 result = t;
1294 }
1295 goto LA216_;
1296 LA218_: ;
1297 {
1298 tyObject_TType__facALICuu8zUj0hjvbTLFg* T221_;
1299 T221_ = NIM_NIL;
1300 T221_ = lastSon__ast_3743(t);
1301 result = typeAllowedAux__typeallowed_19(marker, T221_, kind, c, (flags | 2));
1302 }
1303 LA216_: ;
1304 }
1305 break;
1306 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
1307 {
1308 tyObject_TType__facALICuu8zUj0hjvbTLFg* T223_;
1309 T223_ = NIM_NIL;
1310 T223_ = lastSon__ast_3743(t);
1311 result = typeAllowedAux__typeallowed_19(marker, T223_, kind, c, (flags | 2));
1312 }
1313 break;
1314 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
1315 {
1316 {
1317 NI i_3;
1318 NI colontmp__2;
1319 NI i_4;
1320 i_3 = (NI)0;
1321 colontmp__2 = (NI)0;
1322 colontmp__2 = len__ast_4002(t);
1323 i_4 = ((NI) 0);
1324 {
1325 while (1) {
1326 if (!(i_4 < colontmp__2)) goto LA227;
1327 i_3 = i_4;
1328 result = typeAllowedAux__typeallowed_19(marker, (*t).sons->data[i_3], kind, c, flags);
1329 {
1330 if (!!((result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA230_;
1331 goto LA225;
1332 }
1333 LA230_: ;
1334 i_4 += ((NI) 1);
1335 } LA227: ;
1336 }
1337 } LA225: ;
1338 }
1339 break;
1340 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
1341 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
1342 {
1343 {
1344 NIM_BOOL T235_;
1345 NIM_BOOL T236_;
1346 T235_ = (NIM_BOOL)0;
1347 T236_ = (NIM_BOOL)0;
1348 T236_ = ((13312 &((NU32)1<<((NU)(kind)&31U)))!=0);
1349 if (!(T236_)) goto LA237_;
1350 T236_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
1351 LA237_: ;
1352 T235_ = T236_;
1353 if (!(T235_)) goto LA238_;
1354 T235_ = !(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
1355 LA238_: ;
1356 if (!T235_) goto LA239_;
1357 result = t;
1358 }
1359 goto LA233_;
1360 LA239_: ;
1361 {
1362 tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg flags_2;
1363 flags_2 = (flags | 1);
1364 {
1365 NI i_5;
1366 NI colontmp__3;
1367 NI i_6;
1368 i_5 = (NI)0;
1369 colontmp__3 = (NI)0;
1370 colontmp__3 = len__ast_4002(t);
1371 i_6 = ((NI) 0);
1372 {
1373 while (1) {
1374 if (!(i_6 < colontmp__3)) goto LA244;
1375 i_5 = i_6;
1376 result = typeAllowedAux__typeallowed_19(marker, (*t).sons->data[i_5], kind, c, flags_2);
1377 {
1378 if (!!((result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA247_;
1379 goto LA242;
1380 }
1381 LA247_: ;
1382 i_6 += ((NI) 1);
1383 } LA244: ;
1384 }
1385 } LA242: ;
1386 {
1387 NIM_BOOL T251_;
1388 T251_ = (NIM_BOOL)0;
1389 T251_ = (result == 0);
1390 if (!(T251_)) goto LA252_;
1391 T251_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
1392 LA252_: ;
1393 if (!T251_) goto LA253_;
1394 result = typeAllowedNode__typeallowed_25(marker, (*t).n, kind, c, flags_2);
1395 }
1396 LA253_: ;
1397 }
1398 LA233_: ;
1399 }
1400 break;
1401 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3):
1402 {
1403 {
1404 if (!((768 &((NU32)1<<((NU)(kind)&31U)))!=0)) goto LA258_;
1405 result = t;
1406 }
1407 LA258_: ;
1408 }
1409 break;
1410 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
1411 {
1412 result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
1413 }
1414 break;
1415 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
1416 {
1417 {
1418 NIM_BOOL T264_;
1419 NI T265_;
1420 tyObject_TType__facALICuu8zUj0hjvbTLFg* T267_;
1421 tyObject_TType__facALICuu8zUj0hjvbTLFg* T270_;
1422 T264_ = (NIM_BOOL)0;
1423 T265_ = (NI)0;
1424 T265_ = len__ast_4002(t);
1425 T264_ = (T265_ == ((NI) 1));
1426 if (!(T264_)) goto LA266_;
1427 T267_ = NIM_NIL;
1428 T267_ = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__FLm9aU7VXleJfAvJR1cpHXQ_4);
1429 T264_ = ((*T267_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T267_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T267_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
1430 LA266_: ;
1431 if (!T264_) goto LA268_;
1432 T270_ = NIM_NIL;
1433 T270_ = lastSon__ast_3743(t);
1434 result = typeAllowedAux__typeallowed_19(marker, T270_, kind, c, (flags | 2));
1435 }
1436 goto LA262_;
1437 LA268_: ;
1438 {
1439 result = t;
1440 }
1441 LA262_: ;
1442 }
1443 break;
1444 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62):
1445 {
1446 {
1447 if (!!((kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)))) goto LA275_;
1448 result = t;
1449 }
1450 goto LA273_;
1451 LA275_: ;
1452 {
1453 result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
1454 }
1455 LA273_: ;
1456 }
1457 break;
1458 }
1459 }BeforeRet_: ;
1460 return result;
1461 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,typeAllowed__typeallowed_472)1462 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, typeAllowed__typeallowed_472)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg flags) {
1463 tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
1464 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
1465 result = NIM_NIL;
1466 nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
1467 initIntSet__pureZcollectionsZintsets_238((&marker));
1468 result = typeAllowedAux__typeallowed_19((&marker), t, kind, c, flags);
1469 return result;
1470 }
N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog,directViewType__typeallowed_568)1471 N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, directViewType__typeallowed_568)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
1472 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog result;
1473 result = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
1474 switch ((*t).kind) {
1475 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
1476 {
1477 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 2);
1478 }
1479 break;
1480 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
1481 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
1482 {
1483 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 1);
1484 }
1485 break;
1486 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
1487 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
1488 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
1489 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
1490 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
1491 case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
1492 {
1493 tyObject_TType__facALICuu8zUj0hjvbTLFg* T4_;
1494 T4_ = NIM_NIL;
1495 T4_ = lastSon__ast_3743(t);
1496 result = directViewType__typeallowed_568(T4_);
1497 }
1498 break;
1499 default:
1500 {
1501 result = ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0);
1502 }
1503 break;
1504 }
1505 return result;
1506 }
1507