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 #include <setjmp.h>
8 #undef LANGUAGE_C
9 #undef MIPSEB
10 #undef MIPSEL
11 #undef PPC
12 #undef R3000
13 #undef R4000
14 #undef i386
15 #undef linux
16 #undef mips
17 #undef near
18 #undef far
19 #undef powerpc
20 #undef unix
21 #define nimfr_(x, y)
22 #define nimln_(x, y)
23 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
24 typedef struct tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg;
25 typedef struct tySequence__8Np6tlClE5az1CyqZdN19bQ tySequence__8Np6tlClE5az1CyqZdN19bQ;
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_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
37 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
38 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
39 typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
40 typedef struct TGenericSeq TGenericSeq;
41 typedef struct NimStringDesc NimStringDesc;
42 typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
43 typedef struct tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw;
44 typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
45 typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
46 typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
47 typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
48 typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
49 typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
50 typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
51 typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
52 typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
53 typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
54 typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
55 typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
56 typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
57 typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
58 typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
59 typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
60 typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
61 typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
62 typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
63 typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
64 typedef struct tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA;
65 typedef struct Exception Exception;
66 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
67 typedef struct TSafePoint TSafePoint;
68 typedef struct tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw;
69 typedef struct tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA;
70 typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
71 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
72 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
73 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
74 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
75 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
76 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
77 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
78 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
79 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
80 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
81 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
82 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
83 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
84 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
85 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
86 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
87 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
88 typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
89 typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
90 typedef struct tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA;
91 typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
92 typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
93 typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
94 typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
95 typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
96 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
97 typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
98 typedef NU8 tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg;
99 struct tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg {
100 tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg cmp;
101 NI recCheck;
102 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags;
103 tySequence__8Np6tlClE5az1CyqZdN19bQ* s;
104 };
105 typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
106 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
107 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
108 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
109 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
110 struct TNimType {
111 NI size;
112 NI align;
113 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
114 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
115 TNimType* base;
116 TNimNode* node;
117 void* finalizer;
118 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
119 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
120 };
121 struct RootObj {
122 TNimType* m_type;
123 };
124 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
125 NI32 module;
126 NI32 item;
127 };
128 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
129   RootObj Sup;
130 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
131 };
132 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
133 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
134 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
135 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
136 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
137 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
138 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
139 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
140 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
141 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
142 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
143 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
144 };
145 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
146   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
147 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
148 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
149 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
150 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
151 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
152 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
153 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
154 NI64 size;
155 NI16 align;
156 NI16 paddingAtEnd;
157 NI16 lockLevel;
158 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
159 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
160 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
161 };
162 typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
163 typedef NU8 tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
164 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
165 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
166 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
167 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
168 NU16 line;
169 NI16 col;
170 NI32 fileIndex;
171 };
172 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
173 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
174   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
175 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
176 union{
177 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
178 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
179 } _kind_1;
180 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
181 NI bitsize;
182 NI alignment;
183 } _kind_2;
184 };
185 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
186 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
187 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
188 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
189 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
190 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
191 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
192 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
193 NI position;
194 NI offset;
195 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
196 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
197 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
198 };
199 struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
200 NI Field0;
201 NI Field1;
202 };
203 struct TGenericSeq {
204 NI len;
205 NI reserved;
206 };
207 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
208 struct TNimNode {
209 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
210 NI offset;
211 TNimType* typ;
212 NCSTRING name;
213 NI len;
214 TNimNode** sons;
215 };
216 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
217 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
218 struct NimStringDesc {
219   TGenericSeq Sup;
220 NIM_CHAR data[SEQ_DECL_SIZE];
221 };
222 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
223 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
224 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
225 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
226 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
227 union{
228 struct {NI64 intVal;
229 } _kind_1;
230 struct {NF floatVal;
231 } _kind_2;
232 struct {NimStringDesc* strVal;
233 } _kind_3;
234 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
235 } _kind_4;
236 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
237 } _kind_5;
238 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
239 } _kind_6;
240 };
241 };
242 struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
243 NI id;
244 NimStringDesc* s;
245 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
246 NI h;
247 };
248 typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
249 struct tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw {
250   RootObj Sup;
251 NI colonstate_;
252 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw preferToplevel1;
253 };
254 typedef struct {
255 N_NIMCALL_PTR(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw, ClP_0) (tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, void* ClE_0);
256 void* ClE_0;
257 } tyProc__3iD0yymxvVOS8ZW9aQRe2MA;
258 typedef N_CLOSURE_PTR(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw, TM__PpBJsMJcrcWrpLTS6mci1g_10) (tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
259 typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
260 typedef struct {
261 N_NIMCALL_PTR(NimStringDesc*, ClP_0) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, void* ClE_0);
262 void* ClE_0;
263 } tyProc__QZr2s9cqtiNBm1DLTkzxDcw;
264 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_13) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
265 typedef NimStringDesc* tyArray__bbp1aDajeunm5PPjRzxB3A[65];
266 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_79) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
267 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_80) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
268 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_85) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
269 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_88) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
270 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_90) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
271 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_91) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
272 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_92) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
273 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_95) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
274 typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
275 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_98) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
276 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_100) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
277 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_111) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
278 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_113) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
279 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_115) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
280 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_116) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
281 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_118) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
282 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_120) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
283 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_125) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
284 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_126) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
285 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_127) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
286 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_129) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
287 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_130) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
288 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_132) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
289 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_133) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
290 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_134) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
291 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_136) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
292 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_137) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
293 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_139) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
294 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_141) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
295 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_143) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
296 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_144) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
297 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_146) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
298 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_153) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
299 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_154) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
300 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_160) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
301 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_162) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
302 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_164) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
303 typedef N_CLOSURE_PTR(NimStringDesc*, TM__PpBJsMJcrcWrpLTS6mci1g_165) (tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
304 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__X59agDExDRW5s9cLoKvjr83g) (tyObject_TType__facALICuu8zUj0hjvbTLFg* t, RootObj* closure);
305 typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
306 struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
307 NI elems;
308 NI counter;
309 NI max;
310 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
311 tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
312 tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
313 };
314 typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
315 struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
316 tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
317 };
318 typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
319 typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
320 typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
321 struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
322 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
323 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
324 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
325 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
326 NI intSize;
327 NI floatSize;
328 NI ptrSize;
329 NimStringDesc* tnl;
330 };
331 typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
332 typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
333 struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
334 tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
335 NI counter;
336 };
337 struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
338 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
339 NIM_BOOL trackPosAttached;
340 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
341 tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
342 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
343 tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
344 tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
345 NI32 systemFileIdx;
346 };
347 typedef NU8 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ;
348 typedef NU8 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA;
349 typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
350 typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
351 typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
352 struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
353 tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
354 NI counter;
355 };
356 typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
357 typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
358 typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
359 typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
360 typedef NU8 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug[11];
361 struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
362 NI Field0;
363 NI Field1;
364 NI Field2;
365 };
366 typedef NU8 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug;
367 typedef struct {
368 N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
369 void* ClE_0;
370 } tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
371 typedef struct {
372 N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
373 void* ClE_0;
374 } tyProc__k2HFjxisIgDALbEUFojxaQ;
375 typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
376 typedef struct {
377 N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
378 void* ClE_0;
379 } tyProc__oL9coyIA2VDTGdUcur9aL9bew;
380 struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
381 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
382 tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
383 NI linesCompiled;
384 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
385 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
386 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
387 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
388 tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
389 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ filenameOption;
390 NimStringDesc* unitSep;
391 NI evalTemplateCounter;
392 NI evalMacroCounter;
393 NI8 exitcode;
394 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA cmd;
395 NimStringDesc* cmdInput;
396 NIM_BOOL projectIsCmd;
397 NIM_BOOL implicitCmd;
398 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
399 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
400 NIM_BOOL hintProcessingDots;
401 NI verbosity;
402 NI numberOfProcessors;
403 NF lastCmdTime;
404 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
405 NI spellSuggestMax;
406 tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
407 NimStringDesc* headerFile;
408 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
409 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
410 NimStringDesc* arguments;
411 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
412 NIM_BOOL oldNewlines;
413 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
414 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug modifiedyNotes;
415 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug cmdlineNotes;
416 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug foreignPackageNotes;
417 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug notes;
418 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug warningAsErrors;
419 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug mainPackageNotes;
420 NI mainPackageId;
421 NI errorCounter;
422 NI hintCounter;
423 NI warnCounter;
424 NI errorMax;
425 NI maxLoopIterationsVM;
426 NIM_BOOL isVmTrace;
427 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
428 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
429 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
430 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
431 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
432 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
433 NimStringDesc* outFile;
434 NimStringDesc* outDir;
435 NimStringDesc* jsonBuildFile;
436 NimStringDesc* prefixDir;
437 NimStringDesc* libpath;
438 NimStringDesc* nimcacheDir;
439 tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
440 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
441 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
442 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
443 NimStringDesc* projectName;
444 NimStringDesc* projectPath;
445 NimStringDesc* projectFull;
446 NIM_BOOL projectIsStdin;
447 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug lastMsgWasDot;
448 NI32 projectMainIdx;
449 NI32 projectMainIdx2;
450 NimStringDesc* command;
451 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
452 NimStringDesc* commandLine;
453 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
454 NIM_BOOL keepComments;
455 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
456 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
457 NimStringDesc* docSeeSrcUrl;
458 NimStringDesc* docRoot;
459 NimStringDesc* docCmd;
460 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
461 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
462 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
463 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
464 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
465 NimStringDesc* linkOptionsCmd;
466 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
467 NimStringDesc* linkOptions;
468 NimStringDesc* compileOptions;
469 NimStringDesc* cCompilerPath;
470 tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
471 tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
472 NI suggestVersion;
473 NI suggestMaxResults;
474 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
475 tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
476 tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
477 NimStringDesc* cppCustomNamespace;
478 NimStringDesc* nimMainPrefix;
479 tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
480 };
481 struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
482 NimStringDesc* Field0;
483 NI Field1;
484 NI Field2;
485 };
486 typedef NU8 tySet_tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA;
487 typedef NU8 tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw;
488 struct tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA {
489 tySet_tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA Field0;
490 tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw Field1;
491 };
492 typedef NU8 tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA;
493 typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
494 typedef NU8 tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ;
495 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__NbBRo5rVxVVQby3QsoZkZQ) (tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
496 struct Exception {
497   RootObj Sup;
498 Exception* parent;
499 NCSTRING name;
500 NimStringDesc* message;
501 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
502 Exception* up;
503 };
504 struct TSafePoint {
505 TSafePoint* prev;
506 NI status;
507 jmp_buf context;
508 };
509 struct tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw {
510 NI maxAlign;
511 NI offset;
512 };
513 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
514   Exception Sup;
515 };
516 struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
517   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
518 };
519 struct tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA {
520   tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw Sup;
521 };
522 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
523 NI refcount;
524 TNimType* typ;
525 };
526 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
527 void* bottom;
528 };
529 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
530 NI len;
531 NI cap;
532 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
533 };
534 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
535 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
536 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
537 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
538 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
539 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
540 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
541 };
542 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
543 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
544 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
545 NI key;
546 NI upperBound;
547 NI level;
548 };
549 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
550 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
551 NI Field1;
552 };
553 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
554 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
555 NI len;
556 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
557 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
558 };
559 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
560 NI minLargeObj;
561 NI maxLargeObj;
562 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
563 NU32 flBitmap;
564 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
565 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
566 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
567 NI currMem;
568 NI maxMem;
569 NI freeMem;
570 NI occ;
571 NI lastSize;
572 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
573 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
574 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
575 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
576 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
577 NIM_BOOL locked;
578 NIM_BOOL blockChunkSizeIncrease;
579 NI nextChunkSize;
580 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
581 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
582 };
583 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
584 NI stackScans;
585 NI cycleCollections;
586 NI maxThreshold;
587 NI maxStackSize;
588 NI maxStackCells;
589 NI cycleTableSize;
590 NI64 maxPause;
591 };
592 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
593 NI counter;
594 NI max;
595 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
596 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
597 };
598 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
599 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
600 NI cycleThreshold;
601 NI zctThreshold;
602 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
603 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
604 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
605 NI recGcLock;
606 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
607 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
608 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
609 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
610 NI gcThreadId;
611 };
612 typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
613 typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
614 typedef NU8 tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng;
615 struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q {
616 NI32 module;
617 NI32 symId;
618 NI32 typeId_0;
619 NIM_BOOL sealed;
620 };
621 typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
622 struct tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA {
623 NF a;
624 NF b;
625 };
626 typedef NU8 tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ;
627 typedef NU tyArray__VqSA39cBDWnwnJySTumCdjw[8];
628 struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA {
629 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* next;
630 NI key;
631 tyArray__VqSA39cBDWnwnJySTumCdjw bits;
632 };
633 typedef NU8 tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw;
634 struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
635 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
636 NimStringDesc* Field1;
637 };
638 struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
639 NI Field0;
640 NimStringDesc* Field1;
641 NI32 Field2;
642 };
643 struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
644 NimStringDesc* fullPath;
645 NimStringDesc* projPath;
646 NimStringDesc* shortName;
647 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
648 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
649 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
650 NimStringDesc* dirtyFile;
651 NimStringDesc* hash;
652 NIM_BOOL dirty;
653 };
654 struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
655 NI Field0;
656 NimStringDesc* Field1;
657 };
658 typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
659 struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
660 NimStringDesc* nimname;
661 NimStringDesc* cname;
662 NimStringDesc* obj;
663 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
664 NimStringDesc* customArgs;
665 };
666 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
667 NCSTRING procname;
668 NI line;
669 NCSTRING filename;
670 };
671 struct tySequence__8Np6tlClE5az1CyqZdN19bQ {
672   TGenericSeq Sup;
673   tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ data[SEQ_DECL_SIZE];
674 };
675 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
676   TGenericSeq Sup;
677   tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
678 };
679 struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
680   TGenericSeq Sup;
681   tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
682 };
683 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
684   TGenericSeq Sup;
685   tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
686 };
687 struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
688   TGenericSeq Sup;
689   tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
690 };
691 struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
692   TGenericSeq Sup;
693   tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
694 };
695 struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
696   TGenericSeq Sup;
697   tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
698 };
699 struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
700   TGenericSeq Sup;
701   tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
702 };
703 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
704   TGenericSeq Sup;
705   NimStringDesc* data[SEQ_DECL_SIZE];
706 };
707 struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
708   TGenericSeq Sup;
709   tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
710 };
711 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
712   TGenericSeq Sup;
713   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
714 };
715 static N_INLINE(void, nimZeroMem)(void* p, NI size);
716 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
717 N_LIB_PRIVATE N_NIMCALL(void, initSameTypeClosure__types_1699)(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* Result);
718 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
719 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeAux__types_1803)(tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TType__facALICuu8zUj0hjvbTLFg* y, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c);
720 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
721 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
722 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipGenericAlias__types_2219)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
723 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericAlias__types_2205)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
724 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, lastSon__ast_3743)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
725 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, base__types_63)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
726 static N_INLINE(NIM_BOOL, sameFlags__types_2225)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
727 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_56)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, NIM_BOOL strictSymEquality);
728 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__types_1701)(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
729 static N_INLINE(NIM_BOOL, contains__types_1722)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* a, NI aLen_0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ item);
730 static N_INLINE(NI, find__types_1727)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* a, NI aLen_0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ item);
731 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___types_1746)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y);
732 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
733 static N_NIMCALL(void, Marker_tySequence__8Np6tlClE5az1CyqZdN19bQ)(void* p, NI op);
734 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectStructures__types_2163)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c);
735 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNilAux__types_1807)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c);
736 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTree__types_2112)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c);
737 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
738 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
739 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
740 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
741 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTuple__types_1965)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c);
742 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameChildrenAux__types_2184)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c);
743 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstraints__types_1898)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
744 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameValue__astalgo_119)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
745 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTypes__types_2047)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
746 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_1824)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
747 static N_NIMCALL(void, Marker_tyRef__ik3gfZ9aJJHPxASsunXJrEA)(void* p, NI op);
748 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
749 N_LIB_PRIVATE N_CLOSURE(NimStringDesc*, typeToString__types_919)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, void* ClE_0);
750 N_LIB_PRIVATE N_CLOSURE(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw, getPrefer__types_902)(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, void* ClE_0);
751 static N_INLINE(NIM_BOOL, isIntLit__types_186)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
752 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
753 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
754 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
755 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_6)(NI64 x);
756 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
757 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
758 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
759 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
760 static N_INLINE(void, addTypeFlags__types_890)(NimStringDesc** name, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
761 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
762 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__renderer_46)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
763 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rangeToStr__types_862)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
764 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, valueToString__types_856)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
765 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_3118)(NF x);
766 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
767 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
768 static N_INLINE(void, addSep__pureZstrutils_1337)(NimStringDesc** dest, NimStringDesc* sep, NI startLen);
769 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___ast_3858)(NI16 x);
770 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
771 N_LIB_PRIVATE N_NIMCALL(NI, inheritanceDiff__types_2685)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
772 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, elemType__types_263)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
773 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverType__types_81)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__X59agDExDRW5s9cLoKvjr83g iter, RootObj* closure);
774 static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
775 N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_16)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
776 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverTypeAux__types_323)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__X59agDExDRW5s9cLoKvjr83g iter, RootObj* closure);
777 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__astalgo_402)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
778 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverNode__types_328)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyProc__X59agDExDRW5s9cLoKvjr83g iter, RootObj* closure);
779 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericTypeIter__types_3340)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, RootObj* closure);
780 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, enumHasHoles__types_287)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
781 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_299)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, NIM_BOOL allowEnumWithHoles);
782 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__types_1353)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
783 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getOrdValue__types_161)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Int128__9a9axPfb75jdWY25AamJewkA onError);
784 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_556)(NU64 arg);
785 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_725)(NI64 arg);
786 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__types_1378)(NI arg);
787 N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1431)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
788 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__types_1474)(NU arg);
789 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__types_1470)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
790 N_LIB_PRIVATE N_NIMCALL(NF, getFloatValue__types_182)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
791 N_LIB_PRIVATE N_NIMCALL(NF, firstFloat__types_1445)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
792 N_LIB_PRIVATE N_NIMCALL(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*, newPartialConfigRef__options_2497)(void);
793 N_LIB_PRIVATE N_NIMCALL(NF, lastFloat__types_1588)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
794 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__types_1661)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
795 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___int495056_448)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
796 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_474)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
797 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compatibleEffectsAux__types_3404)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* se, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* re);
798 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
799 N_LIB_PRIVATE N_NIMCALL(NI, safeInheritanceDiff__types_3392)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
800 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_3626)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
801 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__types_50)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
802 N_LIB_PRIVATE N_NIMCALL(void, addDeclaredLoc__astmsgs_17)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
803 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycleAux__types_661)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, NI startId);
804 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycleNode__types_665)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI startId);
805 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isPureObject__types_132)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
806 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeForAux__types_393)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__NbBRo5rVxVVQby3QsoZkZQ predicate, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker);
807 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeNodeForAux__types_397)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyProc__NbBRo5rVxVVQby3QsoZkZQ p, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker);
808 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4832)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
809 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeFor__types_470)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__NbBRo5rVxVVQby3QsoZkZQ predicate);
810 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGCRef__types_589)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
811 N_LIB_PRIVATE N_NIMCALL(void, computeSizeAlign__types_2924)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
812 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
813 static N_INLINE(void, popSafePoint)(void);
814 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_721)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
815 N_LIB_PRIVATE N_NIMCALL(NI64, toInt64Checked__int495056_103)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg, NI64 onError);
816 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, star___int495056_514)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI32 b);
817 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_305)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
818 N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int495056_88)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
819 N_LIB_PRIVATE N_NIMCALL(NI16, floatInt64Align__options_4700)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
820 N_LIB_PRIVATE N_NIMCALL(NI64, align__types_2864)(NI64 address, NI64 alignment);
821 N_LIB_PRIVATE N_NIMCALL(void, align__types_2911)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, NI value);
822 N_LIB_PRIVATE N_NIMCALL(void, raiseIllegalTypeRecursion__types_2877)(void);
823 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
824 static N_NIMCALL(void, Marker_tyRef__SFgbIvdx8bC9cxnXgi8Zn1A)(void* p, NI op);
825 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
826 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
827 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
828 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
829 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
830 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
831 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
832 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
833 static N_INLINE(void, asgnRef)(void** dest, void* src);
834 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
835 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
836 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
837 N_LIB_PRIVATE N_NIMCALL(NI, align__types_2868)(NI address, NI alignment);
838 N_LIB_PRIVATE N_NIMCALL(void, inc__types_2900)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, NI value);
839 N_LIB_PRIVATE N_NIMCALL(NI, finish__types_2917)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg);
840 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
841 static N_INLINE(Exception*, nimBorrowCurrentException)(void);
842 static N_INLINE(void, popCurrentException)(void);
843 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
844 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObjectWithTypeFieldPredicate__types_485)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
845 N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1118)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
846 N_LIB_PRIVATE N_NIMCALL(void, computeUnionObjectOffsetsFoldFunction__types_3067)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL packed_0, tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* accum);
847 N_LIB_PRIVATE N_NIMCALL(void, mergeBranch__types_2914)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw value);
848 N_LIB_PRIVATE N_NIMCALL(void, computeObjectOffsetsFoldFunction__types_2994)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL packed_0, tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* accum);
849 N_LIB_PRIVATE N_NIMCALL(NI64, computeSubObjectAlign__types_2927)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
850 N_LIB_PRIVATE N_NIMCALL(NI, alignmentMax__types_2907)(NI a, NI b);
851 N_LIB_PRIVATE N_NIMCALL(void, setOffsetsToUnknown__types_2978)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
852 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
853 N_LIB_PRIVATE N_NIMCALL(tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng, classify__types_3581)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
854 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, copyType__ast_4046)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
855 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
856 N_LIB_PRIVATE N_NIMCALL(void, copyTypeProps__modulegraphs_8872)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module, tyObject_TType__facALICuu8zUj0hjvbTLFg* dest, tyObject_TType__facALICuu8zUj0hjvbTLFg* src);
857 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_2279)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
858 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
859 N_LIB_PRIVATE N_NIMCALL(void, addDeclaredLoc__astmsgs_33)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
860 N_LIB_PRIVATE N_NIMCALL(void, addPragmaAndCallConvMismatch__types_3795)(NimStringDesc** message, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
861 N_LIB_PRIVATE N_NIMCALL(tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA, getProcConvMismatch__types_3695)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw rel);
862 N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ, compatibleEffects__types_3425)(tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
863 static N_INLINE(NIM_BOOL, contains__types_1647)(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA s, NF value);
864 static N_INLINE(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA, dotdot___types_1617)(NF a, NF b);
865 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, floatRangeCheck__types_1613)(NF x, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
866 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, takeType__types_3642)(tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* arg, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
867 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__ast_4431)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
868 N_LIB_PRIVATE N_NIMCALL(tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ, equalParam__types_1865)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* b);
869 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_1848)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
870 N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_55)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
871 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__astalgo_3496)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
872 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTyRef__types_633)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
873 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_759)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
874 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
875 static N_INLINE(NI, nextTry__stdZpackedsets_41)(NI h, NI maxHash, NI* perturb);
876 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__types_3597)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
877 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTupleRecursive__types_3902)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* cycleDetector);
878 N_LIB_PRIVATE N_NIMCALL(void, assign__types_3929)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* dest, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* src);
879 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookupInRecord__astalgo_84)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* field);
880 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw, analyseObjectWithTypeFieldAux__types_520)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker);
881 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isHiddenPointer__types_651)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
882 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__PpBJsMJcrcWrpLTS6mci1g_2 = {
883 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
884 0x00}
885 ;
886 N_LIB_PRIVATE TNimType NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_;
887 extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
888 N_LIB_PRIVATE TNimType NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_;
889 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__PpBJsMJcrcWrpLTS6mci1g_4 = {
890 0x10, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
891 0x00}
892 ;
893 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__PpBJsMJcrcWrpLTS6mci1g_5 = {
894 0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
895 0x00}
896 ;
897 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
898 N_LIB_PRIVATE TNimType NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_;
899 extern TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
900 N_LIB_PRIVATE TNimType NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_;
901 N_LIB_PRIVATE TNimType NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_;
902 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_11, " literal(", 9);
903 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_12, ")", 1);
904 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_14, "None", 4);
905 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_15, "bool", 4);
906 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_16, "char", 4);
907 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_17, "empty", 5);
908 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_18, "Alias", 5);
909 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_19, "typeof(nil)", 11);
910 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_20, "untyped", 7);
911 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_21, "typed", 5);
912 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_22, "typeDesc", 8);
913 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_23, "GenericInvocation", 17);
914 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_24, "GenericBody", 11);
915 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_25, "GenericInst", 11);
916 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_26, "GenericParam", 12);
917 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_27, "distinct $1", 11);
918 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_28, "enum", 4);
919 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_29, "ordinal[$1]", 11);
920 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_30, "array[$1, $2]", 13);
921 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_31, "object", 6);
922 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_32, "tuple", 5);
923 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_33, "set[$1]", 7);
924 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_34, "range[$1]", 9);
925 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_35, "ptr ", 4);
926 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_36, "ref ", 4);
927 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_37, "var ", 4);
928 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_38, "seq[$1]", 7);
929 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_39, "proc", 4);
930 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_40, "pointer", 7);
931 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_41, "OpenArray[$1]", 13);
932 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_42, "string", 6);
933 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_43, "cstring", 7);
934 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_44, "Forward", 7);
935 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_45, "int", 3);
936 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_46, "int8", 4);
937 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_47, "int16", 5);
938 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_48, "int32", 5);
939 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_49, "int64", 5);
940 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_50, "float", 5);
941 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_51, "float32", 7);
942 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_52, "float64", 7);
943 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_53, "float128", 8);
944 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_54, "uint", 4);
945 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_55, "uint8", 5);
946 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_56, "uint16", 6);
947 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_57, "uint32", 6);
948 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_58, "uint64", 6);
949 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_59, "owned", 5);
950 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_60, "sink", 4);
951 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_61, "lent ", 5);
952 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_62, "varargs[$1]", 11);
953 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_63, "UncheckedArray[$1]", 18);
954 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_64, "Error Type", 10);
955 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_65, "BuiltInTypeClass", 16);
956 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_66, "UserTypeClass", 13);
957 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_67, "UserTypeClassInst", 17);
958 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_68, "CompositeTypeClass", 18);
959 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_69, "inferred", 8);
960 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_70, "and", 3);
961 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_71, "or", 2);
962 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_72, "not", 3);
963 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_73, "any", 3);
964 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_74, "static", 6);
965 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_75, "TypeFromExpr", 12);
966 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_76, "concept", 7);
967 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_77, "void", 4);
968 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_78, "iterable", 8);
969 N_LIB_PRIVATE NIM_CONST tyArray__bbp1aDajeunm5PPjRzxB3A typeToStr__types_874 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_14),
970 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_15),
971 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_16),
972 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_17),
973 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_18),
974 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_19),
975 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_20),
976 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_21),
977 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_22),
978 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_23),
979 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_24),
980 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_25),
981 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_26),
982 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_27),
983 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_28),
984 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_29),
985 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_30),
986 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_31),
987 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_32),
988 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_33),
989 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_34),
990 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_35),
991 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_36),
992 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_37),
993 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_38),
994 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_39),
995 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_40),
996 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_41),
997 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_42),
998 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_43),
999 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_44),
1000 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_45),
1001 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_46),
1002 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_47),
1003 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_48),
1004 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_49),
1005 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_50),
1006 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_51),
1007 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_52),
1008 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_53),
1009 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_54),
1010 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_55),
1011 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_56),
1012 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_57),
1013 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_58),
1014 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_59),
1015 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_60),
1016 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_61),
1017 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_62),
1018 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_63),
1019 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_64),
1020 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_65),
1021 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_66),
1022 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_67),
1023 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_68),
1024 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_69),
1025 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_70),
1026 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_71),
1027 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_72),
1028 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_73),
1029 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_74),
1030 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_75),
1031 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_76),
1032 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_77),
1033 ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_78)}
1034 ;
1035 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_81, "{", 1);
1036 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_82, "}", 1);
1037 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_83, ": ", 2);
1038 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_84, " or ", 4);
1039 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_86, " not nil", 8);
1040 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_87, "int literal(", 12);
1041 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_89, ", ", 2);
1042 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_93, "typedesc", 8);
1043 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_94, "typedesc[", 9);
1044 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_96, "]", 1);
1045 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_97, "static[", 7);
1046 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_99, "(", 1);
1047 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_101, "<invalid tyUserTypeClass>", 25);
1048 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_102, "var", 3);
1049 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_103, "ref", 3);
1050 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_104, "ptr", 3);
1051 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_105, "seq", 3);
1052 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_106, "array", 5);
1053 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_107, "set", 3);
1054 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_108, "range", 5);
1055 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_109, "distinct", 8);
1056 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_110, "openArray", 9);
1057 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_112, "inferred[", 9);
1058 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_114, "[", 1);
1059 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_117, " and ", 5);
1060 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_119, "not ", 4);
1061 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_121, "unknown", 7);
1062 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_122, "typeof(", 7);
1063 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_123, "<invalid value>", 15);
1064 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_124, "..", 2);
1065 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_128, "UncheckedArray", 14);
1066 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_131, "ordinal", 7);
1067 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_135, "distinct ", 9);
1068 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_138, "tuple[", 6);
1069 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_140, "tuple[]", 7);
1070 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_142, ",", 1);
1071 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_145, "range ", 6);
1072 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_147, "iterator ", 9);
1073 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_148, "template ", 9);
1074 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_149, "macro ", 6);
1075 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_150, "converter ", 10);
1076 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_151, "proc ", 5);
1077 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_152, "[*missing parameters*]", 22);
1078 extern TNimType NTItcallingconvention__yjAJ8w0h1PBaSwSGJ3P7IA_;
1079 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_155, "noSideEffect", 12);
1080 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_156, "gcsafe", 6);
1081 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_157, "locks: ", 7);
1082 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_158, "{.", 2);
1083 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_159, ".}", 2);
1084 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_161, "sink ", 5);
1085 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_163, "owned ", 6);
1086 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__PpBJsMJcrcWrpLTS6mci1g_166 = {
1087 0x10, 0x08, 0x10, 0x00, 0x00, 0x40, 0x00, 0x00,
1088 0x00}
1089 ;
1090 extern NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Zero__int495056_7;
1091 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__PpBJsMJcrcWrpLTS6mci1g_167 = {
1092 0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
1093 0x00}
1094 ;
1095 extern NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Max__int495056_27;
1096 extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__lineinfos_280;
1097 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_168, "invalid kind for firstOrd(", 26);
1098 extern TNimType NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_;
1099 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_170, "/home/runner/work/nightlies/nightlies/nim/compiler/types.nim", 60);
1100 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_169 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_170),
1101 ((NI) 776),
1102 ((NI) 23)}
1103 ;
1104 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_171 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_170),
1105 ((NI) 780),
1106 ((NI) 17)}
1107 ;
1108 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_172, "invalid kind for lastOrd(", 25);
1109 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_173 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_170),
1110 ((NI) 835),
1111 ((NI) 23)}
1112 ;
1113 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_174 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_170),
1114 ((NI) 839),
1115 ((NI) 17)}
1116 ;
1117 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_175, "invalid kind for firstFloat(", 28);
1118 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_176 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_170),
1119 ((NI) 795),
1120 ((NI) 17)}
1121 ;
1122 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_177, "invalid kind for lastFloat(", 27);
1123 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_178 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_170),
1124 ((NI) 854),
1125 ((NI) 17)}
1126 ;
1127 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__PpBJsMJcrcWrpLTS6mci1g_179 = {
1128 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00,
1129 0x00}
1130 ;
1131 extern NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA One__int495056_8;
1132 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__PpBJsMJcrcWrpLTS6mci1g_180 = {
1133 0x10, 0xa8, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
1134 0x00}
1135 ;
1136 extern TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
1137 N_LIB_PRIVATE TNimType NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_;
1138 N_LIB_PRIVATE TNimType NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_;
1139 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_183, "illegal type recursion", 22);
1140 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_185, "union type may not have an object header", 40);
1141 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_187, "/home/runner/work/nightlies/nightlies/nim/compiler/sizealignoffsetimpl.nim", 74);
1142 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_186 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_187),
1143 ((NI) 381),
1144 ((NI) 20)}
1145 ;
1146 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_188, "Illegal use of ``case`` in union type.", 38);
1147 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_189 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_187),
1148 ((NI) 174),
1149 ((NI) 14)}
1150 ;
1151 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_190, "computeSubObjectAlign", 21);
1152 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_191 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_187),
1153 ((NI) 93),
1154 ((NI) 21)}
1155 ;
1156 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_192, "computeObjectOffsetsFoldFunction(record case branch)", 52);
1157 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_193 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_187),
1158 ((NI) 135),
1159 ((NI) 23)}
1160 ;
1161 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__PpBJsMJcrcWrpLTS6mci1g_194 = {
1162 0x10, 0xa9, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
1163 0x00}
1164 ;
1165 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_195, " = ", 3);
1166 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_196, "type mismatch:", 14);
1167 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_197, "\012", 1);
1168 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_198, "nimLegacyTypeMismatch", 21);
1169 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_199, " got <$1>", 9);
1170 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_200, " got \'$1\' for \'$2\'", 18);
1171 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_201, " but expected \'$1\'", 18);
1172 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_202, "\012  Calling convention mismatch: got \'{.$1.}\', but expected \'{.$2.}\'.", 68);
1173 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_203, "noSideEffect, ", 14);
1174 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_204, "gcsafe, ", 8);
1175 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_205, "\012  Pragma mismatch: got \'{.$1.}\', but expected \'{.$2.}\'.", 56);
1176 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_206, "\012.raise effects differ", 22);
1177 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_207, "\012.raise effect is \'can raise any\'", 33);
1178 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_208, "\012.tag effects differ", 20);
1179 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_209, "\012.tag effect is \'any tag allowed\'", 33);
1180 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_210, "\012lock levels differ", 19);
1181 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_211, "\012.effectsOf annotations differ", 30);
1182 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_212 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_170),
1183 ((NI) 1622),
1184 ((NI) 14)}
1185 ;
1186 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_213, "invalid kind for floatRangeCheck:", 33);
1187 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__PpBJsMJcrcWrpLTS6mci1g_214 = {((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_170),
1188 ((NI) 871),
1189 ((NI) 17)}
1190 ;
1191 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__PpBJsMJcrcWrpLTS6mci1g_215 = {
1192 0x10, 0xa9, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
1193 0x00}
1194 ;
1195 STRING_LITERAL(TM__PpBJsMJcrcWrpLTS6mci1g_216, "Defect", 6);
1196 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__PpBJsMJcrcWrpLTS6mci1g_217 = {
1197 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
1198 0x00}
1199 ;
1200 extern TNimType NTItrunkseq__Bre9bNyuQOg1EJKitjSzn8w_;
1201 extern TNimType NTItrunk__jMZvnc6V09aC24Isyj9alOEA_;
1202 N_LIB_PRIVATE NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag abstractRange__types_101 = {
1203 0x10, 0xa9, 0x10, 0x00, 0x00, 0x60, 0x80, 0x00,
1204 0x00}
1205 ;
1206 extern tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw eqTypeFlags__ast_479;
1207 extern TSafePoint* excHandler__system_2565;
1208 extern TSafePoint* excHandler__system_2565;
1209 extern TSafePoint* excHandler__system_2565;
1210 extern TSafePoint* excHandler__system_2565;
1211 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
1212 extern Exception* currException__system_2566;
1213 extern Exception* currException__system_2566;
1214 extern Exception* currException__system_2566;
N_INLINE(void,nimSetMem__systemZmemory_7)1215 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
1216 	void* T1_;
1217 	T1_ = (void*)0;
1218 	T1_ = memset(a, v, ((size_t) (size)));
1219 }
N_INLINE(void,nimZeroMem)1220 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
1221 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
1222 }
N_NIMCALL(void,initSameTypeClosure__types_1699)1223 N_LIB_PRIVATE N_NIMCALL(void, initSameTypeClosure__types_1699)(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* Result) {
1224 	(*Result).cmp = 0;
1225 	(*Result).recCheck = 0;
1226 	unsureAsgnRef((void**)&(*Result).s, NIM_NIL);
1227 }
N_INLINE(NI,len__ast_4002)1228 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n) {
1229 	NI result;
1230 	NI T1_;
1231 	result = (NI)0;
1232 	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
1233 	result = T1_;
1234 	return result;
1235 }
N_NIMCALL(NIM_BOOL,isGenericAlias__types_2205)1236 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericAlias__types_2205)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
1237 	NIM_BOOL result;
1238 	NIM_BOOL T1_;
1239 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T3_;
1240 {	result = (NIM_BOOL)0;
1241 	T1_ = (NIM_BOOL)0;
1242 	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
1243 	if (!(T1_)) goto LA2_;
1244 	T3_ = NIM_NIL;
1245 	T3_ = lastSon__ast_3743(t);
1246 	T1_ = ((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
1247 	LA2_: ;
1248 	result = T1_;
1249 	goto BeforeRet_;
1250 	}BeforeRet_: ;
1251 	return result;
1252 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,skipGenericAlias__types_2219)1253 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipGenericAlias__types_2219)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
1254 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
1255 {	result = NIM_NIL;
1256 	{
1257 		NIM_BOOL T3_;
1258 		T3_ = (NIM_BOOL)0;
1259 		T3_ = isGenericAlias__types_2205(t);
1260 		if (!T3_) goto LA4_;
1261 		result = lastSon__ast_3743(t);
1262 	}
1263 	goto LA1_;
1264 	LA4_: ;
1265 	{
1266 		result = t;
1267 	}
1268 	LA1_: ;
1269 	goto BeforeRet_;
1270 	}BeforeRet_: ;
1271 	return result;
1272 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,base__types_63)1273 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, base__types_63)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
1274 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
1275 	result = NIM_NIL;
1276 	result = (*t).sons->data[((NI) 0)];
1277 	return result;
1278 }
N_INLINE(NIM_BOOL,sameFlags__types_2225)1279 static N_INLINE(NIM_BOOL, sameFlags__types_2225)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
1280 	NIM_BOOL result;
1281 	result = (NIM_BOOL)0;
1282 	result = ((eqTypeFlags__ast_479 & (*a).flags) == (eqTypeFlags__ast_479 & (*b).flags));
1283 	return result;
1284 }
N_NIMCALL(NIM_BOOL,eqeq___types_1746)1285 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___types_1746)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y) {
1286 	NIM_BOOL result;
1287 {	result = (NIM_BOOL)0;
1288 	{
1289 		if (!!((x.Field0 == y.Field0))) goto LA3_;
1290 		result = NIM_FALSE;
1291 		goto BeforeRet_;
1292 	}
1293 	LA3_: ;
1294 	{
1295 		if (!!((x.Field1 == y.Field1))) goto LA7_;
1296 		result = NIM_FALSE;
1297 		goto BeforeRet_;
1298 	}
1299 	LA7_: ;
1300 	result = NIM_TRUE;
1301 	goto BeforeRet_;
1302 	}BeforeRet_: ;
1303 	return result;
1304 }
N_INLINE(NI,find__types_1727)1305 static N_INLINE(NI, find__types_1727)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* a, NI aLen_0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ item) {
1306 	NI result;
1307 {	result = (NI)0;
1308 	result = ((NI) 0);
1309 	{
1310 		tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* i;
1311 		NI i_2;
1312 		i = (tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ*)0;
1313 		i_2 = ((NI) 0);
1314 		{
1315 			while (1) {
1316 				if (!(i_2 < aLen_0)) goto LA3;
1317 				i = (&a[i_2]);
1318 				{
1319 					NIM_BOOL T6_;
1320 					T6_ = (NIM_BOOL)0;
1321 					T6_ = eqeq___types_1746((*i), item);
1322 					if (!T6_) goto LA7_;
1323 					goto BeforeRet_;
1324 				}
1325 				LA7_: ;
1326 				result += ((NI) 1);
1327 				i_2 += ((NI) 1);
1328 			} LA3: ;
1329 		}
1330 	}
1331 	result = ((NI) -1);
1332 	}BeforeRet_: ;
1333 	return result;
1334 }
N_INLINE(NIM_BOOL,contains__types_1722)1335 static N_INLINE(NIM_BOOL, contains__types_1722)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* a, NI aLen_0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ item) {
1336 	NIM_BOOL result;
1337 	NI T1_;
1338 {	result = (NIM_BOOL)0;
1339 	T1_ = (NI)0;
1340 	T1_ = find__types_1727(a, aLen_0, item);
1341 	result = (((NI) 0) <= T1_);
1342 	goto BeforeRet_;
1343 	}BeforeRet_: ;
1344 	return result;
1345 }
N_NIMCALL(void,Marker_tySequence__8Np6tlClE5az1CyqZdN19bQ)1346 static N_NIMCALL(void, Marker_tySequence__8Np6tlClE5az1CyqZdN19bQ)(void* p, NI op) {
1347 	tySequence__8Np6tlClE5az1CyqZdN19bQ* a;
1348 	NI T1_;
1349 	a = (tySequence__8Np6tlClE5az1CyqZdN19bQ*)p;
1350 	T1_ = (NI)0;
1351 }
N_NIMCALL(NIM_BOOL,containsOrIncl__types_1701)1352 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__types_1701)(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
1353 	NIM_BOOL result;
1354 	NIM_BOOL T1_;
1355 	NI T2_;
1356 	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T4_;
1357 	tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym260_;
1358 	tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym261_;
1359 	result = (NIM_BOOL)0;
1360 	T1_ = (NIM_BOOL)0;
1361 	T2_ = ((*c).s ? (*c).s->Sup.len : 0);
1362 	T1_ = (((NI) 0) < T2_);
1363 	if (!(T1_)) goto LA3_;
1364 	xX60gensym260_ = a;
1365 	T4_.Field0 = (NI)((NI)((NU64)(((NI) ((*xX60gensym260_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym260_).Sup.itemId.item)));
1366 	xX60gensym261_ = b;
1367 	T4_.Field1 = (NI)((NI)((NU64)(((NI) ((*xX60gensym261_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym261_).Sup.itemId.item)));
1368 	T1_ = contains__types_1722((*c).s->data, ((*c).s ? (*c).s->Sup.len : 0), T4_);
1369 	LA3_: ;
1370 	result = T1_;
1371 	{
1372 		tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T9_;
1373 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym262_;
1374 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym263_;
1375 		NI T10_;
1376 		if (!!(result)) goto LA7_;
1377 		xX60gensym262_ = a;
1378 		T9_.Field0 = (NI)((NI)((NU64)(((NI) ((*xX60gensym262_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym262_).Sup.itemId.item)));
1379 		xX60gensym263_ = b;
1380 		T9_.Field1 = (NI)((NI)((NU64)(((NI) ((*xX60gensym263_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym263_).Sup.itemId.item)));
1381 		unsureAsgnRef((void**) (&(*c).s), (tySequence__8Np6tlClE5az1CyqZdN19bQ*) incrSeqV3((TGenericSeq*)((*c).s), (&NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_)));
1382 		T10_ = (*c).s->Sup.len++;
1383 		(*c).s->data[T10_] = T9_;
1384 	}
1385 	LA7_: ;
1386 	return result;
1387 }
N_NIMCALL(NIM_BOOL,sameTypeOrNilAux__types_1807)1388 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNilAux__types_1807)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c) {
1389 	NIM_BOOL result;
1390 	result = (NIM_BOOL)0;
1391 	{
1392 		if (!(a == b)) goto LA3_;
1393 		result = NIM_TRUE;
1394 	}
1395 	goto LA1_;
1396 	LA3_: ;
1397 	{
1398 		{
1399 			NIM_BOOL T8_;
1400 			T8_ = (NIM_BOOL)0;
1401 			T8_ = (a == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
1402 			if (T8_) goto LA9_;
1403 			T8_ = (b == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
1404 			LA9_: ;
1405 			if (!T8_) goto LA10_;
1406 			result = NIM_FALSE;
1407 		}
1408 		goto LA6_;
1409 		LA10_: ;
1410 		{
1411 			result = sameTypeAux__types_1803(a, b, c);
1412 		}
1413 		LA6_: ;
1414 	}
1415 	LA1_: ;
1416 	return result;
1417 }
N_INLINE(int,nimCmpMem)1418 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
1419 	int result;
1420 	result = (int)0;
1421 	result = memcmp(a, b, ((size_t) (size)));
1422 	return result;
1423 }
N_INLINE(NIM_BOOL,equalMem__system_1735)1424 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
1425 	NIM_BOOL result;
1426 	int T1_;
1427 	result = (NIM_BOOL)0;
1428 	T1_ = (int)0;
1429 	T1_ = nimCmpMem(a, b, size);
1430 	result = (T1_ == ((NI32) 0));
1431 	return result;
1432 }
N_INLINE(NIM_BOOL,eqStrings)1433 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
1434 	NIM_BOOL result;
1435 	NI alen;
1436 	NI blen;
1437 {	result = (NIM_BOOL)0;
1438 	alen = (a ? a->Sup.len : 0);
1439 	blen = (b ? b->Sup.len : 0);
1440 	{
1441 		if (!(alen == blen)) goto LA3_;
1442 		{
1443 			if (!(alen == ((NI) 0))) goto LA7_;
1444 			result = NIM_TRUE;
1445 			goto BeforeRet_;
1446 		}
1447 		LA7_: ;
1448 		result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
1449 		goto BeforeRet_;
1450 	}
1451 	LA3_: ;
1452 	}BeforeRet_: ;
1453 	return result;
1454 }
N_INLINE(NI,len__ast_3198)1455 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1456 	NI result;
1457 	NI T1_;
1458 	result = (NI)0;
1459 	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
1460 	result = T1_;
1461 	return result;
1462 }
N_NIMCALL(NIM_BOOL,sameObjectTree__types_2112)1463 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTree__types_2112)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c) {
1464 	NIM_BOOL result;
1465 {	result = (NIM_BOOL)0;
1466 	{
1467 		if (!(a == b)) goto LA3_;
1468 		result = NIM_TRUE;
1469 	}
1470 	goto LA1_;
1471 	LA3_: ;
1472 	{
1473 		NIM_BOOL T6_;
1474 		NIM_BOOL T7_;
1475 		tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
1476 		tyObject_TType__facALICuu8zUj0hjvbTLFg* y;
1477 		T6_ = (NIM_BOOL)0;
1478 		T7_ = (NIM_BOOL)0;
1479 		T7_ = !((a == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
1480 		if (!(T7_)) goto LA8_;
1481 		T7_ = !((b == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
1482 		LA8_: ;
1483 		T6_ = T7_;
1484 		if (!(T6_)) goto LA9_;
1485 		T6_ = ((*a).kind == (*b).kind);
1486 		LA9_: ;
1487 		if (!T6_) goto LA10_;
1488 		x = (*a).typ;
1489 		y = (*b).typ;
1490 		{
1491 			if (!(((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 0))&7U)))!=0)) goto LA14_;
1492 			{
1493 				if (!!((x == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA18_;
1494 				x = skipTypes__ast_3735(x, TM__PpBJsMJcrcWrpLTS6mci1g_4);
1495 			}
1496 			LA18_: ;
1497 			{
1498 				if (!!((y == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA22_;
1499 				y = skipTypes__ast_3735(y, TM__PpBJsMJcrcWrpLTS6mci1g_4);
1500 			}
1501 			LA22_: ;
1502 		}
1503 		LA14_: ;
1504 		{
1505 			NIM_BOOL T26_;
1506 			T26_ = (NIM_BOOL)0;
1507 			T26_ = sameTypeOrNilAux__types_1807(x, y, c);
1508 			if (!T26_) goto LA27_;
1509 			switch ((*a).kind) {
1510 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
1511 			{
1512 				result = ((*(*(*a)._kind_4.sym).name).id == (*(*(*b)._kind_4.sym).name).id);
1513 			}
1514 			break;
1515 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
1516 			{
1517 				result = ((*(*a)._kind_5.ident).id == (*(*b)._kind_5.ident).id);
1518 			}
1519 			break;
1520 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
1521 			{
1522 				result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal);
1523 			}
1524 			break;
1525 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
1526 			{
1527 				result = ((*a)._kind_2.floatVal == (*b)._kind_2.floatVal);
1528 			}
1529 			break;
1530 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
1531 			{
1532 				result = eqStrings((*a)._kind_3.strVal, (*b)._kind_3.strVal);
1533 			}
1534 			break;
1535 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
1536 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
1537 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
1538 			{
1539 				result = NIM_TRUE;
1540 			}
1541 			break;
1542 			default:
1543 			{
1544 				{
1545 					NI T38_;
1546 					NI T39_;
1547 					T38_ = (NI)0;
1548 					T38_ = len__ast_3198(a);
1549 					T39_ = (NI)0;
1550 					T39_ = len__ast_3198(b);
1551 					if (!(T38_ == T39_)) goto LA40_;
1552 					{
1553 						NI i;
1554 						NI colontmp_;
1555 						NI i_2;
1556 						i = (NI)0;
1557 						colontmp_ = (NI)0;
1558 						colontmp_ = len__ast_3198(a);
1559 						i_2 = ((NI) 0);
1560 						{
1561 							while (1) {
1562 								if (!(i_2 < colontmp_)) goto LA44;
1563 								i = i_2;
1564 								{
1565 									NIM_BOOL T47_;
1566 									T47_ = (NIM_BOOL)0;
1567 									T47_ = sameObjectTree__types_2112((*a)._kind_6.sons->data[i], (*b)._kind_6.sons->data[i], c);
1568 									if (!!(T47_)) goto LA48_;
1569 									goto BeforeRet_;
1570 								}
1571 								LA48_: ;
1572 								i_2 += ((NI) 1);
1573 							} LA44: ;
1574 						}
1575 					}
1576 					result = NIM_TRUE;
1577 				}
1578 				LA40_: ;
1579 			}
1580 			break;
1581 			}
1582 		}
1583 		LA27_: ;
1584 	}
1585 	goto LA1_;
1586 	LA10_: ;
1587 	LA1_: ;
1588 	}BeforeRet_: ;
1589 	return result;
1590 }
N_NIMCALL(NIM_BOOL,sameObjectStructures__types_2163)1591 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectStructures__types_2163)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c) {
1592 	NIM_BOOL result;
1593 {	result = (NIM_BOOL)0;
1594 	{
1595 		NI T3_;
1596 		NI T4_;
1597 		T3_ = (NI)0;
1598 		T3_ = len__ast_4002(a);
1599 		T4_ = (NI)0;
1600 		T4_ = len__ast_4002(b);
1601 		if (!!((T3_ == T4_))) goto LA5_;
1602 		goto BeforeRet_;
1603 	}
1604 	LA5_: ;
1605 	{
1606 		NI i;
1607 		NI colontmp_;
1608 		NI i_2;
1609 		i = (NI)0;
1610 		colontmp_ = (NI)0;
1611 		colontmp_ = len__ast_4002(a);
1612 		i_2 = ((NI) 0);
1613 		{
1614 			while (1) {
1615 				if (!(i_2 < colontmp_)) goto LA9;
1616 				i = i_2;
1617 				{
1618 					NIM_BOOL T12_;
1619 					T12_ = (NIM_BOOL)0;
1620 					T12_ = sameTypeOrNilAux__types_1807((*a).sons->data[i], (*b).sons->data[i], c);
1621 					if (!!(T12_)) goto LA13_;
1622 					goto BeforeRet_;
1623 				}
1624 				LA13_: ;
1625 				i_2 += ((NI) 1);
1626 			} LA9: ;
1627 		}
1628 	}
1629 	{
1630 		NIM_BOOL T17_;
1631 		T17_ = (NIM_BOOL)0;
1632 		T17_ = sameObjectTree__types_2112((*a).n, (*b).n, c);
1633 		if (!!(T17_)) goto LA18_;
1634 		goto BeforeRet_;
1635 	}
1636 	LA18_: ;
1637 	result = NIM_TRUE;
1638 	}BeforeRet_: ;
1639 	return result;
1640 }
N_NIMCALL(NIM_BOOL,sameTuple__types_1965)1641 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTuple__types_1965)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c) {
1642 	NIM_BOOL result;
1643 {	result = (NIM_BOOL)0;
1644 	{
1645 		NI T3_;
1646 		NI T4_;
1647 		T3_ = (NI)0;
1648 		T3_ = len__ast_4002(a);
1649 		T4_ = (NI)0;
1650 		T4_ = len__ast_4002(b);
1651 		if (!(T3_ == T4_)) goto LA5_;
1652 		result = NIM_TRUE;
1653 		{
1654 			NI i;
1655 			NI colontmp_;
1656 			NI i_2;
1657 			i = (NI)0;
1658 			colontmp_ = (NI)0;
1659 			colontmp_ = len__ast_4002(a);
1660 			i_2 = ((NI) 0);
1661 			{
1662 				while (1) {
1663 					tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
1664 					tyObject_TType__facALICuu8zUj0hjvbTLFg* y;
1665 					if (!(i_2 < colontmp_)) goto LA9;
1666 					i = i_2;
1667 					x = (*a).sons->data[i];
1668 					y = (*b).sons->data[i];
1669 					{
1670 						if (!(((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 0))&7U)))!=0)) goto LA12_;
1671 						x = skipTypes__ast_3735(x, TM__PpBJsMJcrcWrpLTS6mci1g_4);
1672 						y = skipTypes__ast_3735(y, TM__PpBJsMJcrcWrpLTS6mci1g_4);
1673 					}
1674 					LA12_: ;
1675 					result = sameTypeAux__types_1803(x, y, c);
1676 					{
1677 						if (!!(result)) goto LA16_;
1678 						goto BeforeRet_;
1679 					}
1680 					LA16_: ;
1681 					i_2 += ((NI) 1);
1682 				} LA9: ;
1683 			}
1684 		}
1685 		{
1686 			NIM_BOOL T20_;
1687 			NIM_BOOL T21_;
1688 			T20_ = (NIM_BOOL)0;
1689 			T21_ = (NIM_BOOL)0;
1690 			T21_ = !(((*a).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
1691 			if (!(T21_)) goto LA22_;
1692 			T21_ = !(((*b).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
1693 			LA22_: ;
1694 			T20_ = T21_;
1695 			if (!(T20_)) goto LA23_;
1696 			T20_ = !((((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 0))&7U)))!=0));
1697 			LA23_: ;
1698 			if (!T20_) goto LA24_;
1699 			{
1700 				NI i_3;
1701 				NI colontmp__2;
1702 				NI i_4;
1703 				i_3 = (NI)0;
1704 				colontmp__2 = (NI)0;
1705 				colontmp__2 = len__ast_3198((*a).n);
1706 				i_4 = ((NI) 0);
1707 				{
1708 					while (1) {
1709 						if (!(i_4 < colontmp__2)) goto LA28;
1710 						i_3 = i_4;
1711 						{
1712 							NIM_BOOL T31_;
1713 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* x_2;
1714 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* y_2;
1715 							T31_ = (NIM_BOOL)0;
1716 							T31_ = ((*(*(*a).n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
1717 							if (!(T31_)) goto LA32_;
1718 							T31_ = ((*(*(*b).n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
1719 							LA32_: ;
1720 							if (!T31_) goto LA33_;
1721 							x_2 = (*(*(*a).n)._kind_6.sons->data[i_3])._kind_4.sym;
1722 							y_2 = (*(*(*b).n)._kind_6.sons->data[i_3])._kind_4.sym;
1723 							result = ((*(*x_2).name).id == (*(*y_2).name).id);
1724 							{
1725 								if (!!(result)) goto LA37_;
1726 								goto LA26;
1727 							}
1728 							LA37_: ;
1729 						}
1730 						goto LA29_;
1731 						LA33_: ;
1732 						{
1733 							result = NIM_FALSE;
1734 							goto BeforeRet_;
1735 						}
1736 						LA29_: ;
1737 						i_4 += ((NI) 1);
1738 					} LA28: ;
1739 				}
1740 			} LA26: ;
1741 		}
1742 		goto LA18_;
1743 		LA24_: ;
1744 		{
1745 			NIM_BOOL T41_;
1746 			NIM_BOOL T42_;
1747 			NIM_BOOL T44_;
1748 			T41_ = (NIM_BOOL)0;
1749 			T42_ = (NIM_BOOL)0;
1750 			T42_ = !(((*a).n == (*b).n));
1751 			if (!(T42_)) goto LA43_;
1752 			T44_ = (NIM_BOOL)0;
1753 			T44_ = ((*a).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
1754 			if (T44_) goto LA45_;
1755 			T44_ = ((*b).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
1756 			LA45_: ;
1757 			T42_ = T44_;
1758 			LA43_: ;
1759 			T41_ = T42_;
1760 			if (!(T41_)) goto LA46_;
1761 			T41_ = !((((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 0))&7U)))!=0));
1762 			LA46_: ;
1763 			if (!T41_) goto LA47_;
1764 			result = NIM_FALSE;
1765 		}
1766 		goto LA18_;
1767 		LA47_: ;
1768 		LA18_: ;
1769 	}
1770 	LA5_: ;
1771 	}BeforeRet_: ;
1772 	return result;
1773 }
N_NIMCALL(NIM_BOOL,sameChildrenAux__types_2184)1774 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameChildrenAux__types_2184)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c) {
1775 	NIM_BOOL result;
1776 {	result = (NIM_BOOL)0;
1777 	{
1778 		NI T3_;
1779 		NI T4_;
1780 		T3_ = (NI)0;
1781 		T3_ = len__ast_4002(a);
1782 		T4_ = (NI)0;
1783 		T4_ = len__ast_4002(b);
1784 		if (!!((T3_ == T4_))) goto LA5_;
1785 		result = NIM_FALSE;
1786 		goto BeforeRet_;
1787 	}
1788 	LA5_: ;
1789 	result = NIM_TRUE;
1790 	{
1791 		NI i;
1792 		NI colontmp_;
1793 		NI i_2;
1794 		i = (NI)0;
1795 		colontmp_ = (NI)0;
1796 		colontmp_ = len__ast_4002(a);
1797 		i_2 = ((NI) 0);
1798 		{
1799 			while (1) {
1800 				if (!(i_2 < colontmp_)) goto LA9;
1801 				i = i_2;
1802 				result = sameTypeOrNilAux__types_1807((*a).sons->data[i], (*b).sons->data[i], c);
1803 				{
1804 					if (!!(result)) goto LA12_;
1805 					goto BeforeRet_;
1806 				}
1807 				LA12_: ;
1808 				i_2 += ((NI) 1);
1809 			} LA9: ;
1810 		}
1811 	}
1812 	}BeforeRet_: ;
1813 	return result;
1814 }
N_NIMCALL(NIM_BOOL,sameConstraints__types_1898)1815 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstraints__types_1898)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
1816 	NIM_BOOL result;
1817 {	result = (NIM_BOOL)0;
1818 	{
1819 		NIM_BOOL T3_;
1820 		T3_ = (NIM_BOOL)0;
1821 		T3_ = (a == 0);
1822 		if (!(T3_)) goto LA4_;
1823 		T3_ = (b == 0);
1824 		LA4_: ;
1825 		if (!T3_) goto LA5_;
1826 		result = NIM_TRUE;
1827 		goto BeforeRet_;
1828 	}
1829 	LA5_: ;
1830 	{
1831 		NI T9_;
1832 		NI T10_;
1833 		T9_ = (NI)0;
1834 		T9_ = len__ast_3198(a);
1835 		T10_ = (NI)0;
1836 		T10_ = len__ast_3198(b);
1837 		if (!!((T9_ == T10_))) goto LA11_;
1838 		result = NIM_FALSE;
1839 		goto BeforeRet_;
1840 	}
1841 	LA11_: ;
1842 	{
1843 		NI i;
1844 		NI colontmp_;
1845 		NI i_2;
1846 		i = (NI)0;
1847 		colontmp_ = (NI)0;
1848 		colontmp_ = len__ast_3198(a);
1849 		i_2 = ((NI) 1);
1850 		{
1851 			while (1) {
1852 				if (!(i_2 < colontmp_)) goto LA15;
1853 				i = i_2;
1854 				{
1855 					NIM_BOOL T18_;
1856 					T18_ = (NIM_BOOL)0;
1857 					T18_ = exprStructuralEquivalent__trees_56((*(*(*a)._kind_6.sons->data[i])._kind_4.sym).constraint, (*(*(*b)._kind_6.sons->data[i])._kind_4.sym).constraint, NIM_FALSE);
1858 					if (!!(T18_)) goto LA19_;
1859 					result = NIM_FALSE;
1860 					goto BeforeRet_;
1861 				}
1862 				LA19_: ;
1863 				i_2 += ((NI) 1);
1864 			} LA15: ;
1865 		}
1866 	}
1867 	result = NIM_TRUE;
1868 	goto BeforeRet_;
1869 	}BeforeRet_: ;
1870 	return result;
1871 }
N_NIMCALL(NIM_BOOL,sameTypeAux__types_1803)1872 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeAux__types_1803)(tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TType__facALICuu8zUj0hjvbTLFg* y, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c) {
1873 	NIM_BOOL result;
1874 	tyObject_TType__facALICuu8zUj0hjvbTLFg* a;
1875 	tyObject_TType__facALICuu8zUj0hjvbTLFg* b;
1876 {	result = (NIM_BOOL)0;
1877 	{
1878 		if (!(x == y)) goto LA3_;
1879 		result = NIM_TRUE;
1880 		goto BeforeRet_;
1881 	}
1882 	LA3_: ;
1883 	a = skipTypes__ast_3735(x, TM__PpBJsMJcrcWrpLTS6mci1g_2);
1884 	{
1885 		while (1) {
1886 			NIM_BOOL T7_;
1887 			NI T9_;
1888 			T7_ = (NIM_BOOL)0;
1889 			T7_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52));
1890 			if (!(T7_)) goto LA8_;
1891 			T7_ = (((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
1892 			LA8_: ;
1893 			if (!T7_) goto LA6;
1894 			T9_ = (NI)0;
1895 			T9_ = len__ast_4002(a);
1896 			a = skipTypes__ast_3735((*a).sons->data[(NI)(T9_ - ((NI) 1))], TM__PpBJsMJcrcWrpLTS6mci1g_2);
1897 		} LA6: ;
1898 	}
1899 	b = skipTypes__ast_3735(y, TM__PpBJsMJcrcWrpLTS6mci1g_2);
1900 	{
1901 		while (1) {
1902 			NIM_BOOL T12_;
1903 			NI T14_;
1904 			T12_ = (NIM_BOOL)0;
1905 			T12_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52));
1906 			if (!(T12_)) goto LA13_;
1907 			T12_ = (((*b).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
1908 			LA13_: ;
1909 			if (!T12_) goto LA11;
1910 			T14_ = (NI)0;
1911 			T14_ = len__ast_4002(b);
1912 			b = skipTypes__ast_3735((*b).sons->data[(NI)(T14_ - ((NI) 1))], TM__PpBJsMJcrcWrpLTS6mci1g_2);
1913 		} LA11: ;
1914 	}
1915 	{
1916 		if (!!(((*a).kind == (*b).kind))) goto LA17_;
1917 		switch ((*c).cmp) {
1918 		case ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 0):
1919 		{
1920 			result = NIM_FALSE;
1921 			goto BeforeRet_;
1922 		}
1923 		break;
1924 		case ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 1):
1925 		{
1926 			{
1927 				while (1) {
1928 					if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA22;
1929 					a = (*a).sons->data[((NI) 0)];
1930 				} LA22: ;
1931 			}
1932 			{
1933 				while (1) {
1934 					if (!((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA24;
1935 					b = (*b).sons->data[((NI) 0)];
1936 				} LA24: ;
1937 			}
1938 			{
1939 				if (!!(((*a).kind == (*b).kind))) goto LA27_;
1940 				result = NIM_FALSE;
1941 				goto BeforeRet_;
1942 			}
1943 			LA27_: ;
1944 		}
1945 		break;
1946 		case ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 2):
1947 		{
1948 			{
1949 				while (1) {
1950 					if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA31;
1951 					a = (*a).sons->data[((NI) 0)];
1952 				} LA31: ;
1953 			}
1954 			{
1955 				if (!!(((*a).kind == (*b).kind))) goto LA34_;
1956 				result = NIM_FALSE;
1957 				goto BeforeRet_;
1958 			}
1959 			LA34_: ;
1960 		}
1961 		break;
1962 		}
1963 	}
1964 	LA17_: ;
1965 	{
1966 		NIM_BOOL T38_;
1967 		tyObject_TType__facALICuu8zUj0hjvbTLFg* lhs;
1968 		tyObject_TType__facALICuu8zUj0hjvbTLFg* rhs;
1969 		T38_ = (NIM_BOOL)0;
1970 		T38_ = ((*x).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
1971 		if (!(T38_)) goto LA39_;
1972 		T38_ = !((((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 0))&7U)))!=0));
1973 		LA39_: ;
1974 		if (!T38_) goto LA40_;
1975 		lhs = skipGenericAlias__types_2219(x);
1976 		rhs = skipGenericAlias__types_2219(y);
1977 		{
1978 			NIM_BOOL T44_;
1979 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T46_;
1980 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T47_;
1981 			T44_ = (NIM_BOOL)0;
1982 			T44_ = !(((*rhs).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11)));
1983 			if (T44_) goto LA45_;
1984 			T46_ = NIM_NIL;
1985 			T46_ = base__types_63(lhs);
1986 			T47_ = NIM_NIL;
1987 			T47_ = base__types_63(rhs);
1988 			T44_ = !((T46_ == T47_));
1989 			LA45_: ;
1990 			if (!T44_) goto LA48_;
1991 			result = NIM_FALSE;
1992 			goto BeforeRet_;
1993 		}
1994 		LA48_: ;
1995 		{
1996 			NI i;
1997 			NI colontmp_;
1998 			NI T51_;
1999 			NI i_2;
2000 			i = (NI)0;
2001 			colontmp_ = (NI)0;
2002 			T51_ = (NI)0;
2003 			T51_ = len__ast_4002(lhs);
2004 			colontmp_ = (NI)(T51_ - ((NI) 1));
2005 			i_2 = ((NI) 1);
2006 			{
2007 				while (1) {
2008 					tyObject_TType__facALICuu8zUj0hjvbTLFg* ff;
2009 					tyObject_TType__facALICuu8zUj0hjvbTLFg* aa;
2010 					if (!(i_2 < colontmp_)) goto LA53;
2011 					i = i_2;
2012 					ff = (*rhs).sons->data[i];
2013 					aa = (*lhs).sons->data[i];
2014 					{
2015 						NIM_BOOL T56_;
2016 						T56_ = (NIM_BOOL)0;
2017 						T56_ = sameTypeAux__types_1803(ff, aa, c);
2018 						if (!!(T56_)) goto LA57_;
2019 						result = NIM_FALSE;
2020 						goto BeforeRet_;
2021 					}
2022 					LA57_: ;
2023 					i_2 += ((NI) 1);
2024 				} LA53: ;
2025 			}
2026 		}
2027 		result = NIM_TRUE;
2028 		goto BeforeRet_;
2029 	}
2030 	LA40_: ;
2031 	switch ((*a).kind) {
2032 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3):
2033 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
2034 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
2035 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
2036 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
2037 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
2038 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
2039 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
2040 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
2041 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
2042 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63):
2043 	{
2044 		result = sameFlags__types_2225(a, b);
2045 		{
2046 			NIM_BOOL T62_;
2047 			tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw symFlagsA;
2048 			tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw symFlagsB;
2049 			T62_ = (NIM_BOOL)0;
2050 			T62_ = result;
2051 			if (!(T62_)) goto LA63_;
2052 			T62_ = (((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 7))&7U)))!=0);
2053 			LA63_: ;
2054 			if (!T62_) goto LA64_;
2055 			{
2056 				if (!!(((*a).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA68_;
2057 				symFlagsA = (*(*a).sym).flags;
2058 			}
2059 			goto LA66_;
2060 			LA68_: ;
2061 			{
2062 				symFlagsA = 0;
2063 			}
2064 			LA66_: ;
2065 			{
2066 				if (!!(((*b).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA73_;
2067 				symFlagsB = (*(*b).sym).flags;
2068 			}
2069 			goto LA71_;
2070 			LA73_: ;
2071 			{
2072 				symFlagsB = 0;
2073 			}
2074 			LA71_: ;
2075 			{
2076 				if (!!((((symFlagsA | symFlagsB) & 192) == 0))) goto LA78_;
2077 				result = (symFlagsA == symFlagsB);
2078 			}
2079 			LA78_: ;
2080 		}
2081 		LA64_: ;
2082 	}
2083 	break;
2084 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
2085 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
2086 	{
2087 		NIM_BOOL T81_;
2088 		T81_ = (NIM_BOOL)0;
2089 		T81_ = exprStructuralEquivalent__trees_56((*a).n, (*b).n, NIM_FALSE);
2090 		if (!(T81_)) goto LA82_;
2091 		T81_ = sameFlags__types_2225(a, b);
2092 		LA82_: ;
2093 		result = T81_;
2094 		{
2095 			NIM_BOOL T85_;
2096 			NIM_BOOL T86_;
2097 			NI T88_;
2098 			NI T89_;
2099 			NI T91_;
2100 			T85_ = (NIM_BOOL)0;
2101 			T86_ = (NIM_BOOL)0;
2102 			T86_ = result;
2103 			if (!(T86_)) goto LA87_;
2104 			T88_ = (NI)0;
2105 			T88_ = len__ast_4002(a);
2106 			T89_ = (NI)0;
2107 			T89_ = len__ast_4002(b);
2108 			T86_ = (T88_ == T89_);
2109 			LA87_: ;
2110 			T85_ = T86_;
2111 			if (!(T85_)) goto LA90_;
2112 			T91_ = (NI)0;
2113 			T91_ = len__ast_4002(a);
2114 			T85_ = (T91_ == ((NI) 1));
2115 			LA90_: ;
2116 			if (!T85_) goto LA92_;
2117 			{
2118 				if (!((*c).recCheck < ((NI) 3))) goto LA96_;
2119 				(*c).recCheck += ((NI) 1);
2120 			}
2121 			goto LA94_;
2122 			LA96_: ;
2123 			{
2124 				{
2125 					NIM_BOOL T101_;
2126 					T101_ = (NIM_BOOL)0;
2127 					T101_ = containsOrIncl__types_1701(c, a, b);
2128 					if (!T101_) goto LA102_;
2129 					result = NIM_TRUE;
2130 					goto BeforeRet_;
2131 				}
2132 				LA102_: ;
2133 			}
2134 			LA94_: ;
2135 			result = sameTypeAux__types_1803((*a).sons->data[((NI) 0)], (*b).sons->data[((NI) 0)], c);
2136 		}
2137 		LA92_: ;
2138 	}
2139 	break;
2140 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
2141 	{
2142 		{
2143 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym345_;
2144 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym346_;
2145 			if (!!(((((*a).flags | (*b).flags) &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 8))&63U)))!=0))) goto LA107_;
2146 			xX60gensym345_ = a;
2147 			xX60gensym346_ = b;
2148 			result = ((NI)((NI)((NU64)(((NI) ((*xX60gensym345_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym345_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym346_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym346_).Sup.itemId.item))));
2149 		}
2150 		goto LA105_;
2151 		LA107_: ;
2152 		{
2153 			{
2154 				NIM_BOOL T112_;
2155 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym348_;
2156 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym349_;
2157 				NIM_BOOL T126_;
2158 				T112_ = (NIM_BOOL)0;
2159 				T112_ = ((((*a).flags & (*b).flags) &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 8))&63U)))!=0);
2160 				if (!(T112_)) goto LA113_;
2161 				xX60gensym348_ = (*a).sym;
2162 				xX60gensym349_ = (*b).sym;
2163 				T112_ = ((NI)((NI)((NU64)(((NI) ((*xX60gensym348_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym348_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym349_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym349_).Sup.itemId.item))));
2164 				LA113_: ;
2165 				if (!T112_) goto LA114_;
2166 				{
2167 					if (!((*c).recCheck < ((NI) 3))) goto LA118_;
2168 					(*c).recCheck += ((NI) 1);
2169 				}
2170 				goto LA116_;
2171 				LA118_: ;
2172 				{
2173 					{
2174 						NIM_BOOL T123_;
2175 						T123_ = (NIM_BOOL)0;
2176 						T123_ = containsOrIncl__types_1701(c, a, b);
2177 						if (!T123_) goto LA124_;
2178 						result = NIM_TRUE;
2179 						goto BeforeRet_;
2180 					}
2181 					LA124_: ;
2182 				}
2183 				LA116_: ;
2184 				T126_ = (NIM_BOOL)0;
2185 				T126_ = sameObjectStructures__types_2163(a, b, c);
2186 				if (!(T126_)) goto LA127_;
2187 				T126_ = sameFlags__types_2225(a, b);
2188 				LA127_: ;
2189 				result = T126_;
2190 			}
2191 			LA114_: ;
2192 		}
2193 		LA105_: ;
2194 	}
2195 	break;
2196 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
2197 	{
2198 		{
2199 			if (!((*c).recCheck < ((NI) 3))) goto LA131_;
2200 			(*c).recCheck += ((NI) 1);
2201 		}
2202 		goto LA129_;
2203 		LA131_: ;
2204 		{
2205 			{
2206 				NIM_BOOL T136_;
2207 				T136_ = (NIM_BOOL)0;
2208 				T136_ = containsOrIncl__types_1701(c, a, b);
2209 				if (!T136_) goto LA137_;
2210 				result = NIM_TRUE;
2211 				goto BeforeRet_;
2212 			}
2213 			LA137_: ;
2214 		}
2215 		LA129_: ;
2216 		{
2217 			if (!((*c).cmp == ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 0))) goto LA141_;
2218 			{
2219 				NIM_BOOL T145_;
2220 				T145_ = (NIM_BOOL)0;
2221 				T145_ = sameFlags__types_2225(a, b);
2222 				if (!T145_) goto LA146_;
2223 				{
2224 					tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym354_;
2225 					tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym355_;
2226 					if (!!(((((*a).flags | (*b).flags) &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 8))&63U)))!=0))) goto LA150_;
2227 					xX60gensym354_ = a;
2228 					xX60gensym355_ = b;
2229 					result = ((NI)((NI)((NU64)(((NI) ((*xX60gensym354_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym354_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym355_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym355_).Sup.itemId.item))));
2230 				}
2231 				goto LA148_;
2232 				LA150_: ;
2233 				{
2234 					{
2235 						NIM_BOOL T155_;
2236 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym357_;
2237 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym358_;
2238 						T155_ = (NIM_BOOL)0;
2239 						T155_ = ((((*a).flags & (*b).flags) &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 8))&63U)))!=0);
2240 						if (!(T155_)) goto LA156_;
2241 						xX60gensym357_ = (*a).sym;
2242 						xX60gensym358_ = (*b).sym;
2243 						T155_ = ((NI)((NI)((NU64)(((NI) ((*xX60gensym357_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym357_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym358_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym358_).Sup.itemId.item))));
2244 						LA156_: ;
2245 						if (!T155_) goto LA157_;
2246 						result = sameTypeAux__types_1803((*a).sons->data[((NI) 0)], (*b).sons->data[((NI) 0)], c);
2247 					}
2248 					LA157_: ;
2249 				}
2250 				LA148_: ;
2251 			}
2252 			LA146_: ;
2253 		}
2254 		goto LA139_;
2255 		LA141_: ;
2256 		{
2257 			NIM_BOOL T160_;
2258 			T160_ = (NIM_BOOL)0;
2259 			T160_ = sameTypeAux__types_1803((*a).sons->data[((NI) 0)], (*b).sons->data[((NI) 0)], c);
2260 			if (!(T160_)) goto LA161_;
2261 			T160_ = sameFlags__types_2225(a, b);
2262 			LA161_: ;
2263 			result = T160_;
2264 		}
2265 		LA139_: ;
2266 	}
2267 	break;
2268 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
2269 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
2270 	{
2271 		NIM_BOOL T163_;
2272 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym363_;
2273 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym364_;
2274 		T163_ = (NIM_BOOL)0;
2275 		xX60gensym363_ = a;
2276 		xX60gensym364_ = b;
2277 		T163_ = ((NI)((NI)((NU64)(((NI) ((*xX60gensym363_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym363_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym364_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym364_).Sup.itemId.item))));
2278 		if (!(T163_)) goto LA164_;
2279 		T163_ = sameFlags__types_2225(a, b);
2280 		LA164_: ;
2281 		result = T163_;
2282 	}
2283 	break;
2284 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
2285 	{
2286 		result = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50));
2287 	}
2288 	break;
2289 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
2290 	{
2291 		NIM_BOOL T177_;
2292 		{
2293 			if (!((*c).recCheck < ((NI) 3))) goto LA169_;
2294 			(*c).recCheck += ((NI) 1);
2295 		}
2296 		goto LA167_;
2297 		LA169_: ;
2298 		{
2299 			{
2300 				NIM_BOOL T174_;
2301 				T174_ = (NIM_BOOL)0;
2302 				T174_ = containsOrIncl__types_1701(c, a, b);
2303 				if (!T174_) goto LA175_;
2304 				result = NIM_TRUE;
2305 				goto BeforeRet_;
2306 			}
2307 			LA175_: ;
2308 		}
2309 		LA167_: ;
2310 		T177_ = (NIM_BOOL)0;
2311 		T177_ = sameTuple__types_1965(a, b, c);
2312 		if (!(T177_)) goto LA178_;
2313 		T177_ = sameFlags__types_2225(a, b);
2314 		LA178_: ;
2315 		result = T177_;
2316 	}
2317 	break;
2318 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
2319 	{
2320 		{
2321 			if (!((*c).cmp == ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 1))) goto LA182_;
2322 			result = NIM_FALSE;
2323 		}
2324 		goto LA180_;
2325 		LA182_: ;
2326 		{
2327 			NIM_BOOL T197_;
2328 			if (!(((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 2))&7U)))!=0)) goto LA185_;
2329 			{
2330 				if (!((*c).recCheck < ((NI) 3))) goto LA189_;
2331 				(*c).recCheck += ((NI) 1);
2332 			}
2333 			goto LA187_;
2334 			LA189_: ;
2335 			{
2336 				{
2337 					NIM_BOOL T194_;
2338 					T194_ = (NIM_BOOL)0;
2339 					T194_ = containsOrIncl__types_1701(c, a, b);
2340 					if (!T194_) goto LA195_;
2341 					result = NIM_TRUE;
2342 					goto BeforeRet_;
2343 				}
2344 				LA195_: ;
2345 			}
2346 			LA187_: ;
2347 			T197_ = (NIM_BOOL)0;
2348 			T197_ = sameChildrenAux__types_2184(x, y, c);
2349 			if (!(T197_)) goto LA198_;
2350 			T197_ = sameFlags__types_2225(a, b);
2351 			LA198_: ;
2352 			result = T197_;
2353 		}
2354 		goto LA180_;
2355 		LA185_: ;
2356 		{
2357 			result = sameFlags__types_2225(a, b);
2358 		}
2359 		LA180_: ;
2360 	}
2361 	break;
2362 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
2363 	{
2364 		NIM_BOOL T201_;
2365 		T201_ = (NIM_BOOL)0;
2366 		T201_ = sameChildrenAux__types_2184(a, b, c);
2367 		if (!(T201_)) goto LA202_;
2368 		T201_ = sameFlags__types_2225(a, b);
2369 		LA202_: ;
2370 		result = T201_;
2371 		{
2372 			NIM_BOOL T205_;
2373 			T205_ = (NIM_BOOL)0;
2374 			T205_ = result;
2375 			if (!(T205_)) goto LA206_;
2376 			T205_ = !(((12 & (*c).flags) == 0));
2377 			LA206_: ;
2378 			if (!T205_) goto LA207_;
2379 			result = ((*(*a).sym).position == (*(*b).sym).position);
2380 		}
2381 		LA207_: ;
2382 	}
2383 	break;
2384 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51):
2385 	{
2386 		result = ((*(*a).sons->data[((NI) 0)]).kind == (*(*b).sons->data[((NI) 0)]).kind);
2387 	}
2388 	break;
2389 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
2390 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
2391 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
2392 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
2393 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
2394 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
2395 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
2396 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
2397 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
2398 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
2399 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
2400 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
2401 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
2402 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
2403 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
2404 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
2405 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52):
2406 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
2407 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
2408 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
2409 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
2410 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
2411 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
2412 	{
2413 		{
2414 			if (!((*c).recCheck < ((NI) 3))) goto LA213_;
2415 			(*c).recCheck += ((NI) 1);
2416 		}
2417 		goto LA211_;
2418 		LA213_: ;
2419 		{
2420 			{
2421 				NIM_BOOL T218_;
2422 				T218_ = (NIM_BOOL)0;
2423 				T218_ = containsOrIncl__types_1701(c, a, b);
2424 				if (!T218_) goto LA219_;
2425 				result = NIM_TRUE;
2426 				goto BeforeRet_;
2427 			}
2428 			LA219_: ;
2429 		}
2430 		LA211_: ;
2431 		{
2432 			NIM_BOOL T223_;
2433 			T223_ = (NIM_BOOL)0;
2434 			T223_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52));
2435 			if (!(T223_)) goto LA224_;
2436 			T223_ = !(((*a).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
2437 			LA224_: ;
2438 			if (!T223_) goto LA225_;
2439 			result = ((*a).n == (*b).n);
2440 			goto BeforeRet_;
2441 		}
2442 		LA225_: ;
2443 		result = sameChildrenAux__types_2184(a, b, c);
2444 		{
2445 			if (!result) goto LA229_;
2446 			{
2447 				if (!(((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 0))&7U)))!=0)) goto LA233_;
2448 				result = (((*a).flags & 1048576) == ((*b).flags & 1048576));
2449 			}
2450 			goto LA231_;
2451 			LA233_: ;
2452 			{
2453 				result = sameFlags__types_2225(a, b);
2454 			}
2455 			LA231_: ;
2456 		}
2457 		LA229_: ;
2458 		{
2459 			NIM_BOOL T238_;
2460 			T238_ = (NIM_BOOL)0;
2461 			T238_ = result;
2462 			if (!(T238_)) goto LA239_;
2463 			T238_ = (((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 5))&7U)))!=0);
2464 			LA239_: ;
2465 			if (!T238_) goto LA240_;
2466 			result = (((*a).flags & 128) == ((*b).flags & 128));
2467 		}
2468 		LA240_: ;
2469 		{
2470 			NIM_BOOL T244_;
2471 			NIM_BOOL T248_;
2472 			NIM_BOOL T249_;
2473 			NIM_BOOL T252_;
2474 			T244_ = (NIM_BOOL)0;
2475 			T244_ = result;
2476 			if (!(T244_)) goto LA245_;
2477 			T244_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
2478 			LA245_: ;
2479 			if (!T244_) goto LA246_;
2480 			T248_ = (NIM_BOOL)0;
2481 			T249_ = (NIM_BOOL)0;
2482 			T249_ = (((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 1))&7U)))!=0);
2483 			if (T249_) goto LA250_;
2484 			T249_ = ((*a).callConv == (*b).callConv);
2485 			LA250_: ;
2486 			T248_ = T249_;
2487 			if (!(T248_)) goto LA251_;
2488 			T252_ = (NIM_BOOL)0;
2489 			T252_ = !((((*c).flags &((NU8)1<<((NU)(((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 4))&7U)))!=0));
2490 			if (T252_) goto LA253_;
2491 			T252_ = sameConstraints__types_1898((*a).n, (*b).n);
2492 			LA253_: ;
2493 			T248_ = T252_;
2494 			LA251_: ;
2495 			result = T248_;
2496 		}
2497 		LA246_: ;
2498 	}
2499 	break;
2500 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
2501 	{
2502 		NIM_BOOL T265_;
2503 		NIM_BOOL T266_;
2504 		{
2505 			if (!((*c).recCheck < ((NI) 3))) goto LA257_;
2506 			(*c).recCheck += ((NI) 1);
2507 		}
2508 		goto LA255_;
2509 		LA257_: ;
2510 		{
2511 			{
2512 				NIM_BOOL T262_;
2513 				T262_ = (NIM_BOOL)0;
2514 				T262_ = containsOrIncl__types_1701(c, a, b);
2515 				if (!T262_) goto LA263_;
2516 				result = NIM_TRUE;
2517 				goto BeforeRet_;
2518 			}
2519 			LA263_: ;
2520 		}
2521 		LA255_: ;
2522 		T265_ = (NIM_BOOL)0;
2523 		T266_ = (NIM_BOOL)0;
2524 		T266_ = sameTypeOrNilAux__types_1807((*a).sons->data[((NI) 0)], (*b).sons->data[((NI) 0)], c);
2525 		if (!(T266_)) goto LA267_;
2526 		T266_ = sameValue__astalgo_119((*(*a).n)._kind_6.sons->data[((NI) 0)], (*(*b).n)._kind_6.sons->data[((NI) 0)]);
2527 		LA267_: ;
2528 		T265_ = T266_;
2529 		if (!(T265_)) goto LA268_;
2530 		T265_ = sameValue__astalgo_119((*(*a).n)._kind_6.sons->data[((NI) 1)], (*(*b).n)._kind_6.sons->data[((NI) 1)]);
2531 		LA268_: ;
2532 		result = T265_;
2533 	}
2534 	break;
2535 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
2536 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
2537 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
2538 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64):
2539 	{
2540 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T280_;
2541 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T281_;
2542 		{
2543 			if (!((*c).recCheck < ((NI) 3))) goto LA272_;
2544 			(*c).recCheck += ((NI) 1);
2545 		}
2546 		goto LA270_;
2547 		LA272_: ;
2548 		{
2549 			{
2550 				NIM_BOOL T277_;
2551 				T277_ = (NIM_BOOL)0;
2552 				T277_ = containsOrIncl__types_1701(c, a, b);
2553 				if (!T277_) goto LA278_;
2554 				result = NIM_TRUE;
2555 				goto BeforeRet_;
2556 			}
2557 			LA278_: ;
2558 		}
2559 		LA270_: ;
2560 		T280_ = NIM_NIL;
2561 		T280_ = lastSon__ast_3743(a);
2562 		T281_ = NIM_NIL;
2563 		T281_ = lastSon__ast_3743(b);
2564 		result = sameTypeAux__types_1803(T280_, T281_, c);
2565 	}
2566 	break;
2567 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0):
2568 	{
2569 		result = NIM_FALSE;
2570 	}
2571 	break;
2572 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62):
2573 	{
2574 		result = exprStructuralEquivalent__trees_56((*a).n, (*b).n, NIM_FALSE);
2575 	}
2576 	break;
2577 	}
2578 	}BeforeRet_: ;
2579 	return result;
2580 }
N_NIMCALL(NIM_BOOL,sameType__types_1824)2581 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_1824)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags) {
2582 	NIM_BOOL result;
2583 	tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg c;
2584 	result = (NIM_BOOL)0;
2585 	nimZeroMem((void*)(&c), sizeof(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg));
2586 	initSameTypeClosure__types_1699((&c));
2587 	c.flags = flags;
2588 	result = sameTypeAux__types_1803(a, b, (&c));
2589 	return result;
2590 }
N_NIMCALL(NIM_BOOL,sameObjectTypes__types_2047)2591 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTypes__types_2047)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
2592 	NIM_BOOL result;
2593 	result = (NIM_BOOL)0;
2594 	{
2595 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym291_;
2596 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym292_;
2597 		if (!!(((((*a).flags | (*b).flags) &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 8))&63U)))!=0))) goto LA3_;
2598 		xX60gensym291_ = a;
2599 		xX60gensym292_ = b;
2600 		result = ((NI)((NI)((NU64)(((NI) ((*xX60gensym291_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym291_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym292_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym292_).Sup.itemId.item))));
2601 	}
2602 	goto LA1_;
2603 	LA3_: ;
2604 	{
2605 		{
2606 			NIM_BOOL T8_;
2607 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym294_;
2608 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym295_;
2609 			tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg c;
2610 			T8_ = (NIM_BOOL)0;
2611 			T8_ = ((((*a).flags & (*b).flags) &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 8))&63U)))!=0);
2612 			if (!(T8_)) goto LA9_;
2613 			xX60gensym294_ = (*a).sym;
2614 			xX60gensym295_ = (*b).sym;
2615 			T8_ = ((NI)((NI)((NU64)(((NI) ((*xX60gensym294_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym294_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym295_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym295_).Sup.itemId.item))));
2616 			LA9_: ;
2617 			if (!T8_) goto LA10_;
2618 			nimZeroMem((void*)(&c), sizeof(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg));
2619 			initSameTypeClosure__types_1699((&c));
2620 			result = sameTypeAux__types_1803(a, b, (&c));
2621 		}
2622 		LA10_: ;
2623 	}
2624 	LA1_: ;
2625 	return result;
2626 }
N_NIMCALL(NI,inheritanceDiff__types_2685)2627 N_LIB_PRIVATE N_NIMCALL(NI, inheritanceDiff__types_2685)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
2628 	NI result;
2629 	tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
2630 	tyObject_TType__facALICuu8zUj0hjvbTLFg* y;
2631 {	result = (NI)0;
2632 	{
2633 		NIM_BOOL T3_;
2634 		NIM_BOOL T4_;
2635 		T3_ = (NIM_BOOL)0;
2636 		T4_ = (NIM_BOOL)0;
2637 		T4_ = (a == b);
2638 		if (T4_) goto LA5_;
2639 		T4_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50));
2640 		LA5_: ;
2641 		T3_ = T4_;
2642 		if (T3_) goto LA6_;
2643 		T3_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50));
2644 		LA6_: ;
2645 		if (!T3_) goto LA7_;
2646 		result = ((NI) 0);
2647 		goto BeforeRet_;
2648 	}
2649 	LA7_: ;
2650 	x = a;
2651 	result = ((NI) 0);
2652 	{
2653 		while (1) {
2654 			if (!!((x == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA10;
2655 			x = skipTypes__ast_3735(x, TM__PpBJsMJcrcWrpLTS6mci1g_5);
2656 			{
2657 				NIM_BOOL T13_;
2658 				T13_ = (NIM_BOOL)0;
2659 				T13_ = sameObjectTypes__types_2047(x, b);
2660 				if (!T13_) goto LA14_;
2661 				goto BeforeRet_;
2662 			}
2663 			LA14_: ;
2664 			x = (*x).sons->data[((NI) 0)];
2665 			result -= ((NI) 1);
2666 		} LA10: ;
2667 	}
2668 	y = b;
2669 	result = ((NI) 0);
2670 	{
2671 		while (1) {
2672 			if (!!((y == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA17;
2673 			y = skipTypes__ast_3735(y, TM__PpBJsMJcrcWrpLTS6mci1g_5);
2674 			{
2675 				NIM_BOOL T20_;
2676 				T20_ = (NIM_BOOL)0;
2677 				T20_ = sameObjectTypes__types_2047(y, a);
2678 				if (!T20_) goto LA21_;
2679 				goto BeforeRet_;
2680 			}
2681 			LA21_: ;
2682 			y = (*y).sons->data[((NI) 0)];
2683 			result += ((NI) 1);
2684 		} LA17: ;
2685 	}
2686 	result = ((NI) IL64(9223372036854775807));
2687 	}BeforeRet_: ;
2688 	return result;
2689 }
N_NIMCALL(NIM_BOOL,sameTypeOrNil__types_1848)2690 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_1848)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags) {
2691 	NIM_BOOL result;
2692 	result = (NIM_BOOL)0;
2693 	{
2694 		if (!(a == b)) goto LA3_;
2695 		result = NIM_TRUE;
2696 	}
2697 	goto LA1_;
2698 	LA3_: ;
2699 	{
2700 		{
2701 			NIM_BOOL T8_;
2702 			T8_ = (NIM_BOOL)0;
2703 			T8_ = (a == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
2704 			if (T8_) goto LA9_;
2705 			T8_ = (b == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
2706 			LA9_: ;
2707 			if (!T8_) goto LA10_;
2708 			result = NIM_FALSE;
2709 		}
2710 		goto LA6_;
2711 		LA10_: ;
2712 		{
2713 			result = sameType__types_1824(a, b, flags);
2714 		}
2715 		LA6_: ;
2716 	}
2717 	LA1_: ;
2718 	return result;
2719 }
N_NIMCALL(void,Marker_tyRef__ik3gfZ9aJJHPxASsunXJrEA)2720 static N_NIMCALL(void, Marker_tyRef__ik3gfZ9aJJHPxASsunXJrEA)(void* p, NI op) {
2721 	tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw* a;
2722 	a = (tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw*)p;
2723 }
N_CLOSURE(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw,getPrefer__types_902)2724 N_LIB_PRIVATE N_CLOSURE(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw, getPrefer__types_902)(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, void* ClE_0) {
2725 	tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw result;
2726 	tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw* colonenvP_;
2727 	result = (tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw)0;
2728 	colonenvP_ = (tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw*) ClE_0;
2729 	{
2730 		if (!((192 &((NU8)1<<((NU)((*colonenvP_).preferToplevel1)&7U)))!=0)) goto LA3_;
2731 		result = (*colonenvP_).preferToplevel1;
2732 	}
2733 	goto LA1_;
2734 	LA3_: ;
2735 	{
2736 		result = prefer;
2737 	}
2738 	LA1_: ;
2739 	return result;
2740 }
N_INLINE(NIM_BOOL,isIntLit__types_186)2741 static N_INLINE(NIM_BOOL, isIntLit__types_186)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
2742 	NIM_BOOL result;
2743 	NIM_BOOL T1_;
2744 	NIM_BOOL T2_;
2745 	result = (NIM_BOOL)0;
2746 	T1_ = (NIM_BOOL)0;
2747 	T2_ = (NIM_BOOL)0;
2748 	T2_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
2749 	if (!(T2_)) goto LA3_;
2750 	T2_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
2751 	LA3_: ;
2752 	T1_ = T2_;
2753 	if (!(T1_)) goto LA4_;
2754 	T1_ = ((*(*t).n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6));
2755 	LA4_: ;
2756 	result = T1_;
2757 	return result;
2758 }
N_INLINE(void,nimCopyMem)2759 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
2760 	void* T1_;
2761 	T1_ = (void*)0;
2762 	T1_ = memcpy(dest, source, ((size_t) (size)));
2763 }
N_INLINE(void,copyMem__system_1727)2764 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
2765 	nimCopyMem(dest, source, size);
2766 }
N_INLINE(void,appendString)2767 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
2768 	{
2769 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
2770 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
2771 		(*dest).Sup.len += (*src).Sup.len;
2772 	}
2773 	LA3_: ;
2774 }
N_INLINE(void,appendChar)2775 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
2776 	(*dest).data[(*dest).Sup.len] = c;
2777 	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
2778 	(*dest).Sup.len += ((NI) 1);
2779 }
N_INLINE(void,addTypeFlags__types_890)2780 static N_INLINE(void, addTypeFlags__types_890)(NimStringDesc** name, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
2781 	{
2782 		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0)) goto LA3_;
2783 		unsureAsgnRef((void**) (&(*name)), resizeString((*name), 8));
2784 appendString((*name), ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_86));
2785 	}
2786 	LA3_: ;
2787 }
N_NIMCALL(NimStringDesc *,valueToString__types_856)2788 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, valueToString__types_856)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
2789 	NimStringDesc* result;
2790 	result = NIM_NIL;
2791 	switch ((*a).kind) {
2792 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
2793 	{
2794 		result = dollar___systemZdollars_6((*a)._kind_1.intVal);
2795 	}
2796 	break;
2797 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 19):
2798 	{
2799 		result = dollar___system_3118((*a)._kind_2.floatVal);
2800 	}
2801 	break;
2802 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
2803 	{
2804 		result = copyString((*a)._kind_3.strVal);
2805 	}
2806 	break;
2807 	default:
2808 	{
2809 		result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_123));
2810 	}
2811 	break;
2812 	}
2813 	return result;
2814 }
N_NIMCALL(NimStringDesc *,rangeToStr__types_862)2815 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rangeToStr__types_862)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
2816 	NimStringDesc* result;
2817 	NimStringDesc* T1_;
2818 	NimStringDesc* T2_;
2819 	NimStringDesc* T3_;
2820 	result = NIM_NIL;
2821 	T1_ = NIM_NIL;
2822 	T2_ = NIM_NIL;
2823 	T2_ = valueToString__types_856((*n)._kind_6.sons->data[((NI) 0)]);
2824 	T3_ = NIM_NIL;
2825 	T3_ = valueToString__types_856((*n)._kind_6.sons->data[((NI) 1)]);
2826 	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + (T3_ ? T3_->Sup.len : 0) + 2);
2827 appendString(T1_, T2_);
2828 appendString(T1_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_124));
2829 appendString(T1_, T3_);
2830 	result = T1_;
2831 	return result;
2832 }
N_INLINE(void,addSep__pureZstrutils_1337)2833 static N_INLINE(void, addSep__pureZstrutils_1337)(NimStringDesc** dest, NimStringDesc* sep, NI startLen) {
2834 	{
2835 		if (!(((NI) (startLen)) < ((*dest) ? (*dest)->Sup.len : 0))) goto LA3_;
2836 		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), (sep ? sep->Sup.len : 0) + 0));
2837 appendString((*dest), sep);
2838 	}
2839 	LA3_: ;
2840 }
N_CLOSURE(NimStringDesc *,typeToString__types_919)2841 N_LIB_PRIVATE N_CLOSURE(NimStringDesc*, typeToString__types_919)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, void* ClE_0) {
2842 	NimStringDesc* result;
2843 	tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw* colonenvP_;
2844 	tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer_2;
2845 	tyProc__3iD0yymxvVOS8ZW9aQRe2MA T1_;
2846 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
2847 {	result = NIM_NIL;
2848 	colonenvP_ = (tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw*) ClE_0;
2849 	result = ((NimStringDesc*) NIM_NIL);
2850 	nimZeroMem((void*)(&T1_), sizeof(tyProc__3iD0yymxvVOS8ZW9aQRe2MA));
2851 	T1_.ClP_0 = getPrefer__types_902; T1_.ClE_0 = colonenvP_;
2852 	prefer_2 = T1_.ClE_0? T1_.ClP_0(prefer, T1_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_10)(T1_.ClP_0))(prefer);
2853 	t = typ;
2854 	{
2855 		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA4_;
2856 		goto BeforeRet_;
2857 	}
2858 	LA4_: ;
2859 	{
2860 		NIM_BOOL T8_;
2861 		NIM_BOOL T9_;
2862 		NIM_BOOL T10_;
2863 		T8_ = (NIM_BOOL)0;
2864 		T9_ = (NIM_BOOL)0;
2865 		T10_ = (NIM_BOOL)0;
2866 		T10_ = ((249 &((NU8)1<<((NU)(prefer_2)&7U)))!=0);
2867 		if (!(T10_)) goto LA11_;
2868 		T10_ = !(((*t).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
2869 		LA11_: ;
2870 		T9_ = T10_;
2871 		if (!(T9_)) goto LA12_;
2872 		T9_ = !((((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0));
2873 		LA12_: ;
2874 		T8_ = T9_;
2875 		if (!(T8_)) goto LA13_;
2876 		T8_ = !(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24)));
2877 		LA13_: ;
2878 		if (!T8_) goto LA14_;
2879 		{
2880 			NIM_BOOL T18_;
2881 			NimStringDesc* T22_;
2882 			NimStringDesc* T23_;
2883 			T18_ = (NIM_BOOL)0;
2884 			T18_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
2885 			if (!(T18_)) goto LA19_;
2886 			T18_ = isIntLit__types_186(t);
2887 			LA19_: ;
2888 			if (!T18_) goto LA20_;
2889 			T22_ = NIM_NIL;
2890 			T23_ = NIM_NIL;
2891 			T23_ = dollar___systemZdollars_6((*(*t).n)._kind_1.intVal);
2892 			T22_ = rawNewString(((*(*(*t).sym).name).s ? (*(*(*t).sym).name).s->Sup.len : 0) + (T23_ ? T23_->Sup.len : 0) + 10);
2893 appendString(T22_, (*(*(*t).sym).name).s);
2894 appendString(T22_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_11));
2895 appendString(T22_, T23_);
2896 appendString(T22_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_12));
2897 			result = T22_;
2898 		}
2899 		goto LA16_;
2900 		LA20_: ;
2901 		{
2902 			NIM_BOOL T25_;
2903 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T29_;
2904 			T25_ = (NIM_BOOL)0;
2905 			T25_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4));
2906 			if (!(T25_)) goto LA26_;
2907 			T25_ = !(((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4)));
2908 			LA26_: ;
2909 			if (!T25_) goto LA27_;
2910 			nimZeroMem((void*)(&T29_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
2911 			T29_.ClP_0 = typeToString__types_919; T29_.ClE_0 = colonenvP_;
2912 			result = T29_.ClE_0? T29_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T29_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_13)(T29_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
2913 		}
2914 		goto LA16_;
2915 		LA27_: ;
2916 		{
2917 			if (!((192 &((NU8)1<<((NU)(prefer_2)&7U)))!=0)) goto LA31_;
2918 			switch ((*t).kind) {
2919 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
2920 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
2921 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
2922 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
2923 			{
2924 				result = copyString(typeToStr__types_874[((*t).kind)- 0]);
2925 			}
2926 			break;
2927 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
2928 			{
2929 				tyProc__QZr2s9cqtiNBm1DLTkzxDcw T35_;
2930 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T36_;
2931 				nimZeroMem((void*)(&T35_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
2932 				T35_.ClP_0 = typeToString__types_919; T35_.ClE_0 = colonenvP_;
2933 				T36_ = NIM_NIL;
2934 				T36_ = lastSon__ast_3743(t);
2935 				result = T35_.ClE_0? T35_.ClP_0(T36_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T35_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_79)(T35_.ClP_0))(T36_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
2936 			}
2937 			break;
2938 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
2939 			{
2940 				tyProc__QZr2s9cqtiNBm1DLTkzxDcw T38_;
2941 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T39_;
2942 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T40_;
2943 				nimZeroMem((void*)(&T38_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
2944 				T38_.ClP_0 = typeToString__types_919; T38_.ClE_0 = colonenvP_;
2945 				T39_ = NIM_NIL;
2946 				T39_ = lastSon__ast_3743(t);
2947 				T40_ = NIM_NIL;
2948 				T40_ = lastSon__ast_3743(T39_);
2949 				result = T38_.ClE_0? T38_.ClP_0(T40_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T38_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_80)(T38_.ClP_0))(T40_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
2950 			}
2951 			break;
2952 			default:
2953 			{
2954 				result = copyString((*(*(*t).sym).name).s);
2955 			}
2956 			break;
2957 			}
2958 			{
2959 				NIM_BOOL T44_;
2960 				NimStringDesc* T48_;
2961 				T44_ = (NIM_BOOL)0;
2962 				T44_ = (prefer_2 == ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 7));
2963 				if (!(T44_)) goto LA45_;
2964 				T44_ = !(eqStrings(result, (*(*(*t).sym).name).s));
2965 				LA45_: ;
2966 				if (!T44_) goto LA46_;
2967 				T48_ = NIM_NIL;
2968 				T48_ = rawNewString(((*(*(*t).sym).name).s ? (*(*(*t).sym).name).s->Sup.len : 0) + (result ? result->Sup.len : 0) + 2);
2969 appendString(T48_, (*(*(*t).sym).name).s);
2970 appendString(T48_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_81));
2971 appendString(T48_, result);
2972 appendString(T48_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_82));
2973 				result = T48_;
2974 			}
2975 			LA46_: ;
2976 		}
2977 		goto LA16_;
2978 		LA31_: ;
2979 		{
2980 			NIM_BOOL T50_;
2981 			T50_ = (NIM_BOOL)0;
2982 			T50_ = ((33 &((NU8)1<<((NU)(prefer_2)&7U)))!=0);
2983 			if (T50_) goto LA51_;
2984 			T50_ = ((*(*t).sym).owner == 0);
2985 			LA51_: ;
2986 			if (!T50_) goto LA52_;
2987 			result = copyString((*(*(*t).sym).name).s);
2988 			{
2989 				NIM_BOOL T56_;
2990 				NI T58_;
2991 				NIM_BOOL first;
2992 				T56_ = (NIM_BOOL)0;
2993 				T56_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
2994 				if (!(T56_)) goto LA57_;
2995 				T58_ = (NI)0;
2996 				T58_ = len__ast_4002(t);
2997 				T56_ = (((NI) 0) < T58_);
2998 				LA57_: ;
2999 				if (!T56_) goto LA59_;
3000 				result = resizeString(result, 2);
3001 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_83));
3002 				first = NIM_TRUE;
3003 				{
3004 					tyObject_TType__facALICuu8zUj0hjvbTLFg** son;
3005 					NI i;
3006 					NI L;
3007 					NI T62_;
3008 					son = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
3009 					i = ((NI) 0);
3010 					T62_ = ((*t).sons ? (*t).sons->Sup.len : 0);
3011 					L = T62_;
3012 					{
3013 						while (1) {
3014 							tyProc__QZr2s9cqtiNBm1DLTkzxDcw T69_;
3015 							NimStringDesc* T70_;
3016 							if (!(i < L)) goto LA64;
3017 							son = &(*t).sons->data[i];
3018 							{
3019 								if (!!(first)) goto LA67_;
3020 								result = resizeString(result, 4);
3021 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_84));
3022 							}
3023 							LA67_: ;
3024 							nimZeroMem((void*)(&T69_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3025 							T69_.ClP_0 = typeToString__types_919; T69_.ClE_0 = colonenvP_;
3026 							T70_ = NIM_NIL;
3027 							T70_ = T69_.ClE_0? T69_.ClP_0((*son), ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T69_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_85)(T69_.ClP_0))((*son), ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3028 							result = resizeString(result, (T70_ ? T70_->Sup.len : 0) + 0);
3029 appendString(result, T70_);
3030 							first = NIM_FALSE;
3031 							i += ((NI) 1);
3032 						} LA64: ;
3033 					}
3034 				}
3035 			}
3036 			LA59_: ;
3037 		}
3038 		goto LA16_;
3039 		LA52_: ;
3040 		{
3041 			NimStringDesc* T72_;
3042 			T72_ = NIM_NIL;
3043 			T72_ = rawNewString(((*(*(*(*t).sym).owner).name).s ? (*(*(*(*t).sym).owner).name).s->Sup.len : 0) + ((*(*(*t).sym).name).s ? (*(*(*t).sym).name).s->Sup.len : 0) + 1);
3044 appendString(T72_, (*(*(*(*t).sym).owner).name).s);
3045 appendChar(T72_, 46);
3046 appendString(T72_, (*(*(*t).sym).name).s);
3047 			result = T72_;
3048 		}
3049 		LA16_: ;
3050 		addTypeFlags__types_890((&result), t);
3051 		goto BeforeRet_;
3052 	}
3053 	LA14_: ;
3054 	switch ((*t).kind) {
3055 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
3056 	{
3057 		{
3058 			NIM_BOOL T76_;
3059 			NIM_BOOL T77_;
3060 			T76_ = (NIM_BOOL)0;
3061 			T77_ = (NIM_BOOL)0;
3062 			T77_ = isIntLit__types_186(t);
3063 			T76_ = !(T77_);
3064 			if (T76_) goto LA78_;
3065 			T76_ = (prefer_2 == ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 2));
3066 			LA78_: ;
3067 			if (!T76_) goto LA79_;
3068 			result = copyString(typeToStr__types_874[((*t).kind)- 0]);
3069 		}
3070 		goto LA74_;
3071 		LA79_: ;
3072 		{
3073 			{
3074 				if (!(prefer_2 == ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 4))) goto LA84_;
3075 				result = dollar___systemZdollars_6((*(*t).n)._kind_1.intVal);
3076 			}
3077 			goto LA82_;
3078 			LA84_: ;
3079 			{
3080 				NimStringDesc* T87_;
3081 				NimStringDesc* T88_;
3082 				T87_ = NIM_NIL;
3083 				T88_ = NIM_NIL;
3084 				T88_ = dollar___systemZdollars_6((*(*t).n)._kind_1.intVal);
3085 				T87_ = rawNewString((T88_ ? T88_->Sup.len : 0) + 13);
3086 appendString(T87_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_87));
3087 appendString(T87_, T88_);
3088 appendString(T87_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_12));
3089 				result = T87_;
3090 			}
3091 			LA82_: ;
3092 		}
3093 		LA74_: ;
3094 	}
3095 	break;
3096 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
3097 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
3098 	{
3099 		NimStringDesc* T90_;
3100 		tyProc__QZr2s9cqtiNBm1DLTkzxDcw T91_;
3101 		NimStringDesc* T92_;
3102 		T90_ = NIM_NIL;
3103 		nimZeroMem((void*)(&T91_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3104 		T91_.ClP_0 = typeToString__types_919; T91_.ClE_0 = colonenvP_;
3105 		T92_ = NIM_NIL;
3106 		T92_ = T91_.ClE_0? T91_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T91_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_88)(T91_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3107 		T90_ = rawNewString((T92_ ? T92_->Sup.len : 0) + 1);
3108 appendString(T90_, T92_);
3109 appendChar(T90_, 91);
3110 		result = T90_;
3111 		{
3112 			NI i_2;
3113 			NI colontmp_;
3114 			NI T94_;
3115 			NI i_3;
3116 			i_2 = (NI)0;
3117 			colontmp_ = (NI)0;
3118 			T94_ = (NI)0;
3119 			T94_ = len__ast_4002(t);
3120 			colontmp_ = (NI)(T94_ - !(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))));
3121 			i_3 = ((NI) 1);
3122 			{
3123 				while (1) {
3124 					tyProc__QZr2s9cqtiNBm1DLTkzxDcw T101_;
3125 					NimStringDesc* T102_;
3126 					if (!(i_3 < colontmp_)) goto LA96;
3127 					i_2 = i_3;
3128 					{
3129 						if (!(((NI) 1) < i_2)) goto LA99_;
3130 						result = resizeString(result, 2);
3131 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
3132 					}
3133 					LA99_: ;
3134 					nimZeroMem((void*)(&T101_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3135 					T101_.ClP_0 = typeToString__types_919; T101_.ClE_0 = colonenvP_;
3136 					T102_ = NIM_NIL;
3137 					T102_ = T101_.ClE_0? T101_.ClP_0((*t).sons->data[i_2], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 4), T101_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_90)(T101_.ClP_0))((*t).sons->data[i_2], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 4));
3138 					result = resizeString(result, (T102_ ? T102_->Sup.len : 0) + 0);
3139 appendString(result, T102_);
3140 					i_3 += ((NI) 1);
3141 				} LA96: ;
3142 			}
3143 		}
3144 		result = addChar(result, 93);
3145 	}
3146 	break;
3147 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
3148 	{
3149 		NimStringDesc* T104_;
3150 		tyProc__QZr2s9cqtiNBm1DLTkzxDcw T105_;
3151 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T106_;
3152 		NimStringDesc* T107_;
3153 		T104_ = NIM_NIL;
3154 		nimZeroMem((void*)(&T105_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3155 		T105_.ClP_0 = typeToString__types_919; T105_.ClE_0 = colonenvP_;
3156 		T106_ = NIM_NIL;
3157 		T106_ = lastSon__ast_3743(t);
3158 		T107_ = NIM_NIL;
3159 		T107_ = T105_.ClE_0? T105_.ClP_0(T106_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T105_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_91)(T105_.ClP_0))(T106_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3160 		T104_ = rawNewString((T107_ ? T107_->Sup.len : 0) + 1);
3161 appendString(T104_, T107_);
3162 appendChar(T104_, 91);
3163 		result = T104_;
3164 		{
3165 			NI i_4;
3166 			NI colontmp__2;
3167 			NI T109_;
3168 			NI i_5;
3169 			i_4 = (NI)0;
3170 			colontmp__2 = (NI)0;
3171 			T109_ = (NI)0;
3172 			T109_ = len__ast_4002(t);
3173 			colontmp__2 = (NI)(T109_ - ((NI) 1));
3174 			i_5 = ((NI) 0);
3175 			{
3176 				while (1) {
3177 					tyProc__QZr2s9cqtiNBm1DLTkzxDcw T116_;
3178 					NimStringDesc* T117_;
3179 					if (!(i_5 < colontmp__2)) goto LA111;
3180 					i_4 = i_5;
3181 					{
3182 						if (!(((NI) 0) < i_4)) goto LA114_;
3183 						result = resizeString(result, 2);
3184 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
3185 					}
3186 					LA114_: ;
3187 					nimZeroMem((void*)(&T116_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3188 					T116_.ClP_0 = typeToString__types_919; T116_.ClE_0 = colonenvP_;
3189 					T117_ = NIM_NIL;
3190 					T117_ = T116_.ClE_0? T116_.ClP_0((*t).sons->data[i_4], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 5), T116_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_92)(T116_.ClP_0))((*t).sons->data[i_4], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 5));
3191 					result = resizeString(result, (T117_ ? T117_->Sup.len : 0) + 0);
3192 appendString(result, T117_);
3193 					i_5 += ((NI) 1);
3194 				} LA111: ;
3195 			}
3196 		}
3197 		result = addChar(result, 93);
3198 	}
3199 	break;
3200 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
3201 	{
3202 		{
3203 			if (!((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA121_;
3204 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_93));
3205 		}
3206 		goto LA119_;
3207 		LA121_: ;
3208 		{
3209 			NimStringDesc* T124_;
3210 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T125_;
3211 			NimStringDesc* T126_;
3212 			T124_ = NIM_NIL;
3213 			nimZeroMem((void*)(&T125_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3214 			T125_.ClP_0 = typeToString__types_919; T125_.ClE_0 = colonenvP_;
3215 			T126_ = NIM_NIL;
3216 			T126_ = T125_.ClE_0? T125_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T125_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_95)(T125_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3217 			T124_ = rawNewString((T126_ ? T126_->Sup.len : 0) + 10);
3218 appendString(T124_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_94));
3219 appendString(T124_, T126_);
3220 appendString(T124_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_96));
3221 			result = T124_;
3222 		}
3223 		LA119_: ;
3224 	}
3225 	break;
3226 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
3227 	{
3228 		{
3229 			NIM_BOOL T130_;
3230 			T130_ = (NIM_BOOL)0;
3231 			T130_ = (prefer_2 == ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 4));
3232 			if (!(T130_)) goto LA131_;
3233 			T130_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
3234 			LA131_: ;
3235 			if (!T130_) goto LA132_;
3236 			result = renderTree__renderer_46((*t).n, 0);
3237 		}
3238 		goto LA128_;
3239 		LA132_: ;
3240 		{
3241 			NimStringDesc* T135_;
3242 			NimStringDesc* T136_;
3243 			T135_ = NIM_NIL;
3244 			T136_ = NIM_NIL;
3245 			{
3246 				NI T139_;
3247 				tyProc__QZr2s9cqtiNBm1DLTkzxDcw T142_;
3248 				T139_ = (NI)0;
3249 				T139_ = len__ast_4002(t);
3250 				if (!(((NI) 0) < T139_)) goto LA140_;
3251 				nimZeroMem((void*)(&T142_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3252 				T142_.ClP_0 = typeToString__types_919; T142_.ClE_0 = colonenvP_;
3253 				T136_ = T142_.ClE_0? T142_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T142_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_98)(T142_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3254 			}
3255 			goto LA137_;
3256 			LA140_: ;
3257 			{
3258 				T136_ = ((NimStringDesc*) NIM_NIL);
3259 			}
3260 			LA137_: ;
3261 			T135_ = rawNewString((T136_ ? T136_->Sup.len : 0) + 8);
3262 appendString(T135_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_97));
3263 appendString(T135_, T136_);
3264 appendString(T135_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_96));
3265 			result = T135_;
3266 			{
3267 				NimStringDesc* T148_;
3268 				NimStringDesc* T149_;
3269 				if (!!(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA146_;
3270 				T148_ = NIM_NIL;
3271 				T149_ = NIM_NIL;
3272 				T149_ = renderTree__renderer_46((*t).n, 0);
3273 				T148_ = rawNewString((T149_ ? T149_->Sup.len : 0) + 2);
3274 appendString(T148_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_99));
3275 appendString(T148_, T149_);
3276 appendString(T148_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_12));
3277 				result = resizeString(result, (T148_ ? T148_->Sup.len : 0) + 0);
3278 appendString(result, T148_);
3279 			}
3280 			LA146_: ;
3281 		}
3282 		LA128_: ;
3283 	}
3284 	break;
3285 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52):
3286 	{
3287 		{
3288 			NIM_BOOL T153_;
3289 			T153_ = (NIM_BOOL)0;
3290 			T153_ = !(((*t).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
3291 			if (!(T153_)) goto LA154_;
3292 			T153_ = !(((*(*t).sym).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
3293 			LA154_: ;
3294 			if (!T153_) goto LA155_;
3295 			{
3296 				tyProc__QZr2s9cqtiNBm1DLTkzxDcw T161_;
3297 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T162_;
3298 				if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0)) goto LA159_;
3299 				nimZeroMem((void*)(&T161_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3300 				T161_.ClP_0 = typeToString__types_919; T161_.ClE_0 = colonenvP_;
3301 				T162_ = NIM_NIL;
3302 				T162_ = lastSon__ast_3743(t);
3303 				result = T161_.ClE_0? T161_.ClP_0(T162_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T161_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_100)(T161_.ClP_0))(T162_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3304 				goto BeforeRet_;
3305 			}
3306 			LA159_: ;
3307 			result = copyString((*(*(*(*t).sym).owner).name).s);
3308 			goto BeforeRet_;
3309 		}
3310 		goto LA151_;
3311 		LA155_: ;
3312 		{
3313 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_101));
3314 		}
3315 		LA151_: ;
3316 	}
3317 	break;
3318 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51):
3319 	{
3320 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T165_;
3321 		T165_ = NIM_NIL;
3322 		T165_ = base__types_63(t);
3323 		switch ((*T165_).kind) {
3324 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
3325 		{
3326 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_102));
3327 		}
3328 		break;
3329 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
3330 		{
3331 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_103));
3332 		}
3333 		break;
3334 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
3335 		{
3336 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_104));
3337 		}
3338 		break;
3339 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
3340 		{
3341 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_105));
3342 		}
3343 		break;
3344 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
3345 		{
3346 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_106));
3347 		}
3348 		break;
3349 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
3350 		{
3351 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_107));
3352 		}
3353 		break;
3354 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
3355 		{
3356 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_108));
3357 		}
3358 		break;
3359 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
3360 		{
3361 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_109));
3362 		}
3363 		break;
3364 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
3365 		{
3366 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_39));
3367 		}
3368 		break;
3369 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
3370 		{
3371 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_31));
3372 		}
3373 		break;
3374 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
3375 		{
3376 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_32));
3377 		}
3378 		break;
3379 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
3380 		{
3381 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_110));
3382 		}
3383 		break;
3384 		default:
3385 		{
3386 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T179_;
3387 			T179_ = NIM_NIL;
3388 			T179_ = base__types_63(t);
3389 			result = copyString(typeToStr__types_874[((*T179_).kind)- 0]);
3390 		}
3391 		break;
3392 		}
3393 	}
3394 	break;
3395 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
3396 	{
3397 		tyObject_TType__facALICuu8zUj0hjvbTLFg* concrete;
3398 		{
3399 			NI T183_;
3400 			T183_ = ((*t).sons ? (*t).sons->Sup.len : 0);
3401 			if (!(((NI) 1) < T183_)) goto LA184_;
3402 			concrete = lastSon__ast_3743(t);
3403 		}
3404 		goto LA181_;
3405 		LA184_: ;
3406 		{
3407 			concrete = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
3408 		}
3409 		LA181_: ;
3410 		{
3411 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T191_;
3412 			if (!!((concrete == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA189_;
3413 			nimZeroMem((void*)(&T191_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3414 			T191_.ClP_0 = typeToString__types_919; T191_.ClE_0 = colonenvP_;
3415 			result = T191_.ClE_0? T191_.ClP_0(concrete, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T191_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_111)(T191_.ClP_0))(concrete, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3416 		}
3417 		goto LA187_;
3418 		LA189_: ;
3419 		{
3420 			NimStringDesc* T193_;
3421 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T194_;
3422 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T195_;
3423 			NimStringDesc* T196_;
3424 			T193_ = NIM_NIL;
3425 			nimZeroMem((void*)(&T194_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3426 			T194_.ClP_0 = typeToString__types_919; T194_.ClE_0 = colonenvP_;
3427 			T195_ = NIM_NIL;
3428 			T195_ = base__types_63(t);
3429 			T196_ = NIM_NIL;
3430 			T196_ = T194_.ClE_0? T194_.ClP_0(T195_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T194_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_113)(T194_.ClP_0))(T195_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3431 			T193_ = rawNewString((T196_ ? T196_->Sup.len : 0) + 10);
3432 appendString(T193_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_112));
3433 appendString(T193_, T196_);
3434 appendString(T193_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_96));
3435 			result = T193_;
3436 		}
3437 		LA187_: ;
3438 	}
3439 	break;
3440 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
3441 	{
3442 		tyObject_TType__facALICuu8zUj0hjvbTLFg* body;
3443 		NimStringDesc* T198_;
3444 		body = base__types_63(t);
3445 		T198_ = NIM_NIL;
3446 		T198_ = rawNewString(((*(*(*body).sym).name).s ? (*(*(*body).sym).name).s->Sup.len : 0) + 1);
3447 appendString(T198_, (*(*(*body).sym).name).s);
3448 appendString(T198_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_114));
3449 		result = T198_;
3450 		{
3451 			NI i_6;
3452 			NI colontmp__3;
3453 			NI T200_;
3454 			NI i_7;
3455 			i_6 = (NI)0;
3456 			colontmp__3 = (NI)0;
3457 			T200_ = (NI)0;
3458 			T200_ = len__ast_4002(t);
3459 			colontmp__3 = (NI)(T200_ - ((NI) 1));
3460 			i_7 = ((NI) 1);
3461 			{
3462 				while (1) {
3463 					tyProc__QZr2s9cqtiNBm1DLTkzxDcw T207_;
3464 					NimStringDesc* T208_;
3465 					if (!(i_7 < colontmp__3)) goto LA202;
3466 					i_6 = i_7;
3467 					{
3468 						if (!(((NI) 1) < i_6)) goto LA205_;
3469 						result = resizeString(result, 2);
3470 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
3471 					}
3472 					LA205_: ;
3473 					nimZeroMem((void*)(&T207_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3474 					T207_.ClP_0 = typeToString__types_919; T207_.ClE_0 = colonenvP_;
3475 					T208_ = NIM_NIL;
3476 					T208_ = T207_.ClE_0? T207_.ClP_0((*t).sons->data[i_6], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T207_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_115)(T207_.ClP_0))((*t).sons->data[i_6], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3477 					result = resizeString(result, (T208_ ? T208_->Sup.len : 0) + 0);
3478 appendString(result, T208_);
3479 					i_7 += ((NI) 1);
3480 				} LA202: ;
3481 			}
3482 		}
3483 		result = resizeString(result, 1);
3484 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_96));
3485 	}
3486 	break;
3487 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
3488 	{
3489 		{
3490 			NI i_8;
3491 			tyObject_TType__facALICuu8zUj0hjvbTLFg* son_2;
3492 			NI i_9;
3493 			NI L_2;
3494 			NI T211_;
3495 			i_8 = (NI)0;
3496 			son_2 = NIM_NIL;
3497 			i_9 = ((NI) 0);
3498 			T211_ = ((*t).sons ? (*t).sons->Sup.len : 0);
3499 			L_2 = T211_;
3500 			{
3501 				while (1) {
3502 					tyProc__QZr2s9cqtiNBm1DLTkzxDcw T214_;
3503 					NimStringDesc* T215_;
3504 					if (!(i_9 < L_2)) goto LA213;
3505 					i_8 = i_9;
3506 					son_2 = (*t).sons->data[i_9];
3507 					nimZeroMem((void*)(&T214_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3508 					T214_.ClP_0 = typeToString__types_919; T214_.ClE_0 = colonenvP_;
3509 					T215_ = NIM_NIL;
3510 					T215_ = T214_.ClE_0? T214_.ClP_0(son_2, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T214_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_116)(T214_.ClP_0))(son_2, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3511 					result = resizeString(result, (T215_ ? T215_->Sup.len : 0) + 0);
3512 appendString(result, T215_);
3513 					{
3514 						NI T218_;
3515 						T218_ = (((*t).sons ? (*t).sons->Sup.len : 0)-1);
3516 						if (!(i_8 < T218_)) goto LA219_;
3517 						result = resizeString(result, 5);
3518 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_117));
3519 					}
3520 					LA219_: ;
3521 					i_9 += ((NI) 1);
3522 				} LA213: ;
3523 			}
3524 		}
3525 	}
3526 	break;
3527 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
3528 	{
3529 		{
3530 			NI i_10;
3531 			tyObject_TType__facALICuu8zUj0hjvbTLFg* son_3;
3532 			NI i_11;
3533 			NI L_3;
3534 			NI T223_;
3535 			i_10 = (NI)0;
3536 			son_3 = NIM_NIL;
3537 			i_11 = ((NI) 0);
3538 			T223_ = ((*t).sons ? (*t).sons->Sup.len : 0);
3539 			L_3 = T223_;
3540 			{
3541 				while (1) {
3542 					tyProc__QZr2s9cqtiNBm1DLTkzxDcw T226_;
3543 					NimStringDesc* T227_;
3544 					if (!(i_11 < L_3)) goto LA225;
3545 					i_10 = i_11;
3546 					son_3 = (*t).sons->data[i_11];
3547 					nimZeroMem((void*)(&T226_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3548 					T226_.ClP_0 = typeToString__types_919; T226_.ClE_0 = colonenvP_;
3549 					T227_ = NIM_NIL;
3550 					T227_ = T226_.ClE_0? T226_.ClP_0(son_3, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T226_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_118)(T226_.ClP_0))(son_3, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3551 					result = resizeString(result, (T227_ ? T227_->Sup.len : 0) + 0);
3552 appendString(result, T227_);
3553 					{
3554 						NI T230_;
3555 						T230_ = (((*t).sons ? (*t).sons->Sup.len : 0)-1);
3556 						if (!(i_10 < T230_)) goto LA231_;
3557 						result = resizeString(result, 4);
3558 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_84));
3559 					}
3560 					LA231_: ;
3561 					i_11 += ((NI) 1);
3562 				} LA225: ;
3563 			}
3564 		}
3565 	}
3566 	break;
3567 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
3568 	{
3569 		NimStringDesc* T234_;
3570 		tyProc__QZr2s9cqtiNBm1DLTkzxDcw T235_;
3571 		NimStringDesc* T236_;
3572 		T234_ = NIM_NIL;
3573 		nimZeroMem((void*)(&T235_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3574 		T235_.ClP_0 = typeToString__types_919; T235_.ClE_0 = colonenvP_;
3575 		T236_ = NIM_NIL;
3576 		T236_ = T235_.ClE_0? T235_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T235_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_120)(T235_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3577 		T234_ = rawNewString((T236_ ? T236_->Sup.len : 0) + 4);
3578 appendString(T234_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_119));
3579 appendString(T234_, T236_);
3580 		result = T234_;
3581 	}
3582 	break;
3583 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
3584 	{
3585 		result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_20));
3586 	}
3587 	break;
3588 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
3589 	{
3590 		{
3591 			if (!((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA241_;
3592 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_121));
3593 		}
3594 		goto LA239_;
3595 		LA241_: ;
3596 		{
3597 			NimStringDesc* T244_;
3598 			NimStringDesc* T245_;
3599 			T244_ = NIM_NIL;
3600 			T245_ = NIM_NIL;
3601 			T245_ = renderTree__renderer_46((*t).n, 0);
3602 			T244_ = rawNewString((T245_ ? T245_->Sup.len : 0) + 8);
3603 appendString(T244_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_122));
3604 appendString(T244_, T245_);
3605 appendString(T244_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_12));
3606 			result = T244_;
3607 		}
3608 		LA239_: ;
3609 	}
3610 	break;
3611 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
3612 	{
3613 		result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_106));
3614 		{
3615 			NI T249_;
3616 			T249_ = (NI)0;
3617 			T249_ = len__ast_4002(t);
3618 			if (!(((NI) 0) < T249_)) goto LA250_;
3619 			{
3620 				NimStringDesc* T256_;
3621 				NimStringDesc* T257_;
3622 				tyProc__QZr2s9cqtiNBm1DLTkzxDcw T258_;
3623 				NimStringDesc* T259_;
3624 				if (!((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20))) goto LA254_;
3625 				T256_ = NIM_NIL;
3626 				T257_ = NIM_NIL;
3627 				T257_ = rangeToStr__types_862((*(*t).sons->data[((NI) 0)]).n);
3628 				nimZeroMem((void*)(&T258_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3629 				T258_.ClP_0 = typeToString__types_919; T258_.ClE_0 = colonenvP_;
3630 				T259_ = NIM_NIL;
3631 				T259_ = T258_.ClE_0? T258_.ClP_0((*t).sons->data[((NI) 1)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T258_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_125)(T258_.ClP_0))((*t).sons->data[((NI) 1)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3632 				T256_ = rawNewString((T257_ ? T257_->Sup.len : 0) + (T259_ ? T259_->Sup.len : 0) + 4);
3633 appendString(T256_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_114));
3634 appendString(T256_, T257_);
3635 appendString(T256_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
3636 appendString(T256_, T259_);
3637 appendChar(T256_, 93);
3638 				result = resizeString(result, (T256_ ? T256_->Sup.len : 0) + 0);
3639 appendString(result, T256_);
3640 			}
3641 			goto LA252_;
3642 			LA254_: ;
3643 			{
3644 				NimStringDesc* T261_;
3645 				tyProc__QZr2s9cqtiNBm1DLTkzxDcw T262_;
3646 				NimStringDesc* T263_;
3647 				tyProc__QZr2s9cqtiNBm1DLTkzxDcw T264_;
3648 				NimStringDesc* T265_;
3649 				T261_ = NIM_NIL;
3650 				nimZeroMem((void*)(&T262_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3651 				T262_.ClP_0 = typeToString__types_919; T262_.ClE_0 = colonenvP_;
3652 				T263_ = NIM_NIL;
3653 				T263_ = T262_.ClE_0? T262_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T262_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_126)(T262_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3654 				nimZeroMem((void*)(&T264_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3655 				T264_.ClP_0 = typeToString__types_919; T264_.ClE_0 = colonenvP_;
3656 				T265_ = NIM_NIL;
3657 				T265_ = T264_.ClE_0? T264_.ClP_0((*t).sons->data[((NI) 1)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T264_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_127)(T264_.ClP_0))((*t).sons->data[((NI) 1)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3658 				T261_ = rawNewString((T263_ ? T263_->Sup.len : 0) + (T265_ ? T265_->Sup.len : 0) + 4);
3659 appendString(T261_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_114));
3660 appendString(T261_, T263_);
3661 appendString(T261_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
3662 appendString(T261_, T265_);
3663 appendChar(T261_, 93);
3664 				result = resizeString(result, (T261_ ? T261_->Sup.len : 0) + 0);
3665 appendString(result, T261_);
3666 			}
3667 			LA252_: ;
3668 		}
3669 		LA250_: ;
3670 	}
3671 	break;
3672 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
3673 	{
3674 		result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_128));
3675 		{
3676 			NI T269_;
3677 			NimStringDesc* T272_;
3678 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T273_;
3679 			NimStringDesc* T274_;
3680 			T269_ = (NI)0;
3681 			T269_ = len__ast_4002(t);
3682 			if (!(((NI) 0) < T269_)) goto LA270_;
3683 			T272_ = NIM_NIL;
3684 			nimZeroMem((void*)(&T273_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3685 			T273_.ClP_0 = typeToString__types_919; T273_.ClE_0 = colonenvP_;
3686 			T274_ = NIM_NIL;
3687 			T274_ = T273_.ClE_0? T273_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T273_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_129)(T273_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3688 			T272_ = rawNewString((T274_ ? T274_->Sup.len : 0) + 2);
3689 appendString(T272_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_114));
3690 appendString(T272_, T274_);
3691 appendChar(T272_, 93);
3692 			result = resizeString(result, (T272_ ? T272_->Sup.len : 0) + 0);
3693 appendString(result, T272_);
3694 		}
3695 		LA270_: ;
3696 	}
3697 	break;
3698 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
3699 	{
3700 		{
3701 			NIM_BOOL T278_;
3702 			T278_ = (NIM_BOOL)0;
3703 			T278_ = !(((*t).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
3704 			if (!(T278_)) goto LA279_;
3705 			T278_ = !((prefer_2 == ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 6)));
3706 			LA279_: ;
3707 			if (!T278_) goto LA280_;
3708 			result = copyString((*(*(*t).sym).name).s);
3709 		}
3710 		goto LA276_;
3711 		LA280_: ;
3712 		{
3713 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_105));
3714 			{
3715 				NI T285_;
3716 				NimStringDesc* T288_;
3717 				tyProc__QZr2s9cqtiNBm1DLTkzxDcw T289_;
3718 				NimStringDesc* T290_;
3719 				T285_ = (NI)0;
3720 				T285_ = len__ast_4002(t);
3721 				if (!(((NI) 0) < T285_)) goto LA286_;
3722 				T288_ = NIM_NIL;
3723 				nimZeroMem((void*)(&T289_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3724 				T289_.ClP_0 = typeToString__types_919; T289_.ClE_0 = colonenvP_;
3725 				T290_ = NIM_NIL;
3726 				T290_ = T289_.ClE_0? T289_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T289_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_130)(T289_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3727 				T288_ = rawNewString((T290_ ? T290_->Sup.len : 0) + 2);
3728 appendString(T288_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_114));
3729 appendString(T288_, T290_);
3730 appendChar(T288_, 93);
3731 				result = resizeString(result, (T288_ ? T288_->Sup.len : 0) + 0);
3732 appendString(result, T288_);
3733 			}
3734 			LA286_: ;
3735 		}
3736 		LA276_: ;
3737 	}
3738 	break;
3739 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
3740 	{
3741 		result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_131));
3742 		{
3743 			NI T294_;
3744 			NimStringDesc* T297_;
3745 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T298_;
3746 			NimStringDesc* T299_;
3747 			T294_ = (NI)0;
3748 			T294_ = len__ast_4002(t);
3749 			if (!(((NI) 0) < T294_)) goto LA295_;
3750 			T297_ = NIM_NIL;
3751 			nimZeroMem((void*)(&T298_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3752 			T298_.ClP_0 = typeToString__types_919; T298_.ClE_0 = colonenvP_;
3753 			T299_ = NIM_NIL;
3754 			T299_ = T298_.ClE_0? T298_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T298_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_132)(T298_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3755 			T297_ = rawNewString((T299_ ? T299_->Sup.len : 0) + 2);
3756 appendString(T297_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_114));
3757 appendString(T297_, T299_);
3758 appendChar(T297_, 93);
3759 			result = resizeString(result, (T297_ ? T297_->Sup.len : 0) + 0);
3760 appendString(result, T297_);
3761 		}
3762 		LA295_: ;
3763 	}
3764 	break;
3765 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
3766 	{
3767 		result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_107));
3768 		{
3769 			NI T303_;
3770 			NimStringDesc* T306_;
3771 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T307_;
3772 			NimStringDesc* T308_;
3773 			T303_ = (NI)0;
3774 			T303_ = len__ast_4002(t);
3775 			if (!(((NI) 0) < T303_)) goto LA304_;
3776 			T306_ = NIM_NIL;
3777 			nimZeroMem((void*)(&T307_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3778 			T307_.ClP_0 = typeToString__types_919; T307_.ClE_0 = colonenvP_;
3779 			T308_ = NIM_NIL;
3780 			T308_ = T307_.ClE_0? T307_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T307_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_133)(T307_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3781 			T306_ = rawNewString((T308_ ? T308_->Sup.len : 0) + 2);
3782 appendString(T306_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_114));
3783 appendString(T306_, T308_);
3784 appendChar(T306_, 93);
3785 			result = resizeString(result, (T306_ ? T306_->Sup.len : 0) + 0);
3786 appendString(result, T306_);
3787 		}
3788 		LA304_: ;
3789 	}
3790 	break;
3791 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
3792 	{
3793 		result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_110));
3794 		{
3795 			NI T312_;
3796 			NimStringDesc* T315_;
3797 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T316_;
3798 			NimStringDesc* T317_;
3799 			T312_ = (NI)0;
3800 			T312_ = len__ast_4002(t);
3801 			if (!(((NI) 0) < T312_)) goto LA313_;
3802 			T315_ = NIM_NIL;
3803 			nimZeroMem((void*)(&T316_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3804 			T316_.ClP_0 = typeToString__types_919; T316_.ClE_0 = colonenvP_;
3805 			T317_ = NIM_NIL;
3806 			T317_ = T316_.ClE_0? T316_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T316_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_134)(T316_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3807 			T315_ = rawNewString((T317_ ? T317_->Sup.len : 0) + 2);
3808 appendString(T315_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_114));
3809 appendString(T315_, T317_);
3810 appendChar(T315_, 93);
3811 			result = resizeString(result, (T315_ ? T315_->Sup.len : 0) + 0);
3812 appendString(result, T315_);
3813 		}
3814 		LA313_: ;
3815 	}
3816 	break;
3817 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
3818 	{
3819 		NimStringDesc* T319_;
3820 		tyProc__QZr2s9cqtiNBm1DLTkzxDcw T320_;
3821 		tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw T321_;
3822 		NimStringDesc* T327_;
3823 		T319_ = NIM_NIL;
3824 		nimZeroMem((void*)(&T320_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3825 		T320_.ClP_0 = typeToString__types_919; T320_.ClE_0 = colonenvP_;
3826 		T321_ = (tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw)0;
3827 		{
3828 			if (!(prefer_2 == ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 3))) goto LA324_;
3829 			T321_ = ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 3);
3830 		}
3831 		goto LA322_;
3832 		LA324_: ;
3833 		{
3834 			T321_ = ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 5);
3835 		}
3836 		LA322_: ;
3837 		T327_ = NIM_NIL;
3838 		T327_ = T320_.ClE_0? T320_.ClP_0((*t).sons->data[((NI) 0)], T321_, T320_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_136)(T320_.ClP_0))((*t).sons->data[((NI) 0)], T321_);
3839 		T319_ = rawNewString((T327_ ? T327_->Sup.len : 0) + 9);
3840 appendString(T319_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_135));
3841 appendString(T319_, T327_);
3842 		result = T319_;
3843 	}
3844 	break;
3845 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64):
3846 	{
3847 		result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_78));
3848 		{
3849 			NI T331_;
3850 			NimStringDesc* T334_;
3851 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T335_;
3852 			NimStringDesc* T336_;
3853 			T331_ = (NI)0;
3854 			T331_ = len__ast_4002(t);
3855 			if (!(((NI) 0) < T331_)) goto LA332_;
3856 			T334_ = NIM_NIL;
3857 			nimZeroMem((void*)(&T335_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3858 			T335_.ClP_0 = typeToString__types_919; T335_.ClE_0 = colonenvP_;
3859 			T336_ = NIM_NIL;
3860 			T336_ = T335_.ClE_0? T335_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T335_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_137)(T335_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3861 			T334_ = rawNewString((T336_ ? T336_->Sup.len : 0) + 2);
3862 appendString(T334_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_114));
3863 appendString(T334_, T336_);
3864 appendChar(T334_, 93);
3865 			result = resizeString(result, (T334_ ? T334_->Sup.len : 0) + 0);
3866 appendString(result, T334_);
3867 		}
3868 		LA332_: ;
3869 	}
3870 	break;
3871 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
3872 	{
3873 		{
3874 			if (!!(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA340_;
3875 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_138));
3876 			{
3877 				NI i_12;
3878 				NI colontmp__4;
3879 				NI i_13;
3880 				i_12 = (NI)0;
3881 				colontmp__4 = (NI)0;
3882 				colontmp__4 = len__ast_3198((*t).n);
3883 				i_13 = ((NI) 0);
3884 				{
3885 					while (1) {
3886 						NimStringDesc* T345_;
3887 						tyProc__QZr2s9cqtiNBm1DLTkzxDcw T346_;
3888 						NimStringDesc* T347_;
3889 						if (!(i_13 < colontmp__4)) goto LA344;
3890 						i_12 = i_13;
3891 						T345_ = NIM_NIL;
3892 						nimZeroMem((void*)(&T346_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3893 						T346_.ClP_0 = typeToString__types_919; T346_.ClE_0 = colonenvP_;
3894 						T347_ = NIM_NIL;
3895 						T347_ = T346_.ClE_0? T346_.ClP_0((*t).sons->data[i_12], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T346_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_139)(T346_.ClP_0))((*t).sons->data[i_12], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3896 						T345_ = rawNewString(((*(*(*(*(*t).n)._kind_6.sons->data[i_12])._kind_4.sym).name).s ? (*(*(*(*(*t).n)._kind_6.sons->data[i_12])._kind_4.sym).name).s->Sup.len : 0) + (T347_ ? T347_->Sup.len : 0) + 2);
3897 appendString(T345_, (*(*(*(*(*t).n)._kind_6.sons->data[i_12])._kind_4.sym).name).s);
3898 appendString(T345_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_83));
3899 appendString(T345_, T347_);
3900 						result = resizeString(result, (T345_ ? T345_->Sup.len : 0) + 0);
3901 appendString(result, T345_);
3902 						{
3903 							NI T350_;
3904 							T350_ = (NI)0;
3905 							T350_ = len__ast_3198((*t).n);
3906 							if (!(i_12 < (NI)(T350_ - ((NI) 1)))) goto LA351_;
3907 							result = resizeString(result, 2);
3908 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
3909 						}
3910 						LA351_: ;
3911 						i_13 += ((NI) 1);
3912 					} LA344: ;
3913 				}
3914 			}
3915 			result = addChar(result, 93);
3916 		}
3917 		goto LA338_;
3918 		LA340_: ;
3919 		{
3920 			NI T354_;
3921 			T354_ = (NI)0;
3922 			T354_ = len__ast_4002(t);
3923 			if (!(T354_ == ((NI) 0))) goto LA355_;
3924 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_140));
3925 		}
3926 		goto LA338_;
3927 		LA355_: ;
3928 		{
3929 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_99));
3930 			{
3931 				NI i_14;
3932 				NI colontmp__5;
3933 				NI i_15;
3934 				i_14 = (NI)0;
3935 				colontmp__5 = (NI)0;
3936 				colontmp__5 = len__ast_4002(t);
3937 				i_15 = ((NI) 0);
3938 				{
3939 					while (1) {
3940 						tyProc__QZr2s9cqtiNBm1DLTkzxDcw T361_;
3941 						NimStringDesc* T362_;
3942 						if (!(i_15 < colontmp__5)) goto LA360;
3943 						i_14 = i_15;
3944 						nimZeroMem((void*)(&T361_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
3945 						T361_.ClP_0 = typeToString__types_919; T361_.ClE_0 = colonenvP_;
3946 						T362_ = NIM_NIL;
3947 						T362_ = T361_.ClE_0? T361_.ClP_0((*t).sons->data[i_14], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T361_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_141)(T361_.ClP_0))((*t).sons->data[i_14], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
3948 						result = resizeString(result, (T362_ ? T362_->Sup.len : 0) + 0);
3949 appendString(result, T362_);
3950 						{
3951 							NI T365_;
3952 							T365_ = (NI)0;
3953 							T365_ = len__ast_4002(t);
3954 							if (!(i_14 < (NI)(T365_ - ((NI) 1)))) goto LA366_;
3955 							result = resizeString(result, 2);
3956 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
3957 						}
3958 						goto LA363_;
3959 						LA366_: ;
3960 						{
3961 							NI T369_;
3962 							T369_ = (NI)0;
3963 							T369_ = len__ast_4002(t);
3964 							if (!(T369_ == ((NI) 1))) goto LA370_;
3965 							result = resizeString(result, 1);
3966 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_142));
3967 						}
3968 						goto LA363_;
3969 						LA370_: ;
3970 						LA363_: ;
3971 						i_15 += ((NI) 1);
3972 					} LA360: ;
3973 				}
3974 			}
3975 			result = addChar(result, 41);
3976 		}
3977 		LA338_: ;
3978 	}
3979 	break;
3980 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
3981 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
3982 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
3983 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
3984 	{
3985 		result = copyString(typeToStr__types_874[((*t).kind)- 0]);
3986 		{
3987 			NI T375_;
3988 			T375_ = (NI)0;
3989 			T375_ = len__ast_4002(t);
3990 			if (!(((NI) 2) <= T375_)) goto LA376_;
3991 			result = setLengthStr(result, ((NI) ((NI)((result ? result->Sup.len : 0) - ((NI) 1)))));
3992 			result = addChar(result, 91);
3993 			{
3994 				NI i_16;
3995 				NI colontmp__6;
3996 				NI i_17;
3997 				i_16 = (NI)0;
3998 				colontmp__6 = (NI)0;
3999 				colontmp__6 = len__ast_4002(t);
4000 				i_17 = ((NI) 0);
4001 				{
4002 					while (1) {
4003 						tyProc__QZr2s9cqtiNBm1DLTkzxDcw T381_;
4004 						NimStringDesc* T382_;
4005 						if (!(i_17 < colontmp__6)) goto LA380;
4006 						i_16 = i_17;
4007 						nimZeroMem((void*)(&T381_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
4008 						T381_.ClP_0 = typeToString__types_919; T381_.ClE_0 = colonenvP_;
4009 						T382_ = NIM_NIL;
4010 						T382_ = T381_.ClE_0? T381_.ClP_0((*t).sons->data[i_16], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T381_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_143)(T381_.ClP_0))((*t).sons->data[i_16], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
4011 						result = resizeString(result, (T382_ ? T382_->Sup.len : 0) + 0);
4012 appendString(result, T382_);
4013 						{
4014 							NI T385_;
4015 							T385_ = (NI)0;
4016 							T385_ = len__ast_4002(t);
4017 							if (!(i_16 < (NI)(T385_ - ((NI) 1)))) goto LA386_;
4018 							result = resizeString(result, 2);
4019 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
4020 						}
4021 						LA386_: ;
4022 						i_17 += ((NI) 1);
4023 					} LA380: ;
4024 				}
4025 			}
4026 			result = addChar(result, 93);
4027 		}
4028 		goto LA373_;
4029 		LA376_: ;
4030 		{
4031 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T389_;
4032 			NimStringDesc* T390_;
4033 			nimZeroMem((void*)(&T389_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
4034 			T389_.ClP_0 = typeToString__types_919; T389_.ClE_0 = colonenvP_;
4035 			T390_ = NIM_NIL;
4036 			T390_ = T389_.ClE_0? T389_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T389_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_144)(T389_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
4037 			result = resizeString(result, (T390_ ? T390_->Sup.len : 0) + 0);
4038 appendString(result, T390_);
4039 		}
4040 		LA373_: ;
4041 	}
4042 	break;
4043 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
4044 	{
4045 		result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_145));
4046 		{
4047 			NIM_BOOL T394_;
4048 			NimStringDesc* T398_;
4049 			T394_ = (NIM_BOOL)0;
4050 			T394_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
4051 			if (!(T394_)) goto LA395_;
4052 			T394_ = ((*(*t).n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44));
4053 			LA395_: ;
4054 			if (!T394_) goto LA396_;
4055 			T398_ = NIM_NIL;
4056 			T398_ = rangeToStr__types_862((*t).n);
4057 			result = resizeString(result, (T398_ ? T398_->Sup.len : 0) + 0);
4058 appendString(result, T398_);
4059 		}
4060 		LA396_: ;
4061 		{
4062 			NimStringDesc* T403_;
4063 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T404_;
4064 			NimStringDesc* T405_;
4065 			if (!!((prefer_2 == ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 2)))) goto LA401_;
4066 			T403_ = NIM_NIL;
4067 			nimZeroMem((void*)(&T404_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
4068 			T404_.ClP_0 = typeToString__types_919; T404_.ClE_0 = colonenvP_;
4069 			T405_ = NIM_NIL;
4070 			T405_ = T404_.ClE_0? T404_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T404_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_146)(T404_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
4071 			T403_ = rawNewString((T405_ ? T405_->Sup.len : 0) + 2);
4072 appendString(T403_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_99));
4073 appendString(T403_, T405_);
4074 appendString(T403_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_12));
4075 			result = resizeString(result, (T403_ ? T403_->Sup.len : 0) + 0);
4076 appendString(result, T403_);
4077 		}
4078 		LA401_: ;
4079 	}
4080 	break;
4081 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
4082 	{
4083 		NimStringDesc* prag;
4084 		{
4085 			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA409_;
4086 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_147));
4087 		}
4088 		goto LA407_;
4089 		LA409_: ;
4090 		{
4091 			if (!!(((*t).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA412_;
4092 			switch ((*(*t).owner).kind) {
4093 			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
4094 			{
4095 				result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_148));
4096 			}
4097 			break;
4098 			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
4099 			{
4100 				result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_149));
4101 			}
4102 			break;
4103 			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
4104 			{
4105 				result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_150));
4106 			}
4107 			break;
4108 			default:
4109 			{
4110 				result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_151));
4111 			}
4112 			break;
4113 			}
4114 		}
4115 		goto LA407_;
4116 		LA412_: ;
4117 		{
4118 			result = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_151));
4119 		}
4120 		LA407_: ;
4121 		{
4122 			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0)) goto LA421_;
4123 			result = resizeString(result, 22);
4124 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_152));
4125 		}
4126 		LA421_: ;
4127 		result = resizeString(result, 1);
4128 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_99));
4129 		{
4130 			NI i_18;
4131 			NI colontmp__7;
4132 			NI i_19;
4133 			i_18 = (NI)0;
4134 			colontmp__7 = (NI)0;
4135 			colontmp__7 = len__ast_4002(t);
4136 			i_19 = ((NI) 1);
4137 			{
4138 				while (1) {
4139 					tyProc__QZr2s9cqtiNBm1DLTkzxDcw T435_;
4140 					NimStringDesc* T436_;
4141 					if (!(i_19 < colontmp__7)) goto LA425;
4142 					i_18 = i_19;
4143 					{
4144 						NIM_BOOL T428_;
4145 						NIM_BOOL T429_;
4146 						NI T431_;
4147 						T428_ = (NIM_BOOL)0;
4148 						T429_ = (NIM_BOOL)0;
4149 						T429_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
4150 						if (!(T429_)) goto LA430_;
4151 						T431_ = (NI)0;
4152 						T431_ = len__ast_3198((*t).n);
4153 						T429_ = (i_18 < T431_);
4154 						LA430_: ;
4155 						T428_ = T429_;
4156 						if (!(T428_)) goto LA432_;
4157 						T428_ = ((*(*(*t).n)._kind_6.sons->data[i_18]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
4158 						LA432_: ;
4159 						if (!T428_) goto LA433_;
4160 						result = resizeString(result, ((*(*(*(*(*t).n)._kind_6.sons->data[i_18])._kind_4.sym).name).s ? (*(*(*(*(*t).n)._kind_6.sons->data[i_18])._kind_4.sym).name).s->Sup.len : 0) + 0);
4161 appendString(result, (*(*(*(*(*t).n)._kind_6.sons->data[i_18])._kind_4.sym).name).s);
4162 						result = resizeString(result, 2);
4163 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_83));
4164 					}
4165 					LA433_: ;
4166 					nimZeroMem((void*)(&T435_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
4167 					T435_.ClP_0 = typeToString__types_919; T435_.ClE_0 = colonenvP_;
4168 					T436_ = NIM_NIL;
4169 					T436_ = T435_.ClE_0? T435_.ClP_0((*t).sons->data[i_18], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T435_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_153)(T435_.ClP_0))((*t).sons->data[i_18], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
4170 					result = resizeString(result, (T436_ ? T436_->Sup.len : 0) + 0);
4171 appendString(result, T436_);
4172 					{
4173 						NI T439_;
4174 						T439_ = (NI)0;
4175 						T439_ = len__ast_4002(t);
4176 						if (!(i_18 < (NI)(T439_ - ((NI) 1)))) goto LA440_;
4177 						result = resizeString(result, 2);
4178 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
4179 					}
4180 					LA440_: ;
4181 					i_19 += ((NI) 1);
4182 				} LA425: ;
4183 			}
4184 		}
4185 		result = addChar(result, 41);
4186 		{
4187 			NIM_BOOL T444_;
4188 			NI T445_;
4189 			NimStringDesc* T449_;
4190 			tyProc__QZr2s9cqtiNBm1DLTkzxDcw T450_;
4191 			NimStringDesc* T451_;
4192 			T444_ = (NIM_BOOL)0;
4193 			T445_ = (NI)0;
4194 			T445_ = len__ast_4002(t);
4195 			T444_ = (((NI) 0) < T445_);
4196 			if (!(T444_)) goto LA446_;
4197 			T444_ = !(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
4198 			LA446_: ;
4199 			if (!T444_) goto LA447_;
4200 			T449_ = NIM_NIL;
4201 			nimZeroMem((void*)(&T450_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
4202 			T450_.ClP_0 = typeToString__types_919; T450_.ClE_0 = colonenvP_;
4203 			T451_ = NIM_NIL;
4204 			T451_ = T450_.ClE_0? T450_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T450_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_154)(T450_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
4205 			T449_ = rawNewString((T451_ ? T451_->Sup.len : 0) + 2);
4206 appendString(T449_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_83));
4207 appendString(T449_, T451_);
4208 			result = resizeString(result, (T449_ ? T449_->Sup.len : 0) + 0);
4209 appendString(result, T449_);
4210 		}
4211 		LA447_: ;
4212 		{
4213 			NIM_BOOL T454_;
4214 			T454_ = (NIM_BOOL)0;
4215 			T454_ = ((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 0));
4216 			if (!(T454_)) goto LA455_;
4217 			T454_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 42))&63U)))!=0));
4218 			LA455_: ;
4219 			if (!T454_) goto LA456_;
4220 			prag = ((NimStringDesc*) NIM_NIL);
4221 		}
4222 		goto LA452_;
4223 		LA456_: ;
4224 		{
4225 			prag = reprEnum((NI)(*t).callConv, (&NTItcallingconvention__yjAJ8w0h1PBaSwSGJ3P7IA_));
4226 		}
4227 		LA452_: ;
4228 		{
4229 			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0)) goto LA461_;
4230 			addSep__pureZstrutils_1337((&prag), ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89), ((NI) 0));
4231 			prag = resizeString(prag, 12);
4232 appendString(prag, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_155));
4233 		}
4234 		LA461_: ;
4235 		{
4236 			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 7))&63U)))!=0)) goto LA465_;
4237 			addSep__pureZstrutils_1337((&prag), ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89), ((NI) 0));
4238 			prag = resizeString(prag, 6);
4239 appendString(prag, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_156));
4240 		}
4241 		LA465_: ;
4242 		{
4243 			NimStringDesc* T471_;
4244 			NimStringDesc* T472_;
4245 			if (!!(((*t).lockLevel == ((NI) -1)))) goto LA469_;
4246 			addSep__pureZstrutils_1337((&prag), ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89), ((NI) 0));
4247 			T471_ = NIM_NIL;
4248 			T472_ = NIM_NIL;
4249 			T472_ = dollar___ast_3858((*t).lockLevel);
4250 			T471_ = rawNewString((T472_ ? T472_->Sup.len : 0) + 7);
4251 appendString(T471_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_157));
4252 appendString(T471_, T472_);
4253 			prag = resizeString(prag, (T471_ ? T471_->Sup.len : 0) + 0);
4254 appendString(prag, T471_);
4255 		}
4256 		LA469_: ;
4257 		{
4258 			NimStringDesc* T477_;
4259 			if (!!(((prag ? prag->Sup.len : 0) == ((NI) 0)))) goto LA475_;
4260 			T477_ = NIM_NIL;
4261 			T477_ = rawNewString((prag ? prag->Sup.len : 0) + 4);
4262 appendString(T477_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_158));
4263 appendString(T477_, prag);
4264 appendString(T477_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_159));
4265 			result = resizeString(result, (T477_ ? T477_->Sup.len : 0) + 0);
4266 appendString(result, T477_);
4267 		}
4268 		LA475_: ;
4269 	}
4270 	break;
4271 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
4272 	{
4273 		tyProc__QZr2s9cqtiNBm1DLTkzxDcw T479_;
4274 		NimStringDesc* T480_;
4275 		nimZeroMem((void*)(&T479_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
4276 		T479_.ClP_0 = typeToString__types_919; T479_.ClE_0 = colonenvP_;
4277 		T480_ = NIM_NIL;
4278 		T480_ = T479_.ClE_0? T479_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T479_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_160)(T479_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
4279 		result = nsuFormatSingleElem(typeToStr__types_874[((*t).kind)- 0], T480_);
4280 	}
4281 	break;
4282 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
4283 	{
4284 		NimStringDesc* T482_;
4285 		tyProc__QZr2s9cqtiNBm1DLTkzxDcw T483_;
4286 		NimStringDesc* T484_;
4287 		T482_ = NIM_NIL;
4288 		nimZeroMem((void*)(&T483_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
4289 		T483_.ClP_0 = typeToString__types_919; T483_.ClE_0 = colonenvP_;
4290 		T484_ = NIM_NIL;
4291 		T484_ = T483_.ClE_0? T483_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T483_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_162)(T483_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
4292 		T482_ = rawNewString((T484_ ? T484_->Sup.len : 0) + 5);
4293 appendString(T482_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_161));
4294 appendString(T482_, T484_);
4295 		result = T482_;
4296 	}
4297 	break;
4298 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
4299 	{
4300 		NimStringDesc* T486_;
4301 		tyProc__QZr2s9cqtiNBm1DLTkzxDcw T487_;
4302 		NimStringDesc* T488_;
4303 		T486_ = NIM_NIL;
4304 		nimZeroMem((void*)(&T487_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
4305 		T487_.ClP_0 = typeToString__types_919; T487_.ClE_0 = colonenvP_;
4306 		T488_ = NIM_NIL;
4307 		T488_ = T487_.ClE_0? T487_.ClP_0((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), T487_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_164)(T487_.ClP_0))((*t).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
4308 		T486_ = rawNewString((T488_ ? T488_->Sup.len : 0) + 6);
4309 appendString(T486_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_163));
4310 appendString(T486_, T488_);
4311 		result = T486_;
4312 	}
4313 	break;
4314 	default:
4315 	{
4316 		result = copyString(typeToStr__types_874[((*t).kind)- 0]);
4317 	}
4318 	break;
4319 	}
4320 	addTypeFlags__types_890((&result), t);
4321 	}BeforeRet_: ;
4322 	return result;
4323 }
N_NIMCALL(NimStringDesc *,typeToString__types_50)4324 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__types_50)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer) {
4325 	NimStringDesc* result;
4326 	tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw* colonenv_;
4327 	tyProc__QZr2s9cqtiNBm1DLTkzxDcw T1_;
4328 	result = NIM_NIL;
4329 	colonenv_ = NIM_NIL;
4330 	colonenv_ = (tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw*) newObj((&NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_), sizeof(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw));
4331 	(*colonenv_).Sup.m_type = (&NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_);
4332 	(*colonenv_).preferToplevel1 = prefer;
4333 	nimZeroMem((void*)(&T1_), sizeof(tyProc__QZr2s9cqtiNBm1DLTkzxDcw));
4334 	T1_.ClP_0 = typeToString__types_919; T1_.ClE_0 = colonenv_;
4335 	result = T1_.ClE_0? T1_.ClP_0(typ, prefer, T1_.ClE_0):((TM__PpBJsMJcrcWrpLTS6mci1g_165)(T1_.ClP_0))(typ, prefer);
4336 	return result;
4337 }
N_NIMCALL(NI,safeInheritanceDiff__types_3392)4338 N_LIB_PRIVATE N_NIMCALL(NI, safeInheritanceDiff__types_3392)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
4339 	NI result;
4340 	result = (NI)0;
4341 	{
4342 		NIM_BOOL T3_;
4343 		T3_ = (NIM_BOOL)0;
4344 		T3_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50));
4345 		if (T3_) goto LA4_;
4346 		T3_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50));
4347 		LA4_: ;
4348 		if (!T3_) goto LA5_;
4349 		result = ((NI) -1);
4350 	}
4351 	goto LA1_;
4352 	LA5_: ;
4353 	{
4354 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T8_;
4355 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T9_;
4356 		T8_ = NIM_NIL;
4357 		T8_ = skipTypes__ast_3735(a, TM__PpBJsMJcrcWrpLTS6mci1g_5);
4358 		T9_ = NIM_NIL;
4359 		T9_ = skipTypes__ast_3735(b, TM__PpBJsMJcrcWrpLTS6mci1g_5);
4360 		result = inheritanceDiff__types_2685(T8_, T9_);
4361 	}
4362 	LA1_: ;
4363 	return result;
4364 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,elemType__types_263)4365 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, elemType__types_263)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
4366 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
4367 	result = NIM_NIL;
4368 	switch ((*t).kind) {
4369 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
4370 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
4371 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
4372 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
4373 	{
4374 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T2_;
4375 		T2_ = NIM_NIL;
4376 		T2_ = lastSon__ast_3743(t);
4377 		result = elemType__types_263(T2_);
4378 	}
4379 	break;
4380 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
4381 	{
4382 		result = (*t).sons->data[((NI) 1)];
4383 	}
4384 	break;
4385 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
4386 	{
4387 		result = t;
4388 	}
4389 	break;
4390 	default:
4391 	{
4392 		result = lastSon__ast_3743(t);
4393 	}
4394 	break;
4395 	}
4396 	return result;
4397 }
N_NIMCALL(NIM_BOOL,compareTypes__types_2668)4398 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compareTypes__types_2668)(tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TType__facALICuu8zUj0hjvbTLFg* y, tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg cmp, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags) {
4399 	NIM_BOOL result;
4400 	tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg c;
4401 	result = (NIM_BOOL)0;
4402 	nimZeroMem((void*)(&c), sizeof(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg));
4403 	initSameTypeClosure__types_1699((&c));
4404 	c.cmp = cmp;
4405 	c.flags = flags;
4406 	{
4407 		if (!(x == y)) goto LA3_;
4408 		result = NIM_TRUE;
4409 	}
4410 	goto LA1_;
4411 	LA3_: ;
4412 	{
4413 		NIM_BOOL T6_;
4414 		T6_ = (NIM_BOOL)0;
4415 		T6_ = (x == 0);
4416 		if (T6_) goto LA7_;
4417 		T6_ = (y == 0);
4418 		LA7_: ;
4419 		if (!T6_) goto LA8_;
4420 		result = NIM_FALSE;
4421 	}
4422 	goto LA1_;
4423 	LA8_: ;
4424 	{
4425 		result = sameTypeAux__types_1803(x, y, (&c));
4426 	}
4427 	LA1_: ;
4428 	return result;
4429 }
N_INLINE(void,initIntSet__pureZcollectionsZintsets_238)4430 static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
4431 	initPackedSet__pureZcollectionsZintsets_16(Result);
4432 }
N_NIMCALL(NIM_BOOL,iterOverNode__types_328)4433 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverNode__types_328)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyProc__X59agDExDRW5s9cLoKvjr83g iter, RootObj* closure) {
4434 	NIM_BOOL result;
4435 {	result = (NIM_BOOL)0;
4436 	{
4437 		if (!!((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
4438 		switch ((*n).kind) {
4439 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
4440 		{
4441 			result = iterOverTypeAux__types_323(marker, (*n).typ, iter, closure);
4442 		}
4443 		break;
4444 		default:
4445 		{
4446 			{
4447 				NI i;
4448 				NI colontmp_;
4449 				NI i_2;
4450 				i = (NI)0;
4451 				colontmp_ = (NI)0;
4452 				colontmp_ = len__ast_3198(n);
4453 				i_2 = ((NI) 0);
4454 				{
4455 					while (1) {
4456 						if (!(i_2 < colontmp_)) goto LA9;
4457 						i = i_2;
4458 						result = iterOverNode__types_328(marker, (*n)._kind_6.sons->data[i], iter, closure);
4459 						{
4460 							if (!result) goto LA12_;
4461 							goto BeforeRet_;
4462 						}
4463 						LA12_: ;
4464 						i_2 += ((NI) 1);
4465 					} LA9: ;
4466 				}
4467 			}
4468 		}
4469 		break;
4470 		}
4471 	}
4472 	LA3_: ;
4473 	}BeforeRet_: ;
4474 	return result;
4475 }
N_NIMCALL(NIM_BOOL,iterOverTypeAux__types_323)4476 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverTypeAux__types_323)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__X59agDExDRW5s9cLoKvjr83g iter, RootObj* closure) {
4477 	NIM_BOOL result;
4478 {	result = (NIM_BOOL)0;
4479 	result = NIM_FALSE;
4480 	{
4481 		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
4482 		goto BeforeRet_;
4483 	}
4484 	LA3_: ;
4485 	result = iter(t, closure);
4486 	{
4487 		if (!result) goto LA7_;
4488 		goto BeforeRet_;
4489 	}
4490 	LA7_: ;
4491 	{
4492 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym39_;
4493 		NIM_BOOL T11_;
4494 		xX60gensym39_ = t;
4495 		T11_ = (NIM_BOOL)0;
4496 		T11_ = containsOrIncl__astalgo_402(marker, (NI)((NI)((NU64)(((NI) ((*xX60gensym39_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym39_).Sup.itemId.item))));
4497 		if (!!(T11_)) goto LA12_;
4498 		switch ((*t).kind) {
4499 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
4500 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
4501 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
4502 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
4503 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
4504 		{
4505 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T15_;
4506 			T15_ = NIM_NIL;
4507 			T15_ = lastSon__ast_3743(t);
4508 			result = iterOverTypeAux__types_323(marker, T15_, iter, closure);
4509 		}
4510 		break;
4511 		default:
4512 		{
4513 			{
4514 				NI i;
4515 				NI colontmp_;
4516 				NI i_2;
4517 				i = (NI)0;
4518 				colontmp_ = (NI)0;
4519 				colontmp_ = len__ast_4002(t);
4520 				i_2 = ((NI) 0);
4521 				{
4522 					while (1) {
4523 						if (!(i_2 < colontmp_)) goto LA19;
4524 						i = i_2;
4525 						result = iterOverTypeAux__types_323(marker, (*t).sons->data[i], iter, closure);
4526 						{
4527 							if (!result) goto LA22_;
4528 							goto BeforeRet_;
4529 						}
4530 						LA22_: ;
4531 						i_2 += ((NI) 1);
4532 					} LA19: ;
4533 				}
4534 			}
4535 			{
4536 				NIM_BOOL T26_;
4537 				T26_ = (NIM_BOOL)0;
4538 				T26_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
4539 				if (!(T26_)) goto LA27_;
4540 				T26_ = !(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25)));
4541 				LA27_: ;
4542 				if (!T26_) goto LA28_;
4543 				result = iterOverNode__types_328(marker, (*t).n, iter, closure);
4544 			}
4545 			LA28_: ;
4546 		}
4547 		break;
4548 		}
4549 	}
4550 	LA12_: ;
4551 	}BeforeRet_: ;
4552 	return result;
4553 }
N_NIMCALL(NIM_BOOL,iterOverType__types_81)4554 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, iterOverType__types_81)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__X59agDExDRW5s9cLoKvjr83g iter, RootObj* closure) {
4555 	NIM_BOOL result;
4556 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
4557 	result = (NIM_BOOL)0;
4558 	nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
4559 	initIntSet__pureZcollectionsZintsets_238((&marker));
4560 	result = iterOverTypeAux__types_323((&marker), t, iter, closure);
4561 	return result;
4562 }
N_NIMCALL(NIM_BOOL,containsGenericTypeIter__types_3340)4563 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericTypeIter__types_3340)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, RootObj* closure) {
4564 	NIM_BOOL result;
4565 {	result = (NIM_BOOL)0;
4566 	switch ((*t).kind) {
4567 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
4568 	{
4569 		result = ((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
4570 		goto BeforeRet_;
4571 	}
4572 	break;
4573 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
4574 	{
4575 		{
4576 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
4577 			T5_ = NIM_NIL;
4578 			T5_ = base__types_63(t);
4579 			if (!((*T5_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA6_;
4580 			result = NIM_TRUE;
4581 			goto BeforeRet_;
4582 		}
4583 		LA6_: ;
4584 		{
4585 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T10_;
4586 			NIM_BOOL T11_;
4587 			T10_ = NIM_NIL;
4588 			T10_ = base__types_63(t);
4589 			T11_ = (NIM_BOOL)0;
4590 			T11_ = containsGenericTypeIter__types_3340(T10_, closure);
4591 			if (!T11_) goto LA12_;
4592 			result = NIM_TRUE;
4593 			goto BeforeRet_;
4594 		}
4595 		LA12_: ;
4596 		result = NIM_FALSE;
4597 		goto BeforeRet_;
4598 	}
4599 	break;
4600 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
4601 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
4602 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
4603 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
4604 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
4605 	{
4606 		result = NIM_TRUE;
4607 		goto BeforeRet_;
4608 	}
4609 	break;
4610 	default:
4611 	{
4612 		result = NIM_FALSE;
4613 		goto BeforeRet_;
4614 	}
4615 	break;
4616 	}
4617 	}BeforeRet_: ;
4618 	return result;
4619 }
N_NIMCALL(NIM_BOOL,containsGenericType__types_3360)4620 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericType__types_3360)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
4621 	NIM_BOOL result;
4622 	result = (NIM_BOOL)0;
4623 	result = iterOverType__types_81(t, containsGenericTypeIter__types_3340, ((RootObj*) NIM_NIL));
4624 	return result;
4625 }
N_NIMCALL(NIM_BOOL,enumHasHoles__types_287)4626 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, enumHasHoles__types_287)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
4627 	NIM_BOOL result;
4628 	tyObject_TType__facALICuu8zUj0hjvbTLFg* b;
4629 	NIM_BOOL T1_;
4630 	result = (NIM_BOOL)0;
4631 	b = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_166);
4632 	T1_ = (NIM_BOOL)0;
4633 	T1_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
4634 	if (!(T1_)) goto LA2_;
4635 	T1_ = (((*b).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 5))&63U)))!=0);
4636 	LA2_: ;
4637 	result = T1_;
4638 	return result;
4639 }
N_NIMCALL(NIM_BOOL,isOrdinalType__types_299)4640 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_299)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, NIM_BOOL allowEnumWithHoles) {
4641 	NIM_BOOL result;
4642 	NIM_BOOL T1_;
4643 	NIM_BOOL T2_;
4644 	NIM_BOOL T4_;
4645 	NIM_BOOL T5_;
4646 	NIM_BOOL T8_;
4647 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T10_;
4648 	result = (NIM_BOOL)0;
4649 	T1_ = (NIM_BOOL)0;
4650 	T2_ = (NIM_BOOL)0;
4651 	T2_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*t).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*t).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*t).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*t).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
4652 	if (!(T2_)) goto LA3_;
4653 	T4_ = (NIM_BOOL)0;
4654 	T5_ = (NIM_BOOL)0;
4655 	T5_ = enumHasHoles__types_287(t);
4656 	T4_ = !(T5_);
4657 	if (T4_) goto LA6_;
4658 	T4_ = allowEnumWithHoles;
4659 	LA6_: ;
4660 	T2_ = T4_;
4661 	LA3_: ;
4662 	T1_ = T2_;
4663 	if (T1_) goto LA7_;
4664 	T8_ = (NIM_BOOL)0;
4665 	T8_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
4666 	if (!(T8_)) goto LA9_;
4667 	T10_ = NIM_NIL;
4668 	T10_ = lastSon__ast_3743(t);
4669 	T8_ = isOrdinalType__types_299(T10_, allowEnumWithHoles);
4670 	LA9_: ;
4671 	T1_ = T8_;
4672 	LA7_: ;
4673 	result = T1_;
4674 	return result;
4675 }
N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA,getOrdValue__types_161)4676 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getOrdValue__types_161)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Int128__9a9axPfb75jdWY25AamJewkA onError) {
4677 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
4678 	tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k;
4679 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
4680 	k = (*n).kind;
4681 	{
4682 		NIM_BOOL T3_;
4683 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
4684 		T3_ = (NIM_BOOL)0;
4685 		T3_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
4686 		if (!(T3_)) goto LA4_;
4687 		T5_ = NIM_NIL;
4688 		T5_ = skipTypes__ast_3735((*n).typ, TM__PpBJsMJcrcWrpLTS6mci1g_167);
4689 		T3_ = ((*T5_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*T5_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*T5_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
4690 		LA4_: ;
4691 		if (!T3_) goto LA6_;
4692 		k = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11);
4693 	}
4694 	LA6_: ;
4695 	switch (k) {
4696 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5):
4697 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
4698 	{
4699 		result = toInt128__int495056_556(((NU64) ((*n)._kind_1.intVal)));
4700 	}
4701 	break;
4702 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
4703 	{
4704 		result = toInt128__int495056_725((*n)._kind_1.intVal);
4705 	}
4706 	break;
4707 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
4708 	{
4709 		result = Zero__int495056_7;
4710 	}
4711 	break;
4712 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
4713 	{
4714 		result = getOrdValue__types_161((*n)._kind_6.sons->data[((NI) 1)], onError);
4715 	}
4716 	break;
4717 	default:
4718 	{
4719 		result = onError;
4720 	}
4721 	break;
4722 	}
4723 	return result;
4724 }
N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA,toInt128__types_1378)4725 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__types_1378)(NI arg) {
4726 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
4727 	NI64 tmp;
4728 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
4729 	tmp = ((NI64) (arg));
4730 	result.udata[(((NI) 0))- 0] = ((NU32) ((NI64)(tmp & IL64(4294967295))));
4731 	(*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = ((NI32) ((NI64)((NI64)(tmp) >> (NU64)(((NI) 32)))));
4732 	{
4733 		if (!(arg < ((NI) 0))) goto LA3_;
4734 		(*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1);
4735 		(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1);
4736 	}
4737 	LA3_: ;
4738 	return result;
4739 }
N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA,firstOrd__types_1353)4740 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__types_1353)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
4741 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
4742 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
4743 	switch ((*t).kind) {
4744 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
4745 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
4746 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
4747 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
4748 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
4749 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
4750 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
4751 	{
4752 		result = Zero__int495056_7;
4753 	}
4754 	break;
4755 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
4756 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
4757 	{
4758 		result = firstOrd__types_1353(conf, (*t).sons->data[((NI) 0)]);
4759 	}
4760 	break;
4761 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
4762 	{
4763 		result = firstOrd__types_1353(conf, (*t).sons->data[((NI) 0)]);
4764 	}
4765 	break;
4766 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
4767 	{
4768 		result = getOrdValue__types_161((*(*t).n)._kind_6.sons->data[((NI) 0)], Max__int495056_27);
4769 	}
4770 	break;
4771 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
4772 	{
4773 		{
4774 			NIM_BOOL T8_;
4775 			T8_ = (NIM_BOOL)0;
4776 			T8_ = !((conf == ((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL)));
4777 			if (!(T8_)) goto LA9_;
4778 			T8_ = ((*conf).target.intSize == ((NI) 4));
4779 			LA9_: ;
4780 			if (!T8_) goto LA10_;
4781 			result = toInt128__types_1378(((NI) (-2147483647 -1)));
4782 		}
4783 		goto LA6_;
4784 		LA10_: ;
4785 		{
4786 			result = toInt128__int495056_725((IL64(-9223372036854775807) - IL64(1)));
4787 		}
4788 		LA6_: ;
4789 	}
4790 	break;
4791 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32):
4792 	{
4793 		result = toInt128__types_1378(((NI) -128));
4794 	}
4795 	break;
4796 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33):
4797 	{
4798 		result = toInt128__types_1378(((NI) -32768));
4799 	}
4800 	break;
4801 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34):
4802 	{
4803 		result = toInt128__types_1378(((NI) (-2147483647 -1)));
4804 	}
4805 	break;
4806 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
4807 	{
4808 		result = toInt128__int495056_725((IL64(-9223372036854775807) - IL64(1)));
4809 	}
4810 	break;
4811 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
4812 	{
4813 		result = Zero__int495056_7;
4814 	}
4815 	break;
4816 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
4817 	{
4818 		{
4819 			NIM_BOOL T21_;
4820 			NI T22_;
4821 			T21_ = (NIM_BOOL)0;
4822 			T22_ = (NI)0;
4823 			T22_ = len__ast_4002(t);
4824 			T21_ = (((NI) 0) < T22_);
4825 			if (!(T21_)) goto LA23_;
4826 			T21_ = !(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
4827 			LA23_: ;
4828 			if (!T21_) goto LA24_;
4829 			result = firstOrd__types_1353(conf, (*t).sons->data[((NI) 0)]);
4830 		}
4831 		goto LA19_;
4832 		LA24_: ;
4833 		{
4834 			{
4835 				NI T29_;
4836 				T29_ = (NI)0;
4837 				T29_ = len__ast_3198((*t).n);
4838 				if (!(((NI) 0) < T29_)) goto LA30_;
4839 				result = toInt128__types_1378((*(*(*(*t).n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).position);
4840 			}
4841 			LA30_: ;
4842 		}
4843 		LA19_: ;
4844 	}
4845 	break;
4846 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
4847 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
4848 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
4849 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
4850 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
4851 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
4852 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
4853 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
4854 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
4855 	{
4856 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T33_;
4857 		T33_ = NIM_NIL;
4858 		T33_ = lastSon__ast_3743(t);
4859 		result = firstOrd__types_1353(conf, T33_);
4860 	}
4861 	break;
4862 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
4863 	{
4864 		{
4865 			NI T37_;
4866 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T40_;
4867 			T37_ = (NI)0;
4868 			T37_ = len__ast_4002(t);
4869 			if (!(((NI) 0) < T37_)) goto LA38_;
4870 			T40_ = NIM_NIL;
4871 			T40_ = lastSon__ast_3743(t);
4872 			result = firstOrd__types_1353(conf, T40_);
4873 		}
4874 		goto LA35_;
4875 		LA38_: ;
4876 		{
4877 			NimStringDesc* T42_;
4878 			T42_ = NIM_NIL;
4879 			T42_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 27);
4880 appendString(T42_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_168));
4881 appendString(T42_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
4882 appendChar(T42_, 41);
4883 			internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, T42_, TM__PpBJsMJcrcWrpLTS6mci1g_169);
4884 		}
4885 		LA35_: ;
4886 	}
4887 	break;
4888 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
4889 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
4890 	{
4891 		result = Zero__int495056_7;
4892 	}
4893 	break;
4894 	default:
4895 	{
4896 		NimStringDesc* T45_;
4897 		T45_ = NIM_NIL;
4898 		T45_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 27);
4899 appendString(T45_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_168));
4900 appendString(T45_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
4901 appendChar(T45_, 41);
4902 		internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, T45_, TM__PpBJsMJcrcWrpLTS6mci1g_171);
4903 		result = Zero__int495056_7;
4904 	}
4905 	break;
4906 	}
4907 	return result;
4908 }
N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA,toInt128__types_1474)4909 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__types_1474)(NU arg) {
4910 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
4911 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
4912 	result.udata[(((NI) 0))- 0] = ((NU32) ((NU)(arg & ((NU) IL64(4294967295)))));
4913 	result.udata[(((NI) 1))- 0] = ((NU32) ((NU)((NU64)(arg) >> (NU64)(((NI) 32)))));
4914 	return result;
4915 }
N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA,lastOrd__types_1470)4916 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__types_1470)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
4917 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
4918 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
4919 	switch ((*t).kind) {
4920 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
4921 	{
4922 		result = toInt128__types_1474(((NU) 1));
4923 	}
4924 	break;
4925 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
4926 	{
4927 		result = toInt128__types_1474(((NU) 255));
4928 	}
4929 	break;
4930 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
4931 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
4932 	{
4933 		result = lastOrd__types_1470(conf, (*t).sons->data[((NI) 0)]);
4934 	}
4935 	break;
4936 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
4937 	{
4938 		result = lastOrd__types_1470(conf, (*t).sons->data[((NI) 0)]);
4939 	}
4940 	break;
4941 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
4942 	{
4943 		result = getOrdValue__types_161((*(*t).n)._kind_6.sons->data[((NI) 1)], Max__int495056_27);
4944 	}
4945 	break;
4946 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
4947 	{
4948 		{
4949 			NIM_BOOL T9_;
4950 			T9_ = (NIM_BOOL)0;
4951 			T9_ = !((conf == ((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL)));
4952 			if (!(T9_)) goto LA10_;
4953 			T9_ = ((*conf).target.intSize == ((NI) 4));
4954 			LA10_: ;
4955 			if (!T9_) goto LA11_;
4956 			result = toInt128__types_1378(((NI) 2147483647));
4957 		}
4958 		goto LA7_;
4959 		LA11_: ;
4960 		{
4961 			result = toInt128__int495056_556(9223372036854775807ULL);
4962 		}
4963 		LA7_: ;
4964 	}
4965 	break;
4966 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32):
4967 	{
4968 		result = toInt128__types_1378(((NI) 127));
4969 	}
4970 	break;
4971 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33):
4972 	{
4973 		result = toInt128__types_1378(((NI) 32767));
4974 	}
4975 	break;
4976 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34):
4977 	{
4978 		result = toInt128__types_1378(((NI) 2147483647));
4979 	}
4980 	break;
4981 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
4982 	{
4983 		result = toInt128__int495056_556(9223372036854775807ULL);
4984 	}
4985 	break;
4986 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40):
4987 	{
4988 		{
4989 			NIM_BOOL T21_;
4990 			T21_ = (NIM_BOOL)0;
4991 			T21_ = !((conf == ((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL)));
4992 			if (!(T21_)) goto LA22_;
4993 			T21_ = ((*conf).target.intSize == ((NI) 4));
4994 			LA22_: ;
4995 			if (!T21_) goto LA23_;
4996 			result = toInt128__int495056_725(IL64(4294967295));
4997 		}
4998 		goto LA19_;
4999 		LA23_: ;
5000 		{
5001 			result = toInt128__int495056_556(18446744073709551615ULL);
5002 		}
5003 		LA19_: ;
5004 	}
5005 	break;
5006 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41):
5007 	{
5008 		result = toInt128__types_1378(((NI) 255));
5009 	}
5010 	break;
5011 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42):
5012 	{
5013 		result = toInt128__types_1378(((NI) 65535));
5014 	}
5015 	break;
5016 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
5017 	{
5018 		result = toInt128__int495056_725(IL64(4294967295));
5019 	}
5020 	break;
5021 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
5022 	{
5023 		result = toInt128__int495056_556(18446744073709551615ULL);
5024 	}
5025 	break;
5026 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
5027 	{
5028 		{
5029 			NI T33_;
5030 			NI T36_;
5031 			T33_ = (NI)0;
5032 			T33_ = len__ast_3198((*t).n);
5033 			if (!(((NI) 0) < T33_)) goto LA34_;
5034 			T36_ = (NI)0;
5035 			T36_ = len__ast_3198((*t).n);
5036 			result = toInt128__types_1378((*(*(*(*t).n)._kind_6.sons->data[(NI)(T36_ - ((NI) 1))])._kind_4.sym).position);
5037 		}
5038 		LA34_: ;
5039 	}
5040 	break;
5041 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
5042 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
5043 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
5044 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
5045 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
5046 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
5047 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
5048 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
5049 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
5050 	{
5051 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T38_;
5052 		T38_ = NIM_NIL;
5053 		T38_ = lastSon__ast_3743(t);
5054 		result = lastOrd__types_1470(conf, T38_);
5055 	}
5056 	break;
5057 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
5058 	{
5059 		result = Zero__int495056_7;
5060 	}
5061 	break;
5062 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
5063 	{
5064 		{
5065 			NI T43_;
5066 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T46_;
5067 			T43_ = (NI)0;
5068 			T43_ = len__ast_4002(t);
5069 			if (!(((NI) 0) < T43_)) goto LA44_;
5070 			T46_ = NIM_NIL;
5071 			T46_ = lastSon__ast_3743(t);
5072 			result = lastOrd__types_1470(conf, T46_);
5073 		}
5074 		goto LA41_;
5075 		LA44_: ;
5076 		{
5077 			NimStringDesc* T48_;
5078 			T48_ = NIM_NIL;
5079 			T48_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 26);
5080 appendString(T48_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_172));
5081 appendString(T48_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
5082 appendChar(T48_, 41);
5083 			internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, T48_, TM__PpBJsMJcrcWrpLTS6mci1g_173);
5084 		}
5085 		LA41_: ;
5086 	}
5087 	break;
5088 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
5089 	{
5090 		result = Zero__int495056_7;
5091 	}
5092 	break;
5093 	default:
5094 	{
5095 		NimStringDesc* T51_;
5096 		T51_ = NIM_NIL;
5097 		T51_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 26);
5098 appendString(T51_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_172));
5099 appendString(T51_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
5100 appendChar(T51_, 41);
5101 		internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, T51_, TM__PpBJsMJcrcWrpLTS6mci1g_174);
5102 		result = Zero__int495056_7;
5103 	}
5104 	break;
5105 	}
5106 	return result;
5107 }
N_NIMCALL(NF,getFloatValue__types_182)5108 N_LIB_PRIVATE N_NIMCALL(NF, getFloatValue__types_182)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
5109 	NF result;
5110 	result = (NF)0;
5111 	switch ((*n).kind) {
5112 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 19):
5113 	{
5114 		result = (*n)._kind_2.floatVal;
5115 	}
5116 	break;
5117 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
5118 	{
5119 		result = getFloatValue__types_182((*n)._kind_6.sons->data[((NI) 1)]);
5120 	}
5121 	break;
5122 	default:
5123 	{
5124 		result = NAN;
5125 	}
5126 	break;
5127 	}
5128 	return result;
5129 }
N_NIMCALL(NF,firstFloat__types_1445)5130 N_LIB_PRIVATE N_NIMCALL(NF, firstFloat__types_1445)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
5131 	NF result;
5132 	result = (NF)0;
5133 	switch ((*t).kind) {
5134 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
5135 	{
5136 		result = -INF;
5137 	}
5138 	break;
5139 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
5140 	{
5141 		result = getFloatValue__types_182((*(*t).n)._kind_6.sons->data[((NI) 0)]);
5142 	}
5143 	break;
5144 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
5145 	{
5146 		result = firstFloat__types_1445((*t).sons->data[((NI) 0)]);
5147 	}
5148 	break;
5149 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
5150 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
5151 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
5152 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
5153 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
5154 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
5155 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
5156 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
5157 	{
5158 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
5159 		T5_ = NIM_NIL;
5160 		T5_ = lastSon__ast_3743(t);
5161 		result = firstFloat__types_1445(T5_);
5162 	}
5163 	break;
5164 	default:
5165 	{
5166 		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T7_;
5167 		NimStringDesc* T8_;
5168 		T7_ = NIM_NIL;
5169 		T7_ = newPartialConfigRef__options_2497();
5170 		T8_ = NIM_NIL;
5171 		T8_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 29);
5172 appendString(T8_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_175));
5173 appendString(T8_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
5174 appendChar(T8_, 41);
5175 		internalErrorImpl__msgs_1431(T7_, unknownLineInfo__lineinfos_280, T8_, TM__PpBJsMJcrcWrpLTS6mci1g_176);
5176 		result = NAN;
5177 	}
5178 	break;
5179 	}
5180 	return result;
5181 }
N_NIMCALL(NF,lastFloat__types_1588)5182 N_LIB_PRIVATE N_NIMCALL(NF, lastFloat__types_1588)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
5183 	NF result;
5184 	result = (NF)0;
5185 	switch ((*t).kind) {
5186 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
5187 	{
5188 		result = INF;
5189 	}
5190 	break;
5191 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
5192 	{
5193 		result = lastFloat__types_1588((*t).sons->data[((NI) 0)]);
5194 	}
5195 	break;
5196 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
5197 	{
5198 		result = getFloatValue__types_182((*(*t).n)._kind_6.sons->data[((NI) 1)]);
5199 	}
5200 	break;
5201 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
5202 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
5203 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
5204 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
5205 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
5206 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
5207 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
5208 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
5209 	{
5210 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
5211 		T5_ = NIM_NIL;
5212 		T5_ = lastSon__ast_3743(t);
5213 		result = lastFloat__types_1588(T5_);
5214 	}
5215 	break;
5216 	default:
5217 	{
5218 		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T7_;
5219 		NimStringDesc* T8_;
5220 		T7_ = NIM_NIL;
5221 		T7_ = newPartialConfigRef__options_2497();
5222 		T8_ = NIM_NIL;
5223 		T8_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 28);
5224 appendString(T8_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_177));
5225 appendString(T8_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
5226 appendChar(T8_, 41);
5227 		internalErrorImpl__msgs_1431(T7_, unknownLineInfo__lineinfos_280, T8_, TM__PpBJsMJcrcWrpLTS6mci1g_178);
5228 		result = NAN;
5229 	}
5230 	break;
5231 	}
5232 	return result;
5233 }
N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA,lengthOrd__types_1661)5234 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__types_1661)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
5235 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
5236 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
5237 	{
5238 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T3_;
5239 		T3_ = NIM_NIL;
5240 		T3_ = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_179);
5241 		if (!((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA4_;
5242 		result = lengthOrd__types_1661(conf, (*t).sons->data[((NI) 0)]);
5243 	}
5244 	goto LA1_;
5245 	LA4_: ;
5246 	{
5247 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA last;
5248 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA first;
5249 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T7_;
5250 		last = lastOrd__types_1470(conf, t);
5251 		first = firstOrd__types_1353(conf, t);
5252 		T7_ = minus___int495056_474(last, first);
5253 		result = plus___int495056_448(T7_, One__int495056_8);
5254 	}
5255 	LA1_: ;
5256 	return result;
5257 }
N_NIMCALL(tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA,getProcConvMismatch__types_3695)5258 N_LIB_PRIVATE N_NIMCALL(tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA, getProcConvMismatch__types_3695)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw rel) {
5259 	tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA result;
5260 	nimZeroMem((void*)(&result), sizeof(tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA));
5261 	result.Field1 = rel;
5262 	{
5263 		NIM_BOOL T3_;
5264 		T3_ = (NIM_BOOL)0;
5265 		T3_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0);
5266 		if (!(T3_)) goto LA4_;
5267 		T3_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0));
5268 		LA4_: ;
5269 		if (!T3_) goto LA5_;
5270 		result.Field0 |= ((NU8)1)<<((((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 0)) & 7);
5271 		result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5272 	}
5273 	LA5_: ;
5274 	{
5275 		NIM_BOOL T9_;
5276 		NIM_BOOL T10_;
5277 		T9_ = (NIM_BOOL)0;
5278 		T10_ = (NIM_BOOL)0;
5279 		T10_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 7))&63U)))!=0);
5280 		if (!(T10_)) goto LA11_;
5281 		T10_ = (((*a).flags & 130) == 0);
5282 		LA11_: ;
5283 		T9_ = T10_;
5284 		if (!(T9_)) goto LA12_;
5285 		T9_ = (((*c).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 25))&63U)))!=0);
5286 		LA12_: ;
5287 		if (!T9_) goto LA13_;
5288 		result.Field0 |= ((NU8)1)<<((((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 1)) & 7);
5289 		result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5290 	}
5291 	LA13_: ;
5292 	{
5293 		if (!!((((*f).flags & 32768) == ((*a).flags & 32768)))) goto LA17_;
5294 		result.Field0 |= ((NU8)1)<<((((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 3)) & 7);
5295 		result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5296 	}
5297 	LA17_: ;
5298 	{
5299 		if (!!(((*f).callConv == (*a).callConv))) goto LA21_;
5300 		{
5301 			NIM_BOOL T25_;
5302 			T25_ = (NIM_BOOL)0;
5303 			T25_ = ((*f).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
5304 			if (!(T25_)) goto LA26_;
5305 			T25_ = ((*a).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 0));
5306 			LA26_: ;
5307 			if (!T25_) goto LA27_;
5308 			switch (result.Field1) {
5309 			case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 6):
5310 			{
5311 				result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 7);
5312 			}
5313 			break;
5314 			case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 5):
5315 			{
5316 				result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 5);
5317 			}
5318 			break;
5319 			default:
5320 			{
5321 				{
5322 					if (!!((result.Field1 == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA34_;
5323 					result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
5324 				}
5325 				LA34_: ;
5326 			}
5327 			break;
5328 			}
5329 		}
5330 		goto LA23_;
5331 		LA27_: ;
5332 		{
5333 			result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5334 			result.Field0 |= ((NU8)1)<<((((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 4)) & 7);
5335 		}
5336 		LA23_: ;
5337 	}
5338 	LA21_: ;
5339 	{
5340 		NIM_BOOL T39_;
5341 		T39_ = (NIM_BOOL)0;
5342 		T39_ = !(((*f).lockLevel == ((NI) -1)));
5343 		if (!(T39_)) goto LA40_;
5344 		T39_ = !(((*a).lockLevel == ((NI) -1)));
5345 		LA40_: ;
5346 		if (!T39_) goto LA41_;
5347 		result.Field0 |= ((NU8)1)<<((((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 2)) & 7);
5348 	}
5349 	LA41_: ;
5350 	return result;
5351 }
N_INLINE(NI,safeLen__ast_3191)5352 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
5353 	NI result;
5354 	result = (NI)0;
5355 	{
5356 		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
5357 		result = ((NI) 0);
5358 	}
5359 	goto LA1_;
5360 	LA3_: ;
5361 	{
5362 		result = len__ast_3198(n);
5363 	}
5364 	LA1_: ;
5365 	return result;
5366 }
N_NIMCALL(NIM_BOOL,compatibleEffectsAux__types_3404)5367 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compatibleEffectsAux__types_3404)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* se, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* re) {
5368 	NIM_BOOL result;
5369 {	result = (NIM_BOOL)0;
5370 	{
5371 		if (!(re == 0)) goto LA3_;
5372 		result = NIM_FALSE;
5373 		goto BeforeRet_;
5374 	}
5375 	LA3_: ;
5376 	{
5377 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
5378 		r = NIM_NIL;
5379 		{
5380 			NI i;
5381 			NI colontmp_;
5382 			NI i_2;
5383 			i = (NI)0;
5384 			colontmp_ = (NI)0;
5385 			colontmp_ = safeLen__ast_3191(re);
5386 			i_2 = ((NI) 0);
5387 			{
5388 				while (1) {
5389 					if (!(i_2 < colontmp_)) goto LA8;
5390 					i = i_2;
5391 					r = (*re)._kind_6.sons->data[i];
5392 					{
5393 						{
5394 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
5395 							s = NIM_NIL;
5396 							{
5397 								NI i_3;
5398 								NI colontmp__2;
5399 								NI i_4;
5400 								i_3 = (NI)0;
5401 								colontmp__2 = (NI)0;
5402 								colontmp__2 = safeLen__ast_3191(se);
5403 								i_4 = ((NI) 0);
5404 								{
5405 									while (1) {
5406 										if (!(i_4 < colontmp__2)) goto LA13;
5407 										i_3 = i_4;
5408 										s = (*se)._kind_6.sons->data[i_3];
5409 										{
5410 											NI T16_;
5411 											T16_ = (NI)0;
5412 											T16_ = safeInheritanceDiff__types_3392((*r).typ, (*s).typ);
5413 											if (!(T16_ <= ((NI) 0))) goto LA17_;
5414 											goto LA9;
5415 										}
5416 										LA17_: ;
5417 										i_4 += ((NI) 1);
5418 									} LA13: ;
5419 								}
5420 							}
5421 						}
5422 						result = NIM_FALSE;
5423 						goto BeforeRet_;
5424 					} LA9: ;
5425 					i_2 += ((NI) 1);
5426 				} LA8: ;
5427 			}
5428 		}
5429 	}
5430 	result = NIM_TRUE;
5431 	}BeforeRet_: ;
5432 	return result;
5433 }
N_NIMCALL(tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ,compatibleEffects__types_3425)5434 N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ, compatibleEffects__types_3425)(tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual) {
5435 	tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ result;
5436 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* spec;
5437 {	result = (tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ)0;
5438 	{
5439 		NIM_BOOL T3_;
5440 		T3_ = (NIM_BOOL)0;
5441 		T3_ = !(((*(*(*formal).n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)));
5442 		if (T3_) goto LA4_;
5443 		T3_ = !(((*(*(*actual).n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)));
5444 		LA4_: ;
5445 		if (!T3_) goto LA5_;
5446 		result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 4);
5447 		goto BeforeRet_;
5448 	}
5449 	LA5_: ;
5450 	spec = (*(*formal).n)._kind_6.sons->data[((NI) 0)];
5451 	{
5452 		NI T9_;
5453 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* real;
5454 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* se;
5455 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st;
5456 		T9_ = (NI)0;
5457 		T9_ = len__ast_3198(spec);
5458 		if (!!((T9_ == ((NI) 0)))) goto LA10_;
5459 		real = (*(*actual).n)._kind_6.sons->data[((NI) 0)];
5460 		se = (*spec)._kind_6.sons->data[((NI) 0)];
5461 		{
5462 			NIM_BOOL T14_;
5463 			NIM_BOOL res;
5464 			T14_ = (NIM_BOOL)0;
5465 			T14_ = !((se == 0));
5466 			if (!(T14_)) goto LA15_;
5467 			T14_ = !(((*se).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)));
5468 			LA15_: ;
5469 			if (!T14_) goto LA16_;
5470 			{
5471 				NI T20_;
5472 				T20_ = (NI)0;
5473 				T20_ = len__ast_3198(real);
5474 				if (!(T20_ == ((NI) 0))) goto LA21_;
5475 				result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 2);
5476 				goto BeforeRet_;
5477 			}
5478 			LA21_: ;
5479 			res = compatibleEffectsAux__types_3404(se, (*real)._kind_6.sons->data[((NI) 0)]);
5480 			{
5481 				if (!!(res)) goto LA25_;
5482 				result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 1);
5483 				goto BeforeRet_;
5484 			}
5485 			LA25_: ;
5486 		}
5487 		LA16_: ;
5488 		st = (*spec)._kind_6.sons->data[((NI) 3)];
5489 		{
5490 			NIM_BOOL T29_;
5491 			NIM_BOOL res_2;
5492 			T29_ = (NIM_BOOL)0;
5493 			T29_ = !((st == 0));
5494 			if (!(T29_)) goto LA30_;
5495 			T29_ = !(((*st).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)));
5496 			LA30_: ;
5497 			if (!T29_) goto LA31_;
5498 			{
5499 				NI T35_;
5500 				T35_ = (NI)0;
5501 				T35_ = len__ast_3198(real);
5502 				if (!(T35_ == ((NI) 0))) goto LA36_;
5503 				result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 4);
5504 				goto BeforeRet_;
5505 			}
5506 			LA36_: ;
5507 			res_2 = compatibleEffectsAux__types_3404(st, (*real)._kind_6.sons->data[((NI) 3)]);
5508 			{
5509 				if (!!(res_2)) goto LA40_;
5510 				result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 3);
5511 				goto BeforeRet_;
5512 			}
5513 			LA40_: ;
5514 		}
5515 		LA31_: ;
5516 	}
5517 	LA10_: ;
5518 	{
5519 		NIM_BOOL T44_;
5520 		T44_ = (NIM_BOOL)0;
5521 		T44_ = ((*formal).lockLevel < ((NI) 0));
5522 		if (T44_) goto LA45_;
5523 		T44_ = ((*actual).lockLevel <= (*formal).lockLevel);
5524 		LA45_: ;
5525 		if (!T44_) goto LA46_;
5526 		{
5527 			NI i;
5528 			NI colontmp_;
5529 			NI T49_;
5530 			NI T50_;
5531 			NI i_2;
5532 			i = (NI)0;
5533 			colontmp_ = (NI)0;
5534 			T49_ = (NI)0;
5535 			T49_ = len__ast_3198((*formal).n);
5536 			T50_ = (NI)0;
5537 			T50_ = len__ast_3198((*actual).n);
5538 			colontmp_ = ((T49_ <= T50_) ? T49_ : T50_);
5539 			i_2 = ((NI) 1);
5540 			{
5541 				while (1) {
5542 					if (!(i_2 < colontmp_)) goto LA52;
5543 					i = i_2;
5544 					{
5545 						if (!!((((*(*(*(*formal).n)._kind_6.sons->data[i])._kind_4.sym).flags & IL64(140737488355328)) == ((*(*(*(*actual).n)._kind_6.sons->data[i])._kind_4.sym).flags & IL64(140737488355328))))) goto LA55_;
5546 						result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 6);
5547 						goto LA48;
5548 					}
5549 					LA55_: ;
5550 					i_2 += ((NI) 1);
5551 				} LA52: ;
5552 			}
5553 		} LA48: ;
5554 		result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 0);
5555 	}
5556 	goto LA42_;
5557 	LA46_: ;
5558 	{
5559 		result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 5);
5560 	}
5561 	LA42_: ;
5562 	}BeforeRet_: ;
5563 	return result;
5564 }
N_NIMCALL(NIM_BOOL,isEmptyContainer__types_3626)5565 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_3626)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
5566 	NIM_BOOL result;
5567 	result = (NIM_BOOL)0;
5568 	switch ((*t).kind) {
5569 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
5570 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
5571 	{
5572 		result = NIM_TRUE;
5573 	}
5574 	break;
5575 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
5576 	{
5577 		result = ((*(*t).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
5578 	}
5579 	break;
5580 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
5581 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
5582 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
5583 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
5584 	{
5585 		result = ((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
5586 	}
5587 	break;
5588 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
5589 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
5590 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
5591 	{
5592 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
5593 		T5_ = NIM_NIL;
5594 		T5_ = lastSon__ast_3743(t);
5595 		result = isEmptyContainer__types_3626(T5_);
5596 	}
5597 	break;
5598 	default:
5599 	{
5600 		result = NIM_FALSE;
5601 	}
5602 	break;
5603 	}
5604 	return result;
5605 }
N_NIMCALL(NimStringDesc *,getProcHeader__types_222)5606 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getProcHeader__types_222)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, NIM_BOOL getDeclarationPath) {
5607 	NimStringDesc* result;
5608 	NimStringDesc* T1_;
5609 	result = NIM_NIL;
5610 	T1_ = NIM_NIL;
5611 	T1_ = rawNewString(((*(*(*sym).owner).name).s ? (*(*(*sym).owner).name).s->Sup.len : 0) + ((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + 1);
5612 appendString(T1_, (*(*(*sym).owner).name).s);
5613 appendChar(T1_, 46);
5614 appendString(T1_, (*(*sym).name).s);
5615 	result = T1_;
5616 	{
5617 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
5618 		if (!((520192 &((NU32)1<<((NU)((*sym).kind)&31U)))!=0)) goto LA4_;
5619 		result = addChar(result, 40);
5620 		n = (*(*sym).typ).n;
5621 		{
5622 			NI i;
5623 			NI colontmp_;
5624 			NI i_2;
5625 			i = (NI)0;
5626 			colontmp_ = (NI)0;
5627 			colontmp_ = len__ast_3198(n);
5628 			i_2 = ((NI) 1);
5629 			{
5630 				while (1) {
5631 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
5632 					if (!(i_2 < colontmp_)) goto LA8;
5633 					i = i_2;
5634 					p = (*n)._kind_6.sons->data[i];
5635 					{
5636 						NimStringDesc* T13_;
5637 						if (!((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA11_;
5638 						result = resizeString(result, ((*(*(*p)._kind_4.sym).name).s ? (*(*(*p)._kind_4.sym).name).s->Sup.len : 0) + 0);
5639 appendString(result, (*(*(*p)._kind_4.sym).name).s);
5640 						result = resizeString(result, 2);
5641 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_83));
5642 						T13_ = NIM_NIL;
5643 						T13_ = typeToString__types_50((*(*p)._kind_4.sym).typ, prefer);
5644 						result = resizeString(result, (T13_ ? T13_->Sup.len : 0) + 0);
5645 appendString(result, T13_);
5646 						{
5647 							NI T16_;
5648 							T16_ = (NI)0;
5649 							T16_ = len__ast_3198(n);
5650 							if (!!((i == (NI)(T16_ - ((NI) 1))))) goto LA17_;
5651 							result = resizeString(result, 2);
5652 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
5653 						}
5654 						LA17_: ;
5655 					}
5656 					goto LA9_;
5657 					LA11_: ;
5658 					{
5659 						NimStringDesc* T20_;
5660 						T20_ = NIM_NIL;
5661 						T20_ = renderTree__renderer_46(p, 0);
5662 						result = resizeString(result, (T20_ ? T20_->Sup.len : 0) + 0);
5663 appendString(result, T20_);
5664 					}
5665 					LA9_: ;
5666 					i_2 += ((NI) 1);
5667 				} LA8: ;
5668 			}
5669 		}
5670 		result = addChar(result, 41);
5671 		{
5672 			NimStringDesc* T25_;
5673 			NimStringDesc* T26_;
5674 			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA23_;
5675 			T25_ = NIM_NIL;
5676 			T26_ = NIM_NIL;
5677 			T26_ = typeToString__types_50((*(*n)._kind_6.sons->data[((NI) 0)]).typ, prefer);
5678 			T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + 2);
5679 appendString(T25_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_83));
5680 appendString(T25_, T26_);
5681 			result = resizeString(result, (T25_ ? T25_->Sup.len : 0) + 0);
5682 appendString(result, T25_);
5683 		}
5684 		LA23_: ;
5685 	}
5686 	LA4_: ;
5687 	{
5688 		if (!getDeclarationPath) goto LA29_;
5689 		addDeclaredLoc__astmsgs_17((&result), conf, sym);
5690 	}
5691 	LA29_: ;
5692 	return result;
5693 }
N_NIMCALL(NIM_BOOL,canFormAcycleNode__types_665)5694 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycleNode__types_665)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI startId) {
5695 	NIM_BOOL result;
5696 {	result = (NIM_BOOL)0;
5697 	result = NIM_FALSE;
5698 	{
5699 		if (!!((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
5700 		result = canFormAcycleAux__types_661(marker, (*n).typ, startId);
5701 		{
5702 			if (!!(result)) goto LA7_;
5703 			switch ((*n).kind) {
5704 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
5705 			{
5706 			}
5707 			break;
5708 			default:
5709 			{
5710 				{
5711 					NI i;
5712 					NI colontmp_;
5713 					NI i_2;
5714 					i = (NI)0;
5715 					colontmp_ = (NI)0;
5716 					colontmp_ = len__ast_3198(n);
5717 					i_2 = ((NI) 0);
5718 					{
5719 						while (1) {
5720 							if (!(i_2 < colontmp_)) goto LA13;
5721 							i = i_2;
5722 							result = canFormAcycleNode__types_665(marker, (*n)._kind_6.sons->data[i], startId);
5723 							{
5724 								if (!result) goto LA16_;
5725 								goto BeforeRet_;
5726 							}
5727 							LA16_: ;
5728 							i_2 += ((NI) 1);
5729 						} LA13: ;
5730 					}
5731 				}
5732 			}
5733 			break;
5734 			}
5735 		}
5736 		LA7_: ;
5737 	}
5738 	LA3_: ;
5739 	}BeforeRet_: ;
5740 	return result;
5741 }
N_NIMCALL(NIM_BOOL,canFormAcycleAux__types_661)5742 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycleAux__types_661)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, NI startId) {
5743 	NIM_BOOL result;
5744 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
5745 {	result = (NIM_BOOL)0;
5746 	result = NIM_FALSE;
5747 	{
5748 		if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
5749 		goto BeforeRet_;
5750 	}
5751 	LA3_: ;
5752 	{
5753 		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 39))&63U)))!=0)) goto LA7_;
5754 		goto BeforeRet_;
5755 	}
5756 	LA7_: ;
5757 	t = skipTypes__ast_3735(typ, TM__PpBJsMJcrcWrpLTS6mci1g_180);
5758 	{
5759 		if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 39))&63U)))!=0)) goto LA11_;
5760 		goto BeforeRet_;
5761 	}
5762 	LA11_: ;
5763 	switch ((*t).kind) {
5764 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
5765 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
5766 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
5767 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
5768 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
5769 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
5770 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
5771 	{
5772 		{
5773 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym73_;
5774 			xX60gensym73_ = t;
5775 			if (!((NI)((NI)((NU64)(((NI) ((*xX60gensym73_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym73_).Sup.itemId.item))) == startId)) goto LA16_;
5776 			result = NIM_TRUE;
5777 		}
5778 		goto LA14_;
5779 		LA16_: ;
5780 		{
5781 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym74_;
5782 			NIM_BOOL T19_;
5783 			xX60gensym74_ = t;
5784 			T19_ = (NIM_BOOL)0;
5785 			T19_ = containsOrIncl__astalgo_402(marker, (NI)((NI)((NU64)(((NI) ((*xX60gensym74_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym74_).Sup.itemId.item))));
5786 			if (!!(T19_)) goto LA20_;
5787 			{
5788 				NI i;
5789 				NI colontmp_;
5790 				NI i_2;
5791 				i = (NI)0;
5792 				colontmp_ = (NI)0;
5793 				colontmp_ = len__ast_4002(t);
5794 				i_2 = ((NI) 0);
5795 				{
5796 					while (1) {
5797 						if (!(i_2 < colontmp_)) goto LA24;
5798 						i = i_2;
5799 						result = canFormAcycleAux__types_661(marker, (*t).sons->data[i], startId);
5800 						{
5801 							if (!result) goto LA27_;
5802 							goto BeforeRet_;
5803 						}
5804 						LA27_: ;
5805 						i_2 += ((NI) 1);
5806 					} LA24: ;
5807 				}
5808 			}
5809 			{
5810 				if (!!(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA31_;
5811 				result = canFormAcycleNode__types_665(marker, (*t).n, startId);
5812 			}
5813 			LA31_: ;
5814 		}
5815 		goto LA14_;
5816 		LA20_: ;
5817 		LA14_: ;
5818 		{
5819 			NIM_BOOL T35_;
5820 			T35_ = (NIM_BOOL)0;
5821 			T35_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
5822 			if (!(T35_)) goto LA36_;
5823 			T35_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0));
5824 			LA36_: ;
5825 			if (!T35_) goto LA37_;
5826 			result = NIM_TRUE;
5827 		}
5828 		LA37_: ;
5829 	}
5830 	break;
5831 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
5832 	{
5833 		result = ((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
5834 	}
5835 	break;
5836 	default:
5837 	{
5838 	}
5839 	break;
5840 	}
5841 	}BeforeRet_: ;
5842 	return result;
5843 }
N_NIMCALL(NIM_BOOL,canFormAcycle__types_762)5844 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycle__types_762)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
5845 	NIM_BOOL result;
5846 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
5847 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
5848 	tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym80_;
5849 	result = (NIM_BOOL)0;
5850 	nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
5851 	initIntSet__pureZcollectionsZintsets_238((&marker));
5852 	t = skipTypes__ast_3735(typ, TM__PpBJsMJcrcWrpLTS6mci1g_180);
5853 	xX60gensym80_ = t;
5854 	result = canFormAcycleAux__types_661((&marker), t, (NI)((NI)((NU64)(((NI) ((*xX60gensym80_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym80_).Sup.itemId.item))));
5855 	return result;
5856 }
N_NIMCALL(NIM_BOOL,isPureObject__types_132)5857 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isPureObject__types_132)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
5858 	NIM_BOOL result;
5859 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
5860 	NIM_BOOL T5_;
5861 	result = (NIM_BOOL)0;
5862 	t = typ;
5863 	{
5864 		while (1) {
5865 			NIM_BOOL T3_;
5866 			T3_ = (NIM_BOOL)0;
5867 			T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
5868 			if (!(T3_)) goto LA4_;
5869 			T3_ = !(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
5870 			LA4_: ;
5871 			if (!T3_) goto LA2;
5872 			t = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_5);
5873 		} LA2: ;
5874 	}
5875 	T5_ = (NIM_BOOL)0;
5876 	T5_ = !(((*t).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
5877 	if (!(T5_)) goto LA6_;
5878 	T5_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0);
5879 	LA6_: ;
5880 	result = T5_;
5881 	return result;
5882 }
N_NIMCALL(NIM_BOOL,isFinal__types_750)5883 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFinal__types_750)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
5884 	NIM_BOOL result;
5885 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
5886 	NIM_BOOL T1_;
5887 	NIM_BOOL T2_;
5888 	result = (NIM_BOOL)0;
5889 	t_2 = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_167);
5890 	T1_ = (NIM_BOOL)0;
5891 	T2_ = (NIM_BOOL)0;
5892 	T2_ = !(((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)));
5893 	if (T2_) goto LA3_;
5894 	T2_ = (((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
5895 	LA3_: ;
5896 	T1_ = T2_;
5897 	if (T1_) goto LA4_;
5898 	T1_ = isPureObject__types_132(t_2);
5899 	LA4_: ;
5900 	result = T1_;
5901 	return result;
5902 }
N_NIMCALL(NIM_BOOL,searchTypeNodeForAux__types_397)5903 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeNodeForAux__types_397)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyProc__NbBRo5rVxVVQby3QsoZkZQ p, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker) {
5904 	NIM_BOOL result;
5905 {	result = (NIM_BOOL)0;
5906 	result = NIM_FALSE;
5907 	switch ((*n).kind) {
5908 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
5909 	{
5910 		{
5911 			NI i;
5912 			NI colontmp_;
5913 			NI i_2;
5914 			i = (NI)0;
5915 			colontmp_ = (NI)0;
5916 			colontmp_ = len__ast_3198(n);
5917 			i_2 = ((NI) 0);
5918 			{
5919 				while (1) {
5920 					if (!(i_2 < colontmp_)) goto LA4;
5921 					i = i_2;
5922 					result = searchTypeNodeForAux__types_397((*n)._kind_6.sons->data[i], p, marker);
5923 					{
5924 						if (!result) goto LA7_;
5925 						goto BeforeRet_;
5926 					}
5927 					LA7_: ;
5928 					i_2 += ((NI) 1);
5929 				} LA4: ;
5930 			}
5931 		}
5932 	}
5933 	break;
5934 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
5935 	{
5936 		result = searchTypeNodeForAux__types_397((*n)._kind_6.sons->data[((NI) 0)], p, marker);
5937 		{
5938 			if (!result) goto LA12_;
5939 			goto BeforeRet_;
5940 		}
5941 		LA12_: ;
5942 		{
5943 			NI i_3;
5944 			NI colontmp__2;
5945 			NI i_4;
5946 			i_3 = (NI)0;
5947 			colontmp__2 = (NI)0;
5948 			colontmp__2 = len__ast_3198(n);
5949 			i_4 = ((NI) 1);
5950 			{
5951 				while (1) {
5952 					if (!(i_4 < colontmp__2)) goto LA16;
5953 					i_3 = i_4;
5954 					switch ((*(*n)._kind_6.sons->data[i_3]).kind) {
5955 					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
5956 					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
5957 					{
5958 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
5959 						T18_ = NIM_NIL;
5960 						T18_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_3]);
5961 						result = searchTypeNodeForAux__types_397(T18_, p, marker);
5962 						{
5963 							if (!result) goto LA21_;
5964 							goto BeforeRet_;
5965 						}
5966 						LA21_: ;
5967 					}
5968 					break;
5969 					default:
5970 					{
5971 					}
5972 					break;
5973 					}
5974 					i_4 += ((NI) 1);
5975 				} LA16: ;
5976 			}
5977 		}
5978 	}
5979 	break;
5980 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
5981 	{
5982 		result = searchTypeForAux__types_393((*(*n)._kind_4.sym).typ, p, marker);
5983 	}
5984 	break;
5985 	default:
5986 	{
5987 	}
5988 	break;
5989 	}
5990 	}BeforeRet_: ;
5991 	return result;
5992 }
N_NIMCALL(NIM_BOOL,searchTypeForAux__types_393)5993 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeForAux__types_393)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__NbBRo5rVxVVQby3QsoZkZQ predicate, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker) {
5994 	NIM_BOOL result;
5995 {	result = (NIM_BOOL)0;
5996 	result = NIM_FALSE;
5997 	{
5998 		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
5999 		goto BeforeRet_;
6000 	}
6001 	LA3_: ;
6002 	{
6003 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym50_;
6004 		NIM_BOOL T7_;
6005 		xX60gensym50_ = t;
6006 		T7_ = (NIM_BOOL)0;
6007 		T7_ = containsOrIncl__astalgo_402(marker, (NI)((NI)((NU64)(((NI) ((*xX60gensym50_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym50_).Sup.itemId.item))));
6008 		if (!T7_) goto LA8_;
6009 		goto BeforeRet_;
6010 	}
6011 	LA8_: ;
6012 	result = predicate(t);
6013 	{
6014 		if (!result) goto LA12_;
6015 		goto BeforeRet_;
6016 	}
6017 	LA12_: ;
6018 	switch ((*t).kind) {
6019 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
6020 	{
6021 		{
6022 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T19_;
6023 			if (!!(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA17_;
6024 			T19_ = NIM_NIL;
6025 			T19_ = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_5);
6026 			result = searchTypeForAux__types_393(T19_, predicate, marker);
6027 		}
6028 		LA17_: ;
6029 		{
6030 			if (!!(result)) goto LA22_;
6031 			result = searchTypeNodeForAux__types_397((*t).n, predicate, marker);
6032 		}
6033 		LA22_: ;
6034 	}
6035 	break;
6036 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
6037 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
6038 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
6039 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
6040 	{
6041 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T25_;
6042 		T25_ = NIM_NIL;
6043 		T25_ = lastSon__ast_3743(t);
6044 		result = searchTypeForAux__types_393(T25_, predicate, marker);
6045 	}
6046 	break;
6047 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
6048 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
6049 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
6050 	{
6051 		{
6052 			NI i;
6053 			NI colontmp_;
6054 			NI i_2;
6055 			i = (NI)0;
6056 			colontmp_ = (NI)0;
6057 			colontmp_ = len__ast_4002(t);
6058 			i_2 = ((NI) 0);
6059 			{
6060 				while (1) {
6061 					if (!(i_2 < colontmp_)) goto LA29;
6062 					i = i_2;
6063 					result = searchTypeForAux__types_393((*t).sons->data[i], predicate, marker);
6064 					{
6065 						if (!result) goto LA32_;
6066 						goto BeforeRet_;
6067 					}
6068 					LA32_: ;
6069 					i_2 += ((NI) 1);
6070 				} LA29: ;
6071 			}
6072 		}
6073 	}
6074 	break;
6075 	default:
6076 	{
6077 	}
6078 	break;
6079 	}
6080 	}BeforeRet_: ;
6081 	return result;
6082 }
N_NIMCALL(NIM_BOOL,searchTypeFor__types_470)6083 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeFor__types_470)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__NbBRo5rVxVVQby3QsoZkZQ predicate) {
6084 	NIM_BOOL result;
6085 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
6086 	result = (NIM_BOOL)0;
6087 	nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
6088 	initIntSet__pureZcollectionsZintsets_238((&marker));
6089 	result = searchTypeForAux__types_393(t, predicate, (&marker));
6090 	return result;
6091 }
N_NIMCALL(NIM_BOOL,isGCRef__types_589)6092 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGCRef__types_589)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
6093 	NIM_BOOL result;
6094 	NIM_BOOL T1_;
6095 	NIM_BOOL T3_;
6096 	result = (NIM_BOOL)0;
6097 	T1_ = (NIM_BOOL)0;
6098 	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
6099 	if (T1_) goto LA2_;
6100 	T3_ = (NIM_BOOL)0;
6101 	T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
6102 	if (!(T3_)) goto LA4_;
6103 	T3_ = ((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
6104 	LA4_: ;
6105 	T1_ = T3_;
6106 	LA2_: ;
6107 	result = T1_;
6108 	{
6109 		NIM_BOOL T7_;
6110 		NIM_BOOL T8_;
6111 		T7_ = (NIM_BOOL)0;
6112 		T8_ = (NIM_BOOL)0;
6113 		T8_ = result;
6114 		if (!(T8_)) goto LA9_;
6115 		T8_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
6116 		LA9_: ;
6117 		T7_ = T8_;
6118 		if (!(T7_)) goto LA10_;
6119 		T7_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31))&63U)))!=0);
6120 		LA10_: ;
6121 		if (!T7_) goto LA11_;
6122 		result = NIM_FALSE;
6123 	}
6124 	LA11_: ;
6125 	return result;
6126 }
N_NIMCALL(NIM_BOOL,containsGarbageCollectedRef__types_612)6127 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef__types_612)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
6128 	NIM_BOOL result;
6129 	result = (NIM_BOOL)0;
6130 	result = searchTypeFor__types_470(typ, isGCRef__types_589);
6131 	return result;
6132 }
N_INLINE(void,pushSafePoint)6133 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
6134 	(*s).prev = excHandler__system_2565;
6135 	excHandler__system_2565 = s;
6136 }
N_INLINE(void,popSafePoint)6137 static N_INLINE(void, popSafePoint)(void) {
6138 	excHandler__system_2565 = (*excHandler__system_2565).prev;
6139 }
N_NIMCALL(NI64,align__types_2864)6140 N_LIB_PRIVATE N_NIMCALL(NI64, align__types_2864)(NI64 address, NI64 alignment) {
6141 	NI64 result;
6142 	result = (NI64)0;
6143 	result = (NI64)((NI64)(address + (NI64)(alignment - IL64(1))) & (NI64)((NU64) ~((NI64)(alignment - IL64(1)))));
6144 	return result;
6145 }
N_NIMCALL(void,Marker_tyRef__SFgbIvdx8bC9cxnXgi8Zn1A)6146 static N_NIMCALL(void, Marker_tyRef__SFgbIvdx8bC9cxnXgi8Zn1A)(void* p, NI op) {
6147 	tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA* a;
6148 	a = (tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA*)p;
6149 	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
6150 	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
6151 	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
6152 	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
6153 }
N_INLINE(NI,minuspercent___system_716)6154 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
6155 	NI result;
6156 	result = (NI)0;
6157 	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
6158 	return result;
6159 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)6160 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
6161 	NIM_BOOL result;
6162 	result = (NIM_BOOL)0;
6163 	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
6164 	return result;
6165 }
N_INLINE(void,rtlAddZCT__system_5343)6166 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
6167 	addZCT__system_5294((&gch__system_5247.zct), c);
6168 }
N_INLINE(void,decRef__system_5345)6169 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
6170 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
6171 	{
6172 		NIM_BOOL T3_;
6173 		T3_ = (NIM_BOOL)0;
6174 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
6175 		if (!T3_) goto LA4_;
6176 		rtlAddZCT__system_5343(c);
6177 	}
6178 	LA4_: ;
6179 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)6180 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
6181 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
6182 	NI T1_;
6183 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
6184 	T1_ = (NI)0;
6185 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
6186 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
6187 	return result;
6188 }
N_INLINE(void,nimGCunrefNoCycle)6189 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
6190 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
6191 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
6192 	T1_ = usrToCell__system_5300(p);
6193 	decRef__system_5345(T1_);
6194 }
N_INLINE(NI,pluspercent___system_696)6195 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
6196 	NI result;
6197 	result = (NI)0;
6198 	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
6199 	return result;
6200 }
N_INLINE(void,incRef__system_5338)6201 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
6202 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
6203 }
N_INLINE(void,asgnRef)6204 static N_INLINE(void, asgnRef)(void** dest, void* src) {
6205 	{
6206 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
6207 		if (!!((src == NIM_NIL))) goto LA3_;
6208 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
6209 		T5_ = usrToCell__system_5300(src);
6210 		incRef__system_5338(T5_);
6211 	}
6212 	LA3_: ;
6213 	{
6214 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
6215 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
6216 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
6217 		T10_ = usrToCell__system_5300((*dest));
6218 		decRef__system_5345(T10_);
6219 	}
6220 	LA8_: ;
6221 	(*dest) = src;
6222 }
N_NIMCALL(void,raiseIllegalTypeRecursion__types_2877)6223 N_LIB_PRIVATE N_NIMCALL(void, raiseIllegalTypeRecursion__types_2877)(void) {
6224 	tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA* T1_;
6225 	NimStringDesc* T2_;
6226 	T1_ = NIM_NIL;
6227 	T1_ = (tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA*) newObj((&NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_), sizeof(tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA));
6228 	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_);
6229 	(*T1_).Sup.Sup.Sup.name = "IllegalTypeRecursionError";
6230 	T2_ = NIM_NIL;
6231 	T2_ = (*T1_).Sup.Sup.Sup.message; (*T1_).Sup.Sup.Sup.message = copyStringRC1(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_183));
6232 	if (T2_) nimGCunrefNoCycle(T2_);
6233 	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
6234 	raiseExceptionEx((Exception*)T1_, "IllegalTypeRecursionError", "raiseIllegalTypeRecursion", "sizealignoffsetimpl.nim", 29);
6235 }
N_NIMCALL(NI,align__types_2868)6236 N_LIB_PRIVATE N_NIMCALL(NI, align__types_2868)(NI address, NI alignment) {
6237 	NI result;
6238 	result = (NI)0;
6239 	result = (NI)((NI)(address + (NI)(alignment - ((NI) 1))) & (NI)((NU64) ~((NI)(alignment - ((NI) 1)))));
6240 	return result;
6241 }
N_NIMCALL(void,align__types_2911)6242 N_LIB_PRIVATE N_NIMCALL(void, align__types_2911)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, NI value) {
6243 	{
6244 		NIM_BOOL T3_;
6245 		T3_ = (NIM_BOOL)0;
6246 		T3_ = NIM_UNLIKELY((value == ((NI) -2)));
6247 		if (!T3_) goto LA4_;
6248 		raiseIllegalTypeRecursion__types_2877();
6249 	}
6250 	LA4_: ;
6251 	{
6252 		NIM_BOOL T8_;
6253 		NIM_BOOL T9_;
6254 		T8_ = (NIM_BOOL)0;
6255 		T9_ = (NIM_BOOL)0;
6256 		T9_ = (value == ((NI) -3));
6257 		if (T9_) goto LA10_;
6258 		T9_ = ((*arg).maxAlign == ((NI) -3));
6259 		LA10_: ;
6260 		T8_ = T9_;
6261 		if (T8_) goto LA11_;
6262 		T8_ = ((*arg).offset == ((NI) -3));
6263 		LA11_: ;
6264 		if (!T8_) goto LA12_;
6265 		(*arg).maxAlign = ((NI) -3);
6266 		(*arg).offset = ((NI) -3);
6267 	}
6268 	goto LA6_;
6269 	LA12_: ;
6270 	{
6271 		(*arg).maxAlign = ((value >= (*arg).maxAlign) ? value : (*arg).maxAlign);
6272 		(*arg).offset = align__types_2868((*arg).offset, value);
6273 	}
6274 	LA6_: ;
6275 }
N_NIMCALL(void,inc__types_2900)6276 N_LIB_PRIVATE N_NIMCALL(void, inc__types_2900)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, NI value) {
6277 	{
6278 		NIM_BOOL T3_;
6279 		T3_ = (NIM_BOOL)0;
6280 		T3_ = NIM_UNLIKELY((value == ((NI) -2)));
6281 		if (!T3_) goto LA4_;
6282 		raiseIllegalTypeRecursion__types_2877();
6283 	}
6284 	LA4_: ;
6285 	{
6286 		NIM_BOOL T8_;
6287 		T8_ = (NIM_BOOL)0;
6288 		T8_ = (value == ((NI) -3));
6289 		if (T8_) goto LA9_;
6290 		T8_ = ((*arg).offset == ((NI) -3));
6291 		LA9_: ;
6292 		if (!T8_) goto LA10_;
6293 		(*arg).offset = ((NI) -3);
6294 	}
6295 	goto LA6_;
6296 	LA10_: ;
6297 	{
6298 		(*arg).offset += value;
6299 	}
6300 	LA6_: ;
6301 }
N_NIMCALL(NI,finish__types_2917)6302 N_LIB_PRIVATE N_NIMCALL(NI, finish__types_2917)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg) {
6303 	NI result;
6304 	result = (NI)0;
6305 	{
6306 		NIM_BOOL T3_;
6307 		T3_ = (NIM_BOOL)0;
6308 		T3_ = ((*arg).maxAlign == ((NI) -3));
6309 		if (T3_) goto LA4_;
6310 		T3_ = ((*arg).offset == ((NI) -3));
6311 		LA4_: ;
6312 		if (!T3_) goto LA5_;
6313 		result = ((NI) -3);
6314 		(*arg).offset = ((NI) -3);
6315 	}
6316 	goto LA1_;
6317 	LA5_: ;
6318 	{
6319 		NI T8_;
6320 		T8_ = (NI)0;
6321 		T8_ = align__types_2868((*arg).offset, (*arg).maxAlign);
6322 		result = (NI)(T8_ - (*arg).offset);
6323 		(*arg).offset += result;
6324 	}
6325 	LA1_: ;
6326 	return result;
6327 }
N_INLINE(Exception *,nimBorrowCurrentException)6328 static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
6329 	Exception* result;
6330 	result = NIM_NIL;
6331 	result = currException__system_2566;
6332 	return result;
6333 }
N_INLINE(void,popCurrentException)6334 static N_INLINE(void, popCurrentException)(void) {
6335 	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
6336 }
N_NIMCALL(NIM_BOOL,isObjectWithTypeFieldPredicate__types_485)6337 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObjectWithTypeFieldPredicate__types_485)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
6338 	NIM_BOOL result;
6339 	NIM_BOOL T1_;
6340 	NIM_BOOL T2_;
6341 	NIM_BOOL T3_;
6342 	NIM_BOOL T6_;
6343 	result = (NIM_BOOL)0;
6344 	T1_ = (NIM_BOOL)0;
6345 	T2_ = (NIM_BOOL)0;
6346 	T3_ = (NIM_BOOL)0;
6347 	T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
6348 	if (!(T3_)) goto LA4_;
6349 	T3_ = ((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
6350 	LA4_: ;
6351 	T2_ = T3_;
6352 	if (!(T2_)) goto LA5_;
6353 	T6_ = (NIM_BOOL)0;
6354 	T6_ = !(((*t).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
6355 	if (!(T6_)) goto LA7_;
6356 	T6_ = !(((IL64(4294969344) & (*(*t).sym).flags) == 0));
6357 	LA7_: ;
6358 	T2_ = !(T6_);
6359 	LA5_: ;
6360 	T1_ = T2_;
6361 	if (!(T1_)) goto LA8_;
6362 	T1_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0));
6363 	LA8_: ;
6364 	result = T1_;
6365 	return result;
6366 }
N_NIMCALL(void,mergeBranch__types_2914)6367 N_LIB_PRIVATE N_NIMCALL(void, mergeBranch__types_2914)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw value) {
6368 	{
6369 		NIM_BOOL T3_;
6370 		NIM_BOOL T4_;
6371 		NIM_BOOL T5_;
6372 		T3_ = (NIM_BOOL)0;
6373 		T4_ = (NIM_BOOL)0;
6374 		T5_ = (NIM_BOOL)0;
6375 		T5_ = (value.maxAlign == ((NI) -3));
6376 		if (T5_) goto LA6_;
6377 		T5_ = ((*arg).maxAlign == ((NI) -3));
6378 		LA6_: ;
6379 		T4_ = T5_;
6380 		if (T4_) goto LA7_;
6381 		T4_ = (value.offset == ((NI) -3));
6382 		LA7_: ;
6383 		T3_ = T4_;
6384 		if (T3_) goto LA8_;
6385 		T3_ = ((*arg).offset == ((NI) -3));
6386 		LA8_: ;
6387 		if (!T3_) goto LA9_;
6388 		(*arg).maxAlign = ((NI) -3);
6389 		(*arg).offset = ((NI) -3);
6390 	}
6391 	goto LA1_;
6392 	LA9_: ;
6393 	{
6394 		(*arg).offset = (((*arg).offset >= value.offset) ? (*arg).offset : value.offset);
6395 		(*arg).maxAlign = (((*arg).maxAlign >= value.maxAlign) ? (*arg).maxAlign : value.maxAlign);
6396 	}
6397 	LA1_: ;
6398 }
N_NIMCALL(void,computeUnionObjectOffsetsFoldFunction__types_3067)6399 N_LIB_PRIVATE N_NIMCALL(void, computeUnionObjectOffsetsFoldFunction__types_3067)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL packed_0, tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* accum) {
6400 	switch ((*n).kind) {
6401 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
6402 	{
6403 		(*accum).offset = ((NI) -3);
6404 		(*accum).maxAlign = ((NI) -3);
6405 		liMessage__msgs_1118(conf, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_188), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__PpBJsMJcrcWrpLTS6mci1g_189, NIM_FALSE);
6406 	}
6407 	break;
6408 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
6409 	{
6410 		tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw accumRoot;
6411 		accumRoot = (*accum);
6412 		{
6413 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** child;
6414 			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
6415 			NI i;
6416 			NI L;
6417 			NI T4_;
6418 			child = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
6419 			colontmp_ = NIM_NIL;
6420 			colontmp_ = (*n)._kind_6.sons;
6421 			i = ((NI) 0);
6422 			T4_ = (colontmp_ ? colontmp_->Sup.len : 0);
6423 			L = T4_;
6424 			{
6425 				while (1) {
6426 					tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw branchAccum;
6427 					NI T7_;
6428 					if (!(i < L)) goto LA6;
6429 					child = &colontmp_->data[i];
6430 					nimZeroMem((void*)(&branchAccum), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
6431 					branchAccum.offset = accumRoot.offset;
6432 					branchAccum.maxAlign = ((NI) 1);
6433 					computeUnionObjectOffsetsFoldFunction__types_3067(conf, (*child), packed_0, (&branchAccum));
6434 					T7_ = (NI)0;
6435 					T7_ = finish__types_2917((&branchAccum));
6436 					(void)(T7_);
6437 					mergeBranch__types_2914(accum, branchAccum);
6438 					i += ((NI) 1);
6439 				} LA6: ;
6440 			}
6441 		}
6442 	}
6443 	break;
6444 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
6445 	{
6446 		NI size;
6447 		NI align;
6448 		size = ((NI) -3);
6449 		align = ((NI) -3);
6450 		{
6451 			if (!((*(*n)._kind_4.sym)._kind_2.bitsize == ((NI) 0))) goto LA11_;
6452 			computeSizeAlign__types_2924(conf, (*(*n)._kind_4.sym).typ);
6453 			size = ((NI) ((*(*(*n)._kind_4.sym).typ).size));
6454 			{
6455 				if (!packed_0) goto LA15_;
6456 				align = ((NI) 1);
6457 			}
6458 			goto LA13_;
6459 			LA15_: ;
6460 			{
6461 				align = ((NI) ((*(*(*n)._kind_4.sym).typ).align));
6462 			}
6463 			LA13_: ;
6464 		}
6465 		LA11_: ;
6466 		align__types_2911(accum, align);
6467 		{
6468 			if (!(((NI) 0) < (*(*n)._kind_4.sym)._kind_2.alignment)) goto LA20_;
6469 			align__types_2911(accum, (*(*n)._kind_4.sym)._kind_2.alignment);
6470 		}
6471 		LA20_: ;
6472 		(*(*n)._kind_4.sym).offset = (*accum).offset;
6473 		inc__types_2900(accum, size);
6474 	}
6475 	break;
6476 	default:
6477 	{
6478 		(*accum).maxAlign = ((NI) -3);
6479 		(*accum).offset = ((NI) -3);
6480 	}
6481 	break;
6482 	}
6483 }
N_NIMCALL(NI64,computeSubObjectAlign__types_2927)6484 N_LIB_PRIVATE N_NIMCALL(NI64, computeSubObjectAlign__types_2927)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
6485 	NI64 result;
6486 {	result = (NI64)0;
6487 	switch ((*n).kind) {
6488 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
6489 	{
6490 		result = computeSubObjectAlign__types_2927(conf, (*n)._kind_6.sons->data[((NI) 0)]);
6491 		{
6492 			NI i;
6493 			NI colontmp_;
6494 			NI i_2;
6495 			i = (NI)0;
6496 			colontmp_ = (NI)0;
6497 			colontmp_ = len__ast_3198(n);
6498 			i_2 = ((NI) 1);
6499 			{
6500 				while (1) {
6501 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
6502 					if (!(i_2 < colontmp_)) goto LA4;
6503 					i = i_2;
6504 					child = (*n)._kind_6.sons->data[i];
6505 					switch ((*child).kind) {
6506 					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
6507 					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
6508 					{
6509 						NI64 align;
6510 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
6511 						T6_ = NIM_NIL;
6512 						T6_ = lastSon__ast_4832(child);
6513 						align = computeSubObjectAlign__types_2927(conf, T6_);
6514 						{
6515 							if (!(align < IL64(0))) goto LA9_;
6516 							result = align;
6517 							goto BeforeRet_;
6518 						}
6519 						LA9_: ;
6520 						result = ((result >= align) ? result : align);
6521 					}
6522 					break;
6523 					default:
6524 					{
6525 						internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_190), TM__PpBJsMJcrcWrpLTS6mci1g_191);
6526 					}
6527 					break;
6528 					}
6529 					i_2 += ((NI) 1);
6530 				} LA4: ;
6531 			}
6532 		}
6533 	}
6534 	break;
6535 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
6536 	{
6537 		result = IL64(1);
6538 		{
6539 			NI i_3;
6540 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_2;
6541 			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__2;
6542 			NI i_4;
6543 			NI L;
6544 			NI T14_;
6545 			i_3 = (NI)0;
6546 			child_2 = NIM_NIL;
6547 			colontmp__2 = NIM_NIL;
6548 			colontmp__2 = (*n)._kind_6.sons;
6549 			i_4 = ((NI) 0);
6550 			T14_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
6551 			L = T14_;
6552 			{
6553 				while (1) {
6554 					NI64 align_2;
6555 					if (!(i_4 < L)) goto LA16;
6556 					i_3 = i_4;
6557 					child_2 = colontmp__2->data[i_4];
6558 					align_2 = computeSubObjectAlign__types_2927(conf, (*n)._kind_6.sons->data[i_3]);
6559 					{
6560 						if (!(align_2 < IL64(0))) goto LA19_;
6561 						result = align_2;
6562 						goto BeforeRet_;
6563 					}
6564 					LA19_: ;
6565 					result = ((result >= align_2) ? result : align_2);
6566 					i_4 += ((NI) 1);
6567 				} LA16: ;
6568 			}
6569 		}
6570 	}
6571 	break;
6572 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
6573 	{
6574 		computeSizeAlign__types_2924(conf, (*(*n)._kind_4.sym).typ);
6575 		result = ((NI64) ((*(*(*n)._kind_4.sym).typ).align));
6576 	}
6577 	break;
6578 	default:
6579 	{
6580 		result = IL64(1);
6581 	}
6582 	break;
6583 	}
6584 	}BeforeRet_: ;
6585 	return result;
6586 }
N_NIMCALL(NI,alignmentMax__types_2907)6587 N_LIB_PRIVATE N_NIMCALL(NI, alignmentMax__types_2907)(NI a, NI b) {
6588 	NI result;
6589 	result = (NI)0;
6590 	{
6591 		NIM_BOOL T3_;
6592 		NIM_BOOL T5_;
6593 		T3_ = (NIM_BOOL)0;
6594 		T3_ = (a == ((NI) -2));
6595 		if (T3_) goto LA4_;
6596 		T3_ = (b == ((NI) -2));
6597 		LA4_: ;
6598 		T5_ = (NIM_BOOL)0;
6599 		T5_ = NIM_UNLIKELY(T3_);
6600 		if (!T5_) goto LA6_;
6601 		raiseIllegalTypeRecursion__types_2877();
6602 	}
6603 	LA6_: ;
6604 	{
6605 		NIM_BOOL T10_;
6606 		T10_ = (NIM_BOOL)0;
6607 		T10_ = (a == ((NI) -3));
6608 		if (T10_) goto LA11_;
6609 		T10_ = (b == ((NI) -3));
6610 		LA11_: ;
6611 		if (!T10_) goto LA12_;
6612 		result = ((NI) -3);
6613 	}
6614 	goto LA8_;
6615 	LA12_: ;
6616 	{
6617 		result = ((a >= b) ? a : b);
6618 	}
6619 	LA8_: ;
6620 	return result;
6621 }
N_NIMCALL(void,setOffsetsToUnknown__types_2978)6622 N_LIB_PRIVATE N_NIMCALL(void, setOffsetsToUnknown__types_2978)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
6623 	{
6624 		NIM_BOOL T3_;
6625 		T3_ = (NIM_BOOL)0;
6626 		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
6627 		if (!(T3_)) goto LA4_;
6628 		T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19));
6629 		LA4_: ;
6630 		if (!T3_) goto LA5_;
6631 		(*(*n)._kind_4.sym).offset = ((NI) -3);
6632 	}
6633 	goto LA1_;
6634 	LA5_: ;
6635 	{
6636 		{
6637 			NI i;
6638 			NI colontmp_;
6639 			NI i_2;
6640 			i = (NI)0;
6641 			colontmp_ = (NI)0;
6642 			colontmp_ = safeLen__ast_3191(n);
6643 			i_2 = ((NI) 0);
6644 			{
6645 				while (1) {
6646 					if (!(i_2 < colontmp_)) goto LA10;
6647 					i = i_2;
6648 					setOffsetsToUnknown__types_2978((*n)._kind_6.sons->data[i]);
6649 					i_2 += ((NI) 1);
6650 				} LA10: ;
6651 			}
6652 		}
6653 	}
6654 	LA1_: ;
6655 }
N_NIMCALL(void,computeObjectOffsetsFoldFunction__types_2994)6656 N_LIB_PRIVATE N_NIMCALL(void, computeObjectOffsetsFoldFunction__types_2994)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL packed_0, tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* accum) {
6657 	{
6658 		NIM_BOOL T3_;
6659 		T3_ = (NIM_BOOL)0;
6660 		T3_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
6661 		if (!(T3_)) goto LA4_;
6662 		T3_ = ((*(*n).typ).size == IL64(-2));
6663 		LA4_: ;
6664 		if (!T3_) goto LA5_;
6665 		raiseIllegalTypeRecursion__types_2877();
6666 	}
6667 	LA5_: ;
6668 	switch ((*n).kind) {
6669 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
6670 	{
6671 		NI maxChildAlign;
6672 		computeObjectOffsetsFoldFunction__types_2994(conf, (*n)._kind_6.sons->data[((NI) 0)], packed_0, accum);
6673 		{
6674 			if (!((*accum).offset == ((NI) -3))) goto LA10_;
6675 			maxChildAlign = ((NI) -3);
6676 		}
6677 		goto LA8_;
6678 		LA10_: ;
6679 		{
6680 			maxChildAlign = ((NI) 1);
6681 		}
6682 		LA8_: ;
6683 		{
6684 			if (!!(packed_0)) goto LA15_;
6685 			{
6686 				NI i;
6687 				NI colontmp_;
6688 				NI i_2;
6689 				i = (NI)0;
6690 				colontmp_ = (NI)0;
6691 				colontmp_ = len__ast_3198(n);
6692 				i_2 = ((NI) 1);
6693 				{
6694 					while (1) {
6695 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
6696 						if (!(i_2 < colontmp_)) goto LA19;
6697 						i = i_2;
6698 						child = (*n)._kind_6.sons->data[i];
6699 						switch ((*child).kind) {
6700 						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
6701 						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
6702 						{
6703 							NI align;
6704 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
6705 							NI64 T22_;
6706 							T21_ = NIM_NIL;
6707 							T21_ = lastSon__ast_4832((*n)._kind_6.sons->data[i]);
6708 							T22_ = (NI64)0;
6709 							T22_ = computeSubObjectAlign__types_2927(conf, T21_);
6710 							align = ((NI) (T22_));
6711 							maxChildAlign = alignmentMax__types_2907(maxChildAlign, align);
6712 						}
6713 						break;
6714 						default:
6715 						{
6716 							internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_192), TM__PpBJsMJcrcWrpLTS6mci1g_193);
6717 						}
6718 						break;
6719 						}
6720 						i_2 += ((NI) 1);
6721 					} LA19: ;
6722 				}
6723 			}
6724 		}
6725 		LA15_: ;
6726 		{
6727 			if (!(maxChildAlign == ((NI) -3))) goto LA26_;
6728 			setOffsetsToUnknown__types_2978(n);
6729 			(*accum).offset = ((NI) -3);
6730 			(*accum).maxAlign = ((NI) -3);
6731 		}
6732 		goto LA24_;
6733 		LA26_: ;
6734 		{
6735 			tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw accumRoot;
6736 			align__types_2911(accum, maxChildAlign);
6737 			accumRoot = (*accum);
6738 			{
6739 				NI i_3;
6740 				NI colontmp__2;
6741 				NI i_4;
6742 				i_3 = (NI)0;
6743 				colontmp__2 = (NI)0;
6744 				colontmp__2 = len__ast_3198(n);
6745 				i_4 = ((NI) 1);
6746 				{
6747 					while (1) {
6748 						tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw branchAccum;
6749 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
6750 						NI T33_;
6751 						if (!(i_4 < colontmp__2)) goto LA31;
6752 						i_3 = i_4;
6753 						nimZeroMem((void*)(&branchAccum), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
6754 						branchAccum.offset = accumRoot.offset;
6755 						branchAccum.maxAlign = ((NI) 1);
6756 						T32_ = NIM_NIL;
6757 						T32_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_3]);
6758 						computeObjectOffsetsFoldFunction__types_2994(conf, T32_, packed_0, (&branchAccum));
6759 						T33_ = (NI)0;
6760 						T33_ = finish__types_2917((&branchAccum));
6761 						(void)(T33_);
6762 						mergeBranch__types_2914(accum, branchAccum);
6763 						i_4 += ((NI) 1);
6764 					} LA31: ;
6765 				}
6766 			}
6767 		}
6768 		LA24_: ;
6769 	}
6770 	break;
6771 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
6772 	{
6773 		{
6774 			NI i_5;
6775 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_2;
6776 			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__3;
6777 			NI i_6;
6778 			NI L;
6779 			NI T36_;
6780 			i_5 = (NI)0;
6781 			child_2 = NIM_NIL;
6782 			colontmp__3 = NIM_NIL;
6783 			colontmp__3 = (*n)._kind_6.sons;
6784 			i_6 = ((NI) 0);
6785 			T36_ = (colontmp__3 ? colontmp__3->Sup.len : 0);
6786 			L = T36_;
6787 			{
6788 				while (1) {
6789 					if (!(i_6 < L)) goto LA38;
6790 					i_5 = i_6;
6791 					child_2 = colontmp__3->data[i_6];
6792 					computeObjectOffsetsFoldFunction__types_2994(conf, child_2, packed_0, accum);
6793 					i_6 += ((NI) 1);
6794 				} LA38: ;
6795 			}
6796 		}
6797 	}
6798 	break;
6799 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
6800 	{
6801 		NI size;
6802 		NI align_2;
6803 		size = ((NI) -3);
6804 		align_2 = ((NI) -3);
6805 		{
6806 			if (!((*(*n)._kind_4.sym)._kind_2.bitsize == ((NI) 0))) goto LA42_;
6807 			computeSizeAlign__types_2924(conf, (*(*n)._kind_4.sym).typ);
6808 			size = ((NI) ((*(*(*n)._kind_4.sym).typ).size));
6809 			{
6810 				if (!packed_0) goto LA46_;
6811 				align_2 = ((NI) 1);
6812 			}
6813 			goto LA44_;
6814 			LA46_: ;
6815 			{
6816 				align_2 = ((NI) ((*(*(*n)._kind_4.sym).typ).align));
6817 			}
6818 			LA44_: ;
6819 		}
6820 		LA42_: ;
6821 		align__types_2911(accum, align_2);
6822 		{
6823 			if (!(((NI) 0) < (*(*n)._kind_4.sym)._kind_2.alignment)) goto LA51_;
6824 			align__types_2911(accum, (*(*n)._kind_4.sym)._kind_2.alignment);
6825 		}
6826 		LA51_: ;
6827 		(*(*n)._kind_4.sym).offset = (*accum).offset;
6828 		inc__types_2900(accum, size);
6829 	}
6830 	break;
6831 	default:
6832 	{
6833 		(*accum).maxAlign = ((NI) -3);
6834 		(*accum).offset = ((NI) -3);
6835 	}
6836 	break;
6837 	}
6838 }
N_NIMCALL(void,computeSizeAlign__types_2924)6839 N_LIB_PRIVATE N_NIMCALL(void, computeSizeAlign__types_2924)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
6840 	NIM_BOOL hasSize;
6841 	NIM_BOOL hasAlign;
6842 	NI64 revertSize;
6843 	NI16 revertAlign;
6844 	TSafePoint TM__PpBJsMJcrcWrpLTS6mci1g_181;
6845 	tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag tk;
6846 {	hasSize = !(((*typ).size == IL64(-1)));
6847 	hasAlign = !(((*typ).align == ((NI16) -1)));
6848 	{
6849 		NIM_BOOL T3_;
6850 		T3_ = (NIM_BOOL)0;
6851 		T3_ = hasSize;
6852 		if (!(T3_)) goto LA4_;
6853 		T3_ = hasAlign;
6854 		LA4_: ;
6855 		if (!T3_) goto LA5_;
6856 		goto BeforeRet_;
6857 	}
6858 	LA5_: ;
6859 	revertSize = (*typ).size;
6860 	revertAlign = (*typ).align;
6861 	pushSafePoint(&TM__PpBJsMJcrcWrpLTS6mci1g_181);
6862 	TM__PpBJsMJcrcWrpLTS6mci1g_181.status = setjmp(TM__PpBJsMJcrcWrpLTS6mci1g_181.context);
6863 	if (TM__PpBJsMJcrcWrpLTS6mci1g_181.status == 0) {
6864 	{
6865 		NIM_BOOL T9_;
6866 		T9_ = (NIM_BOOL)0;
6867 		T9_ = ((*typ).size == IL64(-2));
6868 		if (T9_) goto LA10_;
6869 		T9_ = ((*typ).align == ((NI16) -2));
6870 		LA10_: ;
6871 		if (!T9_) goto LA11_;
6872 		popSafePoint();
6873 		{
6874 			if (!hasSize) goto LA15_;
6875 			(*typ).size = revertSize;
6876 		}
6877 		LA15_: ;
6878 		{
6879 			if (!hasAlign) goto LA19_;
6880 			(*typ).align = revertAlign;
6881 		}
6882 		LA19_: ;
6883 		goto BeforeRet_;
6884 	}
6885 	LA11_: ;
6886 	(*typ).size = IL64(-2);
6887 	(*typ).align = ((NI16) -2);
6888 	(*typ).paddingAtEnd = ((NI16) 0);
6889 	tk = (*typ).kind;
6890 	switch (tk) {
6891 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
6892 	{
6893 		{
6894 			if (!((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9))) goto LA24_;
6895 			(*typ).size = ((NI64) ((NI)(((NI) 2) * (*conf).target.ptrSize)));
6896 		}
6897 		goto LA22_;
6898 		LA24_: ;
6899 		{
6900 			(*typ).size = ((NI64) ((*conf).target.ptrSize));
6901 		}
6902 		LA22_: ;
6903 		(*typ).align = ((NI16) ((*conf).target.ptrSize));
6904 	}
6905 	break;
6906 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
6907 	{
6908 		(*typ).size = ((NI64) ((*conf).target.ptrSize));
6909 		(*typ).align = ((NI16) ((*conf).target.ptrSize));
6910 	}
6911 	break;
6912 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
6913 	{
6914 		{
6915 			if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA31_;
6916 			(*typ).size = ((NI64) ((NI)((*conf).target.ptrSize * ((NI) 2))));
6917 		}
6918 		goto LA29_;
6919 		LA31_: ;
6920 		{
6921 			(*typ).size = ((NI64) ((*conf).target.ptrSize));
6922 		}
6923 		LA29_: ;
6924 		(*typ).align = ((NI16) ((*conf).target.ptrSize));
6925 	}
6926 	break;
6927 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
6928 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
6929 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
6930 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
6931 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
6932 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
6933 	{
6934 		tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
6935 		base = lastSon__ast_3743(typ);
6936 		{
6937 			if (!(base == typ)) goto LA37_;
6938 			(*typ).size = IL64(-2);
6939 			(*typ).align = ((NI16) -2);
6940 			(*typ).paddingAtEnd = ((NI16) -2);
6941 			popSafePoint();
6942 			{
6943 				if (!hasSize) goto LA41_;
6944 				(*typ).size = revertSize;
6945 			}
6946 			LA41_: ;
6947 			{
6948 				if (!hasAlign) goto LA45_;
6949 				(*typ).align = revertAlign;
6950 			}
6951 			LA45_: ;
6952 			goto BeforeRet_;
6953 		}
6954 		LA37_: ;
6955 		(*typ).align = ((NI16) ((*conf).target.ptrSize));
6956 		{
6957 			NIM_BOOL T49_;
6958 			T49_ = (NIM_BOOL)0;
6959 			T49_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
6960 			if (!(T49_)) goto LA50_;
6961 			T49_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0);
6962 			LA50_: ;
6963 			if (!T49_) goto LA51_;
6964 			(*typ).size = ((NI64) ((NI)((*conf).target.ptrSize * ((NI) 2))));
6965 		}
6966 		goto LA47_;
6967 		LA51_: ;
6968 		{
6969 			(*typ).size = ((NI64) ((*conf).target.ptrSize));
6970 		}
6971 		LA47_: ;
6972 	}
6973 	break;
6974 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
6975 	{
6976 		NI64 elemSize;
6977 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA len;
6978 		computeSizeAlign__types_2924(conf, (*typ).sons->data[((NI) 1)]);
6979 		elemSize = (*(*typ).sons->data[((NI) 1)]).size;
6980 		len = lengthOrd__types_1661(conf, (*typ).sons->data[((NI) 0)]);
6981 		{
6982 			if (!(elemSize < IL64(0))) goto LA57_;
6983 			(*typ).size = elemSize;
6984 			(*typ).align = ((NI16) (elemSize));
6985 		}
6986 		goto LA55_;
6987 		LA57_: ;
6988 		{
6989 			NIM_BOOL T60_;
6990 			T60_ = (NIM_BOOL)0;
6991 			T60_ = lt___int495056_721(len, IL64(0));
6992 			if (!T60_) goto LA61_;
6993 			(*typ).size = IL64(-3);
6994 			(*typ).align = ((NI16) -3);
6995 		}
6996 		goto LA55_;
6997 		LA61_: ;
6998 		{
6999 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T64_;
7000 			T64_ = star___int495056_514(len, ((NI32) (elemSize)));
7001 			(*typ).size = toInt64Checked__int495056_103(T64_, IL64(-4));
7002 			(*typ).align = (*(*typ).sons->data[((NI) 1)]).align;
7003 		}
7004 		LA55_: ;
7005 	}
7006 	break;
7007 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
7008 	{
7009 		tyObject_TType__facALICuu8zUj0hjvbTLFg* base_2;
7010 		base_2 = lastSon__ast_3743(typ);
7011 		computeSizeAlign__types_2924(conf, base_2);
7012 		(*typ).size = IL64(0);
7013 		(*typ).align = (*base_2).align;
7014 	}
7015 	break;
7016 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
7017 	{
7018 		{
7019 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T69_;
7020 			NIM_BOOL T70_;
7021 			T69_ = firstOrd__types_1353(conf, typ);
7022 			T70_ = (NIM_BOOL)0;
7023 			T70_ = lt___int495056_305(T69_, Zero__int495056_7);
7024 			if (!T70_) goto LA71_;
7025 			(*typ).size = IL64(4);
7026 			(*typ).align = ((NI16) 4);
7027 		}
7028 		goto LA67_;
7029 		LA71_: ;
7030 		{
7031 			NI64 lastOrd;
7032 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T74_;
7033 			T74_ = lastOrd__types_1470(conf, typ);
7034 			lastOrd = toInt64__int495056_88(T74_);
7035 			{
7036 				if (!(lastOrd < IL64(256))) goto LA77_;
7037 				(*typ).size = IL64(1);
7038 				(*typ).align = ((NI16) 1);
7039 			}
7040 			goto LA75_;
7041 			LA77_: ;
7042 			{
7043 				if (!(lastOrd < IL64(65536))) goto LA80_;
7044 				(*typ).size = IL64(2);
7045 				(*typ).align = ((NI16) 2);
7046 			}
7047 			goto LA75_;
7048 			LA80_: ;
7049 			{
7050 				if (!(lastOrd < IL64(4294967296))) goto LA83_;
7051 				(*typ).size = IL64(4);
7052 				(*typ).align = ((NI16) 4);
7053 			}
7054 			goto LA75_;
7055 			LA83_: ;
7056 			{
7057 				(*typ).size = IL64(8);
7058 				(*typ).align = floatInt64Align__options_4700(conf);
7059 			}
7060 			LA75_: ;
7061 		}
7062 		LA67_: ;
7063 	}
7064 	break;
7065 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
7066 	{
7067 		{
7068 			if (!((*(*typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA89_;
7069 			(*typ).size = IL64(-1);
7070 			(*typ).align = ((NI16) -1);
7071 		}
7072 		goto LA87_;
7073 		LA89_: ;
7074 		{
7075 			NI64 length;
7076 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T92_;
7077 			T92_ = lengthOrd__types_1661(conf, (*typ).sons->data[((NI) 0)]);
7078 			length = toInt64__int495056_88(T92_);
7079 			{
7080 				if (!(length <= IL64(8))) goto LA95_;
7081 				(*typ).size = IL64(1);
7082 				(*typ).align = ((NI16) 1);
7083 			}
7084 			goto LA93_;
7085 			LA95_: ;
7086 			{
7087 				if (!(length <= IL64(16))) goto LA98_;
7088 				(*typ).size = IL64(2);
7089 				(*typ).align = ((NI16) 2);
7090 			}
7091 			goto LA93_;
7092 			LA98_: ;
7093 			{
7094 				if (!(length <= IL64(32))) goto LA101_;
7095 				(*typ).size = IL64(4);
7096 				(*typ).align = ((NI16) 4);
7097 			}
7098 			goto LA93_;
7099 			LA101_: ;
7100 			{
7101 				if (!(length <= IL64(64))) goto LA104_;
7102 				(*typ).size = IL64(8);
7103 				(*typ).align = floatInt64Align__options_4700(conf);
7104 			}
7105 			goto LA93_;
7106 			LA104_: ;
7107 			{
7108 				NI64 T107_;
7109 				NI64 T110_;
7110 				T107_ = (NI64)0;
7111 				T107_ = align__types_2864(length, IL64(8));
7112 				if (!((NI64)(T107_ % IL64(8)) == IL64(0))) goto LA108_;
7113 				T110_ = (NI64)0;
7114 				T110_ = align__types_2864(length, IL64(8));
7115 				(*typ).size = (NI64)(T110_ / IL64(8));
7116 				(*typ).align = floatInt64Align__options_4700(conf);
7117 			}
7118 			goto LA93_;
7119 			LA108_: ;
7120 			{
7121 				NI64 T112_;
7122 				T112_ = (NI64)0;
7123 				T112_ = align__types_2864(length, IL64(8));
7124 				(*typ).size = (NI64)((NI64)(T112_ / IL64(8)) + IL64(1));
7125 				(*typ).align = floatInt64Align__options_4700(conf);
7126 			}
7127 			LA93_: ;
7128 		}
7129 		LA87_: ;
7130 	}
7131 	break;
7132 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
7133 	{
7134 		computeSizeAlign__types_2924(conf, (*typ).sons->data[((NI) 0)]);
7135 		(*typ).size = (*(*typ).sons->data[((NI) 0)]).size;
7136 		(*typ).align = (*(*typ).sons->data[((NI) 0)]).align;
7137 		(*typ).paddingAtEnd = (*(*typ).sons->data[((NI) 0)]).paddingAtEnd;
7138 	}
7139 	break;
7140 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
7141 	{
7142 		TSafePoint TM__PpBJsMJcrcWrpLTS6mci1g_182;
7143 		tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw accum;
7144 		NI T122_;
7145 		NI T123_;
7146 		pushSafePoint(&TM__PpBJsMJcrcWrpLTS6mci1g_182);
7147 		TM__PpBJsMJcrcWrpLTS6mci1g_182.status = setjmp(TM__PpBJsMJcrcWrpLTS6mci1g_182.context);
7148 		if (TM__PpBJsMJcrcWrpLTS6mci1g_182.status == 0) {
7149 		nimZeroMem((void*)(&accum), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7150 		accum.maxAlign = ((NI) 1);
7151 		{
7152 			NI i;
7153 			NI colontmp_;
7154 			NI i_2;
7155 			i = (NI)0;
7156 			colontmp_ = (NI)0;
7157 			colontmp_ = len__ast_4002(typ);
7158 			i_2 = ((NI) 0);
7159 			{
7160 				while (1) {
7161 					tyObject_TType__facALICuu8zUj0hjvbTLFg* child;
7162 					if (!(i_2 < colontmp_)) goto LA117;
7163 					i = i_2;
7164 					child = (*typ).sons->data[i];
7165 					computeSizeAlign__types_2924(conf, child);
7166 					align__types_2911((&accum), ((NI) ((*child).align)));
7167 					{
7168 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
7169 						if (!!(((*typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA120_;
7170 						sym = (*(*(*typ).n)._kind_6.sons->data[i])._kind_4.sym;
7171 						(*sym).offset = accum.offset;
7172 					}
7173 					LA120_: ;
7174 					inc__types_2900((&accum), ((NI) ((*child).size)));
7175 					i_2 += ((NI) 1);
7176 				} LA117: ;
7177 			}
7178 		}
7179 		T122_ = (NI)0;
7180 		T122_ = finish__types_2917((&accum));
7181 		(*typ).paddingAtEnd = ((NI16) (T122_));
7182 		T123_ = (NI)0;
7183 		{
7184 			if (!(accum.offset == ((NI) 0))) goto LA126_;
7185 			T123_ = ((NI) 1);
7186 		}
7187 		goto LA124_;
7188 		LA126_: ;
7189 		{
7190 			T123_ = accum.offset;
7191 		}
7192 		LA124_: ;
7193 		(*typ).size = ((NI64) (T123_));
7194 		(*typ).align = ((NI16) (accum.maxAlign));
7195 		popSafePoint();
7196 		}
7197 		else {
7198 			popSafePoint();
7199 			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_))) {
7200 				TM__PpBJsMJcrcWrpLTS6mci1g_182.status = 0;
7201 				(*typ).paddingAtEnd = ((NI16) -2);
7202 				(*typ).size = IL64(-2);
7203 				(*typ).align = ((NI16) -2);
7204 				popCurrentException();
7205 			}
7206 		}
7207 		if (TM__PpBJsMJcrcWrpLTS6mci1g_182.status != 0) reraiseException();
7208 	}
7209 	break;
7210 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
7211 	{
7212 		TSafePoint TM__PpBJsMJcrcWrpLTS6mci1g_184;
7213 		tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw volatile accum_2;
7214 		NI16 paddingAtEnd;
7215 		NI T170_;
7216 		pushSafePoint(&TM__PpBJsMJcrcWrpLTS6mci1g_184);
7217 		TM__PpBJsMJcrcWrpLTS6mci1g_184.status = setjmp(TM__PpBJsMJcrcWrpLTS6mci1g_184.context);
7218 		if (TM__PpBJsMJcrcWrpLTS6mci1g_184.status == 0) {
7219 		{
7220 			tyObject_TType__facALICuu8zUj0hjvbTLFg* volatile st;
7221 			if (!!(((*typ).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA134_;
7222 			st = (*typ).sons->data[((NI) 0)];
7223 			{
7224 				while (1) {
7225 					NI T138_;
7226 					if (!((TM__PpBJsMJcrcWrpLTS6mci1g_5[(NU)((*st).kind)>>3] &(1U<<((NU)((*st).kind)&7U)))!=0)) goto LA137;
7227 					T138_ = (NI)0;
7228 					T138_ = len__ast_4002(st);
7229 					st = (*st).sons->data[(NI)(T138_ - ((NI) 1))];
7230 				} LA137: ;
7231 			}
7232 			computeSizeAlign__types_2924(conf, st);
7233 			{
7234 				if (!((*conf).backend == ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 2))) goto LA141_;
7235 				nimZeroMem((void*)(&accum_2), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7236 				accum_2.offset = (NI)(((NI) ((*st).size)) - ((NI) ((*st).paddingAtEnd)));
7237 				accum_2.maxAlign = ((NI) ((*st).align));
7238 			}
7239 			goto LA139_;
7240 			LA141_: ;
7241 			{
7242 				nimZeroMem((void*)(&accum_2), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7243 				accum_2.offset = ((NI) ((*st).size));
7244 				accum_2.maxAlign = ((NI) ((*st).align));
7245 			}
7246 			LA139_: ;
7247 		}
7248 		goto LA132_;
7249 		LA134_: ;
7250 		{
7251 			NIM_BOOL T145_;
7252 			T145_ = (NIM_BOOL)0;
7253 			T145_ = isObjectWithTypeFieldPredicate__types_485(typ);
7254 			if (!T145_) goto LA146_;
7255 			nimZeroMem((void*)(&accum_2), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7256 			accum_2.offset = (*conf).target.intSize;
7257 			accum_2.maxAlign = (*conf).target.intSize;
7258 		}
7259 		goto LA132_;
7260 		LA146_: ;
7261 		{
7262 			nimZeroMem((void*)(&accum_2), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7263 			accum_2.maxAlign = ((NI) 1);
7264 		}
7265 		LA132_: ;
7266 		{
7267 			if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0)) goto LA151_;
7268 			{
7269 				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
7270 				if (!!((accum_2.offset == ((NI) 0)))) goto LA155_;
7271 				{
7272 					if (!!(((*typ).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA159_;
7273 					info = (*(*typ).sym).info;
7274 				}
7275 				goto LA157_;
7276 				LA159_: ;
7277 				{
7278 					info = unknownLineInfo__lineinfos_280;
7279 				}
7280 				LA157_: ;
7281 				liMessage__msgs_1118(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_185), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__PpBJsMJcrcWrpLTS6mci1g_186, NIM_FALSE);
7282 				nimZeroMem((void*)(&accum_2), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7283 				accum_2.offset = ((NI) -3);
7284 				accum_2.maxAlign = ((NI) -3);
7285 			}
7286 			goto LA153_;
7287 			LA155_: ;
7288 			{
7289 				if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 23))&63U)))!=0)) goto LA163_;
7290 				computeUnionObjectOffsetsFoldFunction__types_3067(conf, (*typ).n, NIM_TRUE, (&accum_2));
7291 			}
7292 			goto LA153_;
7293 			LA163_: ;
7294 			{
7295 				computeUnionObjectOffsetsFoldFunction__types_3067(conf, (*typ).n, NIM_FALSE, (&accum_2));
7296 			}
7297 			LA153_: ;
7298 		}
7299 		goto LA149_;
7300 		LA151_: ;
7301 		{
7302 			if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 23))&63U)))!=0)) goto LA167_;
7303 			accum_2.maxAlign = ((NI) 1);
7304 			computeObjectOffsetsFoldFunction__types_2994(conf, (*typ).n, NIM_TRUE, (&accum_2));
7305 		}
7306 		goto LA149_;
7307 		LA167_: ;
7308 		{
7309 			computeObjectOffsetsFoldFunction__types_2994(conf, (*typ).n, NIM_FALSE, (&accum_2));
7310 		}
7311 		LA149_: ;
7312 		T170_ = (NI)0;
7313 		T170_ = finish__types_2917((&accum_2));
7314 		paddingAtEnd = ((NI16) (T170_));
7315 		{
7316 			NIM_BOOL T173_;
7317 			NIM_BOOL T174_;
7318 			T173_ = (NIM_BOOL)0;
7319 			T174_ = (NIM_BOOL)0;
7320 			T174_ = !(((*typ).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
7321 			if (!(T174_)) goto LA175_;
7322 			T174_ = (((*(*typ).sym).flags & 262208) == 64);
7323 			LA175_: ;
7324 			T173_ = T174_;
7325 			if (!(T173_)) goto LA176_;
7326 			T173_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 41))&63U)))!=0));
7327 			LA176_: ;
7328 			if (!T173_) goto LA177_;
7329 			(*typ).size = IL64(-3);
7330 			(*typ).align = ((NI16) -3);
7331 			(*typ).paddingAtEnd = ((NI16) -3);
7332 		}
7333 		goto LA171_;
7334 		LA177_: ;
7335 		{
7336 			NI T180_;
7337 			T180_ = (NI)0;
7338 			{
7339 				if (!(accum_2.offset == ((NI) 0))) goto LA183_;
7340 				T180_ = ((NI) 1);
7341 			}
7342 			goto LA181_;
7343 			LA183_: ;
7344 			{
7345 				T180_ = accum_2.offset;
7346 			}
7347 			LA181_: ;
7348 			(*typ).size = ((NI64) (T180_));
7349 			(*typ).align = ((NI16) (accum_2.maxAlign));
7350 			(*typ).paddingAtEnd = paddingAtEnd;
7351 		}
7352 		LA171_: ;
7353 		popSafePoint();
7354 		}
7355 		else {
7356 			popSafePoint();
7357 			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_))) {
7358 				TM__PpBJsMJcrcWrpLTS6mci1g_184.status = 0;
7359 				(*typ).size = IL64(-2);
7360 				(*typ).align = ((NI16) -2);
7361 				(*typ).paddingAtEnd = ((NI16) -2);
7362 				popCurrentException();
7363 			}
7364 		}
7365 		if (TM__PpBJsMJcrcWrpLTS6mci1g_184.status != 0) reraiseException();
7366 	}
7367 	break;
7368 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
7369 	{
7370 		{
7371 			NI T191_;
7372 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T194_;
7373 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T195_;
7374 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T196_;
7375 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T197_;
7376 			T191_ = (NI)0;
7377 			T191_ = len__ast_4002(typ);
7378 			if (!(((NI) 1) < T191_)) goto LA192_;
7379 			T194_ = NIM_NIL;
7380 			T194_ = lastSon__ast_3743(typ);
7381 			computeSizeAlign__types_2924(conf, T194_);
7382 			T195_ = NIM_NIL;
7383 			T195_ = lastSon__ast_3743(typ);
7384 			(*typ).size = (*T195_).size;
7385 			T196_ = NIM_NIL;
7386 			T196_ = lastSon__ast_3743(typ);
7387 			(*typ).align = (*T196_).align;
7388 			T197_ = NIM_NIL;
7389 			T197_ = lastSon__ast_3743(typ);
7390 			(*typ).paddingAtEnd = (*T197_).paddingAtEnd;
7391 		}
7392 		LA192_: ;
7393 	}
7394 	break;
7395 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
7396 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
7397 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
7398 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
7399 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
7400 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
7401 	{
7402 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T199_;
7403 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T200_;
7404 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T201_;
7405 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T202_;
7406 		T199_ = NIM_NIL;
7407 		T199_ = lastSon__ast_3743(typ);
7408 		computeSizeAlign__types_2924(conf, T199_);
7409 		T200_ = NIM_NIL;
7410 		T200_ = lastSon__ast_3743(typ);
7411 		(*typ).size = (*T200_).size;
7412 		T201_ = NIM_NIL;
7413 		T201_ = lastSon__ast_3743(typ);
7414 		(*typ).align = (*T201_).align;
7415 		T202_ = NIM_NIL;
7416 		T202_ = lastSon__ast_3743(typ);
7417 		(*typ).paddingAtEnd = (*T202_).paddingAtEnd;
7418 	}
7419 	break;
7420 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
7421 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
7422 	{
7423 		{
7424 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T208_;
7425 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T209_;
7426 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T210_;
7427 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T211_;
7428 			if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0)) goto LA206_;
7429 			T208_ = NIM_NIL;
7430 			T208_ = lastSon__ast_3743(typ);
7431 			computeSizeAlign__types_2924(conf, T208_);
7432 			T209_ = NIM_NIL;
7433 			T209_ = lastSon__ast_3743(typ);
7434 			(*typ).size = (*T209_).size;
7435 			T210_ = NIM_NIL;
7436 			T210_ = lastSon__ast_3743(typ);
7437 			(*typ).align = (*T210_).align;
7438 			T211_ = NIM_NIL;
7439 			T211_ = lastSon__ast_3743(typ);
7440 			(*typ).paddingAtEnd = (*T211_).paddingAtEnd;
7441 		}
7442 		goto LA204_;
7443 		LA206_: ;
7444 		{
7445 			(*typ).size = IL64(-3);
7446 			(*typ).align = ((NI16) -3);
7447 			(*typ).paddingAtEnd = ((NI16) -3);
7448 		}
7449 		LA204_: ;
7450 	}
7451 	break;
7452 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
7453 	{
7454 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T214_;
7455 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T215_;
7456 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T216_;
7457 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T217_;
7458 		T214_ = NIM_NIL;
7459 		T214_ = base__types_63(typ);
7460 		computeSizeAlign__types_2924(conf, T214_);
7461 		T215_ = NIM_NIL;
7462 		T215_ = base__types_63(typ);
7463 		(*typ).size = (*T215_).size;
7464 		T216_ = NIM_NIL;
7465 		T216_ = base__types_63(typ);
7466 		(*typ).align = (*T216_).align;
7467 		T217_ = NIM_NIL;
7468 		T217_ = base__types_63(typ);
7469 		(*typ).paddingAtEnd = (*T217_).paddingAtEnd;
7470 	}
7471 	break;
7472 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
7473 	{
7474 		(*typ).size = IL64(-2);
7475 		(*typ).align = ((NI16) -2);
7476 		(*typ).paddingAtEnd = ((NI16) -2);
7477 	}
7478 	break;
7479 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
7480 	{
7481 		{
7482 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T224_;
7483 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T225_;
7484 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T226_;
7485 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T227_;
7486 			if (!!(((*typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA222_;
7487 			T224_ = NIM_NIL;
7488 			T224_ = lastSon__ast_3743(typ);
7489 			computeSizeAlign__types_2924(conf, T224_);
7490 			T225_ = NIM_NIL;
7491 			T225_ = lastSon__ast_3743(typ);
7492 			(*typ).size = (*T225_).size;
7493 			T226_ = NIM_NIL;
7494 			T226_ = lastSon__ast_3743(typ);
7495 			(*typ).align = (*T226_).align;
7496 			T227_ = NIM_NIL;
7497 			T227_ = lastSon__ast_3743(typ);
7498 			(*typ).paddingAtEnd = (*T227_).paddingAtEnd;
7499 		}
7500 		goto LA220_;
7501 		LA222_: ;
7502 		{
7503 			(*typ).size = IL64(-3);
7504 			(*typ).align = ((NI16) -3);
7505 			(*typ).paddingAtEnd = ((NI16) -3);
7506 		}
7507 		LA220_: ;
7508 	}
7509 	break;
7510 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
7511 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40):
7512 	{
7513 		(*typ).size = ((NI64) (((NI16) ((*conf).target.intSize))));
7514 		(*typ).align = ((NI16) ((*conf).target.intSize));
7515 		(*typ).paddingAtEnd = ((NI16) 0);
7516 	}
7517 	break;
7518 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
7519 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
7520 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41):
7521 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32):
7522 	{
7523 		(*typ).size = IL64(1);
7524 		(*typ).align = ((NI16) 1);
7525 		(*typ).paddingAtEnd = ((NI16) 0);
7526 	}
7527 	break;
7528 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33):
7529 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42):
7530 	{
7531 		(*typ).size = IL64(2);
7532 		(*typ).align = ((NI16) 2);
7533 		(*typ).paddingAtEnd = ((NI16) 0);
7534 	}
7535 	break;
7536 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34):
7537 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
7538 	{
7539 		(*typ).size = IL64(4);
7540 		(*typ).align = ((NI16) 4);
7541 		(*typ).paddingAtEnd = ((NI16) 0);
7542 	}
7543 	break;
7544 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
7545 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
7546 	{
7547 		(*typ).size = IL64(8);
7548 		(*typ).align = ((NI16) 8);
7549 		(*typ).paddingAtEnd = ((NI16) 0);
7550 	}
7551 	break;
7552 	default:
7553 	{
7554 		(*typ).size = IL64(-3);
7555 		(*typ).align = ((NI16) -3);
7556 		(*typ).paddingAtEnd = ((NI16) -3);
7557 	}
7558 	break;
7559 	}
7560 	popSafePoint();
7561 	}
7562 	else {
7563 		popSafePoint();
7564 	}
7565 	{
7566 		{
7567 			if (!hasSize) goto LA239_;
7568 			(*typ).size = revertSize;
7569 		}
7570 		LA239_: ;
7571 		{
7572 			if (!hasAlign) goto LA243_;
7573 			(*typ).align = revertAlign;
7574 		}
7575 		LA243_: ;
7576 		if (TM__PpBJsMJcrcWrpLTS6mci1g_181.status != 0) nimLeaveFinally();
7577 	}
7578 	if (TM__PpBJsMJcrcWrpLTS6mci1g_181.status != 0) reraiseException();
7579 	}BeforeRet_: ;
7580 }
N_NIMCALL(NI64,getSize__types_3336)7581 N_LIB_PRIVATE N_NIMCALL(NI64, getSize__types_3336)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
7582 	NI64 result;
7583 	result = (NI64)0;
7584 	computeSizeAlign__types_2924(conf, typ);
7585 	result = (*typ).size;
7586 	return result;
7587 }
N_NIMCALL(tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng,classify__types_3581)7588 N_LIB_PRIVATE N_NIMCALL(tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng, classify__types_3581)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
7589 	tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng result;
7590 	result = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
7591 	{
7592 		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
7593 		result = ((tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng) 0);
7594 	}
7595 	goto LA1_;
7596 	LA3_: ;
7597 	{
7598 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T6_;
7599 		T6_ = NIM_NIL;
7600 		T6_ = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_194);
7601 		switch ((*T6_).kind) {
7602 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
7603 		{
7604 			result = ((tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng) 2);
7605 		}
7606 		break;
7607 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
7608 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
7609 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
7610 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
7611 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
7612 		{
7613 			result = ((tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng) 1);
7614 		}
7615 		break;
7616 		default:
7617 		{
7618 			result = ((tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng) 0);
7619 		}
7620 		break;
7621 		}
7622 	}
7623 	LA1_: ;
7624 	return result;
7625 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,skipConv__types_3597)7626 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__types_3597)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
7627 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
7628 	result = NIM_NIL;
7629 	result = n;
7630 	switch ((*n).kind) {
7631 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
7632 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
7633 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
7634 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
7635 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
7636 	{
7637 		{
7638 			tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T4_;
7639 			tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T5_;
7640 			T4_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
7641 			T4_ = classify__types_3581((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
7642 			T5_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
7643 			T5_ = classify__types_3581((*n).typ);
7644 			if (!(T4_ == T5_)) goto LA6_;
7645 			result = (*n)._kind_6.sons->data[((NI) 0)];
7646 		}
7647 		LA6_: ;
7648 	}
7649 	break;
7650 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
7651 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
7652 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
7653 	{
7654 		{
7655 			tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T11_;
7656 			tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T12_;
7657 			T11_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
7658 			T11_ = classify__types_3581((*(*n)._kind_6.sons->data[((NI) 1)]).typ);
7659 			T12_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
7660 			T12_ = classify__types_3581((*n).typ);
7661 			if (!(T11_ == T12_)) goto LA13_;
7662 			result = (*n)._kind_6.sons->data[((NI) 1)];
7663 		}
7664 		LA13_: ;
7665 	}
7666 	break;
7667 	default:
7668 	{
7669 	}
7670 	break;
7671 	}
7672 	return result;
7673 }
N_NIMCALL(NIM_BOOL,isUnsigned__types_154)7674 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnsigned__types_154)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
7675 	NIM_BOOL result;
7676 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
7677 	result = (NIM_BOOL)0;
7678 	T1_ = NIM_NIL;
7679 	T1_ = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_167);
7680 	result = ((*T1_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*T1_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*T1_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
7681 	return result;
7682 }
N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g,nextTypeId__ast_3151)7683 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
7684 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
7685 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
7686 	(*x).typeId_0 += ((NI) 1);
7687 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
7688 	result.module = (*x).module;
7689 	result.item = (*x).typeId_0;
7690 	return result;
7691 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,takeType__types_3642)7692 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, takeType__types_3642)(tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* arg, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
7693 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
7694 	result = NIM_NIL;
7695 	{
7696 		if (!((*arg).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5))) goto LA3_;
7697 		result = formal;
7698 	}
7699 	goto LA1_;
7700 	LA3_: ;
7701 	{
7702 		NIM_BOOL T6_;
7703 		tyObject_TType__facALICuu8zUj0hjvbTLFg* a;
7704 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T10_;
7705 		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T11_;
7706 		T6_ = (NIM_BOOL)0;
7707 		T6_ = ((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48) || (*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
7708 		if (!(T6_)) goto LA7_;
7709 		T6_ = isEmptyContainer__types_3626(arg);
7710 		LA7_: ;
7711 		if (!T6_) goto LA8_;
7712 		T10_ = NIM_NIL;
7713 		T10_ = skipTypes__ast_3735(arg, TM__PpBJsMJcrcWrpLTS6mci1g_2);
7714 		T11_ = nextTypeId__ast_3151(idgen);
7715 		a = copyType__ast_4046(T10_, T11_, (*arg).owner);
7716 		copyTypeProps__modulegraphs_8872(g, ((NI) ((*idgen).module)), a, arg);
7717 		asgnRef((void**) (&(*a).sons->data[((*arg).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16))]), (*formal).sons->data[((NI) 0)]);
7718 		result = a;
7719 	}
7720 	goto LA1_;
7721 	LA8_: ;
7722 	{
7723 		NIM_BOOL T13_;
7724 		T13_ = (NIM_BOOL)0;
7725 		T13_ = ((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19));
7726 		if (!(T13_)) goto LA14_;
7727 		T13_ = ((*arg).kind == (*formal).kind);
7728 		LA14_: ;
7729 		if (!T13_) goto LA15_;
7730 		result = formal;
7731 	}
7732 	goto LA1_;
7733 	LA15_: ;
7734 	{
7735 		result = arg;
7736 	}
7737 	LA1_: ;
7738 	return result;
7739 }
N_NIMCALL(NI64,getAlign__types_3332)7740 N_LIB_PRIVATE N_NIMCALL(NI64, getAlign__types_3332)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
7741 	NI64 result;
7742 	result = (NI64)0;
7743 	computeSizeAlign__types_2924(conf, typ);
7744 	result = ((NI64) ((*typ).align));
7745 	return result;
7746 }
N_NIMCALL(void,addPragmaAndCallConvMismatch__types_3795)7747 N_LIB_PRIVATE N_NIMCALL(void, addPragmaAndCallConvMismatch__types_3795)(NimStringDesc** message, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
7748 	tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA T1_;
7749 	tySet_tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA convMismatch;
7750 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw _;
7751 	NimStringDesc* gotPragmas;
7752 	NimStringDesc* expectedPragmas;
7753 	T1_ = getProcConvMismatch__types_3695(conf, formal, actual, ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0));
7754 	convMismatch = T1_.Field0;
7755 	_ = T1_.Field1;
7756 	gotPragmas = ((NimStringDesc*) NIM_NIL);
7757 	expectedPragmas = ((NimStringDesc*) NIM_NIL);
7758 	{
7759 		tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA reason;
7760 		NI i;
7761 		reason = (tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA)0;
7762 		i = ((NI) 0);
7763 		{
7764 			while (1) {
7765 				if (!(i <= ((NI) 4))) goto LA4;
7766 				{
7767 					if (!((convMismatch &((NU8)1<<((NU)(((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) (i)))&7U)))!=0)) goto LA7_;
7768 					reason = ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) (i));
7769 					switch (reason) {
7770 					case ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 4):
7771 					{
7772 						tyArray__Re75IspeoxXy2oCZHwcRrA T10_;
7773 						NimStringDesc* T11_;
7774 						nimZeroMem((void*)T10_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
7775 						T10_[0] = reprEnum((NI)(*actual).callConv, (&NTItcallingconvention__yjAJ8w0h1PBaSwSGJ3P7IA_));
7776 						T10_[1] = reprEnum((NI)(*formal).callConv, (&NTItcallingconvention__yjAJ8w0h1PBaSwSGJ3P7IA_));
7777 						T11_ = NIM_NIL;
7778 						T11_ = nsuFormatOpenArray(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_202), T10_, 2);
7779 						unsureAsgnRef((void**) (&(*message)), resizeString((*message), (T11_ ? T11_->Sup.len : 0) + 0));
7780 appendString((*message), T11_);
7781 					}
7782 					break;
7783 					case ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 0):
7784 					{
7785 						expectedPragmas = resizeString(expectedPragmas, 14);
7786 appendString(expectedPragmas, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_203));
7787 					}
7788 					break;
7789 					case ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 1):
7790 					{
7791 						expectedPragmas = resizeString(expectedPragmas, 8);
7792 appendString(expectedPragmas, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_204));
7793 					}
7794 					break;
7795 					case ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 2):
7796 					{
7797 						NimStringDesc* T15_;
7798 						NimStringDesc* T16_;
7799 						NimStringDesc* T17_;
7800 						NimStringDesc* T18_;
7801 						T15_ = NIM_NIL;
7802 						T16_ = NIM_NIL;
7803 						T16_ = dollar___ast_3858((*actual).lockLevel);
7804 						T15_ = rawNewString((T16_ ? T16_->Sup.len : 0) + 9);
7805 appendString(T15_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_157));
7806 appendString(T15_, T16_);
7807 appendString(T15_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
7808 						gotPragmas = resizeString(gotPragmas, (T15_ ? T15_->Sup.len : 0) + 0);
7809 appendString(gotPragmas, T15_);
7810 						T17_ = NIM_NIL;
7811 						T18_ = NIM_NIL;
7812 						T18_ = dollar___ast_3858((*formal).lockLevel);
7813 						T17_ = rawNewString((T18_ ? T18_->Sup.len : 0) + 9);
7814 appendString(T17_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_157));
7815 appendString(T17_, T18_);
7816 appendString(T17_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
7817 						expectedPragmas = resizeString(expectedPragmas, (T17_ ? T17_->Sup.len : 0) + 0);
7818 appendString(expectedPragmas, T17_);
7819 					}
7820 					break;
7821 					case ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 3):
7822 					{
7823 					}
7824 					break;
7825 					}
7826 				}
7827 				LA7_: ;
7828 				i += ((NI) 1);
7829 			} LA4: ;
7830 		}
7831 	}
7832 	{
7833 		tyArray__Re75IspeoxXy2oCZHwcRrA T24_;
7834 		NimStringDesc* T25_;
7835 		if (!(((NI) 0) < (expectedPragmas ? expectedPragmas->Sup.len : 0))) goto LA22_;
7836 		gotPragmas = setLengthStr(gotPragmas, ((NI) (((((NI) 0) >= (NI)((gotPragmas ? gotPragmas->Sup.len : 0) - ((NI) 2))) ? ((NI) 0) : (NI)((gotPragmas ? gotPragmas->Sup.len : 0) - ((NI) 2))))));
7837 		expectedPragmas = setLengthStr(expectedPragmas, ((NI) (((((NI) 0) >= (NI)((expectedPragmas ? expectedPragmas->Sup.len : 0) - ((NI) 2))) ? ((NI) 0) : (NI)((expectedPragmas ? expectedPragmas->Sup.len : 0) - ((NI) 2))))));
7838 		nimZeroMem((void*)T24_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
7839 		T24_[0] = copyString(gotPragmas);
7840 		T24_[1] = copyString(expectedPragmas);
7841 		T25_ = NIM_NIL;
7842 		T25_ = nsuFormatOpenArray(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_205), T24_, 2);
7843 		unsureAsgnRef((void**) (&(*message)), resizeString((*message), (T25_ ? T25_->Sup.len : 0) + 0));
7844 appendString((*message), T25_);
7845 	}
7846 	LA22_: ;
7847 }
N_NIMCALL(void,typeMismatch__types_3870)7848 N_LIB_PRIVATE N_NIMCALL(void, typeMismatch__types_3870)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
7849 	{
7850 		NIM_BOOL T3_;
7851 		NimStringDesc* actualStr;
7852 		NimStringDesc* formalStr;
7853 		NimStringDesc* desc;
7854 		NimStringDesc* x;
7855 		NIM_BOOL verbose;
7856 		NIM_BOOL T13_;
7857 		NimStringDesc* msg;
7858 		NimStringDesc* T32_;
7859 		T3_ = (NIM_BOOL)0;
7860 		T3_ = !(((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50)));
7861 		if (!(T3_)) goto LA4_;
7862 		T3_ = !(((*actual).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50)));
7863 		LA4_: ;
7864 		if (!T3_) goto LA5_;
7865 		actualStr = typeToString__types_50(actual, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
7866 		formalStr = typeToString__types_50(formal, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
7867 		desc = typeToString__types_50(formal, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
7868 		{
7869 			if (!eqStrings(formalStr, desc)) goto LA9_;
7870 			x = formalStr;
7871 		}
7872 		goto LA7_;
7873 		LA9_: ;
7874 		{
7875 			NimStringDesc* T12_;
7876 			T12_ = NIM_NIL;
7877 			T12_ = rawNewString((formalStr ? formalStr->Sup.len : 0) + (desc ? desc->Sup.len : 0) + 3);
7878 appendString(T12_, formalStr);
7879 appendString(T12_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_195));
7880 appendString(T12_, desc);
7881 			x = T12_;
7882 		}
7883 		LA7_: ;
7884 		T13_ = (NIM_BOOL)0;
7885 		T13_ = eqStrings(actualStr, formalStr);
7886 		if (T13_) goto LA14_;
7887 		T13_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 36))&63U)))!=0);
7888 		LA14_: ;
7889 		verbose = T13_;
7890 		msg = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_196));
7891 		{
7892 			if (!verbose) goto LA17_;
7893 			msg = resizeString(msg, 1);
7894 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_197));
7895 		}
7896 		LA17_: ;
7897 		{
7898 			NIM_BOOL T21_;
7899 			NimStringDesc* T24_;
7900 			T21_ = (NIM_BOOL)0;
7901 			T21_ = isDefined__options_2279(conf, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_198));
7902 			if (!T21_) goto LA22_;
7903 			T24_ = NIM_NIL;
7904 			T24_ = nsuFormatSingleElem(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_199), actualStr);
7905 			msg = resizeString(msg, (T24_ ? T24_->Sup.len : 0) + 0);
7906 appendString(msg, T24_);
7907 		}
7908 		goto LA19_;
7909 		LA22_: ;
7910 		{
7911 			tyArray__Re75IspeoxXy2oCZHwcRrA T26_;
7912 			NimStringDesc* T27_;
7913 			nimZeroMem((void*)T26_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
7914 			T26_[0] = copyString(actualStr);
7915 			T26_[1] = renderTree__renderer_46(n, 0);
7916 			T27_ = NIM_NIL;
7917 			T27_ = nsuFormatOpenArray(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_200), T26_, 2);
7918 			msg = resizeString(msg, (T27_ ? T27_->Sup.len : 0) + 0);
7919 appendString(msg, T27_);
7920 		}
7921 		LA19_: ;
7922 		{
7923 			if (!verbose) goto LA30_;
7924 			addDeclaredLoc__astmsgs_33((&msg), conf, actual);
7925 			msg = resizeString(msg, 1);
7926 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_197));
7927 		}
7928 		LA30_: ;
7929 		T32_ = NIM_NIL;
7930 		T32_ = nsuFormatSingleElem(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_201), x);
7931 		msg = resizeString(msg, (T32_ ? T32_->Sup.len : 0) + 0);
7932 appendString(msg, T32_);
7933 		{
7934 			if (!verbose) goto LA35_;
7935 			addDeclaredLoc__astmsgs_33((&msg), conf, formal);
7936 		}
7937 		LA35_: ;
7938 		{
7939 			NIM_BOOL T39_;
7940 			tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ T43_;
7941 			T39_ = (NIM_BOOL)0;
7942 			T39_ = ((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
7943 			if (!(T39_)) goto LA40_;
7944 			T39_ = ((*actual).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
7945 			LA40_: ;
7946 			if (!T39_) goto LA41_;
7947 			addPragmaAndCallConvMismatch__types_3795((&msg), formal, actual, conf);
7948 			T43_ = (tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ)0;
7949 			T43_ = compatibleEffects__types_3425(formal, actual);
7950 			switch (T43_) {
7951 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 0):
7952 			{
7953 			}
7954 			break;
7955 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 1):
7956 			{
7957 				msg = resizeString(msg, 22);
7958 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_206));
7959 			}
7960 			break;
7961 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 2):
7962 			{
7963 				msg = resizeString(msg, 33);
7964 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_207));
7965 			}
7966 			break;
7967 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 3):
7968 			{
7969 				msg = resizeString(msg, 20);
7970 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_208));
7971 			}
7972 			break;
7973 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 4):
7974 			{
7975 				msg = resizeString(msg, 33);
7976 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_209));
7977 			}
7978 			break;
7979 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 5):
7980 			{
7981 				msg = resizeString(msg, 19);
7982 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_210));
7983 			}
7984 			break;
7985 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 6):
7986 			{
7987 				msg = resizeString(msg, 30);
7988 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_211));
7989 			}
7990 			break;
7991 			}
7992 		}
7993 		LA41_: ;
7994 		liMessage__msgs_1118(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__PpBJsMJcrcWrpLTS6mci1g_212, NIM_FALSE);
7995 	}
7996 	LA5_: ;
7997 }
N_INLINE(NIM_BOOL,contains__types_1647)7998 static N_INLINE(NIM_BOOL, contains__types_1647)(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA s, NF value) {
7999 	NIM_BOOL result;
8000 	NIM_BOOL T1_;
8001 	result = (NIM_BOOL)0;
8002 	T1_ = (NIM_BOOL)0;
8003 	T1_ = (s.a <= value);
8004 	if (!(T1_)) goto LA2_;
8005 	T1_ = (value <= s.b);
8006 	LA2_: ;
8007 	result = T1_;
8008 	return result;
8009 }
N_INLINE(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA,dotdot___types_1617)8010 static N_INLINE(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA, dotdot___types_1617)(NF a, NF b) {
8011 	tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA result;
8012 	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA));
8013 	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA));
8014 	result.a = a;
8015 	result.b = b;
8016 	return result;
8017 }
N_NIMCALL(NIM_BOOL,floatRangeCheck__types_1613)8018 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, floatRangeCheck__types_1613)(NF x, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8019 	NIM_BOOL result;
8020 	result = (NIM_BOOL)0;
8021 	switch ((*t).kind) {
8022 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
8023 	{
8024 		result = NIM_TRUE;
8025 	}
8026 	break;
8027 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
8028 	{
8029 		NF T3_;
8030 		NF T4_;
8031 		tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA T5_;
8032 		T3_ = (NF)0;
8033 		T3_ = firstFloat__types_1445(t);
8034 		T4_ = (NF)0;
8035 		T4_ = lastFloat__types_1588(t);
8036 		T5_ = dotdot___types_1617(T3_, T4_);
8037 		result = contains__types_1647(T5_, x);
8038 	}
8039 	break;
8040 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
8041 	{
8042 		result = floatRangeCheck__types_1613(x, (*t).sons->data[((NI) 0)]);
8043 	}
8044 	break;
8045 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
8046 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
8047 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
8048 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
8049 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
8050 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
8051 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
8052 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
8053 	{
8054 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T8_;
8055 		T8_ = NIM_NIL;
8056 		T8_ = lastSon__ast_3743(t);
8057 		result = floatRangeCheck__types_1613(x, T8_);
8058 	}
8059 	break;
8060 	default:
8061 	{
8062 		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T10_;
8063 		NimStringDesc* T11_;
8064 		T10_ = NIM_NIL;
8065 		T10_ = newPartialConfigRef__options_2497();
8066 		T11_ = NIM_NIL;
8067 		T11_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 33);
8068 appendString(T11_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_213));
8069 appendString(T11_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
8070 		internalErrorImpl__msgs_1431(T10_, unknownLineInfo__lineinfos_280, T11_, TM__PpBJsMJcrcWrpLTS6mci1g_214);
8071 		result = NIM_FALSE;
8072 	}
8073 	break;
8074 	}
8075 	return result;
8076 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,skipHiddenSubConv__types_3674)8077 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipHiddenSubConv__types_3674)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
8078 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
8079 	result = NIM_NIL;
8080 	{
8081 		tyObject_TType__facALICuu8zUj0hjvbTLFg* formal;
8082 		tyObject_TType__facALICuu8zUj0hjvbTLFg* arg;
8083 		tyObject_TType__facALICuu8zUj0hjvbTLFg* dest;
8084 		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59))) goto LA3_;
8085 		formal = (*n).typ;
8086 		result = (*n)._kind_6.sons->data[((NI) 1)];
8087 		arg = (*result).typ;
8088 		dest = takeType__types_3642(formal, arg, g, idgen);
8089 		{
8090 			NIM_BOOL T7_;
8091 			T7_ = (NIM_BOOL)0;
8092 			T7_ = (dest == arg);
8093 			if (!(T7_)) goto LA8_;
8094 			T7_ = !(((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)));
8095 			LA8_: ;
8096 			if (!T7_) goto LA9_;
8097 			result = n;
8098 		}
8099 		goto LA5_;
8100 		LA9_: ;
8101 		{
8102 			result = copyTree__ast_4431(result);
8103 			asgnRef((void**) (&(*result).typ), dest);
8104 		}
8105 		LA5_: ;
8106 	}
8107 	goto LA1_;
8108 	LA3_: ;
8109 	{
8110 		result = n;
8111 	}
8112 	LA1_: ;
8113 	return result;
8114 }
N_NIMCALL(tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ,equalParam__types_1865)8115 N_LIB_PRIVATE N_NIMCALL(tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ, equalParam__types_1865)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* b) {
8116 	tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ result;
8117 	result = (tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ)0;
8118 	{
8119 		NIM_BOOL T3_;
8120 		T3_ = (NIM_BOOL)0;
8121 		T3_ = sameTypeOrNil__types_1848((*a).typ, (*b).typ, 4);
8122 		if (!(T3_)) goto LA4_;
8123 		T3_ = exprStructuralEquivalent__trees_56((*a).constraint, (*b).constraint, NIM_FALSE);
8124 		LA4_: ;
8125 		if (!T3_) goto LA5_;
8126 		{
8127 			if (!((*a).ast == (*b).ast)) goto LA9_;
8128 			result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 1);
8129 		}
8130 		goto LA7_;
8131 		LA9_: ;
8132 		{
8133 			NIM_BOOL T12_;
8134 			T12_ = (NIM_BOOL)0;
8135 			T12_ = !(((*a).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
8136 			if (!(T12_)) goto LA13_;
8137 			T12_ = !(((*b).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
8138 			LA13_: ;
8139 			if (!T12_) goto LA14_;
8140 			{
8141 				NIM_BOOL T18_;
8142 				T18_ = (NIM_BOOL)0;
8143 				T18_ = exprStructuralEquivalent__trees_56((*a).ast, (*b).ast, NIM_FALSE);
8144 				if (!T18_) goto LA19_;
8145 				result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 1);
8146 			}
8147 			goto LA16_;
8148 			LA19_: ;
8149 			{
8150 				result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 2);
8151 			}
8152 			LA16_: ;
8153 		}
8154 		goto LA7_;
8155 		LA14_: ;
8156 		{
8157 			if (!!(((*a).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA23_;
8158 			result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 1);
8159 		}
8160 		goto LA7_;
8161 		LA23_: ;
8162 		{
8163 			if (!!(((*b).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA26_;
8164 			result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 2);
8165 		}
8166 		goto LA7_;
8167 		LA26_: ;
8168 		LA7_: ;
8169 	}
8170 	goto LA1_;
8171 	LA5_: ;
8172 	{
8173 		result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0);
8174 	}
8175 	LA1_: ;
8176 	return result;
8177 }
N_NIMCALL(tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ,equalParams__types_96)8178 N_LIB_PRIVATE N_NIMCALL(tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ, equalParams__types_96)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
8179 	tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ result;
8180 {	result = (tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ)0;
8181 	result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 1);
8182 	{
8183 		NI T3_;
8184 		NI T4_;
8185 		T3_ = (NI)0;
8186 		T3_ = len__ast_3198(a);
8187 		T4_ = (NI)0;
8188 		T4_ = len__ast_3198(b);
8189 		if (!!((T3_ == T4_))) goto LA5_;
8190 		result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0);
8191 	}
8192 	goto LA1_;
8193 	LA5_: ;
8194 	{
8195 		{
8196 			NI i;
8197 			NI colontmp_;
8198 			NI i_2;
8199 			i = (NI)0;
8200 			colontmp_ = (NI)0;
8201 			colontmp_ = len__ast_3198(a);
8202 			i_2 = ((NI) 1);
8203 			{
8204 				while (1) {
8205 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
8206 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* n;
8207 					tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ T11_;
8208 					if (!(i_2 < colontmp_)) goto LA10;
8209 					i = i_2;
8210 					m = (*(*a)._kind_6.sons->data[i])._kind_4.sym;
8211 					n = (*(*b)._kind_6.sons->data[i])._kind_4.sym;
8212 					T11_ = (tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ)0;
8213 					T11_ = equalParam__types_1865(m, n);
8214 					switch (T11_) {
8215 					case ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0):
8216 					{
8217 						result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0);
8218 						goto BeforeRet_;
8219 					}
8220 					break;
8221 					case ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 1):
8222 					{
8223 					}
8224 					break;
8225 					case ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 2):
8226 					{
8227 						result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 2);
8228 					}
8229 					break;
8230 					}
8231 					{
8232 						if (!!(((*(*m).name).id == (*(*n).name).id))) goto LA17_;
8233 						result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0);
8234 						goto BeforeRet_;
8235 					}
8236 					LA17_: ;
8237 					i_2 += ((NI) 1);
8238 				} LA10: ;
8239 			}
8240 		}
8241 		{
8242 			NIM_BOOL T21_;
8243 			T21_ = (NIM_BOOL)0;
8244 			T21_ = sameTypeOrNil__types_1848((*a).typ, (*b).typ, 4);
8245 			if (!!(T21_)) goto LA22_;
8246 			{
8247 				NIM_BOOL T26_;
8248 				T26_ = (NIM_BOOL)0;
8249 				T26_ = ((*a).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
8250 				if (T26_) goto LA27_;
8251 				T26_ = ((*b).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
8252 				LA27_: ;
8253 				if (!T26_) goto LA28_;
8254 				result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0);
8255 			}
8256 			goto LA24_;
8257 			LA28_: ;
8258 			{
8259 				result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 2);
8260 			}
8261 			LA24_: ;
8262 		}
8263 		LA22_: ;
8264 	}
8265 	LA1_: ;
8266 	}BeforeRet_: ;
8267 	return result;
8268 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,skipHidden__types_3613)8269 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipHidden__types_3613)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
8270 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
8271 	result = NIM_NIL;
8272 	result = n;
8273 	{
8274 		while (1) {
8275 			switch ((*result).kind) {
8276 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
8277 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
8278 			{
8279 				{
8280 					tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T6_;
8281 					tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T7_;
8282 					T6_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
8283 					T6_ = classify__types_3581((*(*result)._kind_6.sons->data[((NI) 1)]).typ);
8284 					T7_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
8285 					T7_ = classify__types_3581((*result).typ);
8286 					if (!(T6_ == T7_)) goto LA8_;
8287 					result = (*result)._kind_6.sons->data[((NI) 1)];
8288 				}
8289 				goto LA4_;
8290 				LA8_: ;
8291 				{
8292 					goto LA1;
8293 				}
8294 				LA4_: ;
8295 			}
8296 			break;
8297 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
8298 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
8299 			{
8300 				result = (*result)._kind_6.sons->data[((NI) 0)];
8301 			}
8302 			break;
8303 			default:
8304 			{
8305 				goto LA1;
8306 			}
8307 			break;
8308 			}
8309 		}
8310 	} LA1: ;
8311 	return result;
8312 }
N_NIMCALL(void,addTypeDeclVerboseMaybe__types_53)8313 N_LIB_PRIVATE N_NIMCALL(void, addTypeDeclVerboseMaybe__types_53)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
8314 	{
8315 		NimStringDesc* T5_;
8316 		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 36))&63U)))!=0)) goto LA3_;
8317 		T5_ = NIM_NIL;
8318 		T5_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 7));
8319 		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T5_ ? T5_->Sup.len : 0) + 0));
8320 appendString((*result), T5_);
8321 		addDeclaredLoc__astmsgs_33(result, conf, typ);
8322 	}
8323 	goto LA1_;
8324 	LA3_: ;
8325 	{
8326 		NimStringDesc* T7_;
8327 		T7_ = NIM_NIL;
8328 		T7_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
8329 		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T7_ ? T7_->Sup.len : 0) + 0));
8330 appendString((*result), T7_);
8331 	}
8332 	LA1_: ;
8333 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,commonSuperclass__types_2747)8334 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, commonSuperclass__types_2747)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
8335 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
8336 	tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
8337 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA ancestors;
8338 	tyObject_TType__facALICuu8zUj0hjvbTLFg* y;
8339 {	result = NIM_NIL;
8340 	{
8341 		NIM_BOOL T3_;
8342 		T3_ = (NIM_BOOL)0;
8343 		T3_ = sameObjectTypes__types_2047(a, b);
8344 		if (!T3_) goto LA4_;
8345 		result = a;
8346 		goto BeforeRet_;
8347 	}
8348 	LA4_: ;
8349 	x = a;
8350 	nimZeroMem((void*)(&ancestors), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
8351 	initIntSet__pureZcollectionsZintsets_238((&ancestors));
8352 	{
8353 		while (1) {
8354 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym410_;
8355 			if (!!((x == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA7;
8356 			x = skipTypes__ast_3735(x, TM__PpBJsMJcrcWrpLTS6mci1g_5);
8357 			xX60gensym410_ = x;
8358 			incl__pureZcollectionsZintsets_55((&ancestors), (NI)((NI)((NU64)(((NI) ((*xX60gensym410_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym410_).Sup.itemId.item))));
8359 			x = (*x).sons->data[((NI) 0)];
8360 		} LA7: ;
8361 	}
8362 	y = b;
8363 	{
8364 		while (1) {
8365 			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
8366 			if (!!((y == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA9;
8367 			t = y;
8368 			y = skipTypes__ast_3735(y, TM__PpBJsMJcrcWrpLTS6mci1g_5);
8369 			{
8370 				tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym413_;
8371 				NIM_BOOL T12_;
8372 				xX60gensym413_ = y;
8373 				T12_ = (NIM_BOOL)0;
8374 				T12_ = contains__astalgo_3496((&ancestors), (NI)((NI)((NU64)(((NI) ((*xX60gensym413_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym413_).Sup.itemId.item))));
8375 				if (!T12_) goto LA13_;
8376 				{
8377 					if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11)))) goto LA17_;
8378 					t = y;
8379 				}
8380 				LA17_: ;
8381 				result = t;
8382 				goto BeforeRet_;
8383 			}
8384 			LA13_: ;
8385 			y = (*y).sons->data[((NI) 0)];
8386 		} LA9: ;
8387 	}
8388 	}BeforeRet_: ;
8389 	return result;
8390 }
N_NIMCALL(NIM_BOOL,isTyRef__types_633)8391 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTyRef__types_633)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8392 	NIM_BOOL result;
8393 	NIM_BOOL T1_;
8394 	NIM_BOOL T3_;
8395 	result = (NIM_BOOL)0;
8396 	T1_ = (NIM_BOOL)0;
8397 	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
8398 	if (T1_) goto LA2_;
8399 	T3_ = (NIM_BOOL)0;
8400 	T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
8401 	if (!(T3_)) goto LA4_;
8402 	T3_ = ((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
8403 	LA4_: ;
8404 	T1_ = T3_;
8405 	LA2_: ;
8406 	result = T1_;
8407 	return result;
8408 }
N_NIMCALL(NIM_BOOL,containsTyRef__types_648)8409 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsTyRef__types_648)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
8410 	NIM_BOOL result;
8411 	result = (NIM_BOOL)0;
8412 	result = searchTypeFor__types_470(typ, isTyRef__types_633);
8413 	return result;
8414 }
N_NIMCALL(NIM_BOOL,isDefectException__types_4029)8415 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefectException__types_4029)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8416 	NIM_BOOL result;
8417 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
8418 {	result = (NIM_BOOL)0;
8419 	t_2 = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_215);
8420 	{
8421 		while (1) {
8422 			if (!((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA2;
8423 			{
8424 				NIM_BOOL T5_;
8425 				NIM_BOOL T6_;
8426 				NIM_BOOL T7_;
8427 				T5_ = (NIM_BOOL)0;
8428 				T6_ = (NIM_BOOL)0;
8429 				T7_ = (NIM_BOOL)0;
8430 				T7_ = !(((*t_2).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
8431 				if (!(T7_)) goto LA8_;
8432 				T7_ = !(((*(*t_2).sym).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
8433 				LA8_: ;
8434 				T6_ = T7_;
8435 				if (!(T6_)) goto LA9_;
8436 				T6_ = (((*(*(*t_2).sym).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
8437 				LA9_: ;
8438 				T5_ = T6_;
8439 				if (!(T5_)) goto LA10_;
8440 				T5_ = eqStrings((*(*(*t_2).sym).name).s, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_216));
8441 				LA10_: ;
8442 				if (!T5_) goto LA11_;
8443 				result = NIM_TRUE;
8444 				goto BeforeRet_;
8445 			}
8446 			LA11_: ;
8447 			{
8448 				if (!((*t_2).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA15_;
8449 				goto LA1;
8450 			}
8451 			LA15_: ;
8452 			t_2 = skipTypes__ast_3735((*t_2).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_215);
8453 		} LA2: ;
8454 	} LA1: ;
8455 	result = NIM_FALSE;
8456 	goto BeforeRet_;
8457 	}BeforeRet_: ;
8458 	return result;
8459 }
N_NIMCALL(NIM_BOOL,isCharArrayPtr__types_4087)8460 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCharArrayPtr__types_4087)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, NIM_BOOL allowPointerToChar) {
8461 	NIM_BOOL result;
8462 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
8463 	result = (NIM_BOOL)0;
8464 	t_2 = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_167);
8465 	{
8466 		tyObject_TType__facALICuu8zUj0hjvbTLFg* pointsTo;
8467 		if (!((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA3_;
8468 		pointsTo = skipTypes__ast_3735((*t_2).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_167);
8469 		switch ((*pointsTo).kind) {
8470 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
8471 		{
8472 			result = ((*(*pointsTo).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
8473 		}
8474 		break;
8475 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
8476 		{
8477 			NIM_BOOL T7_;
8478 			NIM_BOOL T8_;
8479 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T10_;
8480 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T12_;
8481 			T7_ = (NIM_BOOL)0;
8482 			T8_ = (NIM_BOOL)0;
8483 			T8_ = ((*(*pointsTo).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
8484 			if (!(T8_)) goto LA9_;
8485 			T10_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), (*pointsTo).sons->data[((NI) 0)]);
8486 			T8_ = eqeq___int495056_759(T10_, IL64(0));
8487 			LA9_: ;
8488 			T7_ = T8_;
8489 			if (!(T7_)) goto LA11_;
8490 			T12_ = NIM_NIL;
8491 			T12_ = skipTypes__ast_3735((*pointsTo).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_217);
8492 			T7_ = ((*T12_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T12_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35));
8493 			LA11_: ;
8494 			result = T7_;
8495 		}
8496 		break;
8497 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
8498 		{
8499 			result = allowPointerToChar;
8500 		}
8501 		break;
8502 		default:
8503 		{
8504 		}
8505 		break;
8506 		}
8507 	}
8508 	LA3_: ;
8509 	return result;
8510 }
N_NIMCALL(NIM_BOOL,isSinkTypeForParam__types_4055)8511 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSinkTypeForParam__types_4055)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8512 	NIM_BOOL result;
8513 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
8514 	result = (NIM_BOOL)0;
8515 	T1_ = NIM_NIL;
8516 	T1_ = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_2);
8517 	result = ((*T1_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*T1_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
8518 	return result;
8519 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,baseOfDistinct__types_3363)8520 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, baseOfDistinct__types_3363)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
8521 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
8522 	result = NIM_NIL;
8523 	{
8524 		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA3_;
8525 		result = (*t).sons->data[((NI) 0)];
8526 	}
8527 	goto LA1_;
8528 	LA3_: ;
8529 	{
8530 		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T6_;
8531 		tyObject_TType__facALICuu8zUj0hjvbTLFg* parent;
8532 		tyObject_TType__facALICuu8zUj0hjvbTLFg* it;
8533 		T6_ = nextTypeId__ast_3151(idgen);
8534 		result = copyType__ast_4046(t, T6_, (*t).owner);
8535 		copyTypeProps__modulegraphs_8872(g, ((NI) ((*idgen).module)), result, t);
8536 		parent = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
8537 		it = result;
8538 		{
8539 			while (1) {
8540 				if (!((*it).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*it).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*it).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA8;
8541 				parent = it;
8542 				it = lastSon__ast_3743(it);
8543 			} LA8: ;
8544 		}
8545 		{
8546 			NIM_BOOL T11_;
8547 			T11_ = (NIM_BOOL)0;
8548 			T11_ = ((*it).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
8549 			if (!(T11_)) goto LA12_;
8550 			T11_ = !((parent == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
8551 			LA12_: ;
8552 			if (!T11_) goto LA13_;
8553 			asgnRef((void**) (&(*parent).sons->data[((NI) 0)]), (*it).sons->data[((NI) 0)]);
8554 		}
8555 		LA13_: ;
8556 	}
8557 	LA1_: ;
8558 	return result;
8559 }
N_INLINE(NI,nextTry__stdZpackedsets_41)8560 static N_INLINE(NI, nextTry__stdZpackedsets_41)(NI h, NI maxHash, NI* perturb) {
8561 	NI result;
8562 	NU perturb2;
8563 	result = (NI)0;
8564 	perturb2 = (NU)((NU64)(((NU) ((*perturb)))) >> (NU64)(((NI) 5)));
8565 	(*perturb) = ((NI) (perturb2));
8566 	result = (NI)((NI)((NI)((NI)(((NI) 5) * h) + ((NI) 1)) + (*perturb)) & maxHash);
8567 	return result;
8568 }
N_NIMCALL(void,assign__types_3929)8569 N_LIB_PRIVATE N_NIMCALL(void, assign__types_3929)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* dest, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* src) {
8570 	{
8571 		if (!((*src).elems <= ((NI) 34))) goto LA3_;
8572 		unsureAsgnRef((void**) (&(*dest).data), NIM_NIL);
8573 		(*dest).max = ((NI) 0);
8574 		(*dest).counter = (*src).counter;
8575 		unsureAsgnRef((void**) (&(*dest).head), ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL));
8576 		(*dest).elems = (*src).elems;
8577 		nimCopyMem((void*)(*dest).a, (NIM_CONST void*)(*src).a, sizeof(tyArray__emiAJ8okywrJw7ZHLzlXbQ));
8578 	}
8579 	goto LA1_;
8580 	LA3_: ;
8581 	{
8582 		NI T6_;
8583 		tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* it;
8584 		(*dest).counter = (*src).counter;
8585 		(*dest).max = (*src).max;
8586 		(*dest).elems = (*src).elems;
8587 		T6_ = ((*src).data ? (*src).data->Sup.len : 0);
8588 		unsureAsgnRef((void**) (&(*dest).data), (tySequence__Bre9bNyuQOg1EJKitjSzn8w*) newSeq((&NTItrunkseq__Bre9bNyuQOg1EJKitjSzn8w_), ((NI) (T6_))));
8589 		it = (*src).head;
8590 		{
8591 			while (1) {
8592 				NI h;
8593 				NI perturb;
8594 				tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* n;
8595 				if (!!((it == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA8;
8596 				h = (NI)((*it).key & (*dest).max);
8597 				perturb = (*it).key;
8598 				{
8599 					while (1) {
8600 						if (!!(((*dest).data->data[h] == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA10;
8601 						h = nextTry__stdZpackedsets_41(h, (*dest).max, (&perturb));
8602 					} LA10: ;
8603 				}
8604 				n = NIM_NIL;
8605 				n = (tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) newObj((&NTItrunk__jMZvnc6V09aC24Isyj9alOEA_), sizeof(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA));
8606 				asgnRef((void**) (&(*n).next), (*dest).head);
8607 				(*n).key = (*it).key;
8608 				nimCopyMem((void*)(*n).bits, (NIM_CONST void*)(*it).bits, sizeof(tyArray__VqSA39cBDWnwnJySTumCdjw));
8609 				unsureAsgnRef((void**) (&(*dest).head), n);
8610 				asgnRef((void**) (&(*dest).data->data[h]), n);
8611 				it = (*it).next;
8612 			} LA8: ;
8613 		}
8614 	}
8615 	LA1_: ;
8616 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,skipConvTakeType__types_3623)8617 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConvTakeType__types_3623)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
8618 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
8619 	result = NIM_NIL;
8620 	result = skipConv__types_3597(n);
8621 	asgnRef((void**) (&(*result).typ), (*n).typ);
8622 	return result;
8623 }
N_NIMCALL(NIM_BOOL,isTupleRecursive__types_3902)8624 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTupleRecursive__types_3902)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* cycleDetector) {
8625 	NIM_BOOL result;
8626 {	result = (NIM_BOOL)0;
8627 	{
8628 		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
8629 		result = NIM_FALSE;
8630 		goto BeforeRet_;
8631 	}
8632 	LA3_: ;
8633 	{
8634 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym562_;
8635 		NIM_BOOL T7_;
8636 		xX60gensym562_ = t;
8637 		T7_ = (NIM_BOOL)0;
8638 		T7_ = containsOrIncl__astalgo_402(cycleDetector, (NI)((NI)((NU64)(((NI) ((*xX60gensym562_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym562_).Sup.itemId.item))));
8639 		if (!T7_) goto LA8_;
8640 		result = NIM_TRUE;
8641 		goto BeforeRet_;
8642 	}
8643 	LA8_: ;
8644 	switch ((*t).kind) {
8645 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
8646 	{
8647 		tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA cycleDetectorCopy;
8648 		nimZeroMem((void*)(&cycleDetectorCopy), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
8649 		{
8650 			NI i;
8651 			NI colontmp_;
8652 			NI i_2;
8653 			i = (NI)0;
8654 			colontmp_ = (NI)0;
8655 			colontmp_ = len__ast_4002(t);
8656 			i_2 = ((NI) 0);
8657 			{
8658 				while (1) {
8659 					if (!(i_2 < colontmp_)) goto LA13;
8660 					i = i_2;
8661 					assign__types_3929((&cycleDetectorCopy), (&(*cycleDetector)));
8662 					{
8663 						NIM_BOOL T16_;
8664 						T16_ = (NIM_BOOL)0;
8665 						T16_ = isTupleRecursive__types_3902((*t).sons->data[i], (&cycleDetectorCopy));
8666 						if (!T16_) goto LA17_;
8667 						result = NIM_TRUE;
8668 						goto BeforeRet_;
8669 					}
8670 					LA17_: ;
8671 					i_2 += ((NI) 1);
8672 				} LA13: ;
8673 			}
8674 		}
8675 	}
8676 	break;
8677 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
8678 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
8679 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
8680 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
8681 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
8682 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
8683 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
8684 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
8685 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
8686 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
8687 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
8688 	{
8689 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T20_;
8690 		T20_ = NIM_NIL;
8691 		T20_ = lastSon__ast_3743(t);
8692 		result = isTupleRecursive__types_3902(T20_, cycleDetector);
8693 		goto BeforeRet_;
8694 	}
8695 	break;
8696 	default:
8697 	{
8698 		result = NIM_FALSE;
8699 		goto BeforeRet_;
8700 	}
8701 	break;
8702 	}
8703 	}BeforeRet_: ;
8704 	return result;
8705 }
N_NIMCALL(NIM_BOOL,isTupleRecursive__types_3996)8706 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTupleRecursive__types_3996)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8707 	NIM_BOOL result;
8708 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA cycleDetector;
8709 	result = (NIM_BOOL)0;
8710 	nimZeroMem((void*)(&cycleDetector), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
8711 	initIntSet__pureZcollectionsZintsets_238((&cycleDetector));
8712 	result = isTupleRecursive__types_3902(t, (&cycleDetector));
8713 	return result;
8714 }
N_NIMCALL(void,addTypeHeader__types_216)8715 N_LIB_PRIVATE N_NIMCALL(void, addTypeHeader__types_216)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, NIM_BOOL getDeclarationPath) {
8716 	NimStringDesc* T1_;
8717 	T1_ = NIM_NIL;
8718 	T1_ = typeToString__types_50(typ, prefer);
8719 	unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T1_ ? T1_->Sup.len : 0) + 0));
8720 appendString((*result), T1_);
8721 	{
8722 		if (!getDeclarationPath) goto LA4_;
8723 		addDeclaredLoc__astmsgs_17(result, conf, (*typ).sym);
8724 	}
8725 	LA4_: ;
8726 }
N_NIMCALL(NI64,computeSize__types_3317)8727 N_LIB_PRIVATE N_NIMCALL(NI64, computeSize__types_3317)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
8728 	NI64 result;
8729 	result = (NI64)0;
8730 	computeSizeAlign__types_2924(conf, typ);
8731 	result = (*typ).size;
8732 	return result;
8733 }
N_NIMCALL(NIM_BOOL,isException__types_4000)8734 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isException__types_4000)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8735 	NIM_BOOL result;
8736 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
8737 {	result = (NIM_BOOL)0;
8738 	t_2 = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_167);
8739 	{
8740 		while (1) {
8741 			if (!((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA2;
8742 			{
8743 				NIM_BOOL T5_;
8744 				T5_ = (NIM_BOOL)0;
8745 				T5_ = !(((*t_2).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
8746 				if (!(T5_)) goto LA6_;
8747 				T5_ = ((*(*t_2).sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 268));
8748 				LA6_: ;
8749 				if (!T5_) goto LA7_;
8750 				result = NIM_TRUE;
8751 				goto BeforeRet_;
8752 			}
8753 			LA7_: ;
8754 			{
8755 				if (!((*t_2).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA11_;
8756 				goto LA1;
8757 			}
8758 			LA11_: ;
8759 			t_2 = skipTypes__ast_3735((*t_2).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_215);
8760 		} LA2: ;
8761 	} LA1: ;
8762 	result = NIM_FALSE;
8763 	goto BeforeRet_;
8764 	}BeforeRet_: ;
8765 	return result;
8766 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,safeSkipTypes__types_3552)8767 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, safeSkipTypes__types_3552)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds) {
8768 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
8769 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA seen;
8770 	result = NIM_NIL;
8771 	result = t;
8772 	nimZeroMem((void*)(&seen), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
8773 	initIntSet__pureZcollectionsZintsets_238((&seen));
8774 	{
8775 		while (1) {
8776 			NIM_BOOL T3_;
8777 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym529_;
8778 			NIM_BOOL T5_;
8779 			T3_ = (NIM_BOOL)0;
8780 			T3_ = ((kinds[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0);
8781 			if (!(T3_)) goto LA4_;
8782 			xX60gensym529_ = result;
8783 			T5_ = (NIM_BOOL)0;
8784 			T5_ = containsOrIncl__astalgo_402((&seen), (NI)((NI)((NU64)(((NI) ((*xX60gensym529_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym529_).Sup.itemId.item))));
8785 			T3_ = !(T5_);
8786 			LA4_: ;
8787 			if (!T3_) goto LA2;
8788 			result = lastSon__ast_3743(result);
8789 		} LA2: ;
8790 	}
8791 	return result;
8792 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,lookupFieldAgain__types_4062)8793 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookupFieldAgain__types_4062)(tyObject_TType__facALICuu8zUj0hjvbTLFg* ty, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field) {
8794 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
8795 	tyObject_TType__facALICuu8zUj0hjvbTLFg* ty_2;
8796 	result = NIM_NIL;
8797 	ty_2 = ty;
8798 	{
8799 		while (1) {
8800 			if (!!((ty_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA2;
8801 			ty_2 = skipTypes__ast_3735(ty_2, TM__PpBJsMJcrcWrpLTS6mci1g_5);
8802 			result = lookupInRecord__astalgo_84((*ty_2).n, (*field).name);
8803 			{
8804 				if (!!((result == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA5_;
8805 				goto LA1;
8806 			}
8807 			LA5_: ;
8808 			ty_2 = (*ty_2).sons->data[((NI) 0)];
8809 		} LA2: ;
8810 	} LA1: ;
8811 	{
8812 		if (!(result == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA9_;
8813 		result = field;
8814 	}
8815 	LA9_: ;
8816 	return result;
8817 }
N_NIMCALL(tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw,analyseObjectWithTypeFieldAux__types_520)8818 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw, analyseObjectWithTypeFieldAux__types_520)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker) {
8819 	tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw result;
8820 	tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw res;
8821 {	result = (tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw)0;
8822 	res = (tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw)0;
8823 	result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 0);
8824 	{
8825 		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
8826 		goto BeforeRet_;
8827 	}
8828 	LA3_: ;
8829 	switch ((*t).kind) {
8830 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
8831 	{
8832 		{
8833 			if (!!(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA8_;
8834 			{
8835 				NIM_BOOL T12_;
8836 				T12_ = (NIM_BOOL)0;
8837 				T12_ = searchTypeNodeForAux__types_397((*t).n, isObjectWithTypeFieldPredicate__types_485, marker);
8838 				if (!T12_) goto LA13_;
8839 				result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 2);
8840 				goto BeforeRet_;
8841 			}
8842 			LA13_: ;
8843 		}
8844 		LA8_: ;
8845 		{
8846 			NI i;
8847 			NI colontmp_;
8848 			NI i_2;
8849 			i = (NI)0;
8850 			colontmp_ = (NI)0;
8851 			colontmp_ = len__ast_4002(t);
8852 			i_2 = ((NI) 0);
8853 			{
8854 				while (1) {
8855 					tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
8856 					if (!(i_2 < colontmp_)) goto LA17;
8857 					i = i_2;
8858 					x = (*t).sons->data[i];
8859 					{
8860 						if (!!((x == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA20_;
8861 						x = skipTypes__ast_3735(x, TM__PpBJsMJcrcWrpLTS6mci1g_5);
8862 					}
8863 					LA20_: ;
8864 					res = analyseObjectWithTypeFieldAux__types_520(x, marker);
8865 					{
8866 						if (!(res == ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 2))) goto LA24_;
8867 						result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 2);
8868 						goto BeforeRet_;
8869 					}
8870 					LA24_: ;
8871 					{
8872 						if (!(res == ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 1))) goto LA28_;
8873 						result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 1);
8874 					}
8875 					LA28_: ;
8876 					i_2 += ((NI) 1);
8877 				} LA17: ;
8878 			}
8879 		}
8880 		{
8881 			if (!(result == ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 0))) goto LA32_;
8882 			{
8883 				NIM_BOOL T36_;
8884 				T36_ = (NIM_BOOL)0;
8885 				T36_ = isObjectWithTypeFieldPredicate__types_485(t);
8886 				if (!T36_) goto LA37_;
8887 				result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 1);
8888 			}
8889 			LA37_: ;
8890 		}
8891 		LA32_: ;
8892 	}
8893 	break;
8894 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
8895 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
8896 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
8897 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
8898 	{
8899 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T40_;
8900 		T40_ = NIM_NIL;
8901 		T40_ = lastSon__ast_3743(t);
8902 		result = analyseObjectWithTypeFieldAux__types_520(T40_, marker);
8903 	}
8904 	break;
8905 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
8906 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
8907 	{
8908 		{
8909 			NI i_3;
8910 			NI colontmp__2;
8911 			NI i_4;
8912 			i_3 = (NI)0;
8913 			colontmp__2 = (NI)0;
8914 			colontmp__2 = len__ast_4002(t);
8915 			i_4 = ((NI) 0);
8916 			{
8917 				while (1) {
8918 					if (!(i_4 < colontmp__2)) goto LA44;
8919 					i_3 = i_4;
8920 					res = analyseObjectWithTypeFieldAux__types_520((*t).sons->data[i_3], marker);
8921 					{
8922 						if (!!((res == ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 0)))) goto LA47_;
8923 						result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 2);
8924 						goto BeforeRet_;
8925 					}
8926 					LA47_: ;
8927 					i_4 += ((NI) 1);
8928 				} LA44: ;
8929 			}
8930 		}
8931 	}
8932 	break;
8933 	default:
8934 	{
8935 	}
8936 	break;
8937 	}
8938 	}BeforeRet_: ;
8939 	return result;
8940 }
N_NIMCALL(tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw,analyseObjectWithTypeField__types_585)8941 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw, analyseObjectWithTypeField__types_585)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8942 	tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw result;
8943 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
8944 	result = (tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw)0;
8945 	nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
8946 	initIntSet__pureZcollectionsZintsets_238((&marker));
8947 	result = analyseObjectWithTypeFieldAux__types_520(t, (&marker));
8948 	return result;
8949 }
N_NIMCALL(NIM_BOOL,isHiddenPointer__types_651)8950 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isHiddenPointer__types_651)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8951 	NIM_BOOL result;
8952 	result = (NIM_BOOL)0;
8953 	result = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48));
8954 	return result;
8955 }
N_NIMCALL(NIM_BOOL,containsHiddenPointer__types_658)8956 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsHiddenPointer__types_658)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
8957 	NIM_BOOL result;
8958 	result = (NIM_BOOL)0;
8959 	result = searchTypeFor__types_470(typ, isHiddenPointer__types_651);
8960 	return result;
8961 }
N_NIMCALL(NIM_BOOL,sameBackendType__types_2650)8962 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameBackendType__types_2650)(tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TType__facALICuu8zUj0hjvbTLFg* y) {
8963 	NIM_BOOL result;
8964 	tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg c;
8965 	result = (NIM_BOOL)0;
8966 	nimZeroMem((void*)(&c), sizeof(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg));
8967 	initSameTypeClosure__types_1699((&c));
8968 	c.flags |= ((NU8)1)<<((((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 0)) & 7);
8969 	c.cmp = ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 1);
8970 	result = sameTypeAux__types_1803(x, y, (&c));
8971 	return result;
8972 }
N_NIMCALL(void,compiler_typesDatInit000)8973 N_LIB_PRIVATE N_NIMCALL(void, compiler_typesDatInit000)(void) {
8974 static TNimNode* TM__PpBJsMJcrcWrpLTS6mci1g_3_2[2];
8975 static TNimNode* TM__PpBJsMJcrcWrpLTS6mci1g_6_2[2];
8976 static TNimNode* TM__PpBJsMJcrcWrpLTS6mci1g_7_8[8];
8977 NI TM__PpBJsMJcrcWrpLTS6mci1g_9;
8978 static char* NIM_CONST TM__PpBJsMJcrcWrpLTS6mci1g_8[8] = {
8979 "preferName",
8980 "preferDesc",
8981 "preferExported",
8982 "preferModuleInfo",
8983 "preferGenericArg",
8984 "preferTypeName",
8985 "preferResolved",
8986 "preferMixed"};
8987 static TNimNode TM__PpBJsMJcrcWrpLTS6mci1g_0[16];
8988 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.size = sizeof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ);
8989 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.align = NIM_ALIGNOF(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ);
8990 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.kind = 18;
8991 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.base = 0;
8992 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.flags = 1;
8993 TM__PpBJsMJcrcWrpLTS6mci1g_3_2[0] = &TM__PpBJsMJcrcWrpLTS6mci1g_0[1];
8994 TM__PpBJsMJcrcWrpLTS6mci1g_0[1].kind = 1;
8995 TM__PpBJsMJcrcWrpLTS6mci1g_0[1].offset = offsetof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, Field0);
8996 TM__PpBJsMJcrcWrpLTS6mci1g_0[1].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
8997 TM__PpBJsMJcrcWrpLTS6mci1g_0[1].name = "Field0";
8998 TM__PpBJsMJcrcWrpLTS6mci1g_3_2[1] = &TM__PpBJsMJcrcWrpLTS6mci1g_0[2];
8999 TM__PpBJsMJcrcWrpLTS6mci1g_0[2].kind = 1;
9000 TM__PpBJsMJcrcWrpLTS6mci1g_0[2].offset = offsetof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, Field1);
9001 TM__PpBJsMJcrcWrpLTS6mci1g_0[2].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
9002 TM__PpBJsMJcrcWrpLTS6mci1g_0[2].name = "Field1";
9003 TM__PpBJsMJcrcWrpLTS6mci1g_0[0].len = 2; TM__PpBJsMJcrcWrpLTS6mci1g_0[0].kind = 2; TM__PpBJsMJcrcWrpLTS6mci1g_0[0].sons = &TM__PpBJsMJcrcWrpLTS6mci1g_3_2[0];
9004 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.node = &TM__PpBJsMJcrcWrpLTS6mci1g_0[0];
9005 NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_.size = sizeof(tySequence__8Np6tlClE5az1CyqZdN19bQ*);
9006 NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_.align = NIM_ALIGNOF(tySequence__8Np6tlClE5az1CyqZdN19bQ*);
9007 NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_.kind = 24;
9008 NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_.base = (&NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_);
9009 NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_.marker = Marker_tySequence__8Np6tlClE5az1CyqZdN19bQ;
9010 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.size = sizeof(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw);
9011 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.align = NIM_ALIGNOF(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw);
9012 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.kind = 17;
9013 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
9014 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.flags = 1;
9015 TM__PpBJsMJcrcWrpLTS6mci1g_6_2[0] = &TM__PpBJsMJcrcWrpLTS6mci1g_0[4];
9016 TM__PpBJsMJcrcWrpLTS6mci1g_0[4].kind = 1;
9017 TM__PpBJsMJcrcWrpLTS6mci1g_0[4].offset = offsetof(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw, colonstate_);
9018 TM__PpBJsMJcrcWrpLTS6mci1g_0[4].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
9019 TM__PpBJsMJcrcWrpLTS6mci1g_0[4].name = ":state";
9020 TM__PpBJsMJcrcWrpLTS6mci1g_6_2[1] = &TM__PpBJsMJcrcWrpLTS6mci1g_0[5];
9021 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.size = sizeof(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw);
9022 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.align = NIM_ALIGNOF(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw);
9023 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.kind = 14;
9024 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.base = 0;
9025 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.flags = 3;
9026 for (TM__PpBJsMJcrcWrpLTS6mci1g_9 = 0; TM__PpBJsMJcrcWrpLTS6mci1g_9 < 8; TM__PpBJsMJcrcWrpLTS6mci1g_9++) {
9027 TM__PpBJsMJcrcWrpLTS6mci1g_0[TM__PpBJsMJcrcWrpLTS6mci1g_9+6].kind = 1;
9028 TM__PpBJsMJcrcWrpLTS6mci1g_0[TM__PpBJsMJcrcWrpLTS6mci1g_9+6].offset = TM__PpBJsMJcrcWrpLTS6mci1g_9;
9029 TM__PpBJsMJcrcWrpLTS6mci1g_0[TM__PpBJsMJcrcWrpLTS6mci1g_9+6].name = TM__PpBJsMJcrcWrpLTS6mci1g_8[TM__PpBJsMJcrcWrpLTS6mci1g_9];
9030 TM__PpBJsMJcrcWrpLTS6mci1g_7_8[TM__PpBJsMJcrcWrpLTS6mci1g_9] = &TM__PpBJsMJcrcWrpLTS6mci1g_0[TM__PpBJsMJcrcWrpLTS6mci1g_9+6];
9031 }
9032 TM__PpBJsMJcrcWrpLTS6mci1g_0[14].len = 8; TM__PpBJsMJcrcWrpLTS6mci1g_0[14].kind = 2; TM__PpBJsMJcrcWrpLTS6mci1g_0[14].sons = &TM__PpBJsMJcrcWrpLTS6mci1g_7_8[0];
9033 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.node = &TM__PpBJsMJcrcWrpLTS6mci1g_0[14];
9034 TM__PpBJsMJcrcWrpLTS6mci1g_0[5].kind = 1;
9035 TM__PpBJsMJcrcWrpLTS6mci1g_0[5].offset = offsetof(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw, preferToplevel1);
9036 TM__PpBJsMJcrcWrpLTS6mci1g_0[5].typ = (&NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_);
9037 TM__PpBJsMJcrcWrpLTS6mci1g_0[5].name = "preferToplevel1";
9038 TM__PpBJsMJcrcWrpLTS6mci1g_0[3].len = 2; TM__PpBJsMJcrcWrpLTS6mci1g_0[3].kind = 2; TM__PpBJsMJcrcWrpLTS6mci1g_0[3].sons = &TM__PpBJsMJcrcWrpLTS6mci1g_6_2[0];
9039 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.node = &TM__PpBJsMJcrcWrpLTS6mci1g_0[3];
9040 NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_.size = sizeof(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw*);
9041 NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_.align = NIM_ALIGNOF(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw*);
9042 NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_.kind = 22;
9043 NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_.base = (&NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_);
9044 NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_.marker = Marker_tyRef__ik3gfZ9aJJHPxASsunXJrEA;
9045 NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_.size = sizeof(tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA);
9046 NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_.align = NIM_ALIGNOF(tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA);
9047 NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_.kind = 17;
9048 NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_.base = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
9049 TM__PpBJsMJcrcWrpLTS6mci1g_0[15].len = 0; TM__PpBJsMJcrcWrpLTS6mci1g_0[15].kind = 2;
9050 NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_.node = &TM__PpBJsMJcrcWrpLTS6mci1g_0[15];
9051 NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_.size = sizeof(tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA*);
9052 NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_.align = NIM_ALIGNOF(tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA*);
9053 NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_.kind = 22;
9054 NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_.base = (&NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_);
9055 NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_.marker = Marker_tyRef__SFgbIvdx8bC9cxnXgi8Zn1A;
9056 }
9057 
9058