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