1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
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__cC4ce9cdvDKtIpar5g9cDejA[16];
628 struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA {
629 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* next;
630 NI key;
631 tyArray__cC4ce9cdvDKtIpar5g9cDejA 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_1690)(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_1794)(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_2210)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
723 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericAlias__types_2196)(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_2216)(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_1692)(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
729 static N_INLINE(NIM_BOOL, contains__types_1713)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* a, NI aLen_0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ item);
730 static N_INLINE(NI, find__types_1718)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ* a, NI aLen_0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ item);
731 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___types_1737)(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_2154)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c);
735 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNilAux__types_1798)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c);
736 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTree__types_2103)(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_1956)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c);
742 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameChildrenAux__types_2175)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg* c);
743 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstraints__types_1889)(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_2038)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
746 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_1815)(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_2676)(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_3331)(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_1469)(NU arg);
789 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__types_1465)(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_1440)(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_1579)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
794 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__types_1652)(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_3395)(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_3383)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
800 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_3617)(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_2915)(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_2855)(NI64 address, NI64 alignment);
821 N_LIB_PRIVATE N_NIMCALL(void, align__types_2902)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, NI value);
822 N_LIB_PRIVATE N_NIMCALL(void, raiseIllegalTypeRecursion__types_2868)(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_5336)(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_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
831 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5285)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
832 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr);
833 static N_INLINE(void, asgnRef)(void** dest, void* src);
834 static N_INLINE(void, incRef__system_5329)(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_2859)(NI address, NI alignment);
838 N_LIB_PRIVATE N_NIMCALL(void, inc__types_2891)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, NI value);
839 N_LIB_PRIVATE N_NIMCALL(NI, finish__types_2908)(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_3058)(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_2905)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw value);
848 N_LIB_PRIVATE N_NIMCALL(void, computeObjectOffsetsFoldFunction__types_2985)(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_2918)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
850 N_LIB_PRIVATE N_NIMCALL(NI, alignmentMax__types_2898)(NI a, NI b);
851 N_LIB_PRIVATE N_NIMCALL(void, setOffsetsToUnknown__types_2969)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
852 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
853 N_LIB_PRIVATE N_NIMCALL(tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng, classify__types_3572)(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_3786)(NimStringDesc** message, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
861 N_LIB_PRIVATE N_NIMCALL(tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA, getProcConvMismatch__types_3686)(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_3416)(tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
863 static N_INLINE(NIM_BOOL, contains__types_1638)(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA s, NF value);
864 static N_INLINE(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA, dotdot___types_1608)(NF a, NF b);
865 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, floatRangeCheck__types_1604)(NF x, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
866 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, takeType__types_3633)(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_1856)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* b);
869 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_1839)(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_3588)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
877 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTupleRecursive__types_3893)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* cycleDetector);
878 N_LIB_PRIVATE N_NIMCALL(void, assign__types_3920)(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_5238;
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_1690)1223 N_LIB_PRIVATE N_NIMCALL(void, initSameTypeClosure__types_1690)(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_2196)1236 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericAlias__types_2196)(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_2210)1253 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipGenericAlias__types_2210)(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_2196(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_2216)1279 static N_INLINE(NIM_BOOL, sameFlags__types_2216)(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_1737)1285 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___types_1737)(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_1718)1305 static N_INLINE(NI, find__types_1718)(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_1737((*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_1713)1335 static N_INLINE(NIM_BOOL, contains__types_1713)(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_1718(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_1692)1352 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__types_1692)(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* xX60gensym261_;
1358 	tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym262_;
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 	xX60gensym261_ = a;
1365 	T4_.Field0 = (NI)((NI)((NU32)(((NI) ((*xX60gensym261_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym261_).Sup.itemId.item)));
1366 	xX60gensym262_ = b;
1367 	T4_.Field1 = (NI)((NI)((NU32)(((NI) ((*xX60gensym262_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym262_).Sup.itemId.item)));
1368 	T1_ = contains__types_1713((*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* xX60gensym263_;
1374 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym264_;
1375 		NI T10_;
1376 		if (!!(result)) goto LA7_;
1377 		xX60gensym263_ = a;
1378 		T9_.Field0 = (NI)((NI)((NU32)(((NI) ((*xX60gensym263_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym263_).Sup.itemId.item)));
1379 		xX60gensym264_ = b;
1380 		T9_.Field1 = (NI)((NI)((NU32)(((NI) ((*xX60gensym264_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym264_).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_1798)1388 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNilAux__types_1798)(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_1794(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_2103)1463 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTree__types_2103)(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_1798(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_2103((*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_2154)1591 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectStructures__types_2154)(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_1798((*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_2103((*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_1956)1641 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTuple__types_1956)(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_1794(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_2175)1774 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameChildrenAux__types_2175)(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_1798((*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_1889)1815 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstraints__types_1889)(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_1794)1872 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeAux__types_1794)(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_2210(x);
1976 		rhs = skipGenericAlias__types_2210(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_1794(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_2216(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_2216(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_1692(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_1794((*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* xX60gensym346_;
2144 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym347_;
2145 			if (!!(((((*a).flags | (*b).flags) &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 8))&63U)))!=0))) goto LA107_;
2146 			xX60gensym346_ = a;
2147 			xX60gensym347_ = b;
2148 			result = ((NI)((NI)((NU32)(((NI) ((*xX60gensym346_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym346_).Sup.itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym347_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym347_).Sup.itemId.item))));
2149 		}
2150 		goto LA105_;
2151 		LA107_: ;
2152 		{
2153 			{
2154 				NIM_BOOL T112_;
2155 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym349_;
2156 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym350_;
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 				xX60gensym349_ = (*a).sym;
2162 				xX60gensym350_ = (*b).sym;
2163 				T112_ = ((NI)((NI)((NU32)(((NI) ((*xX60gensym349_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym349_).Sup.itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym350_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym350_).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_1692(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_2154(a, b, c);
2186 				if (!(T126_)) goto LA127_;
2187 				T126_ = sameFlags__types_2216(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_1692(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_2216(a, b);
2222 				if (!T145_) goto LA146_;
2223 				{
2224 					tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym355_;
2225 					tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym356_;
2226 					if (!!(((((*a).flags | (*b).flags) &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 8))&63U)))!=0))) goto LA150_;
2227 					xX60gensym355_ = a;
2228 					xX60gensym356_ = b;
2229 					result = ((NI)((NI)((NU32)(((NI) ((*xX60gensym355_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym355_).Sup.itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym356_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym356_).Sup.itemId.item))));
2230 				}
2231 				goto LA148_;
2232 				LA150_: ;
2233 				{
2234 					{
2235 						NIM_BOOL T155_;
2236 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym358_;
2237 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym359_;
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 						xX60gensym358_ = (*a).sym;
2242 						xX60gensym359_ = (*b).sym;
2243 						T155_ = ((NI)((NI)((NU32)(((NI) ((*xX60gensym358_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym358_).Sup.itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym359_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym359_).Sup.itemId.item))));
2244 						LA156_: ;
2245 						if (!T155_) goto LA157_;
2246 						result = sameTypeAux__types_1794((*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_1794((*a).sons->data[((NI) 0)], (*b).sons->data[((NI) 0)], c);
2260 			if (!(T160_)) goto LA161_;
2261 			T160_ = sameFlags__types_2216(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* xX60gensym364_;
2273 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym365_;
2274 		T163_ = (NIM_BOOL)0;
2275 		xX60gensym364_ = a;
2276 		xX60gensym365_ = b;
2277 		T163_ = ((NI)((NI)((NU32)(((NI) ((*xX60gensym364_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym364_).Sup.itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym365_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym365_).Sup.itemId.item))));
2278 		if (!(T163_)) goto LA164_;
2279 		T163_ = sameFlags__types_2216(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_1692(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_1956(a, b, c);
2312 		if (!(T177_)) goto LA178_;
2313 		T177_ = sameFlags__types_2216(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_1692(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_2175(x, y, c);
2349 			if (!(T197_)) goto LA198_;
2350 			T197_ = sameFlags__types_2216(a, b);
2351 			LA198_: ;
2352 			result = T197_;
2353 		}
2354 		goto LA180_;
2355 		LA185_: ;
2356 		{
2357 			result = sameFlags__types_2216(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_2175(a, b, c);
2367 		if (!(T201_)) goto LA202_;
2368 		T201_ = sameFlags__types_2216(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_1692(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_2175(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_2216(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_1889((*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_1692(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_1798((*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_1692(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_1794(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_1815)2581 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_1815)(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_1690((&c));
2587 	c.flags = flags;
2588 	result = sameTypeAux__types_1794(a, b, (&c));
2589 	return result;
2590 }
N_NIMCALL(NIM_BOOL,sameObjectTypes__types_2038)2591 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTypes__types_2038)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
2592 	NIM_BOOL result;
2593 	result = (NIM_BOOL)0;
2594 	{
2595 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym292_;
2596 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym293_;
2597 		if (!!(((((*a).flags | (*b).flags) &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 8))&63U)))!=0))) goto LA3_;
2598 		xX60gensym292_ = a;
2599 		xX60gensym293_ = b;
2600 		result = ((NI)((NI)((NU32)(((NI) ((*xX60gensym292_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym292_).Sup.itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym293_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym293_).Sup.itemId.item))));
2601 	}
2602 	goto LA1_;
2603 	LA3_: ;
2604 	{
2605 		{
2606 			NIM_BOOL T8_;
2607 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym295_;
2608 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym296_;
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 			xX60gensym295_ = (*a).sym;
2614 			xX60gensym296_ = (*b).sym;
2615 			T8_ = ((NI)((NI)((NU32)(((NI) ((*xX60gensym295_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym295_).Sup.itemId.item))) == (NI)((NI)((NU32)(((NI) ((*xX60gensym296_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym296_).Sup.itemId.item))));
2616 			LA9_: ;
2617 			if (!T8_) goto LA10_;
2618 			nimZeroMem((void*)(&c), sizeof(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg));
2619 			initSameTypeClosure__types_1690((&c));
2620 			result = sameTypeAux__types_1794(a, b, (&c));
2621 		}
2622 		LA10_: ;
2623 	}
2624 	LA1_: ;
2625 	return result;
2626 }
N_NIMCALL(NI,inheritanceDiff__types_2676)2627 N_LIB_PRIVATE N_NIMCALL(NI, inheritanceDiff__types_2676)(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_2038(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_2038(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) 2147483647);
2687 	}BeforeRet_: ;
2688 	return result;
2689 }
N_NIMCALL(NIM_BOOL,sameTypeOrNil__types_1839)2690 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_1839)(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_1815(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_3383)4338 N_LIB_PRIVATE N_NIMCALL(NI, safeInheritanceDiff__types_3383)(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_2676(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_2659)4398 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compareTypes__types_2659)(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_1690((&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_1794(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)((NU32)(((NI) ((*xX60gensym39_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((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_3331)4563 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericTypeIter__types_3331)(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_3331(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_3351)4620 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericType__types_3351)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
4621 	NIM_BOOL result;
4622 	result = (NIM_BOOL)0;
4623 	result = iterOverType__types_81(t, containsGenericTypeIter__types_3331, ((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 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
4728 	(*((NI32*) ((&result.udata[(((NI) 0))- 0])))) = ((NI32) (arg));
4729 	{
4730 		if (!(arg < ((NI) 0))) goto LA3_;
4731 		(*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = ((NI32) -1);
4732 		(*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1);
4733 		(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1);
4734 	}
4735 	LA3_: ;
4736 	return result;
4737 }
N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA,firstOrd__types_1353)4738 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__types_1353)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
4739 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
4740 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
4741 	switch ((*t).kind) {
4742 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
4743 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
4744 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
4745 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
4746 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
4747 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
4748 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
4749 	{
4750 		result = Zero__int495056_7;
4751 	}
4752 	break;
4753 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
4754 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
4755 	{
4756 		result = firstOrd__types_1353(conf, (*t).sons->data[((NI) 0)]);
4757 	}
4758 	break;
4759 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
4760 	{
4761 		result = firstOrd__types_1353(conf, (*t).sons->data[((NI) 0)]);
4762 	}
4763 	break;
4764 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
4765 	{
4766 		result = getOrdValue__types_161((*(*t).n)._kind_6.sons->data[((NI) 0)], Max__int495056_27);
4767 	}
4768 	break;
4769 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
4770 	{
4771 		{
4772 			NIM_BOOL T8_;
4773 			T8_ = (NIM_BOOL)0;
4774 			T8_ = !((conf == ((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL)));
4775 			if (!(T8_)) goto LA9_;
4776 			T8_ = ((*conf).target.intSize == ((NI) 4));
4777 			LA9_: ;
4778 			if (!T8_) goto LA10_;
4779 			result = toInt128__types_1378(((NI) (-2147483647 -1)));
4780 		}
4781 		goto LA6_;
4782 		LA10_: ;
4783 		{
4784 			result = toInt128__int495056_725((IL64(-9223372036854775807) - IL64(1)));
4785 		}
4786 		LA6_: ;
4787 	}
4788 	break;
4789 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32):
4790 	{
4791 		result = toInt128__types_1378(((NI) -128));
4792 	}
4793 	break;
4794 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33):
4795 	{
4796 		result = toInt128__types_1378(((NI) -32768));
4797 	}
4798 	break;
4799 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34):
4800 	{
4801 		result = toInt128__types_1378(((NI) (-2147483647 -1)));
4802 	}
4803 	break;
4804 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
4805 	{
4806 		result = toInt128__int495056_725((IL64(-9223372036854775807) - IL64(1)));
4807 	}
4808 	break;
4809 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
4810 	{
4811 		result = Zero__int495056_7;
4812 	}
4813 	break;
4814 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
4815 	{
4816 		{
4817 			NIM_BOOL T21_;
4818 			NI T22_;
4819 			T21_ = (NIM_BOOL)0;
4820 			T22_ = (NI)0;
4821 			T22_ = len__ast_4002(t);
4822 			T21_ = (((NI) 0) < T22_);
4823 			if (!(T21_)) goto LA23_;
4824 			T21_ = !(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
4825 			LA23_: ;
4826 			if (!T21_) goto LA24_;
4827 			result = firstOrd__types_1353(conf, (*t).sons->data[((NI) 0)]);
4828 		}
4829 		goto LA19_;
4830 		LA24_: ;
4831 		{
4832 			{
4833 				NI T29_;
4834 				T29_ = (NI)0;
4835 				T29_ = len__ast_3198((*t).n);
4836 				if (!(((NI) 0) < T29_)) goto LA30_;
4837 				result = toInt128__types_1378((*(*(*(*t).n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).position);
4838 			}
4839 			LA30_: ;
4840 		}
4841 		LA19_: ;
4842 	}
4843 	break;
4844 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
4845 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
4846 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
4847 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
4848 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
4849 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
4850 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
4851 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
4852 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
4853 	{
4854 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T33_;
4855 		T33_ = NIM_NIL;
4856 		T33_ = lastSon__ast_3743(t);
4857 		result = firstOrd__types_1353(conf, T33_);
4858 	}
4859 	break;
4860 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
4861 	{
4862 		{
4863 			NI T37_;
4864 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T40_;
4865 			T37_ = (NI)0;
4866 			T37_ = len__ast_4002(t);
4867 			if (!(((NI) 0) < T37_)) goto LA38_;
4868 			T40_ = NIM_NIL;
4869 			T40_ = lastSon__ast_3743(t);
4870 			result = firstOrd__types_1353(conf, T40_);
4871 		}
4872 		goto LA35_;
4873 		LA38_: ;
4874 		{
4875 			NimStringDesc* T42_;
4876 			T42_ = NIM_NIL;
4877 			T42_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 27);
4878 appendString(T42_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_168));
4879 appendString(T42_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
4880 appendChar(T42_, 41);
4881 			internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, T42_, TM__PpBJsMJcrcWrpLTS6mci1g_169);
4882 		}
4883 		LA35_: ;
4884 	}
4885 	break;
4886 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
4887 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
4888 	{
4889 		result = Zero__int495056_7;
4890 	}
4891 	break;
4892 	default:
4893 	{
4894 		NimStringDesc* T45_;
4895 		T45_ = NIM_NIL;
4896 		T45_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 27);
4897 appendString(T45_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_168));
4898 appendString(T45_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
4899 appendChar(T45_, 41);
4900 		internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, T45_, TM__PpBJsMJcrcWrpLTS6mci1g_171);
4901 		result = Zero__int495056_7;
4902 	}
4903 	break;
4904 	}
4905 	return result;
4906 }
N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA,toInt128__types_1469)4907 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__types_1469)(NU arg) {
4908 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
4909 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
4910 	result.udata[(((NI) 0))- 0] = ((NU32) (arg));
4911 	return result;
4912 }
N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA,lastOrd__types_1465)4913 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__types_1465)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
4914 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
4915 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
4916 	switch ((*t).kind) {
4917 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
4918 	{
4919 		result = toInt128__types_1469(((NU) 1));
4920 	}
4921 	break;
4922 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
4923 	{
4924 		result = toInt128__types_1469(((NU) 255));
4925 	}
4926 	break;
4927 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
4928 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
4929 	{
4930 		result = lastOrd__types_1465(conf, (*t).sons->data[((NI) 0)]);
4931 	}
4932 	break;
4933 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
4934 	{
4935 		result = lastOrd__types_1465(conf, (*t).sons->data[((NI) 0)]);
4936 	}
4937 	break;
4938 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
4939 	{
4940 		result = getOrdValue__types_161((*(*t).n)._kind_6.sons->data[((NI) 1)], Max__int495056_27);
4941 	}
4942 	break;
4943 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
4944 	{
4945 		{
4946 			NIM_BOOL T9_;
4947 			T9_ = (NIM_BOOL)0;
4948 			T9_ = !((conf == ((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL)));
4949 			if (!(T9_)) goto LA10_;
4950 			T9_ = ((*conf).target.intSize == ((NI) 4));
4951 			LA10_: ;
4952 			if (!T9_) goto LA11_;
4953 			result = toInt128__types_1378(((NI) 2147483647));
4954 		}
4955 		goto LA7_;
4956 		LA11_: ;
4957 		{
4958 			result = toInt128__int495056_556(9223372036854775807ULL);
4959 		}
4960 		LA7_: ;
4961 	}
4962 	break;
4963 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32):
4964 	{
4965 		result = toInt128__types_1378(((NI) 127));
4966 	}
4967 	break;
4968 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33):
4969 	{
4970 		result = toInt128__types_1378(((NI) 32767));
4971 	}
4972 	break;
4973 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34):
4974 	{
4975 		result = toInt128__types_1378(((NI) 2147483647));
4976 	}
4977 	break;
4978 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
4979 	{
4980 		result = toInt128__int495056_556(9223372036854775807ULL);
4981 	}
4982 	break;
4983 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40):
4984 	{
4985 		{
4986 			NIM_BOOL T21_;
4987 			T21_ = (NIM_BOOL)0;
4988 			T21_ = !((conf == ((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL)));
4989 			if (!(T21_)) goto LA22_;
4990 			T21_ = ((*conf).target.intSize == ((NI) 4));
4991 			LA22_: ;
4992 			if (!T21_) goto LA23_;
4993 			result = toInt128__int495056_725(IL64(4294967295));
4994 		}
4995 		goto LA19_;
4996 		LA23_: ;
4997 		{
4998 			result = toInt128__int495056_556(18446744073709551615ULL);
4999 		}
5000 		LA19_: ;
5001 	}
5002 	break;
5003 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41):
5004 	{
5005 		result = toInt128__types_1378(((NI) 255));
5006 	}
5007 	break;
5008 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42):
5009 	{
5010 		result = toInt128__types_1378(((NI) 65535));
5011 	}
5012 	break;
5013 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
5014 	{
5015 		result = toInt128__int495056_725(IL64(4294967295));
5016 	}
5017 	break;
5018 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
5019 	{
5020 		result = toInt128__int495056_556(18446744073709551615ULL);
5021 	}
5022 	break;
5023 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
5024 	{
5025 		{
5026 			NI T33_;
5027 			NI T36_;
5028 			T33_ = (NI)0;
5029 			T33_ = len__ast_3198((*t).n);
5030 			if (!(((NI) 0) < T33_)) goto LA34_;
5031 			T36_ = (NI)0;
5032 			T36_ = len__ast_3198((*t).n);
5033 			result = toInt128__types_1378((*(*(*(*t).n)._kind_6.sons->data[(NI)(T36_ - ((NI) 1))])._kind_4.sym).position);
5034 		}
5035 		LA34_: ;
5036 	}
5037 	break;
5038 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
5039 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
5040 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
5041 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
5042 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
5043 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
5044 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
5045 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
5046 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
5047 	{
5048 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T38_;
5049 		T38_ = NIM_NIL;
5050 		T38_ = lastSon__ast_3743(t);
5051 		result = lastOrd__types_1465(conf, T38_);
5052 	}
5053 	break;
5054 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
5055 	{
5056 		result = Zero__int495056_7;
5057 	}
5058 	break;
5059 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
5060 	{
5061 		{
5062 			NI T43_;
5063 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T46_;
5064 			T43_ = (NI)0;
5065 			T43_ = len__ast_4002(t);
5066 			if (!(((NI) 0) < T43_)) goto LA44_;
5067 			T46_ = NIM_NIL;
5068 			T46_ = lastSon__ast_3743(t);
5069 			result = lastOrd__types_1465(conf, T46_);
5070 		}
5071 		goto LA41_;
5072 		LA44_: ;
5073 		{
5074 			NimStringDesc* T48_;
5075 			T48_ = NIM_NIL;
5076 			T48_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 26);
5077 appendString(T48_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_172));
5078 appendString(T48_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
5079 appendChar(T48_, 41);
5080 			internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, T48_, TM__PpBJsMJcrcWrpLTS6mci1g_173);
5081 		}
5082 		LA41_: ;
5083 	}
5084 	break;
5085 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
5086 	{
5087 		result = Zero__int495056_7;
5088 	}
5089 	break;
5090 	default:
5091 	{
5092 		NimStringDesc* T51_;
5093 		T51_ = NIM_NIL;
5094 		T51_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 26);
5095 appendString(T51_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_172));
5096 appendString(T51_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
5097 appendChar(T51_, 41);
5098 		internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, T51_, TM__PpBJsMJcrcWrpLTS6mci1g_174);
5099 		result = Zero__int495056_7;
5100 	}
5101 	break;
5102 	}
5103 	return result;
5104 }
N_NIMCALL(NF,getFloatValue__types_182)5105 N_LIB_PRIVATE N_NIMCALL(NF, getFloatValue__types_182)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
5106 	NF result;
5107 	result = (NF)0;
5108 	switch ((*n).kind) {
5109 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 19):
5110 	{
5111 		result = (*n)._kind_2.floatVal;
5112 	}
5113 	break;
5114 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
5115 	{
5116 		result = getFloatValue__types_182((*n)._kind_6.sons->data[((NI) 1)]);
5117 	}
5118 	break;
5119 	default:
5120 	{
5121 		result = NAN;
5122 	}
5123 	break;
5124 	}
5125 	return result;
5126 }
N_NIMCALL(NF,firstFloat__types_1440)5127 N_LIB_PRIVATE N_NIMCALL(NF, firstFloat__types_1440)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
5128 	NF result;
5129 	result = (NF)0;
5130 	switch ((*t).kind) {
5131 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
5132 	{
5133 		result = -INF;
5134 	}
5135 	break;
5136 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
5137 	{
5138 		result = getFloatValue__types_182((*(*t).n)._kind_6.sons->data[((NI) 0)]);
5139 	}
5140 	break;
5141 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
5142 	{
5143 		result = firstFloat__types_1440((*t).sons->data[((NI) 0)]);
5144 	}
5145 	break;
5146 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
5147 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
5148 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
5149 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
5150 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
5151 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
5152 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
5153 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
5154 	{
5155 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
5156 		T5_ = NIM_NIL;
5157 		T5_ = lastSon__ast_3743(t);
5158 		result = firstFloat__types_1440(T5_);
5159 	}
5160 	break;
5161 	default:
5162 	{
5163 		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T7_;
5164 		NimStringDesc* T8_;
5165 		T7_ = NIM_NIL;
5166 		T7_ = newPartialConfigRef__options_2497();
5167 		T8_ = NIM_NIL;
5168 		T8_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 29);
5169 appendString(T8_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_175));
5170 appendString(T8_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
5171 appendChar(T8_, 41);
5172 		internalErrorImpl__msgs_1431(T7_, unknownLineInfo__lineinfos_280, T8_, TM__PpBJsMJcrcWrpLTS6mci1g_176);
5173 		result = NAN;
5174 	}
5175 	break;
5176 	}
5177 	return result;
5178 }
N_NIMCALL(NF,lastFloat__types_1579)5179 N_LIB_PRIVATE N_NIMCALL(NF, lastFloat__types_1579)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
5180 	NF result;
5181 	result = (NF)0;
5182 	switch ((*t).kind) {
5183 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
5184 	{
5185 		result = INF;
5186 	}
5187 	break;
5188 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
5189 	{
5190 		result = lastFloat__types_1579((*t).sons->data[((NI) 0)]);
5191 	}
5192 	break;
5193 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
5194 	{
5195 		result = getFloatValue__types_182((*(*t).n)._kind_6.sons->data[((NI) 1)]);
5196 	}
5197 	break;
5198 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
5199 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
5200 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
5201 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
5202 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
5203 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
5204 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
5205 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
5206 	{
5207 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
5208 		T5_ = NIM_NIL;
5209 		T5_ = lastSon__ast_3743(t);
5210 		result = lastFloat__types_1579(T5_);
5211 	}
5212 	break;
5213 	default:
5214 	{
5215 		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T7_;
5216 		NimStringDesc* T8_;
5217 		T7_ = NIM_NIL;
5218 		T7_ = newPartialConfigRef__options_2497();
5219 		T8_ = NIM_NIL;
5220 		T8_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 28);
5221 appendString(T8_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_177));
5222 appendString(T8_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
5223 appendChar(T8_, 41);
5224 		internalErrorImpl__msgs_1431(T7_, unknownLineInfo__lineinfos_280, T8_, TM__PpBJsMJcrcWrpLTS6mci1g_178);
5225 		result = NAN;
5226 	}
5227 	break;
5228 	}
5229 	return result;
5230 }
N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA,lengthOrd__types_1652)5231 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__types_1652)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
5232 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
5233 	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
5234 	{
5235 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T3_;
5236 		T3_ = NIM_NIL;
5237 		T3_ = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_179);
5238 		if (!((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA4_;
5239 		result = lengthOrd__types_1652(conf, (*t).sons->data[((NI) 0)]);
5240 	}
5241 	goto LA1_;
5242 	LA4_: ;
5243 	{
5244 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA last;
5245 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA first;
5246 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T7_;
5247 		last = lastOrd__types_1465(conf, t);
5248 		first = firstOrd__types_1353(conf, t);
5249 		T7_ = minus___int495056_474(last, first);
5250 		result = plus___int495056_448(T7_, One__int495056_8);
5251 	}
5252 	LA1_: ;
5253 	return result;
5254 }
N_NIMCALL(tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA,getProcConvMismatch__types_3686)5255 N_LIB_PRIVATE N_NIMCALL(tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA, getProcConvMismatch__types_3686)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw rel) {
5256 	tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA result;
5257 	nimZeroMem((void*)(&result), sizeof(tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA));
5258 	result.Field1 = rel;
5259 	{
5260 		NIM_BOOL T3_;
5261 		T3_ = (NIM_BOOL)0;
5262 		T3_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0);
5263 		if (!(T3_)) goto LA4_;
5264 		T3_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0));
5265 		LA4_: ;
5266 		if (!T3_) goto LA5_;
5267 		result.Field0 |= ((NU8)1)<<((((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 0)) & 7);
5268 		result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5269 	}
5270 	LA5_: ;
5271 	{
5272 		NIM_BOOL T9_;
5273 		NIM_BOOL T10_;
5274 		T9_ = (NIM_BOOL)0;
5275 		T10_ = (NIM_BOOL)0;
5276 		T10_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 7))&63U)))!=0);
5277 		if (!(T10_)) goto LA11_;
5278 		T10_ = (((*a).flags & 130) == 0);
5279 		LA11_: ;
5280 		T9_ = T10_;
5281 		if (!(T9_)) goto LA12_;
5282 		T9_ = (((*c).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 25))&63U)))!=0);
5283 		LA12_: ;
5284 		if (!T9_) goto LA13_;
5285 		result.Field0 |= ((NU8)1)<<((((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 1)) & 7);
5286 		result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5287 	}
5288 	LA13_: ;
5289 	{
5290 		if (!!((((*f).flags & 32768) == ((*a).flags & 32768)))) goto LA17_;
5291 		result.Field0 |= ((NU8)1)<<((((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 3)) & 7);
5292 		result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5293 	}
5294 	LA17_: ;
5295 	{
5296 		if (!!(((*f).callConv == (*a).callConv))) goto LA21_;
5297 		{
5298 			NIM_BOOL T25_;
5299 			T25_ = (NIM_BOOL)0;
5300 			T25_ = ((*f).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
5301 			if (!(T25_)) goto LA26_;
5302 			T25_ = ((*a).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 0));
5303 			LA26_: ;
5304 			if (!T25_) goto LA27_;
5305 			switch (result.Field1) {
5306 			case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 6):
5307 			{
5308 				result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 7);
5309 			}
5310 			break;
5311 			case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 5):
5312 			{
5313 				result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 5);
5314 			}
5315 			break;
5316 			default:
5317 			{
5318 				{
5319 					if (!!((result.Field1 == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA34_;
5320 					result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
5321 				}
5322 				LA34_: ;
5323 			}
5324 			break;
5325 			}
5326 		}
5327 		goto LA23_;
5328 		LA27_: ;
5329 		{
5330 			result.Field1 = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5331 			result.Field0 |= ((NU8)1)<<((((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 4)) & 7);
5332 		}
5333 		LA23_: ;
5334 	}
5335 	LA21_: ;
5336 	{
5337 		NIM_BOOL T39_;
5338 		T39_ = (NIM_BOOL)0;
5339 		T39_ = !(((*f).lockLevel == ((NI) -1)));
5340 		if (!(T39_)) goto LA40_;
5341 		T39_ = !(((*a).lockLevel == ((NI) -1)));
5342 		LA40_: ;
5343 		if (!T39_) goto LA41_;
5344 		result.Field0 |= ((NU8)1)<<((((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 2)) & 7);
5345 	}
5346 	LA41_: ;
5347 	return result;
5348 }
N_INLINE(NI,safeLen__ast_3191)5349 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
5350 	NI result;
5351 	result = (NI)0;
5352 	{
5353 		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
5354 		result = ((NI) 0);
5355 	}
5356 	goto LA1_;
5357 	LA3_: ;
5358 	{
5359 		result = len__ast_3198(n);
5360 	}
5361 	LA1_: ;
5362 	return result;
5363 }
N_NIMCALL(NIM_BOOL,compatibleEffectsAux__types_3395)5364 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compatibleEffectsAux__types_3395)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* se, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* re) {
5365 	NIM_BOOL result;
5366 {	result = (NIM_BOOL)0;
5367 	{
5368 		if (!(re == 0)) goto LA3_;
5369 		result = NIM_FALSE;
5370 		goto BeforeRet_;
5371 	}
5372 	LA3_: ;
5373 	{
5374 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
5375 		r = NIM_NIL;
5376 		{
5377 			NI i;
5378 			NI colontmp_;
5379 			NI i_2;
5380 			i = (NI)0;
5381 			colontmp_ = (NI)0;
5382 			colontmp_ = safeLen__ast_3191(re);
5383 			i_2 = ((NI) 0);
5384 			{
5385 				while (1) {
5386 					if (!(i_2 < colontmp_)) goto LA8;
5387 					i = i_2;
5388 					r = (*re)._kind_6.sons->data[i];
5389 					{
5390 						{
5391 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
5392 							s = NIM_NIL;
5393 							{
5394 								NI i_3;
5395 								NI colontmp__2;
5396 								NI i_4;
5397 								i_3 = (NI)0;
5398 								colontmp__2 = (NI)0;
5399 								colontmp__2 = safeLen__ast_3191(se);
5400 								i_4 = ((NI) 0);
5401 								{
5402 									while (1) {
5403 										if (!(i_4 < colontmp__2)) goto LA13;
5404 										i_3 = i_4;
5405 										s = (*se)._kind_6.sons->data[i_3];
5406 										{
5407 											NI T16_;
5408 											T16_ = (NI)0;
5409 											T16_ = safeInheritanceDiff__types_3383((*r).typ, (*s).typ);
5410 											if (!(T16_ <= ((NI) 0))) goto LA17_;
5411 											goto LA9;
5412 										}
5413 										LA17_: ;
5414 										i_4 += ((NI) 1);
5415 									} LA13: ;
5416 								}
5417 							}
5418 						}
5419 						result = NIM_FALSE;
5420 						goto BeforeRet_;
5421 					} LA9: ;
5422 					i_2 += ((NI) 1);
5423 				} LA8: ;
5424 			}
5425 		}
5426 	}
5427 	result = NIM_TRUE;
5428 	}BeforeRet_: ;
5429 	return result;
5430 }
N_NIMCALL(tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ,compatibleEffects__types_3416)5431 N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ, compatibleEffects__types_3416)(tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual) {
5432 	tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ result;
5433 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* spec;
5434 {	result = (tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ)0;
5435 	{
5436 		NIM_BOOL T3_;
5437 		T3_ = (NIM_BOOL)0;
5438 		T3_ = !(((*(*(*formal).n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)));
5439 		if (T3_) goto LA4_;
5440 		T3_ = !(((*(*(*actual).n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)));
5441 		LA4_: ;
5442 		if (!T3_) goto LA5_;
5443 		result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 4);
5444 		goto BeforeRet_;
5445 	}
5446 	LA5_: ;
5447 	spec = (*(*formal).n)._kind_6.sons->data[((NI) 0)];
5448 	{
5449 		NI T9_;
5450 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* real;
5451 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* se;
5452 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st;
5453 		T9_ = (NI)0;
5454 		T9_ = len__ast_3198(spec);
5455 		if (!!((T9_ == ((NI) 0)))) goto LA10_;
5456 		real = (*(*actual).n)._kind_6.sons->data[((NI) 0)];
5457 		se = (*spec)._kind_6.sons->data[((NI) 0)];
5458 		{
5459 			NIM_BOOL T14_;
5460 			NIM_BOOL res;
5461 			T14_ = (NIM_BOOL)0;
5462 			T14_ = !((se == 0));
5463 			if (!(T14_)) goto LA15_;
5464 			T14_ = !(((*se).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)));
5465 			LA15_: ;
5466 			if (!T14_) goto LA16_;
5467 			{
5468 				NI T20_;
5469 				T20_ = (NI)0;
5470 				T20_ = len__ast_3198(real);
5471 				if (!(T20_ == ((NI) 0))) goto LA21_;
5472 				result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 2);
5473 				goto BeforeRet_;
5474 			}
5475 			LA21_: ;
5476 			res = compatibleEffectsAux__types_3395(se, (*real)._kind_6.sons->data[((NI) 0)]);
5477 			{
5478 				if (!!(res)) goto LA25_;
5479 				result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 1);
5480 				goto BeforeRet_;
5481 			}
5482 			LA25_: ;
5483 		}
5484 		LA16_: ;
5485 		st = (*spec)._kind_6.sons->data[((NI) 3)];
5486 		{
5487 			NIM_BOOL T29_;
5488 			NIM_BOOL res_2;
5489 			T29_ = (NIM_BOOL)0;
5490 			T29_ = !((st == 0));
5491 			if (!(T29_)) goto LA30_;
5492 			T29_ = !(((*st).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)));
5493 			LA30_: ;
5494 			if (!T29_) goto LA31_;
5495 			{
5496 				NI T35_;
5497 				T35_ = (NI)0;
5498 				T35_ = len__ast_3198(real);
5499 				if (!(T35_ == ((NI) 0))) goto LA36_;
5500 				result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 4);
5501 				goto BeforeRet_;
5502 			}
5503 			LA36_: ;
5504 			res_2 = compatibleEffectsAux__types_3395(st, (*real)._kind_6.sons->data[((NI) 3)]);
5505 			{
5506 				if (!!(res_2)) goto LA40_;
5507 				result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 3);
5508 				goto BeforeRet_;
5509 			}
5510 			LA40_: ;
5511 		}
5512 		LA31_: ;
5513 	}
5514 	LA10_: ;
5515 	{
5516 		NIM_BOOL T44_;
5517 		T44_ = (NIM_BOOL)0;
5518 		T44_ = ((*formal).lockLevel < ((NI) 0));
5519 		if (T44_) goto LA45_;
5520 		T44_ = ((*actual).lockLevel <= (*formal).lockLevel);
5521 		LA45_: ;
5522 		if (!T44_) goto LA46_;
5523 		{
5524 			NI i;
5525 			NI colontmp_;
5526 			NI T49_;
5527 			NI T50_;
5528 			NI i_2;
5529 			i = (NI)0;
5530 			colontmp_ = (NI)0;
5531 			T49_ = (NI)0;
5532 			T49_ = len__ast_3198((*formal).n);
5533 			T50_ = (NI)0;
5534 			T50_ = len__ast_3198((*actual).n);
5535 			colontmp_ = ((T49_ <= T50_) ? T49_ : T50_);
5536 			i_2 = ((NI) 1);
5537 			{
5538 				while (1) {
5539 					if (!(i_2 < colontmp_)) goto LA52;
5540 					i = i_2;
5541 					{
5542 						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_;
5543 						result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 6);
5544 						goto LA48;
5545 					}
5546 					LA55_: ;
5547 					i_2 += ((NI) 1);
5548 				} LA52: ;
5549 			}
5550 		} LA48: ;
5551 		result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 0);
5552 	}
5553 	goto LA42_;
5554 	LA46_: ;
5555 	{
5556 		result = ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 5);
5557 	}
5558 	LA42_: ;
5559 	}BeforeRet_: ;
5560 	return result;
5561 }
N_NIMCALL(NIM_BOOL,isEmptyContainer__types_3617)5562 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_3617)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
5563 	NIM_BOOL result;
5564 	result = (NIM_BOOL)0;
5565 	switch ((*t).kind) {
5566 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
5567 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
5568 	{
5569 		result = NIM_TRUE;
5570 	}
5571 	break;
5572 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
5573 	{
5574 		result = ((*(*t).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
5575 	}
5576 	break;
5577 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
5578 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
5579 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
5580 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
5581 	{
5582 		result = ((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
5583 	}
5584 	break;
5585 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
5586 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
5587 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
5588 	{
5589 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
5590 		T5_ = NIM_NIL;
5591 		T5_ = lastSon__ast_3743(t);
5592 		result = isEmptyContainer__types_3617(T5_);
5593 	}
5594 	break;
5595 	default:
5596 	{
5597 		result = NIM_FALSE;
5598 	}
5599 	break;
5600 	}
5601 	return result;
5602 }
N_NIMCALL(NimStringDesc *,getProcHeader__types_222)5603 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getProcHeader__types_222)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, NIM_BOOL getDeclarationPath) {
5604 	NimStringDesc* result;
5605 	NimStringDesc* T1_;
5606 	result = NIM_NIL;
5607 	T1_ = NIM_NIL;
5608 	T1_ = rawNewString(((*(*(*sym).owner).name).s ? (*(*(*sym).owner).name).s->Sup.len : 0) + ((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + 1);
5609 appendString(T1_, (*(*(*sym).owner).name).s);
5610 appendChar(T1_, 46);
5611 appendString(T1_, (*(*sym).name).s);
5612 	result = T1_;
5613 	{
5614 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
5615 		if (!((520192 &((NU32)1<<((NU)((*sym).kind)&31U)))!=0)) goto LA4_;
5616 		result = addChar(result, 40);
5617 		n = (*(*sym).typ).n;
5618 		{
5619 			NI i;
5620 			NI colontmp_;
5621 			NI i_2;
5622 			i = (NI)0;
5623 			colontmp_ = (NI)0;
5624 			colontmp_ = len__ast_3198(n);
5625 			i_2 = ((NI) 1);
5626 			{
5627 				while (1) {
5628 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
5629 					if (!(i_2 < colontmp_)) goto LA8;
5630 					i = i_2;
5631 					p = (*n)._kind_6.sons->data[i];
5632 					{
5633 						NimStringDesc* T13_;
5634 						if (!((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA11_;
5635 						result = resizeString(result, ((*(*(*p)._kind_4.sym).name).s ? (*(*(*p)._kind_4.sym).name).s->Sup.len : 0) + 0);
5636 appendString(result, (*(*(*p)._kind_4.sym).name).s);
5637 						result = resizeString(result, 2);
5638 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_83));
5639 						T13_ = NIM_NIL;
5640 						T13_ = typeToString__types_50((*(*p)._kind_4.sym).typ, prefer);
5641 						result = resizeString(result, (T13_ ? T13_->Sup.len : 0) + 0);
5642 appendString(result, T13_);
5643 						{
5644 							NI T16_;
5645 							T16_ = (NI)0;
5646 							T16_ = len__ast_3198(n);
5647 							if (!!((i == (NI)(T16_ - ((NI) 1))))) goto LA17_;
5648 							result = resizeString(result, 2);
5649 appendString(result, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
5650 						}
5651 						LA17_: ;
5652 					}
5653 					goto LA9_;
5654 					LA11_: ;
5655 					{
5656 						NimStringDesc* T20_;
5657 						T20_ = NIM_NIL;
5658 						T20_ = renderTree__renderer_46(p, 0);
5659 						result = resizeString(result, (T20_ ? T20_->Sup.len : 0) + 0);
5660 appendString(result, T20_);
5661 					}
5662 					LA9_: ;
5663 					i_2 += ((NI) 1);
5664 				} LA8: ;
5665 			}
5666 		}
5667 		result = addChar(result, 41);
5668 		{
5669 			NimStringDesc* T25_;
5670 			NimStringDesc* T26_;
5671 			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA23_;
5672 			T25_ = NIM_NIL;
5673 			T26_ = NIM_NIL;
5674 			T26_ = typeToString__types_50((*(*n)._kind_6.sons->data[((NI) 0)]).typ, prefer);
5675 			T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + 2);
5676 appendString(T25_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_83));
5677 appendString(T25_, T26_);
5678 			result = resizeString(result, (T25_ ? T25_->Sup.len : 0) + 0);
5679 appendString(result, T25_);
5680 		}
5681 		LA23_: ;
5682 	}
5683 	LA4_: ;
5684 	{
5685 		if (!getDeclarationPath) goto LA29_;
5686 		addDeclaredLoc__astmsgs_17((&result), conf, sym);
5687 	}
5688 	LA29_: ;
5689 	return result;
5690 }
N_NIMCALL(NIM_BOOL,canFormAcycleNode__types_665)5691 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycleNode__types_665)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI startId) {
5692 	NIM_BOOL result;
5693 {	result = (NIM_BOOL)0;
5694 	result = NIM_FALSE;
5695 	{
5696 		if (!!((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
5697 		result = canFormAcycleAux__types_661(marker, (*n).typ, startId);
5698 		{
5699 			if (!!(result)) goto LA7_;
5700 			switch ((*n).kind) {
5701 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
5702 			{
5703 			}
5704 			break;
5705 			default:
5706 			{
5707 				{
5708 					NI i;
5709 					NI colontmp_;
5710 					NI i_2;
5711 					i = (NI)0;
5712 					colontmp_ = (NI)0;
5713 					colontmp_ = len__ast_3198(n);
5714 					i_2 = ((NI) 0);
5715 					{
5716 						while (1) {
5717 							if (!(i_2 < colontmp_)) goto LA13;
5718 							i = i_2;
5719 							result = canFormAcycleNode__types_665(marker, (*n)._kind_6.sons->data[i], startId);
5720 							{
5721 								if (!result) goto LA16_;
5722 								goto BeforeRet_;
5723 							}
5724 							LA16_: ;
5725 							i_2 += ((NI) 1);
5726 						} LA13: ;
5727 					}
5728 				}
5729 			}
5730 			break;
5731 			}
5732 		}
5733 		LA7_: ;
5734 	}
5735 	LA3_: ;
5736 	}BeforeRet_: ;
5737 	return result;
5738 }
N_NIMCALL(NIM_BOOL,canFormAcycleAux__types_661)5739 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycleAux__types_661)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, NI startId) {
5740 	NIM_BOOL result;
5741 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
5742 {	result = (NIM_BOOL)0;
5743 	result = NIM_FALSE;
5744 	{
5745 		if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
5746 		goto BeforeRet_;
5747 	}
5748 	LA3_: ;
5749 	{
5750 		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 39))&63U)))!=0)) goto LA7_;
5751 		goto BeforeRet_;
5752 	}
5753 	LA7_: ;
5754 	t = skipTypes__ast_3735(typ, TM__PpBJsMJcrcWrpLTS6mci1g_180);
5755 	{
5756 		if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 39))&63U)))!=0)) goto LA11_;
5757 		goto BeforeRet_;
5758 	}
5759 	LA11_: ;
5760 	switch ((*t).kind) {
5761 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
5762 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
5763 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
5764 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
5765 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
5766 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
5767 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
5768 	{
5769 		{
5770 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym73_;
5771 			xX60gensym73_ = t;
5772 			if (!((NI)((NI)((NU32)(((NI) ((*xX60gensym73_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym73_).Sup.itemId.item))) == startId)) goto LA16_;
5773 			result = NIM_TRUE;
5774 		}
5775 		goto LA14_;
5776 		LA16_: ;
5777 		{
5778 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym74_;
5779 			NIM_BOOL T19_;
5780 			xX60gensym74_ = t;
5781 			T19_ = (NIM_BOOL)0;
5782 			T19_ = containsOrIncl__astalgo_402(marker, (NI)((NI)((NU32)(((NI) ((*xX60gensym74_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym74_).Sup.itemId.item))));
5783 			if (!!(T19_)) goto LA20_;
5784 			{
5785 				NI i;
5786 				NI colontmp_;
5787 				NI i_2;
5788 				i = (NI)0;
5789 				colontmp_ = (NI)0;
5790 				colontmp_ = len__ast_4002(t);
5791 				i_2 = ((NI) 0);
5792 				{
5793 					while (1) {
5794 						if (!(i_2 < colontmp_)) goto LA24;
5795 						i = i_2;
5796 						result = canFormAcycleAux__types_661(marker, (*t).sons->data[i], startId);
5797 						{
5798 							if (!result) goto LA27_;
5799 							goto BeforeRet_;
5800 						}
5801 						LA27_: ;
5802 						i_2 += ((NI) 1);
5803 					} LA24: ;
5804 				}
5805 			}
5806 			{
5807 				if (!!(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA31_;
5808 				result = canFormAcycleNode__types_665(marker, (*t).n, startId);
5809 			}
5810 			LA31_: ;
5811 		}
5812 		goto LA14_;
5813 		LA20_: ;
5814 		LA14_: ;
5815 		{
5816 			NIM_BOOL T35_;
5817 			T35_ = (NIM_BOOL)0;
5818 			T35_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
5819 			if (!(T35_)) goto LA36_;
5820 			T35_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0));
5821 			LA36_: ;
5822 			if (!T35_) goto LA37_;
5823 			result = NIM_TRUE;
5824 		}
5825 		LA37_: ;
5826 	}
5827 	break;
5828 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
5829 	{
5830 		result = ((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
5831 	}
5832 	break;
5833 	default:
5834 	{
5835 	}
5836 	break;
5837 	}
5838 	}BeforeRet_: ;
5839 	return result;
5840 }
N_NIMCALL(NIM_BOOL,canFormAcycle__types_762)5841 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycle__types_762)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
5842 	NIM_BOOL result;
5843 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
5844 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
5845 	tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym80_;
5846 	result = (NIM_BOOL)0;
5847 	nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
5848 	initIntSet__pureZcollectionsZintsets_238((&marker));
5849 	t = skipTypes__ast_3735(typ, TM__PpBJsMJcrcWrpLTS6mci1g_180);
5850 	xX60gensym80_ = t;
5851 	result = canFormAcycleAux__types_661((&marker), t, (NI)((NI)((NU32)(((NI) ((*xX60gensym80_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym80_).Sup.itemId.item))));
5852 	return result;
5853 }
N_NIMCALL(NIM_BOOL,isPureObject__types_132)5854 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isPureObject__types_132)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
5855 	NIM_BOOL result;
5856 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
5857 	NIM_BOOL T5_;
5858 	result = (NIM_BOOL)0;
5859 	t = typ;
5860 	{
5861 		while (1) {
5862 			NIM_BOOL T3_;
5863 			T3_ = (NIM_BOOL)0;
5864 			T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
5865 			if (!(T3_)) goto LA4_;
5866 			T3_ = !(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
5867 			LA4_: ;
5868 			if (!T3_) goto LA2;
5869 			t = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_5);
5870 		} LA2: ;
5871 	}
5872 	T5_ = (NIM_BOOL)0;
5873 	T5_ = !(((*t).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
5874 	if (!(T5_)) goto LA6_;
5875 	T5_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0);
5876 	LA6_: ;
5877 	result = T5_;
5878 	return result;
5879 }
N_NIMCALL(NIM_BOOL,isFinal__types_750)5880 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFinal__types_750)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
5881 	NIM_BOOL result;
5882 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
5883 	NIM_BOOL T1_;
5884 	NIM_BOOL T2_;
5885 	result = (NIM_BOOL)0;
5886 	t_2 = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_167);
5887 	T1_ = (NIM_BOOL)0;
5888 	T2_ = (NIM_BOOL)0;
5889 	T2_ = !(((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)));
5890 	if (T2_) goto LA3_;
5891 	T2_ = (((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
5892 	LA3_: ;
5893 	T1_ = T2_;
5894 	if (T1_) goto LA4_;
5895 	T1_ = isPureObject__types_132(t_2);
5896 	LA4_: ;
5897 	result = T1_;
5898 	return result;
5899 }
N_NIMCALL(NIM_BOOL,searchTypeNodeForAux__types_397)5900 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeNodeForAux__types_397)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyProc__NbBRo5rVxVVQby3QsoZkZQ p, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker) {
5901 	NIM_BOOL result;
5902 {	result = (NIM_BOOL)0;
5903 	result = NIM_FALSE;
5904 	switch ((*n).kind) {
5905 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
5906 	{
5907 		{
5908 			NI i;
5909 			NI colontmp_;
5910 			NI i_2;
5911 			i = (NI)0;
5912 			colontmp_ = (NI)0;
5913 			colontmp_ = len__ast_3198(n);
5914 			i_2 = ((NI) 0);
5915 			{
5916 				while (1) {
5917 					if (!(i_2 < colontmp_)) goto LA4;
5918 					i = i_2;
5919 					result = searchTypeNodeForAux__types_397((*n)._kind_6.sons->data[i], p, marker);
5920 					{
5921 						if (!result) goto LA7_;
5922 						goto BeforeRet_;
5923 					}
5924 					LA7_: ;
5925 					i_2 += ((NI) 1);
5926 				} LA4: ;
5927 			}
5928 		}
5929 	}
5930 	break;
5931 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
5932 	{
5933 		result = searchTypeNodeForAux__types_397((*n)._kind_6.sons->data[((NI) 0)], p, marker);
5934 		{
5935 			if (!result) goto LA12_;
5936 			goto BeforeRet_;
5937 		}
5938 		LA12_: ;
5939 		{
5940 			NI i_3;
5941 			NI colontmp__2;
5942 			NI i_4;
5943 			i_3 = (NI)0;
5944 			colontmp__2 = (NI)0;
5945 			colontmp__2 = len__ast_3198(n);
5946 			i_4 = ((NI) 1);
5947 			{
5948 				while (1) {
5949 					if (!(i_4 < colontmp__2)) goto LA16;
5950 					i_3 = i_4;
5951 					switch ((*(*n)._kind_6.sons->data[i_3]).kind) {
5952 					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
5953 					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
5954 					{
5955 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
5956 						T18_ = NIM_NIL;
5957 						T18_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_3]);
5958 						result = searchTypeNodeForAux__types_397(T18_, p, marker);
5959 						{
5960 							if (!result) goto LA21_;
5961 							goto BeforeRet_;
5962 						}
5963 						LA21_: ;
5964 					}
5965 					break;
5966 					default:
5967 					{
5968 					}
5969 					break;
5970 					}
5971 					i_4 += ((NI) 1);
5972 				} LA16: ;
5973 			}
5974 		}
5975 	}
5976 	break;
5977 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
5978 	{
5979 		result = searchTypeForAux__types_393((*(*n)._kind_4.sym).typ, p, marker);
5980 	}
5981 	break;
5982 	default:
5983 	{
5984 	}
5985 	break;
5986 	}
5987 	}BeforeRet_: ;
5988 	return result;
5989 }
N_NIMCALL(NIM_BOOL,searchTypeForAux__types_393)5990 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeForAux__types_393)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__NbBRo5rVxVVQby3QsoZkZQ predicate, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker) {
5991 	NIM_BOOL result;
5992 {	result = (NIM_BOOL)0;
5993 	result = NIM_FALSE;
5994 	{
5995 		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
5996 		goto BeforeRet_;
5997 	}
5998 	LA3_: ;
5999 	{
6000 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym50_;
6001 		NIM_BOOL T7_;
6002 		xX60gensym50_ = t;
6003 		T7_ = (NIM_BOOL)0;
6004 		T7_ = containsOrIncl__astalgo_402(marker, (NI)((NI)((NU32)(((NI) ((*xX60gensym50_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym50_).Sup.itemId.item))));
6005 		if (!T7_) goto LA8_;
6006 		goto BeforeRet_;
6007 	}
6008 	LA8_: ;
6009 	result = predicate(t);
6010 	{
6011 		if (!result) goto LA12_;
6012 		goto BeforeRet_;
6013 	}
6014 	LA12_: ;
6015 	switch ((*t).kind) {
6016 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
6017 	{
6018 		{
6019 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T19_;
6020 			if (!!(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA17_;
6021 			T19_ = NIM_NIL;
6022 			T19_ = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_5);
6023 			result = searchTypeForAux__types_393(T19_, predicate, marker);
6024 		}
6025 		LA17_: ;
6026 		{
6027 			if (!!(result)) goto LA22_;
6028 			result = searchTypeNodeForAux__types_397((*t).n, predicate, marker);
6029 		}
6030 		LA22_: ;
6031 	}
6032 	break;
6033 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
6034 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
6035 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
6036 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
6037 	{
6038 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T25_;
6039 		T25_ = NIM_NIL;
6040 		T25_ = lastSon__ast_3743(t);
6041 		result = searchTypeForAux__types_393(T25_, predicate, marker);
6042 	}
6043 	break;
6044 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
6045 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
6046 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
6047 	{
6048 		{
6049 			NI i;
6050 			NI colontmp_;
6051 			NI i_2;
6052 			i = (NI)0;
6053 			colontmp_ = (NI)0;
6054 			colontmp_ = len__ast_4002(t);
6055 			i_2 = ((NI) 0);
6056 			{
6057 				while (1) {
6058 					if (!(i_2 < colontmp_)) goto LA29;
6059 					i = i_2;
6060 					result = searchTypeForAux__types_393((*t).sons->data[i], predicate, marker);
6061 					{
6062 						if (!result) goto LA32_;
6063 						goto BeforeRet_;
6064 					}
6065 					LA32_: ;
6066 					i_2 += ((NI) 1);
6067 				} LA29: ;
6068 			}
6069 		}
6070 	}
6071 	break;
6072 	default:
6073 	{
6074 	}
6075 	break;
6076 	}
6077 	}BeforeRet_: ;
6078 	return result;
6079 }
N_NIMCALL(NIM_BOOL,searchTypeFor__types_470)6080 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeFor__types_470)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__NbBRo5rVxVVQby3QsoZkZQ predicate) {
6081 	NIM_BOOL result;
6082 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
6083 	result = (NIM_BOOL)0;
6084 	nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
6085 	initIntSet__pureZcollectionsZintsets_238((&marker));
6086 	result = searchTypeForAux__types_393(t, predicate, (&marker));
6087 	return result;
6088 }
N_NIMCALL(NIM_BOOL,isGCRef__types_589)6089 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGCRef__types_589)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
6090 	NIM_BOOL result;
6091 	NIM_BOOL T1_;
6092 	NIM_BOOL T3_;
6093 	result = (NIM_BOOL)0;
6094 	T1_ = (NIM_BOOL)0;
6095 	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
6096 	if (T1_) goto LA2_;
6097 	T3_ = (NIM_BOOL)0;
6098 	T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
6099 	if (!(T3_)) goto LA4_;
6100 	T3_ = ((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
6101 	LA4_: ;
6102 	T1_ = T3_;
6103 	LA2_: ;
6104 	result = T1_;
6105 	{
6106 		NIM_BOOL T7_;
6107 		NIM_BOOL T8_;
6108 		T7_ = (NIM_BOOL)0;
6109 		T8_ = (NIM_BOOL)0;
6110 		T8_ = result;
6111 		if (!(T8_)) goto LA9_;
6112 		T8_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
6113 		LA9_: ;
6114 		T7_ = T8_;
6115 		if (!(T7_)) goto LA10_;
6116 		T7_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31))&63U)))!=0);
6117 		LA10_: ;
6118 		if (!T7_) goto LA11_;
6119 		result = NIM_FALSE;
6120 	}
6121 	LA11_: ;
6122 	return result;
6123 }
N_NIMCALL(NIM_BOOL,containsGarbageCollectedRef__types_612)6124 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef__types_612)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
6125 	NIM_BOOL result;
6126 	result = (NIM_BOOL)0;
6127 	result = searchTypeFor__types_470(typ, isGCRef__types_589);
6128 	return result;
6129 }
N_INLINE(void,pushSafePoint)6130 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
6131 	(*s).prev = excHandler__system_2565;
6132 	excHandler__system_2565 = s;
6133 }
N_INLINE(void,popSafePoint)6134 static N_INLINE(void, popSafePoint)(void) {
6135 	excHandler__system_2565 = (*excHandler__system_2565).prev;
6136 }
N_NIMCALL(NI64,align__types_2855)6137 N_LIB_PRIVATE N_NIMCALL(NI64, align__types_2855)(NI64 address, NI64 alignment) {
6138 	NI64 result;
6139 	result = (NI64)0;
6140 	result = (NI64)((NI64)(address + (NI64)(alignment - IL64(1))) & (NI64)((NU64) ~((NI64)(alignment - IL64(1)))));
6141 	return result;
6142 }
N_NIMCALL(void,Marker_tyRef__SFgbIvdx8bC9cxnXgi8Zn1A)6143 static N_NIMCALL(void, Marker_tyRef__SFgbIvdx8bC9cxnXgi8Zn1A)(void* p, NI op) {
6144 	tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA* a;
6145 	a = (tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA*)p;
6146 	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
6147 	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
6148 	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
6149 	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
6150 }
N_INLINE(NI,minuspercent___system_716)6151 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
6152 	NI result;
6153 	result = (NI)0;
6154 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
6155 	return result;
6156 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)6157 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
6158 	NIM_BOOL result;
6159 	result = (NIM_BOOL)0;
6160 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
6161 	return result;
6162 }
N_INLINE(void,rtlAddZCT__system_5334)6163 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
6164 	addZCT__system_5285((&gch__system_5238.zct), c);
6165 }
N_INLINE(void,decRef__system_5336)6166 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
6167 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
6168 	{
6169 		NIM_BOOL T3_;
6170 		T3_ = (NIM_BOOL)0;
6171 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
6172 		if (!T3_) goto LA4_;
6173 		rtlAddZCT__system_5334(c);
6174 	}
6175 	LA4_: ;
6176 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5291)6177 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr) {
6178 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
6179 	NI T1_;
6180 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
6181 	T1_ = (NI)0;
6182 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
6183 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
6184 	return result;
6185 }
N_INLINE(void,nimGCunrefNoCycle)6186 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
6187 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
6188 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
6189 	T1_ = usrToCell__system_5291(p);
6190 	decRef__system_5336(T1_);
6191 }
N_INLINE(NI,pluspercent___system_696)6192 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
6193 	NI result;
6194 	result = (NI)0;
6195 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
6196 	return result;
6197 }
N_INLINE(void,incRef__system_5329)6198 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
6199 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
6200 }
N_INLINE(void,asgnRef)6201 static N_INLINE(void, asgnRef)(void** dest, void* src) {
6202 	{
6203 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
6204 		if (!!((src == NIM_NIL))) goto LA3_;
6205 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
6206 		T5_ = usrToCell__system_5291(src);
6207 		incRef__system_5329(T5_);
6208 	}
6209 	LA3_: ;
6210 	{
6211 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
6212 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
6213 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
6214 		T10_ = usrToCell__system_5291((*dest));
6215 		decRef__system_5336(T10_);
6216 	}
6217 	LA8_: ;
6218 	(*dest) = src;
6219 }
N_NIMCALL(void,raiseIllegalTypeRecursion__types_2868)6220 N_LIB_PRIVATE N_NIMCALL(void, raiseIllegalTypeRecursion__types_2868)(void) {
6221 	tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA* T1_;
6222 	NimStringDesc* T2_;
6223 	T1_ = NIM_NIL;
6224 	T1_ = (tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA*) newObj((&NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_), sizeof(tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA));
6225 	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_);
6226 	(*T1_).Sup.Sup.Sup.name = "IllegalTypeRecursionError";
6227 	T2_ = NIM_NIL;
6228 	T2_ = (*T1_).Sup.Sup.Sup.message; (*T1_).Sup.Sup.Sup.message = copyStringRC1(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_183));
6229 	if (T2_) nimGCunrefNoCycle(T2_);
6230 	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
6231 	raiseExceptionEx((Exception*)T1_, "IllegalTypeRecursionError", "raiseIllegalTypeRecursion", "sizealignoffsetimpl.nim", 29);
6232 }
N_NIMCALL(NI,align__types_2859)6233 N_LIB_PRIVATE N_NIMCALL(NI, align__types_2859)(NI address, NI alignment) {
6234 	NI result;
6235 	result = (NI)0;
6236 	result = (NI)((NI)(address + (NI)(alignment - ((NI) 1))) & (NI)((NU32) ~((NI)(alignment - ((NI) 1)))));
6237 	return result;
6238 }
N_NIMCALL(void,align__types_2902)6239 N_LIB_PRIVATE N_NIMCALL(void, align__types_2902)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, NI value) {
6240 	{
6241 		NIM_BOOL T3_;
6242 		T3_ = (NIM_BOOL)0;
6243 		T3_ = NIM_UNLIKELY((value == ((NI) -2)));
6244 		if (!T3_) goto LA4_;
6245 		raiseIllegalTypeRecursion__types_2868();
6246 	}
6247 	LA4_: ;
6248 	{
6249 		NIM_BOOL T8_;
6250 		NIM_BOOL T9_;
6251 		T8_ = (NIM_BOOL)0;
6252 		T9_ = (NIM_BOOL)0;
6253 		T9_ = (value == ((NI) -3));
6254 		if (T9_) goto LA10_;
6255 		T9_ = ((*arg).maxAlign == ((NI) -3));
6256 		LA10_: ;
6257 		T8_ = T9_;
6258 		if (T8_) goto LA11_;
6259 		T8_ = ((*arg).offset == ((NI) -3));
6260 		LA11_: ;
6261 		if (!T8_) goto LA12_;
6262 		(*arg).maxAlign = ((NI) -3);
6263 		(*arg).offset = ((NI) -3);
6264 	}
6265 	goto LA6_;
6266 	LA12_: ;
6267 	{
6268 		(*arg).maxAlign = ((value >= (*arg).maxAlign) ? value : (*arg).maxAlign);
6269 		(*arg).offset = align__types_2859((*arg).offset, value);
6270 	}
6271 	LA6_: ;
6272 }
N_NIMCALL(void,inc__types_2891)6273 N_LIB_PRIVATE N_NIMCALL(void, inc__types_2891)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, NI value) {
6274 	{
6275 		NIM_BOOL T3_;
6276 		T3_ = (NIM_BOOL)0;
6277 		T3_ = NIM_UNLIKELY((value == ((NI) -2)));
6278 		if (!T3_) goto LA4_;
6279 		raiseIllegalTypeRecursion__types_2868();
6280 	}
6281 	LA4_: ;
6282 	{
6283 		NIM_BOOL T8_;
6284 		T8_ = (NIM_BOOL)0;
6285 		T8_ = (value == ((NI) -3));
6286 		if (T8_) goto LA9_;
6287 		T8_ = ((*arg).offset == ((NI) -3));
6288 		LA9_: ;
6289 		if (!T8_) goto LA10_;
6290 		(*arg).offset = ((NI) -3);
6291 	}
6292 	goto LA6_;
6293 	LA10_: ;
6294 	{
6295 		(*arg).offset += value;
6296 	}
6297 	LA6_: ;
6298 }
N_NIMCALL(NI,finish__types_2908)6299 N_LIB_PRIVATE N_NIMCALL(NI, finish__types_2908)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg) {
6300 	NI result;
6301 	result = (NI)0;
6302 	{
6303 		NIM_BOOL T3_;
6304 		T3_ = (NIM_BOOL)0;
6305 		T3_ = ((*arg).maxAlign == ((NI) -3));
6306 		if (T3_) goto LA4_;
6307 		T3_ = ((*arg).offset == ((NI) -3));
6308 		LA4_: ;
6309 		if (!T3_) goto LA5_;
6310 		result = ((NI) -3);
6311 		(*arg).offset = ((NI) -3);
6312 	}
6313 	goto LA1_;
6314 	LA5_: ;
6315 	{
6316 		NI T8_;
6317 		T8_ = (NI)0;
6318 		T8_ = align__types_2859((*arg).offset, (*arg).maxAlign);
6319 		result = (NI)(T8_ - (*arg).offset);
6320 		(*arg).offset += result;
6321 	}
6322 	LA1_: ;
6323 	return result;
6324 }
N_INLINE(Exception *,nimBorrowCurrentException)6325 static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
6326 	Exception* result;
6327 	result = NIM_NIL;
6328 	result = currException__system_2566;
6329 	return result;
6330 }
N_INLINE(void,popCurrentException)6331 static N_INLINE(void, popCurrentException)(void) {
6332 	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
6333 }
N_NIMCALL(NIM_BOOL,isObjectWithTypeFieldPredicate__types_485)6334 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObjectWithTypeFieldPredicate__types_485)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
6335 	NIM_BOOL result;
6336 	NIM_BOOL T1_;
6337 	NIM_BOOL T2_;
6338 	NIM_BOOL T3_;
6339 	NIM_BOOL T6_;
6340 	result = (NIM_BOOL)0;
6341 	T1_ = (NIM_BOOL)0;
6342 	T2_ = (NIM_BOOL)0;
6343 	T3_ = (NIM_BOOL)0;
6344 	T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
6345 	if (!(T3_)) goto LA4_;
6346 	T3_ = ((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
6347 	LA4_: ;
6348 	T2_ = T3_;
6349 	if (!(T2_)) goto LA5_;
6350 	T6_ = (NIM_BOOL)0;
6351 	T6_ = !(((*t).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
6352 	if (!(T6_)) goto LA7_;
6353 	T6_ = !(((IL64(4294969344) & (*(*t).sym).flags) == 0));
6354 	LA7_: ;
6355 	T2_ = !(T6_);
6356 	LA5_: ;
6357 	T1_ = T2_;
6358 	if (!(T1_)) goto LA8_;
6359 	T1_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0));
6360 	LA8_: ;
6361 	result = T1_;
6362 	return result;
6363 }
N_NIMCALL(void,mergeBranch__types_2905)6364 N_LIB_PRIVATE N_NIMCALL(void, mergeBranch__types_2905)(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* arg, tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw value) {
6365 	{
6366 		NIM_BOOL T3_;
6367 		NIM_BOOL T4_;
6368 		NIM_BOOL T5_;
6369 		T3_ = (NIM_BOOL)0;
6370 		T4_ = (NIM_BOOL)0;
6371 		T5_ = (NIM_BOOL)0;
6372 		T5_ = (value.maxAlign == ((NI) -3));
6373 		if (T5_) goto LA6_;
6374 		T5_ = ((*arg).maxAlign == ((NI) -3));
6375 		LA6_: ;
6376 		T4_ = T5_;
6377 		if (T4_) goto LA7_;
6378 		T4_ = (value.offset == ((NI) -3));
6379 		LA7_: ;
6380 		T3_ = T4_;
6381 		if (T3_) goto LA8_;
6382 		T3_ = ((*arg).offset == ((NI) -3));
6383 		LA8_: ;
6384 		if (!T3_) goto LA9_;
6385 		(*arg).maxAlign = ((NI) -3);
6386 		(*arg).offset = ((NI) -3);
6387 	}
6388 	goto LA1_;
6389 	LA9_: ;
6390 	{
6391 		(*arg).offset = (((*arg).offset >= value.offset) ? (*arg).offset : value.offset);
6392 		(*arg).maxAlign = (((*arg).maxAlign >= value.maxAlign) ? (*arg).maxAlign : value.maxAlign);
6393 	}
6394 	LA1_: ;
6395 }
N_NIMCALL(void,computeUnionObjectOffsetsFoldFunction__types_3058)6396 N_LIB_PRIVATE N_NIMCALL(void, computeUnionObjectOffsetsFoldFunction__types_3058)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL packed_0, tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* accum) {
6397 	switch ((*n).kind) {
6398 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
6399 	{
6400 		(*accum).offset = ((NI) -3);
6401 		(*accum).maxAlign = ((NI) -3);
6402 		liMessage__msgs_1118(conf, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_188), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__PpBJsMJcrcWrpLTS6mci1g_189, NIM_FALSE);
6403 	}
6404 	break;
6405 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
6406 	{
6407 		tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw accumRoot;
6408 		accumRoot = (*accum);
6409 		{
6410 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** child;
6411 			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
6412 			NI i;
6413 			NI L;
6414 			NI T4_;
6415 			child = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
6416 			colontmp_ = NIM_NIL;
6417 			colontmp_ = (*n)._kind_6.sons;
6418 			i = ((NI) 0);
6419 			T4_ = (colontmp_ ? colontmp_->Sup.len : 0);
6420 			L = T4_;
6421 			{
6422 				while (1) {
6423 					tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw branchAccum;
6424 					NI T7_;
6425 					if (!(i < L)) goto LA6;
6426 					child = &colontmp_->data[i];
6427 					nimZeroMem((void*)(&branchAccum), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
6428 					branchAccum.offset = accumRoot.offset;
6429 					branchAccum.maxAlign = ((NI) 1);
6430 					computeUnionObjectOffsetsFoldFunction__types_3058(conf, (*child), packed_0, (&branchAccum));
6431 					T7_ = (NI)0;
6432 					T7_ = finish__types_2908((&branchAccum));
6433 					(void)(T7_);
6434 					mergeBranch__types_2905(accum, branchAccum);
6435 					i += ((NI) 1);
6436 				} LA6: ;
6437 			}
6438 		}
6439 	}
6440 	break;
6441 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
6442 	{
6443 		NI size;
6444 		NI align;
6445 		size = ((NI) -3);
6446 		align = ((NI) -3);
6447 		{
6448 			if (!((*(*n)._kind_4.sym)._kind_2.bitsize == ((NI) 0))) goto LA11_;
6449 			computeSizeAlign__types_2915(conf, (*(*n)._kind_4.sym).typ);
6450 			size = ((NI) ((*(*(*n)._kind_4.sym).typ).size));
6451 			{
6452 				if (!packed_0) goto LA15_;
6453 				align = ((NI) 1);
6454 			}
6455 			goto LA13_;
6456 			LA15_: ;
6457 			{
6458 				align = ((NI) ((*(*(*n)._kind_4.sym).typ).align));
6459 			}
6460 			LA13_: ;
6461 		}
6462 		LA11_: ;
6463 		align__types_2902(accum, align);
6464 		{
6465 			if (!(((NI) 0) < (*(*n)._kind_4.sym)._kind_2.alignment)) goto LA20_;
6466 			align__types_2902(accum, (*(*n)._kind_4.sym)._kind_2.alignment);
6467 		}
6468 		LA20_: ;
6469 		(*(*n)._kind_4.sym).offset = (*accum).offset;
6470 		inc__types_2891(accum, size);
6471 	}
6472 	break;
6473 	default:
6474 	{
6475 		(*accum).maxAlign = ((NI) -3);
6476 		(*accum).offset = ((NI) -3);
6477 	}
6478 	break;
6479 	}
6480 }
N_NIMCALL(NI64,computeSubObjectAlign__types_2918)6481 N_LIB_PRIVATE N_NIMCALL(NI64, computeSubObjectAlign__types_2918)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
6482 	NI64 result;
6483 {	result = (NI64)0;
6484 	switch ((*n).kind) {
6485 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
6486 	{
6487 		result = computeSubObjectAlign__types_2918(conf, (*n)._kind_6.sons->data[((NI) 0)]);
6488 		{
6489 			NI i;
6490 			NI colontmp_;
6491 			NI i_2;
6492 			i = (NI)0;
6493 			colontmp_ = (NI)0;
6494 			colontmp_ = len__ast_3198(n);
6495 			i_2 = ((NI) 1);
6496 			{
6497 				while (1) {
6498 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
6499 					if (!(i_2 < colontmp_)) goto LA4;
6500 					i = i_2;
6501 					child = (*n)._kind_6.sons->data[i];
6502 					switch ((*child).kind) {
6503 					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
6504 					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
6505 					{
6506 						NI64 align;
6507 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
6508 						T6_ = NIM_NIL;
6509 						T6_ = lastSon__ast_4832(child);
6510 						align = computeSubObjectAlign__types_2918(conf, T6_);
6511 						{
6512 							if (!(align < IL64(0))) goto LA9_;
6513 							result = align;
6514 							goto BeforeRet_;
6515 						}
6516 						LA9_: ;
6517 						result = ((result >= align) ? result : align);
6518 					}
6519 					break;
6520 					default:
6521 					{
6522 						internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_190), TM__PpBJsMJcrcWrpLTS6mci1g_191);
6523 					}
6524 					break;
6525 					}
6526 					i_2 += ((NI) 1);
6527 				} LA4: ;
6528 			}
6529 		}
6530 	}
6531 	break;
6532 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
6533 	{
6534 		result = IL64(1);
6535 		{
6536 			NI i_3;
6537 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_2;
6538 			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__2;
6539 			NI i_4;
6540 			NI L;
6541 			NI T14_;
6542 			i_3 = (NI)0;
6543 			child_2 = NIM_NIL;
6544 			colontmp__2 = NIM_NIL;
6545 			colontmp__2 = (*n)._kind_6.sons;
6546 			i_4 = ((NI) 0);
6547 			T14_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
6548 			L = T14_;
6549 			{
6550 				while (1) {
6551 					NI64 align_2;
6552 					if (!(i_4 < L)) goto LA16;
6553 					i_3 = i_4;
6554 					child_2 = colontmp__2->data[i_4];
6555 					align_2 = computeSubObjectAlign__types_2918(conf, (*n)._kind_6.sons->data[i_3]);
6556 					{
6557 						if (!(align_2 < IL64(0))) goto LA19_;
6558 						result = align_2;
6559 						goto BeforeRet_;
6560 					}
6561 					LA19_: ;
6562 					result = ((result >= align_2) ? result : align_2);
6563 					i_4 += ((NI) 1);
6564 				} LA16: ;
6565 			}
6566 		}
6567 	}
6568 	break;
6569 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
6570 	{
6571 		computeSizeAlign__types_2915(conf, (*(*n)._kind_4.sym).typ);
6572 		result = ((NI64) ((*(*(*n)._kind_4.sym).typ).align));
6573 	}
6574 	break;
6575 	default:
6576 	{
6577 		result = IL64(1);
6578 	}
6579 	break;
6580 	}
6581 	}BeforeRet_: ;
6582 	return result;
6583 }
N_NIMCALL(NI,alignmentMax__types_2898)6584 N_LIB_PRIVATE N_NIMCALL(NI, alignmentMax__types_2898)(NI a, NI b) {
6585 	NI result;
6586 	result = (NI)0;
6587 	{
6588 		NIM_BOOL T3_;
6589 		NIM_BOOL T5_;
6590 		T3_ = (NIM_BOOL)0;
6591 		T3_ = (a == ((NI) -2));
6592 		if (T3_) goto LA4_;
6593 		T3_ = (b == ((NI) -2));
6594 		LA4_: ;
6595 		T5_ = (NIM_BOOL)0;
6596 		T5_ = NIM_UNLIKELY(T3_);
6597 		if (!T5_) goto LA6_;
6598 		raiseIllegalTypeRecursion__types_2868();
6599 	}
6600 	LA6_: ;
6601 	{
6602 		NIM_BOOL T10_;
6603 		T10_ = (NIM_BOOL)0;
6604 		T10_ = (a == ((NI) -3));
6605 		if (T10_) goto LA11_;
6606 		T10_ = (b == ((NI) -3));
6607 		LA11_: ;
6608 		if (!T10_) goto LA12_;
6609 		result = ((NI) -3);
6610 	}
6611 	goto LA8_;
6612 	LA12_: ;
6613 	{
6614 		result = ((a >= b) ? a : b);
6615 	}
6616 	LA8_: ;
6617 	return result;
6618 }
N_NIMCALL(void,setOffsetsToUnknown__types_2969)6619 N_LIB_PRIVATE N_NIMCALL(void, setOffsetsToUnknown__types_2969)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
6620 	{
6621 		NIM_BOOL T3_;
6622 		T3_ = (NIM_BOOL)0;
6623 		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
6624 		if (!(T3_)) goto LA4_;
6625 		T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19));
6626 		LA4_: ;
6627 		if (!T3_) goto LA5_;
6628 		(*(*n)._kind_4.sym).offset = ((NI) -3);
6629 	}
6630 	goto LA1_;
6631 	LA5_: ;
6632 	{
6633 		{
6634 			NI i;
6635 			NI colontmp_;
6636 			NI i_2;
6637 			i = (NI)0;
6638 			colontmp_ = (NI)0;
6639 			colontmp_ = safeLen__ast_3191(n);
6640 			i_2 = ((NI) 0);
6641 			{
6642 				while (1) {
6643 					if (!(i_2 < colontmp_)) goto LA10;
6644 					i = i_2;
6645 					setOffsetsToUnknown__types_2969((*n)._kind_6.sons->data[i]);
6646 					i_2 += ((NI) 1);
6647 				} LA10: ;
6648 			}
6649 		}
6650 	}
6651 	LA1_: ;
6652 }
N_NIMCALL(void,computeObjectOffsetsFoldFunction__types_2985)6653 N_LIB_PRIVATE N_NIMCALL(void, computeObjectOffsetsFoldFunction__types_2985)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL packed_0, tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw* accum) {
6654 	{
6655 		NIM_BOOL T3_;
6656 		T3_ = (NIM_BOOL)0;
6657 		T3_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
6658 		if (!(T3_)) goto LA4_;
6659 		T3_ = ((*(*n).typ).size == IL64(-2));
6660 		LA4_: ;
6661 		if (!T3_) goto LA5_;
6662 		raiseIllegalTypeRecursion__types_2868();
6663 	}
6664 	LA5_: ;
6665 	switch ((*n).kind) {
6666 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
6667 	{
6668 		NI maxChildAlign;
6669 		computeObjectOffsetsFoldFunction__types_2985(conf, (*n)._kind_6.sons->data[((NI) 0)], packed_0, accum);
6670 		{
6671 			if (!((*accum).offset == ((NI) -3))) goto LA10_;
6672 			maxChildAlign = ((NI) -3);
6673 		}
6674 		goto LA8_;
6675 		LA10_: ;
6676 		{
6677 			maxChildAlign = ((NI) 1);
6678 		}
6679 		LA8_: ;
6680 		{
6681 			if (!!(packed_0)) goto LA15_;
6682 			{
6683 				NI i;
6684 				NI colontmp_;
6685 				NI i_2;
6686 				i = (NI)0;
6687 				colontmp_ = (NI)0;
6688 				colontmp_ = len__ast_3198(n);
6689 				i_2 = ((NI) 1);
6690 				{
6691 					while (1) {
6692 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
6693 						if (!(i_2 < colontmp_)) goto LA19;
6694 						i = i_2;
6695 						child = (*n)._kind_6.sons->data[i];
6696 						switch ((*child).kind) {
6697 						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
6698 						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
6699 						{
6700 							NI align;
6701 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
6702 							NI64 T22_;
6703 							T21_ = NIM_NIL;
6704 							T21_ = lastSon__ast_4832((*n)._kind_6.sons->data[i]);
6705 							T22_ = (NI64)0;
6706 							T22_ = computeSubObjectAlign__types_2918(conf, T21_);
6707 							align = ((NI) (T22_));
6708 							maxChildAlign = alignmentMax__types_2898(maxChildAlign, align);
6709 						}
6710 						break;
6711 						default:
6712 						{
6713 							internalErrorImpl__msgs_1431(conf, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_192), TM__PpBJsMJcrcWrpLTS6mci1g_193);
6714 						}
6715 						break;
6716 						}
6717 						i_2 += ((NI) 1);
6718 					} LA19: ;
6719 				}
6720 			}
6721 		}
6722 		LA15_: ;
6723 		{
6724 			if (!(maxChildAlign == ((NI) -3))) goto LA26_;
6725 			setOffsetsToUnknown__types_2969(n);
6726 			(*accum).offset = ((NI) -3);
6727 			(*accum).maxAlign = ((NI) -3);
6728 		}
6729 		goto LA24_;
6730 		LA26_: ;
6731 		{
6732 			tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw accumRoot;
6733 			align__types_2902(accum, maxChildAlign);
6734 			accumRoot = (*accum);
6735 			{
6736 				NI i_3;
6737 				NI colontmp__2;
6738 				NI i_4;
6739 				i_3 = (NI)0;
6740 				colontmp__2 = (NI)0;
6741 				colontmp__2 = len__ast_3198(n);
6742 				i_4 = ((NI) 1);
6743 				{
6744 					while (1) {
6745 						tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw branchAccum;
6746 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
6747 						NI T33_;
6748 						if (!(i_4 < colontmp__2)) goto LA31;
6749 						i_3 = i_4;
6750 						nimZeroMem((void*)(&branchAccum), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
6751 						branchAccum.offset = accumRoot.offset;
6752 						branchAccum.maxAlign = ((NI) 1);
6753 						T32_ = NIM_NIL;
6754 						T32_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_3]);
6755 						computeObjectOffsetsFoldFunction__types_2985(conf, T32_, packed_0, (&branchAccum));
6756 						T33_ = (NI)0;
6757 						T33_ = finish__types_2908((&branchAccum));
6758 						(void)(T33_);
6759 						mergeBranch__types_2905(accum, branchAccum);
6760 						i_4 += ((NI) 1);
6761 					} LA31: ;
6762 				}
6763 			}
6764 		}
6765 		LA24_: ;
6766 	}
6767 	break;
6768 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
6769 	{
6770 		{
6771 			NI i_5;
6772 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child_2;
6773 			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__3;
6774 			NI i_6;
6775 			NI L;
6776 			NI T36_;
6777 			i_5 = (NI)0;
6778 			child_2 = NIM_NIL;
6779 			colontmp__3 = NIM_NIL;
6780 			colontmp__3 = (*n)._kind_6.sons;
6781 			i_6 = ((NI) 0);
6782 			T36_ = (colontmp__3 ? colontmp__3->Sup.len : 0);
6783 			L = T36_;
6784 			{
6785 				while (1) {
6786 					if (!(i_6 < L)) goto LA38;
6787 					i_5 = i_6;
6788 					child_2 = colontmp__3->data[i_6];
6789 					computeObjectOffsetsFoldFunction__types_2985(conf, child_2, packed_0, accum);
6790 					i_6 += ((NI) 1);
6791 				} LA38: ;
6792 			}
6793 		}
6794 	}
6795 	break;
6796 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
6797 	{
6798 		NI size;
6799 		NI align_2;
6800 		size = ((NI) -3);
6801 		align_2 = ((NI) -3);
6802 		{
6803 			if (!((*(*n)._kind_4.sym)._kind_2.bitsize == ((NI) 0))) goto LA42_;
6804 			computeSizeAlign__types_2915(conf, (*(*n)._kind_4.sym).typ);
6805 			size = ((NI) ((*(*(*n)._kind_4.sym).typ).size));
6806 			{
6807 				if (!packed_0) goto LA46_;
6808 				align_2 = ((NI) 1);
6809 			}
6810 			goto LA44_;
6811 			LA46_: ;
6812 			{
6813 				align_2 = ((NI) ((*(*(*n)._kind_4.sym).typ).align));
6814 			}
6815 			LA44_: ;
6816 		}
6817 		LA42_: ;
6818 		align__types_2902(accum, align_2);
6819 		{
6820 			if (!(((NI) 0) < (*(*n)._kind_4.sym)._kind_2.alignment)) goto LA51_;
6821 			align__types_2902(accum, (*(*n)._kind_4.sym)._kind_2.alignment);
6822 		}
6823 		LA51_: ;
6824 		(*(*n)._kind_4.sym).offset = (*accum).offset;
6825 		inc__types_2891(accum, size);
6826 	}
6827 	break;
6828 	default:
6829 	{
6830 		(*accum).maxAlign = ((NI) -3);
6831 		(*accum).offset = ((NI) -3);
6832 	}
6833 	break;
6834 	}
6835 }
N_NIMCALL(void,computeSizeAlign__types_2915)6836 N_LIB_PRIVATE N_NIMCALL(void, computeSizeAlign__types_2915)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
6837 	NIM_BOOL hasSize;
6838 	NIM_BOOL hasAlign;
6839 	NI64 revertSize;
6840 	NI16 revertAlign;
6841 	TSafePoint TM__PpBJsMJcrcWrpLTS6mci1g_181;
6842 	tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag tk;
6843 {	hasSize = !(((*typ).size == IL64(-1)));
6844 	hasAlign = !(((*typ).align == ((NI16) -1)));
6845 	{
6846 		NIM_BOOL T3_;
6847 		T3_ = (NIM_BOOL)0;
6848 		T3_ = hasSize;
6849 		if (!(T3_)) goto LA4_;
6850 		T3_ = hasAlign;
6851 		LA4_: ;
6852 		if (!T3_) goto LA5_;
6853 		goto BeforeRet_;
6854 	}
6855 	LA5_: ;
6856 	revertSize = (*typ).size;
6857 	revertAlign = (*typ).align;
6858 	pushSafePoint(&TM__PpBJsMJcrcWrpLTS6mci1g_181);
6859 	TM__PpBJsMJcrcWrpLTS6mci1g_181.status = setjmp(TM__PpBJsMJcrcWrpLTS6mci1g_181.context);
6860 	if (TM__PpBJsMJcrcWrpLTS6mci1g_181.status == 0) {
6861 	{
6862 		NIM_BOOL T9_;
6863 		T9_ = (NIM_BOOL)0;
6864 		T9_ = ((*typ).size == IL64(-2));
6865 		if (T9_) goto LA10_;
6866 		T9_ = ((*typ).align == ((NI16) -2));
6867 		LA10_: ;
6868 		if (!T9_) goto LA11_;
6869 		popSafePoint();
6870 		{
6871 			if (!hasSize) goto LA15_;
6872 			(*typ).size = revertSize;
6873 		}
6874 		LA15_: ;
6875 		{
6876 			if (!hasAlign) goto LA19_;
6877 			(*typ).align = revertAlign;
6878 		}
6879 		LA19_: ;
6880 		goto BeforeRet_;
6881 	}
6882 	LA11_: ;
6883 	(*typ).size = IL64(-2);
6884 	(*typ).align = ((NI16) -2);
6885 	(*typ).paddingAtEnd = ((NI16) 0);
6886 	tk = (*typ).kind;
6887 	switch (tk) {
6888 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
6889 	{
6890 		{
6891 			if (!((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9))) goto LA24_;
6892 			(*typ).size = ((NI64) ((NI)(((NI) 2) * (*conf).target.ptrSize)));
6893 		}
6894 		goto LA22_;
6895 		LA24_: ;
6896 		{
6897 			(*typ).size = ((NI64) ((*conf).target.ptrSize));
6898 		}
6899 		LA22_: ;
6900 		(*typ).align = ((NI16) ((*conf).target.ptrSize));
6901 	}
6902 	break;
6903 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
6904 	{
6905 		(*typ).size = ((NI64) ((*conf).target.ptrSize));
6906 		(*typ).align = ((NI16) ((*conf).target.ptrSize));
6907 	}
6908 	break;
6909 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
6910 	{
6911 		{
6912 			if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA31_;
6913 			(*typ).size = ((NI64) ((NI)((*conf).target.ptrSize * ((NI) 2))));
6914 		}
6915 		goto LA29_;
6916 		LA31_: ;
6917 		{
6918 			(*typ).size = ((NI64) ((*conf).target.ptrSize));
6919 		}
6920 		LA29_: ;
6921 		(*typ).align = ((NI16) ((*conf).target.ptrSize));
6922 	}
6923 	break;
6924 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
6925 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
6926 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
6927 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
6928 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
6929 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
6930 	{
6931 		tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
6932 		base = lastSon__ast_3743(typ);
6933 		{
6934 			if (!(base == typ)) goto LA37_;
6935 			(*typ).size = IL64(-2);
6936 			(*typ).align = ((NI16) -2);
6937 			(*typ).paddingAtEnd = ((NI16) -2);
6938 			popSafePoint();
6939 			{
6940 				if (!hasSize) goto LA41_;
6941 				(*typ).size = revertSize;
6942 			}
6943 			LA41_: ;
6944 			{
6945 				if (!hasAlign) goto LA45_;
6946 				(*typ).align = revertAlign;
6947 			}
6948 			LA45_: ;
6949 			goto BeforeRet_;
6950 		}
6951 		LA37_: ;
6952 		(*typ).align = ((NI16) ((*conf).target.ptrSize));
6953 		{
6954 			NIM_BOOL T49_;
6955 			T49_ = (NIM_BOOL)0;
6956 			T49_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
6957 			if (!(T49_)) goto LA50_;
6958 			T49_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0);
6959 			LA50_: ;
6960 			if (!T49_) goto LA51_;
6961 			(*typ).size = ((NI64) ((NI)((*conf).target.ptrSize * ((NI) 2))));
6962 		}
6963 		goto LA47_;
6964 		LA51_: ;
6965 		{
6966 			(*typ).size = ((NI64) ((*conf).target.ptrSize));
6967 		}
6968 		LA47_: ;
6969 	}
6970 	break;
6971 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
6972 	{
6973 		NI64 elemSize;
6974 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA len;
6975 		computeSizeAlign__types_2915(conf, (*typ).sons->data[((NI) 1)]);
6976 		elemSize = (*(*typ).sons->data[((NI) 1)]).size;
6977 		len = lengthOrd__types_1652(conf, (*typ).sons->data[((NI) 0)]);
6978 		{
6979 			if (!(elemSize < IL64(0))) goto LA57_;
6980 			(*typ).size = elemSize;
6981 			(*typ).align = ((NI16) (elemSize));
6982 		}
6983 		goto LA55_;
6984 		LA57_: ;
6985 		{
6986 			NIM_BOOL T60_;
6987 			T60_ = (NIM_BOOL)0;
6988 			T60_ = lt___int495056_721(len, IL64(0));
6989 			if (!T60_) goto LA61_;
6990 			(*typ).size = IL64(-3);
6991 			(*typ).align = ((NI16) -3);
6992 		}
6993 		goto LA55_;
6994 		LA61_: ;
6995 		{
6996 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T64_;
6997 			T64_ = star___int495056_514(len, ((NI32) (elemSize)));
6998 			(*typ).size = toInt64Checked__int495056_103(T64_, IL64(-4));
6999 			(*typ).align = (*(*typ).sons->data[((NI) 1)]).align;
7000 		}
7001 		LA55_: ;
7002 	}
7003 	break;
7004 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
7005 	{
7006 		tyObject_TType__facALICuu8zUj0hjvbTLFg* base_2;
7007 		base_2 = lastSon__ast_3743(typ);
7008 		computeSizeAlign__types_2915(conf, base_2);
7009 		(*typ).size = IL64(0);
7010 		(*typ).align = (*base_2).align;
7011 	}
7012 	break;
7013 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
7014 	{
7015 		{
7016 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T69_;
7017 			NIM_BOOL T70_;
7018 			T69_ = firstOrd__types_1353(conf, typ);
7019 			T70_ = (NIM_BOOL)0;
7020 			T70_ = lt___int495056_305(T69_, Zero__int495056_7);
7021 			if (!T70_) goto LA71_;
7022 			(*typ).size = IL64(4);
7023 			(*typ).align = ((NI16) 4);
7024 		}
7025 		goto LA67_;
7026 		LA71_: ;
7027 		{
7028 			NI64 lastOrd;
7029 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T74_;
7030 			T74_ = lastOrd__types_1465(conf, typ);
7031 			lastOrd = toInt64__int495056_88(T74_);
7032 			{
7033 				if (!(lastOrd < IL64(256))) goto LA77_;
7034 				(*typ).size = IL64(1);
7035 				(*typ).align = ((NI16) 1);
7036 			}
7037 			goto LA75_;
7038 			LA77_: ;
7039 			{
7040 				if (!(lastOrd < IL64(65536))) goto LA80_;
7041 				(*typ).size = IL64(2);
7042 				(*typ).align = ((NI16) 2);
7043 			}
7044 			goto LA75_;
7045 			LA80_: ;
7046 			{
7047 				if (!(lastOrd < IL64(4294967296))) goto LA83_;
7048 				(*typ).size = IL64(4);
7049 				(*typ).align = ((NI16) 4);
7050 			}
7051 			goto LA75_;
7052 			LA83_: ;
7053 			{
7054 				(*typ).size = IL64(8);
7055 				(*typ).align = floatInt64Align__options_4700(conf);
7056 			}
7057 			LA75_: ;
7058 		}
7059 		LA67_: ;
7060 	}
7061 	break;
7062 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
7063 	{
7064 		{
7065 			if (!((*(*typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA89_;
7066 			(*typ).size = IL64(-1);
7067 			(*typ).align = ((NI16) -1);
7068 		}
7069 		goto LA87_;
7070 		LA89_: ;
7071 		{
7072 			NI64 length;
7073 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T92_;
7074 			T92_ = lengthOrd__types_1652(conf, (*typ).sons->data[((NI) 0)]);
7075 			length = toInt64__int495056_88(T92_);
7076 			{
7077 				if (!(length <= IL64(8))) goto LA95_;
7078 				(*typ).size = IL64(1);
7079 				(*typ).align = ((NI16) 1);
7080 			}
7081 			goto LA93_;
7082 			LA95_: ;
7083 			{
7084 				if (!(length <= IL64(16))) goto LA98_;
7085 				(*typ).size = IL64(2);
7086 				(*typ).align = ((NI16) 2);
7087 			}
7088 			goto LA93_;
7089 			LA98_: ;
7090 			{
7091 				if (!(length <= IL64(32))) goto LA101_;
7092 				(*typ).size = IL64(4);
7093 				(*typ).align = ((NI16) 4);
7094 			}
7095 			goto LA93_;
7096 			LA101_: ;
7097 			{
7098 				if (!(length <= IL64(64))) goto LA104_;
7099 				(*typ).size = IL64(8);
7100 				(*typ).align = floatInt64Align__options_4700(conf);
7101 			}
7102 			goto LA93_;
7103 			LA104_: ;
7104 			{
7105 				NI64 T107_;
7106 				NI64 T110_;
7107 				T107_ = (NI64)0;
7108 				T107_ = align__types_2855(length, IL64(8));
7109 				if (!((NI64)(T107_ % IL64(8)) == IL64(0))) goto LA108_;
7110 				T110_ = (NI64)0;
7111 				T110_ = align__types_2855(length, IL64(8));
7112 				(*typ).size = (NI64)(T110_ / IL64(8));
7113 				(*typ).align = floatInt64Align__options_4700(conf);
7114 			}
7115 			goto LA93_;
7116 			LA108_: ;
7117 			{
7118 				NI64 T112_;
7119 				T112_ = (NI64)0;
7120 				T112_ = align__types_2855(length, IL64(8));
7121 				(*typ).size = (NI64)((NI64)(T112_ / IL64(8)) + IL64(1));
7122 				(*typ).align = floatInt64Align__options_4700(conf);
7123 			}
7124 			LA93_: ;
7125 		}
7126 		LA87_: ;
7127 	}
7128 	break;
7129 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
7130 	{
7131 		computeSizeAlign__types_2915(conf, (*typ).sons->data[((NI) 0)]);
7132 		(*typ).size = (*(*typ).sons->data[((NI) 0)]).size;
7133 		(*typ).align = (*(*typ).sons->data[((NI) 0)]).align;
7134 		(*typ).paddingAtEnd = (*(*typ).sons->data[((NI) 0)]).paddingAtEnd;
7135 	}
7136 	break;
7137 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
7138 	{
7139 		TSafePoint TM__PpBJsMJcrcWrpLTS6mci1g_182;
7140 		tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw accum;
7141 		NI T122_;
7142 		NI T123_;
7143 		pushSafePoint(&TM__PpBJsMJcrcWrpLTS6mci1g_182);
7144 		TM__PpBJsMJcrcWrpLTS6mci1g_182.status = setjmp(TM__PpBJsMJcrcWrpLTS6mci1g_182.context);
7145 		if (TM__PpBJsMJcrcWrpLTS6mci1g_182.status == 0) {
7146 		nimZeroMem((void*)(&accum), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7147 		accum.maxAlign = ((NI) 1);
7148 		{
7149 			NI i;
7150 			NI colontmp_;
7151 			NI i_2;
7152 			i = (NI)0;
7153 			colontmp_ = (NI)0;
7154 			colontmp_ = len__ast_4002(typ);
7155 			i_2 = ((NI) 0);
7156 			{
7157 				while (1) {
7158 					tyObject_TType__facALICuu8zUj0hjvbTLFg* child;
7159 					if (!(i_2 < colontmp_)) goto LA117;
7160 					i = i_2;
7161 					child = (*typ).sons->data[i];
7162 					computeSizeAlign__types_2915(conf, child);
7163 					align__types_2902((&accum), ((NI) ((*child).align)));
7164 					{
7165 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
7166 						if (!!(((*typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA120_;
7167 						sym = (*(*(*typ).n)._kind_6.sons->data[i])._kind_4.sym;
7168 						(*sym).offset = accum.offset;
7169 					}
7170 					LA120_: ;
7171 					inc__types_2891((&accum), ((NI) ((*child).size)));
7172 					i_2 += ((NI) 1);
7173 				} LA117: ;
7174 			}
7175 		}
7176 		T122_ = (NI)0;
7177 		T122_ = finish__types_2908((&accum));
7178 		(*typ).paddingAtEnd = ((NI16) (T122_));
7179 		T123_ = (NI)0;
7180 		{
7181 			if (!(accum.offset == ((NI) 0))) goto LA126_;
7182 			T123_ = ((NI) 1);
7183 		}
7184 		goto LA124_;
7185 		LA126_: ;
7186 		{
7187 			T123_ = accum.offset;
7188 		}
7189 		LA124_: ;
7190 		(*typ).size = ((NI64) (T123_));
7191 		(*typ).align = ((NI16) (accum.maxAlign));
7192 		popSafePoint();
7193 		}
7194 		else {
7195 			popSafePoint();
7196 			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_))) {
7197 				TM__PpBJsMJcrcWrpLTS6mci1g_182.status = 0;
7198 				(*typ).paddingAtEnd = ((NI16) -2);
7199 				(*typ).size = IL64(-2);
7200 				(*typ).align = ((NI16) -2);
7201 				popCurrentException();
7202 			}
7203 		}
7204 		if (TM__PpBJsMJcrcWrpLTS6mci1g_182.status != 0) reraiseException();
7205 	}
7206 	break;
7207 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
7208 	{
7209 		TSafePoint TM__PpBJsMJcrcWrpLTS6mci1g_184;
7210 		tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw volatile accum_2;
7211 		NI16 paddingAtEnd;
7212 		NI T170_;
7213 		pushSafePoint(&TM__PpBJsMJcrcWrpLTS6mci1g_184);
7214 		TM__PpBJsMJcrcWrpLTS6mci1g_184.status = setjmp(TM__PpBJsMJcrcWrpLTS6mci1g_184.context);
7215 		if (TM__PpBJsMJcrcWrpLTS6mci1g_184.status == 0) {
7216 		{
7217 			tyObject_TType__facALICuu8zUj0hjvbTLFg* volatile st;
7218 			if (!!(((*typ).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA134_;
7219 			st = (*typ).sons->data[((NI) 0)];
7220 			{
7221 				while (1) {
7222 					NI T138_;
7223 					if (!((TM__PpBJsMJcrcWrpLTS6mci1g_5[(NU)((*st).kind)>>3] &(1U<<((NU)((*st).kind)&7U)))!=0)) goto LA137;
7224 					T138_ = (NI)0;
7225 					T138_ = len__ast_4002(st);
7226 					st = (*st).sons->data[(NI)(T138_ - ((NI) 1))];
7227 				} LA137: ;
7228 			}
7229 			computeSizeAlign__types_2915(conf, st);
7230 			{
7231 				if (!((*conf).backend == ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 2))) goto LA141_;
7232 				nimZeroMem((void*)(&accum_2), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7233 				accum_2.offset = (NI)(((NI) ((*st).size)) - ((NI) ((*st).paddingAtEnd)));
7234 				accum_2.maxAlign = ((NI) ((*st).align));
7235 			}
7236 			goto LA139_;
7237 			LA141_: ;
7238 			{
7239 				nimZeroMem((void*)(&accum_2), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7240 				accum_2.offset = ((NI) ((*st).size));
7241 				accum_2.maxAlign = ((NI) ((*st).align));
7242 			}
7243 			LA139_: ;
7244 		}
7245 		goto LA132_;
7246 		LA134_: ;
7247 		{
7248 			NIM_BOOL T145_;
7249 			T145_ = (NIM_BOOL)0;
7250 			T145_ = isObjectWithTypeFieldPredicate__types_485(typ);
7251 			if (!T145_) goto LA146_;
7252 			nimZeroMem((void*)(&accum_2), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7253 			accum_2.offset = (*conf).target.intSize;
7254 			accum_2.maxAlign = (*conf).target.intSize;
7255 		}
7256 		goto LA132_;
7257 		LA146_: ;
7258 		{
7259 			nimZeroMem((void*)(&accum_2), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7260 			accum_2.maxAlign = ((NI) 1);
7261 		}
7262 		LA132_: ;
7263 		{
7264 			if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0)) goto LA151_;
7265 			{
7266 				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
7267 				if (!!((accum_2.offset == ((NI) 0)))) goto LA155_;
7268 				{
7269 					if (!!(((*typ).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA159_;
7270 					info = (*(*typ).sym).info;
7271 				}
7272 				goto LA157_;
7273 				LA159_: ;
7274 				{
7275 					info = unknownLineInfo__lineinfos_280;
7276 				}
7277 				LA157_: ;
7278 				liMessage__msgs_1118(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_185), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__PpBJsMJcrcWrpLTS6mci1g_186, NIM_FALSE);
7279 				nimZeroMem((void*)(&accum_2), sizeof(tyObject_OffsetAccum__jzd9bqLwIuw3ARaSQW79b6yw));
7280 				accum_2.offset = ((NI) -3);
7281 				accum_2.maxAlign = ((NI) -3);
7282 			}
7283 			goto LA153_;
7284 			LA155_: ;
7285 			{
7286 				if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 23))&63U)))!=0)) goto LA163_;
7287 				computeUnionObjectOffsetsFoldFunction__types_3058(conf, (*typ).n, NIM_TRUE, (&accum_2));
7288 			}
7289 			goto LA153_;
7290 			LA163_: ;
7291 			{
7292 				computeUnionObjectOffsetsFoldFunction__types_3058(conf, (*typ).n, NIM_FALSE, (&accum_2));
7293 			}
7294 			LA153_: ;
7295 		}
7296 		goto LA149_;
7297 		LA151_: ;
7298 		{
7299 			if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 23))&63U)))!=0)) goto LA167_;
7300 			accum_2.maxAlign = ((NI) 1);
7301 			computeObjectOffsetsFoldFunction__types_2985(conf, (*typ).n, NIM_TRUE, (&accum_2));
7302 		}
7303 		goto LA149_;
7304 		LA167_: ;
7305 		{
7306 			computeObjectOffsetsFoldFunction__types_2985(conf, (*typ).n, NIM_FALSE, (&accum_2));
7307 		}
7308 		LA149_: ;
7309 		T170_ = (NI)0;
7310 		T170_ = finish__types_2908((&accum_2));
7311 		paddingAtEnd = ((NI16) (T170_));
7312 		{
7313 			NIM_BOOL T173_;
7314 			NIM_BOOL T174_;
7315 			T173_ = (NIM_BOOL)0;
7316 			T174_ = (NIM_BOOL)0;
7317 			T174_ = !(((*typ).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
7318 			if (!(T174_)) goto LA175_;
7319 			T174_ = (((*(*typ).sym).flags & 262208) == 64);
7320 			LA175_: ;
7321 			T173_ = T174_;
7322 			if (!(T173_)) goto LA176_;
7323 			T173_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 41))&63U)))!=0));
7324 			LA176_: ;
7325 			if (!T173_) goto LA177_;
7326 			(*typ).size = IL64(-3);
7327 			(*typ).align = ((NI16) -3);
7328 			(*typ).paddingAtEnd = ((NI16) -3);
7329 		}
7330 		goto LA171_;
7331 		LA177_: ;
7332 		{
7333 			NI T180_;
7334 			T180_ = (NI)0;
7335 			{
7336 				if (!(accum_2.offset == ((NI) 0))) goto LA183_;
7337 				T180_ = ((NI) 1);
7338 			}
7339 			goto LA181_;
7340 			LA183_: ;
7341 			{
7342 				T180_ = accum_2.offset;
7343 			}
7344 			LA181_: ;
7345 			(*typ).size = ((NI64) (T180_));
7346 			(*typ).align = ((NI16) (accum_2.maxAlign));
7347 			(*typ).paddingAtEnd = paddingAtEnd;
7348 		}
7349 		LA171_: ;
7350 		popSafePoint();
7351 		}
7352 		else {
7353 			popSafePoint();
7354 			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_))) {
7355 				TM__PpBJsMJcrcWrpLTS6mci1g_184.status = 0;
7356 				(*typ).size = IL64(-2);
7357 				(*typ).align = ((NI16) -2);
7358 				(*typ).paddingAtEnd = ((NI16) -2);
7359 				popCurrentException();
7360 			}
7361 		}
7362 		if (TM__PpBJsMJcrcWrpLTS6mci1g_184.status != 0) reraiseException();
7363 	}
7364 	break;
7365 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
7366 	{
7367 		{
7368 			NI T191_;
7369 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T194_;
7370 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T195_;
7371 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T196_;
7372 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T197_;
7373 			T191_ = (NI)0;
7374 			T191_ = len__ast_4002(typ);
7375 			if (!(((NI) 1) < T191_)) goto LA192_;
7376 			T194_ = NIM_NIL;
7377 			T194_ = lastSon__ast_3743(typ);
7378 			computeSizeAlign__types_2915(conf, T194_);
7379 			T195_ = NIM_NIL;
7380 			T195_ = lastSon__ast_3743(typ);
7381 			(*typ).size = (*T195_).size;
7382 			T196_ = NIM_NIL;
7383 			T196_ = lastSon__ast_3743(typ);
7384 			(*typ).align = (*T196_).align;
7385 			T197_ = NIM_NIL;
7386 			T197_ = lastSon__ast_3743(typ);
7387 			(*typ).paddingAtEnd = (*T197_).paddingAtEnd;
7388 		}
7389 		LA192_: ;
7390 	}
7391 	break;
7392 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
7393 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
7394 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
7395 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
7396 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
7397 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
7398 	{
7399 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T199_;
7400 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T200_;
7401 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T201_;
7402 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T202_;
7403 		T199_ = NIM_NIL;
7404 		T199_ = lastSon__ast_3743(typ);
7405 		computeSizeAlign__types_2915(conf, T199_);
7406 		T200_ = NIM_NIL;
7407 		T200_ = lastSon__ast_3743(typ);
7408 		(*typ).size = (*T200_).size;
7409 		T201_ = NIM_NIL;
7410 		T201_ = lastSon__ast_3743(typ);
7411 		(*typ).align = (*T201_).align;
7412 		T202_ = NIM_NIL;
7413 		T202_ = lastSon__ast_3743(typ);
7414 		(*typ).paddingAtEnd = (*T202_).paddingAtEnd;
7415 	}
7416 	break;
7417 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
7418 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
7419 	{
7420 		{
7421 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T208_;
7422 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T209_;
7423 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T210_;
7424 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T211_;
7425 			if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0)) goto LA206_;
7426 			T208_ = NIM_NIL;
7427 			T208_ = lastSon__ast_3743(typ);
7428 			computeSizeAlign__types_2915(conf, T208_);
7429 			T209_ = NIM_NIL;
7430 			T209_ = lastSon__ast_3743(typ);
7431 			(*typ).size = (*T209_).size;
7432 			T210_ = NIM_NIL;
7433 			T210_ = lastSon__ast_3743(typ);
7434 			(*typ).align = (*T210_).align;
7435 			T211_ = NIM_NIL;
7436 			T211_ = lastSon__ast_3743(typ);
7437 			(*typ).paddingAtEnd = (*T211_).paddingAtEnd;
7438 		}
7439 		goto LA204_;
7440 		LA206_: ;
7441 		{
7442 			(*typ).size = IL64(-3);
7443 			(*typ).align = ((NI16) -3);
7444 			(*typ).paddingAtEnd = ((NI16) -3);
7445 		}
7446 		LA204_: ;
7447 	}
7448 	break;
7449 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
7450 	{
7451 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T214_;
7452 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T215_;
7453 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T216_;
7454 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T217_;
7455 		T214_ = NIM_NIL;
7456 		T214_ = base__types_63(typ);
7457 		computeSizeAlign__types_2915(conf, T214_);
7458 		T215_ = NIM_NIL;
7459 		T215_ = base__types_63(typ);
7460 		(*typ).size = (*T215_).size;
7461 		T216_ = NIM_NIL;
7462 		T216_ = base__types_63(typ);
7463 		(*typ).align = (*T216_).align;
7464 		T217_ = NIM_NIL;
7465 		T217_ = base__types_63(typ);
7466 		(*typ).paddingAtEnd = (*T217_).paddingAtEnd;
7467 	}
7468 	break;
7469 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
7470 	{
7471 		(*typ).size = IL64(-2);
7472 		(*typ).align = ((NI16) -2);
7473 		(*typ).paddingAtEnd = ((NI16) -2);
7474 	}
7475 	break;
7476 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
7477 	{
7478 		{
7479 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T224_;
7480 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T225_;
7481 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T226_;
7482 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T227_;
7483 			if (!!(((*typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA222_;
7484 			T224_ = NIM_NIL;
7485 			T224_ = lastSon__ast_3743(typ);
7486 			computeSizeAlign__types_2915(conf, T224_);
7487 			T225_ = NIM_NIL;
7488 			T225_ = lastSon__ast_3743(typ);
7489 			(*typ).size = (*T225_).size;
7490 			T226_ = NIM_NIL;
7491 			T226_ = lastSon__ast_3743(typ);
7492 			(*typ).align = (*T226_).align;
7493 			T227_ = NIM_NIL;
7494 			T227_ = lastSon__ast_3743(typ);
7495 			(*typ).paddingAtEnd = (*T227_).paddingAtEnd;
7496 		}
7497 		goto LA220_;
7498 		LA222_: ;
7499 		{
7500 			(*typ).size = IL64(-3);
7501 			(*typ).align = ((NI16) -3);
7502 			(*typ).paddingAtEnd = ((NI16) -3);
7503 		}
7504 		LA220_: ;
7505 	}
7506 	break;
7507 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
7508 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40):
7509 	{
7510 		(*typ).size = ((NI64) (((NI16) ((*conf).target.intSize))));
7511 		(*typ).align = ((NI16) ((*conf).target.intSize));
7512 		(*typ).paddingAtEnd = ((NI16) 0);
7513 	}
7514 	break;
7515 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
7516 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
7517 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41):
7518 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32):
7519 	{
7520 		(*typ).size = IL64(1);
7521 		(*typ).align = ((NI16) 1);
7522 		(*typ).paddingAtEnd = ((NI16) 0);
7523 	}
7524 	break;
7525 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33):
7526 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42):
7527 	{
7528 		(*typ).size = IL64(2);
7529 		(*typ).align = ((NI16) 2);
7530 		(*typ).paddingAtEnd = ((NI16) 0);
7531 	}
7532 	break;
7533 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34):
7534 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
7535 	{
7536 		(*typ).size = IL64(4);
7537 		(*typ).align = ((NI16) 4);
7538 		(*typ).paddingAtEnd = ((NI16) 0);
7539 	}
7540 	break;
7541 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
7542 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
7543 	{
7544 		(*typ).size = IL64(8);
7545 		(*typ).align = ((NI16) 8);
7546 		(*typ).paddingAtEnd = ((NI16) 0);
7547 	}
7548 	break;
7549 	default:
7550 	{
7551 		(*typ).size = IL64(-3);
7552 		(*typ).align = ((NI16) -3);
7553 		(*typ).paddingAtEnd = ((NI16) -3);
7554 	}
7555 	break;
7556 	}
7557 	popSafePoint();
7558 	}
7559 	else {
7560 		popSafePoint();
7561 	}
7562 	{
7563 		{
7564 			if (!hasSize) goto LA239_;
7565 			(*typ).size = revertSize;
7566 		}
7567 		LA239_: ;
7568 		{
7569 			if (!hasAlign) goto LA243_;
7570 			(*typ).align = revertAlign;
7571 		}
7572 		LA243_: ;
7573 		if (TM__PpBJsMJcrcWrpLTS6mci1g_181.status != 0) nimLeaveFinally();
7574 	}
7575 	if (TM__PpBJsMJcrcWrpLTS6mci1g_181.status != 0) reraiseException();
7576 	}BeforeRet_: ;
7577 }
N_NIMCALL(NI64,getSize__types_3327)7578 N_LIB_PRIVATE N_NIMCALL(NI64, getSize__types_3327)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
7579 	NI64 result;
7580 	result = (NI64)0;
7581 	computeSizeAlign__types_2915(conf, typ);
7582 	result = (*typ).size;
7583 	return result;
7584 }
N_NIMCALL(tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng,classify__types_3572)7585 N_LIB_PRIVATE N_NIMCALL(tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng, classify__types_3572)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
7586 	tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng result;
7587 	result = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
7588 	{
7589 		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
7590 		result = ((tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng) 0);
7591 	}
7592 	goto LA1_;
7593 	LA3_: ;
7594 	{
7595 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T6_;
7596 		T6_ = NIM_NIL;
7597 		T6_ = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_194);
7598 		switch ((*T6_).kind) {
7599 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
7600 		{
7601 			result = ((tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng) 2);
7602 		}
7603 		break;
7604 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
7605 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
7606 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
7607 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
7608 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
7609 		{
7610 			result = ((tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng) 1);
7611 		}
7612 		break;
7613 		default:
7614 		{
7615 			result = ((tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng) 0);
7616 		}
7617 		break;
7618 		}
7619 	}
7620 	LA1_: ;
7621 	return result;
7622 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,skipConv__types_3588)7623 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__types_3588)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
7624 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
7625 	result = NIM_NIL;
7626 	result = n;
7627 	switch ((*n).kind) {
7628 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
7629 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
7630 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
7631 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
7632 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
7633 	{
7634 		{
7635 			tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T4_;
7636 			tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T5_;
7637 			T4_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
7638 			T4_ = classify__types_3572((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
7639 			T5_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
7640 			T5_ = classify__types_3572((*n).typ);
7641 			if (!(T4_ == T5_)) goto LA6_;
7642 			result = (*n)._kind_6.sons->data[((NI) 0)];
7643 		}
7644 		LA6_: ;
7645 	}
7646 	break;
7647 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
7648 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
7649 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
7650 	{
7651 		{
7652 			tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T11_;
7653 			tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T12_;
7654 			T11_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
7655 			T11_ = classify__types_3572((*(*n)._kind_6.sons->data[((NI) 1)]).typ);
7656 			T12_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
7657 			T12_ = classify__types_3572((*n).typ);
7658 			if (!(T11_ == T12_)) goto LA13_;
7659 			result = (*n)._kind_6.sons->data[((NI) 1)];
7660 		}
7661 		LA13_: ;
7662 	}
7663 	break;
7664 	default:
7665 	{
7666 	}
7667 	break;
7668 	}
7669 	return result;
7670 }
N_NIMCALL(NIM_BOOL,isUnsigned__types_154)7671 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnsigned__types_154)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
7672 	NIM_BOOL result;
7673 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
7674 	result = (NIM_BOOL)0;
7675 	T1_ = NIM_NIL;
7676 	T1_ = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_167);
7677 	result = ((*T1_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*T1_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*T1_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
7678 	return result;
7679 }
N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g,nextTypeId__ast_3151)7680 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
7681 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
7682 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
7683 	(*x).typeId_0 += ((NI) 1);
7684 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
7685 	result.module = (*x).module;
7686 	result.item = (*x).typeId_0;
7687 	return result;
7688 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,takeType__types_3633)7689 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, takeType__types_3633)(tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* arg, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
7690 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
7691 	result = NIM_NIL;
7692 	{
7693 		if (!((*arg).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5))) goto LA3_;
7694 		result = formal;
7695 	}
7696 	goto LA1_;
7697 	LA3_: ;
7698 	{
7699 		NIM_BOOL T6_;
7700 		tyObject_TType__facALICuu8zUj0hjvbTLFg* a;
7701 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T10_;
7702 		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T11_;
7703 		T6_ = (NIM_BOOL)0;
7704 		T6_ = ((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48) || (*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
7705 		if (!(T6_)) goto LA7_;
7706 		T6_ = isEmptyContainer__types_3617(arg);
7707 		LA7_: ;
7708 		if (!T6_) goto LA8_;
7709 		T10_ = NIM_NIL;
7710 		T10_ = skipTypes__ast_3735(arg, TM__PpBJsMJcrcWrpLTS6mci1g_2);
7711 		T11_ = nextTypeId__ast_3151(idgen);
7712 		a = copyType__ast_4046(T10_, T11_, (*arg).owner);
7713 		copyTypeProps__modulegraphs_8872(g, ((NI) ((*idgen).module)), a, arg);
7714 		asgnRef((void**) (&(*a).sons->data[((*arg).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16))]), (*formal).sons->data[((NI) 0)]);
7715 		result = a;
7716 	}
7717 	goto LA1_;
7718 	LA8_: ;
7719 	{
7720 		NIM_BOOL T13_;
7721 		T13_ = (NIM_BOOL)0;
7722 		T13_ = ((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19));
7723 		if (!(T13_)) goto LA14_;
7724 		T13_ = ((*arg).kind == (*formal).kind);
7725 		LA14_: ;
7726 		if (!T13_) goto LA15_;
7727 		result = formal;
7728 	}
7729 	goto LA1_;
7730 	LA15_: ;
7731 	{
7732 		result = arg;
7733 	}
7734 	LA1_: ;
7735 	return result;
7736 }
N_NIMCALL(NI64,getAlign__types_3323)7737 N_LIB_PRIVATE N_NIMCALL(NI64, getAlign__types_3323)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
7738 	NI64 result;
7739 	result = (NI64)0;
7740 	computeSizeAlign__types_2915(conf, typ);
7741 	result = ((NI64) ((*typ).align));
7742 	return result;
7743 }
N_NIMCALL(void,addPragmaAndCallConvMismatch__types_3786)7744 N_LIB_PRIVATE N_NIMCALL(void, addPragmaAndCallConvMismatch__types_3786)(NimStringDesc** message, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
7745 	tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA T1_;
7746 	tySet_tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA convMismatch;
7747 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw _;
7748 	NimStringDesc* gotPragmas;
7749 	NimStringDesc* expectedPragmas;
7750 	T1_ = getProcConvMismatch__types_3686(conf, formal, actual, ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0));
7751 	convMismatch = T1_.Field0;
7752 	_ = T1_.Field1;
7753 	gotPragmas = ((NimStringDesc*) NIM_NIL);
7754 	expectedPragmas = ((NimStringDesc*) NIM_NIL);
7755 	{
7756 		tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA reason;
7757 		NI i;
7758 		reason = (tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA)0;
7759 		i = ((NI) 0);
7760 		{
7761 			while (1) {
7762 				if (!(i <= ((NI) 4))) goto LA4;
7763 				{
7764 					if (!((convMismatch &((NU8)1<<((NU)(((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) (i)))&7U)))!=0)) goto LA7_;
7765 					reason = ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) (i));
7766 					switch (reason) {
7767 					case ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 4):
7768 					{
7769 						tyArray__Re75IspeoxXy2oCZHwcRrA T10_;
7770 						NimStringDesc* T11_;
7771 						nimZeroMem((void*)T10_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
7772 						T10_[0] = reprEnum((NI)(*actual).callConv, (&NTItcallingconvention__yjAJ8w0h1PBaSwSGJ3P7IA_));
7773 						T10_[1] = reprEnum((NI)(*formal).callConv, (&NTItcallingconvention__yjAJ8w0h1PBaSwSGJ3P7IA_));
7774 						T11_ = NIM_NIL;
7775 						T11_ = nsuFormatOpenArray(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_202), T10_, 2);
7776 						unsureAsgnRef((void**) (&(*message)), resizeString((*message), (T11_ ? T11_->Sup.len : 0) + 0));
7777 appendString((*message), T11_);
7778 					}
7779 					break;
7780 					case ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 0):
7781 					{
7782 						expectedPragmas = resizeString(expectedPragmas, 14);
7783 appendString(expectedPragmas, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_203));
7784 					}
7785 					break;
7786 					case ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 1):
7787 					{
7788 						expectedPragmas = resizeString(expectedPragmas, 8);
7789 appendString(expectedPragmas, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_204));
7790 					}
7791 					break;
7792 					case ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 2):
7793 					{
7794 						NimStringDesc* T15_;
7795 						NimStringDesc* T16_;
7796 						NimStringDesc* T17_;
7797 						NimStringDesc* T18_;
7798 						T15_ = NIM_NIL;
7799 						T16_ = NIM_NIL;
7800 						T16_ = dollar___ast_3858((*actual).lockLevel);
7801 						T15_ = rawNewString((T16_ ? T16_->Sup.len : 0) + 9);
7802 appendString(T15_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_157));
7803 appendString(T15_, T16_);
7804 appendString(T15_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
7805 						gotPragmas = resizeString(gotPragmas, (T15_ ? T15_->Sup.len : 0) + 0);
7806 appendString(gotPragmas, T15_);
7807 						T17_ = NIM_NIL;
7808 						T18_ = NIM_NIL;
7809 						T18_ = dollar___ast_3858((*formal).lockLevel);
7810 						T17_ = rawNewString((T18_ ? T18_->Sup.len : 0) + 9);
7811 appendString(T17_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_157));
7812 appendString(T17_, T18_);
7813 appendString(T17_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_89));
7814 						expectedPragmas = resizeString(expectedPragmas, (T17_ ? T17_->Sup.len : 0) + 0);
7815 appendString(expectedPragmas, T17_);
7816 					}
7817 					break;
7818 					case ((tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA) 3):
7819 					{
7820 					}
7821 					break;
7822 					}
7823 				}
7824 				LA7_: ;
7825 				i += ((NI) 1);
7826 			} LA4: ;
7827 		}
7828 	}
7829 	{
7830 		tyArray__Re75IspeoxXy2oCZHwcRrA T24_;
7831 		NimStringDesc* T25_;
7832 		if (!(((NI) 0) < (expectedPragmas ? expectedPragmas->Sup.len : 0))) goto LA22_;
7833 		gotPragmas = setLengthStr(gotPragmas, ((NI) (((((NI) 0) >= (NI)((gotPragmas ? gotPragmas->Sup.len : 0) - ((NI) 2))) ? ((NI) 0) : (NI)((gotPragmas ? gotPragmas->Sup.len : 0) - ((NI) 2))))));
7834 		expectedPragmas = setLengthStr(expectedPragmas, ((NI) (((((NI) 0) >= (NI)((expectedPragmas ? expectedPragmas->Sup.len : 0) - ((NI) 2))) ? ((NI) 0) : (NI)((expectedPragmas ? expectedPragmas->Sup.len : 0) - ((NI) 2))))));
7835 		nimZeroMem((void*)T24_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
7836 		T24_[0] = copyString(gotPragmas);
7837 		T24_[1] = copyString(expectedPragmas);
7838 		T25_ = NIM_NIL;
7839 		T25_ = nsuFormatOpenArray(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_205), T24_, 2);
7840 		unsureAsgnRef((void**) (&(*message)), resizeString((*message), (T25_ ? T25_->Sup.len : 0) + 0));
7841 appendString((*message), T25_);
7842 	}
7843 	LA22_: ;
7844 }
N_NIMCALL(void,typeMismatch__types_3861)7845 N_LIB_PRIVATE N_NIMCALL(void, typeMismatch__types_3861)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
7846 	{
7847 		NIM_BOOL T3_;
7848 		NimStringDesc* actualStr;
7849 		NimStringDesc* formalStr;
7850 		NimStringDesc* desc;
7851 		NimStringDesc* x;
7852 		NIM_BOOL verbose;
7853 		NIM_BOOL T13_;
7854 		NimStringDesc* msg;
7855 		NimStringDesc* T32_;
7856 		T3_ = (NIM_BOOL)0;
7857 		T3_ = !(((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50)));
7858 		if (!(T3_)) goto LA4_;
7859 		T3_ = !(((*actual).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50)));
7860 		LA4_: ;
7861 		if (!T3_) goto LA5_;
7862 		actualStr = typeToString__types_50(actual, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
7863 		formalStr = typeToString__types_50(formal, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
7864 		desc = typeToString__types_50(formal, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
7865 		{
7866 			if (!eqStrings(formalStr, desc)) goto LA9_;
7867 			x = formalStr;
7868 		}
7869 		goto LA7_;
7870 		LA9_: ;
7871 		{
7872 			NimStringDesc* T12_;
7873 			T12_ = NIM_NIL;
7874 			T12_ = rawNewString((formalStr ? formalStr->Sup.len : 0) + (desc ? desc->Sup.len : 0) + 3);
7875 appendString(T12_, formalStr);
7876 appendString(T12_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_195));
7877 appendString(T12_, desc);
7878 			x = T12_;
7879 		}
7880 		LA7_: ;
7881 		T13_ = (NIM_BOOL)0;
7882 		T13_ = eqStrings(actualStr, formalStr);
7883 		if (T13_) goto LA14_;
7884 		T13_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 36))&63U)))!=0);
7885 		LA14_: ;
7886 		verbose = T13_;
7887 		msg = copyString(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_196));
7888 		{
7889 			if (!verbose) goto LA17_;
7890 			msg = resizeString(msg, 1);
7891 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_197));
7892 		}
7893 		LA17_: ;
7894 		{
7895 			NIM_BOOL T21_;
7896 			NimStringDesc* T24_;
7897 			T21_ = (NIM_BOOL)0;
7898 			T21_ = isDefined__options_2279(conf, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_198));
7899 			if (!T21_) goto LA22_;
7900 			T24_ = NIM_NIL;
7901 			T24_ = nsuFormatSingleElem(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_199), actualStr);
7902 			msg = resizeString(msg, (T24_ ? T24_->Sup.len : 0) + 0);
7903 appendString(msg, T24_);
7904 		}
7905 		goto LA19_;
7906 		LA22_: ;
7907 		{
7908 			tyArray__Re75IspeoxXy2oCZHwcRrA T26_;
7909 			NimStringDesc* T27_;
7910 			nimZeroMem((void*)T26_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
7911 			T26_[0] = copyString(actualStr);
7912 			T26_[1] = renderTree__renderer_46(n, 0);
7913 			T27_ = NIM_NIL;
7914 			T27_ = nsuFormatOpenArray(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_200), T26_, 2);
7915 			msg = resizeString(msg, (T27_ ? T27_->Sup.len : 0) + 0);
7916 appendString(msg, T27_);
7917 		}
7918 		LA19_: ;
7919 		{
7920 			if (!verbose) goto LA30_;
7921 			addDeclaredLoc__astmsgs_33((&msg), conf, actual);
7922 			msg = resizeString(msg, 1);
7923 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_197));
7924 		}
7925 		LA30_: ;
7926 		T32_ = NIM_NIL;
7927 		T32_ = nsuFormatSingleElem(((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_201), x);
7928 		msg = resizeString(msg, (T32_ ? T32_->Sup.len : 0) + 0);
7929 appendString(msg, T32_);
7930 		{
7931 			if (!verbose) goto LA35_;
7932 			addDeclaredLoc__astmsgs_33((&msg), conf, formal);
7933 		}
7934 		LA35_: ;
7935 		{
7936 			NIM_BOOL T39_;
7937 			tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ T43_;
7938 			T39_ = (NIM_BOOL)0;
7939 			T39_ = ((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
7940 			if (!(T39_)) goto LA40_;
7941 			T39_ = ((*actual).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
7942 			LA40_: ;
7943 			if (!T39_) goto LA41_;
7944 			addPragmaAndCallConvMismatch__types_3786((&msg), formal, actual, conf);
7945 			T43_ = (tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ)0;
7946 			T43_ = compatibleEffects__types_3416(formal, actual);
7947 			switch (T43_) {
7948 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 0):
7949 			{
7950 			}
7951 			break;
7952 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 1):
7953 			{
7954 				msg = resizeString(msg, 22);
7955 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_206));
7956 			}
7957 			break;
7958 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 2):
7959 			{
7960 				msg = resizeString(msg, 33);
7961 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_207));
7962 			}
7963 			break;
7964 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 3):
7965 			{
7966 				msg = resizeString(msg, 20);
7967 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_208));
7968 			}
7969 			break;
7970 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 4):
7971 			{
7972 				msg = resizeString(msg, 33);
7973 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_209));
7974 			}
7975 			break;
7976 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 5):
7977 			{
7978 				msg = resizeString(msg, 19);
7979 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_210));
7980 			}
7981 			break;
7982 			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 6):
7983 			{
7984 				msg = resizeString(msg, 30);
7985 appendString(msg, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_211));
7986 			}
7987 			break;
7988 			}
7989 		}
7990 		LA41_: ;
7991 		liMessage__msgs_1118(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__PpBJsMJcrcWrpLTS6mci1g_212, NIM_FALSE);
7992 	}
7993 	LA5_: ;
7994 }
N_INLINE(NIM_BOOL,contains__types_1638)7995 static N_INLINE(NIM_BOOL, contains__types_1638)(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA s, NF value) {
7996 	NIM_BOOL result;
7997 	NIM_BOOL T1_;
7998 	result = (NIM_BOOL)0;
7999 	T1_ = (NIM_BOOL)0;
8000 	T1_ = (s.a <= value);
8001 	if (!(T1_)) goto LA2_;
8002 	T1_ = (value <= s.b);
8003 	LA2_: ;
8004 	result = T1_;
8005 	return result;
8006 }
N_INLINE(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA,dotdot___types_1608)8007 static N_INLINE(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA, dotdot___types_1608)(NF a, NF b) {
8008 	tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA result;
8009 	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA));
8010 	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA));
8011 	result.a = a;
8012 	result.b = b;
8013 	return result;
8014 }
N_NIMCALL(NIM_BOOL,floatRangeCheck__types_1604)8015 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, floatRangeCheck__types_1604)(NF x, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8016 	NIM_BOOL result;
8017 	result = (NIM_BOOL)0;
8018 	switch ((*t).kind) {
8019 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
8020 	{
8021 		result = NIM_TRUE;
8022 	}
8023 	break;
8024 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
8025 	{
8026 		NF T3_;
8027 		NF T4_;
8028 		tyObject_HSlice__vOYTm9cLQaRc5TUw9atOyHnA T5_;
8029 		T3_ = (NF)0;
8030 		T3_ = firstFloat__types_1440(t);
8031 		T4_ = (NF)0;
8032 		T4_ = lastFloat__types_1579(t);
8033 		T5_ = dotdot___types_1608(T3_, T4_);
8034 		result = contains__types_1638(T5_, x);
8035 	}
8036 	break;
8037 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
8038 	{
8039 		result = floatRangeCheck__types_1604(x, (*t).sons->data[((NI) 0)]);
8040 	}
8041 	break;
8042 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
8043 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
8044 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
8045 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
8046 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
8047 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
8048 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
8049 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
8050 	{
8051 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T8_;
8052 		T8_ = NIM_NIL;
8053 		T8_ = lastSon__ast_3743(t);
8054 		result = floatRangeCheck__types_1604(x, T8_);
8055 	}
8056 	break;
8057 	default:
8058 	{
8059 		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T10_;
8060 		NimStringDesc* T11_;
8061 		T10_ = NIM_NIL;
8062 		T10_ = newPartialConfigRef__options_2497();
8063 		T11_ = NIM_NIL;
8064 		T11_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 33);
8065 appendString(T11_, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_213));
8066 appendString(T11_, reprEnum((NI)(*t).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
8067 		internalErrorImpl__msgs_1431(T10_, unknownLineInfo__lineinfos_280, T11_, TM__PpBJsMJcrcWrpLTS6mci1g_214);
8068 		result = NIM_FALSE;
8069 	}
8070 	break;
8071 	}
8072 	return result;
8073 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,skipHiddenSubConv__types_3665)8074 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipHiddenSubConv__types_3665)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
8075 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
8076 	result = NIM_NIL;
8077 	{
8078 		tyObject_TType__facALICuu8zUj0hjvbTLFg* formal;
8079 		tyObject_TType__facALICuu8zUj0hjvbTLFg* arg;
8080 		tyObject_TType__facALICuu8zUj0hjvbTLFg* dest;
8081 		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59))) goto LA3_;
8082 		formal = (*n).typ;
8083 		result = (*n)._kind_6.sons->data[((NI) 1)];
8084 		arg = (*result).typ;
8085 		dest = takeType__types_3633(formal, arg, g, idgen);
8086 		{
8087 			NIM_BOOL T7_;
8088 			T7_ = (NIM_BOOL)0;
8089 			T7_ = (dest == arg);
8090 			if (!(T7_)) goto LA8_;
8091 			T7_ = !(((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)));
8092 			LA8_: ;
8093 			if (!T7_) goto LA9_;
8094 			result = n;
8095 		}
8096 		goto LA5_;
8097 		LA9_: ;
8098 		{
8099 			result = copyTree__ast_4431(result);
8100 			asgnRef((void**) (&(*result).typ), dest);
8101 		}
8102 		LA5_: ;
8103 	}
8104 	goto LA1_;
8105 	LA3_: ;
8106 	{
8107 		result = n;
8108 	}
8109 	LA1_: ;
8110 	return result;
8111 }
N_NIMCALL(tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ,equalParam__types_1856)8112 N_LIB_PRIVATE N_NIMCALL(tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ, equalParam__types_1856)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* b) {
8113 	tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ result;
8114 	result = (tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ)0;
8115 	{
8116 		NIM_BOOL T3_;
8117 		T3_ = (NIM_BOOL)0;
8118 		T3_ = sameTypeOrNil__types_1839((*a).typ, (*b).typ, 4);
8119 		if (!(T3_)) goto LA4_;
8120 		T3_ = exprStructuralEquivalent__trees_56((*a).constraint, (*b).constraint, NIM_FALSE);
8121 		LA4_: ;
8122 		if (!T3_) goto LA5_;
8123 		{
8124 			if (!((*a).ast == (*b).ast)) goto LA9_;
8125 			result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 1);
8126 		}
8127 		goto LA7_;
8128 		LA9_: ;
8129 		{
8130 			NIM_BOOL T12_;
8131 			T12_ = (NIM_BOOL)0;
8132 			T12_ = !(((*a).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
8133 			if (!(T12_)) goto LA13_;
8134 			T12_ = !(((*b).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
8135 			LA13_: ;
8136 			if (!T12_) goto LA14_;
8137 			{
8138 				NIM_BOOL T18_;
8139 				T18_ = (NIM_BOOL)0;
8140 				T18_ = exprStructuralEquivalent__trees_56((*a).ast, (*b).ast, NIM_FALSE);
8141 				if (!T18_) goto LA19_;
8142 				result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 1);
8143 			}
8144 			goto LA16_;
8145 			LA19_: ;
8146 			{
8147 				result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 2);
8148 			}
8149 			LA16_: ;
8150 		}
8151 		goto LA7_;
8152 		LA14_: ;
8153 		{
8154 			if (!!(((*a).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA23_;
8155 			result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 1);
8156 		}
8157 		goto LA7_;
8158 		LA23_: ;
8159 		{
8160 			if (!!(((*b).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA26_;
8161 			result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 2);
8162 		}
8163 		goto LA7_;
8164 		LA26_: ;
8165 		LA7_: ;
8166 	}
8167 	goto LA1_;
8168 	LA5_: ;
8169 	{
8170 		result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0);
8171 	}
8172 	LA1_: ;
8173 	return result;
8174 }
N_NIMCALL(tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ,equalParams__types_96)8175 N_LIB_PRIVATE N_NIMCALL(tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ, equalParams__types_96)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
8176 	tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ result;
8177 {	result = (tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ)0;
8178 	result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 1);
8179 	{
8180 		NI T3_;
8181 		NI T4_;
8182 		T3_ = (NI)0;
8183 		T3_ = len__ast_3198(a);
8184 		T4_ = (NI)0;
8185 		T4_ = len__ast_3198(b);
8186 		if (!!((T3_ == T4_))) goto LA5_;
8187 		result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0);
8188 	}
8189 	goto LA1_;
8190 	LA5_: ;
8191 	{
8192 		{
8193 			NI i;
8194 			NI colontmp_;
8195 			NI i_2;
8196 			i = (NI)0;
8197 			colontmp_ = (NI)0;
8198 			colontmp_ = len__ast_3198(a);
8199 			i_2 = ((NI) 1);
8200 			{
8201 				while (1) {
8202 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
8203 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* n;
8204 					tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ T11_;
8205 					if (!(i_2 < colontmp_)) goto LA10;
8206 					i = i_2;
8207 					m = (*(*a)._kind_6.sons->data[i])._kind_4.sym;
8208 					n = (*(*b)._kind_6.sons->data[i])._kind_4.sym;
8209 					T11_ = (tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ)0;
8210 					T11_ = equalParam__types_1856(m, n);
8211 					switch (T11_) {
8212 					case ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0):
8213 					{
8214 						result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0);
8215 						goto BeforeRet_;
8216 					}
8217 					break;
8218 					case ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 1):
8219 					{
8220 					}
8221 					break;
8222 					case ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 2):
8223 					{
8224 						result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 2);
8225 					}
8226 					break;
8227 					}
8228 					{
8229 						if (!!(((*(*m).name).id == (*(*n).name).id))) goto LA17_;
8230 						result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0);
8231 						goto BeforeRet_;
8232 					}
8233 					LA17_: ;
8234 					i_2 += ((NI) 1);
8235 				} LA10: ;
8236 			}
8237 		}
8238 		{
8239 			NIM_BOOL T21_;
8240 			T21_ = (NIM_BOOL)0;
8241 			T21_ = sameTypeOrNil__types_1839((*a).typ, (*b).typ, 4);
8242 			if (!!(T21_)) goto LA22_;
8243 			{
8244 				NIM_BOOL T26_;
8245 				T26_ = (NIM_BOOL)0;
8246 				T26_ = ((*a).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
8247 				if (T26_) goto LA27_;
8248 				T26_ = ((*b).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
8249 				LA27_: ;
8250 				if (!T26_) goto LA28_;
8251 				result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 0);
8252 			}
8253 			goto LA24_;
8254 			LA28_: ;
8255 			{
8256 				result = ((tyEnum_TParamsEquality__fvN026oaoXOuZ9ajGPibaYQ) 2);
8257 			}
8258 			LA24_: ;
8259 		}
8260 		LA22_: ;
8261 	}
8262 	LA1_: ;
8263 	}BeforeRet_: ;
8264 	return result;
8265 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,skipHidden__types_3604)8266 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipHidden__types_3604)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
8267 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
8268 	result = NIM_NIL;
8269 	result = n;
8270 	{
8271 		while (1) {
8272 			switch ((*result).kind) {
8273 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
8274 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
8275 			{
8276 				{
8277 					tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T6_;
8278 					tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng T7_;
8279 					T6_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
8280 					T6_ = classify__types_3572((*(*result)._kind_6.sons->data[((NI) 1)]).typ);
8281 					T7_ = (tyEnum_OrdinalType__ZU6odCXXrXxl9axSbawmvng)0;
8282 					T7_ = classify__types_3572((*result).typ);
8283 					if (!(T6_ == T7_)) goto LA8_;
8284 					result = (*result)._kind_6.sons->data[((NI) 1)];
8285 				}
8286 				goto LA4_;
8287 				LA8_: ;
8288 				{
8289 					goto LA1;
8290 				}
8291 				LA4_: ;
8292 			}
8293 			break;
8294 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
8295 			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
8296 			{
8297 				result = (*result)._kind_6.sons->data[((NI) 0)];
8298 			}
8299 			break;
8300 			default:
8301 			{
8302 				goto LA1;
8303 			}
8304 			break;
8305 			}
8306 		}
8307 	} LA1: ;
8308 	return result;
8309 }
N_NIMCALL(void,addTypeDeclVerboseMaybe__types_53)8310 N_LIB_PRIVATE N_NIMCALL(void, addTypeDeclVerboseMaybe__types_53)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
8311 	{
8312 		NimStringDesc* T5_;
8313 		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 36))&63U)))!=0)) goto LA3_;
8314 		T5_ = NIM_NIL;
8315 		T5_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 7));
8316 		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T5_ ? T5_->Sup.len : 0) + 0));
8317 appendString((*result), T5_);
8318 		addDeclaredLoc__astmsgs_33(result, conf, typ);
8319 	}
8320 	goto LA1_;
8321 	LA3_: ;
8322 	{
8323 		NimStringDesc* T7_;
8324 		T7_ = NIM_NIL;
8325 		T7_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
8326 		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T7_ ? T7_->Sup.len : 0) + 0));
8327 appendString((*result), T7_);
8328 	}
8329 	LA1_: ;
8330 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,commonSuperclass__types_2738)8331 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, commonSuperclass__types_2738)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
8332 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
8333 	tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
8334 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA ancestors;
8335 	tyObject_TType__facALICuu8zUj0hjvbTLFg* y;
8336 {	result = NIM_NIL;
8337 	{
8338 		NIM_BOOL T3_;
8339 		T3_ = (NIM_BOOL)0;
8340 		T3_ = sameObjectTypes__types_2038(a, b);
8341 		if (!T3_) goto LA4_;
8342 		result = a;
8343 		goto BeforeRet_;
8344 	}
8345 	LA4_: ;
8346 	x = a;
8347 	nimZeroMem((void*)(&ancestors), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
8348 	initIntSet__pureZcollectionsZintsets_238((&ancestors));
8349 	{
8350 		while (1) {
8351 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym411_;
8352 			if (!!((x == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA7;
8353 			x = skipTypes__ast_3735(x, TM__PpBJsMJcrcWrpLTS6mci1g_5);
8354 			xX60gensym411_ = x;
8355 			incl__pureZcollectionsZintsets_55((&ancestors), (NI)((NI)((NU32)(((NI) ((*xX60gensym411_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym411_).Sup.itemId.item))));
8356 			x = (*x).sons->data[((NI) 0)];
8357 		} LA7: ;
8358 	}
8359 	y = b;
8360 	{
8361 		while (1) {
8362 			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
8363 			if (!!((y == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA9;
8364 			t = y;
8365 			y = skipTypes__ast_3735(y, TM__PpBJsMJcrcWrpLTS6mci1g_5);
8366 			{
8367 				tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym414_;
8368 				NIM_BOOL T12_;
8369 				xX60gensym414_ = y;
8370 				T12_ = (NIM_BOOL)0;
8371 				T12_ = contains__astalgo_3496((&ancestors), (NI)((NI)((NU32)(((NI) ((*xX60gensym414_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym414_).Sup.itemId.item))));
8372 				if (!T12_) goto LA13_;
8373 				{
8374 					if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11)))) goto LA17_;
8375 					t = y;
8376 				}
8377 				LA17_: ;
8378 				result = t;
8379 				goto BeforeRet_;
8380 			}
8381 			LA13_: ;
8382 			y = (*y).sons->data[((NI) 0)];
8383 		} LA9: ;
8384 	}
8385 	}BeforeRet_: ;
8386 	return result;
8387 }
N_NIMCALL(NIM_BOOL,isTyRef__types_633)8388 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTyRef__types_633)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8389 	NIM_BOOL result;
8390 	NIM_BOOL T1_;
8391 	NIM_BOOL T3_;
8392 	result = (NIM_BOOL)0;
8393 	T1_ = (NIM_BOOL)0;
8394 	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
8395 	if (T1_) goto LA2_;
8396 	T3_ = (NIM_BOOL)0;
8397 	T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
8398 	if (!(T3_)) goto LA4_;
8399 	T3_ = ((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
8400 	LA4_: ;
8401 	T1_ = T3_;
8402 	LA2_: ;
8403 	result = T1_;
8404 	return result;
8405 }
N_NIMCALL(NIM_BOOL,containsTyRef__types_648)8406 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsTyRef__types_648)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
8407 	NIM_BOOL result;
8408 	result = (NIM_BOOL)0;
8409 	result = searchTypeFor__types_470(typ, isTyRef__types_633);
8410 	return result;
8411 }
N_NIMCALL(NIM_BOOL,isDefectException__types_4020)8412 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefectException__types_4020)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8413 	NIM_BOOL result;
8414 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
8415 {	result = (NIM_BOOL)0;
8416 	t_2 = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_215);
8417 	{
8418 		while (1) {
8419 			if (!((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA2;
8420 			{
8421 				NIM_BOOL T5_;
8422 				NIM_BOOL T6_;
8423 				NIM_BOOL T7_;
8424 				T5_ = (NIM_BOOL)0;
8425 				T6_ = (NIM_BOOL)0;
8426 				T7_ = (NIM_BOOL)0;
8427 				T7_ = !(((*t_2).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
8428 				if (!(T7_)) goto LA8_;
8429 				T7_ = !(((*(*t_2).sym).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
8430 				LA8_: ;
8431 				T6_ = T7_;
8432 				if (!(T6_)) goto LA9_;
8433 				T6_ = (((*(*(*t_2).sym).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
8434 				LA9_: ;
8435 				T5_ = T6_;
8436 				if (!(T5_)) goto LA10_;
8437 				T5_ = eqStrings((*(*(*t_2).sym).name).s, ((NimStringDesc*) &TM__PpBJsMJcrcWrpLTS6mci1g_216));
8438 				LA10_: ;
8439 				if (!T5_) goto LA11_;
8440 				result = NIM_TRUE;
8441 				goto BeforeRet_;
8442 			}
8443 			LA11_: ;
8444 			{
8445 				if (!((*t_2).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA15_;
8446 				goto LA1;
8447 			}
8448 			LA15_: ;
8449 			t_2 = skipTypes__ast_3735((*t_2).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_215);
8450 		} LA2: ;
8451 	} LA1: ;
8452 	result = NIM_FALSE;
8453 	goto BeforeRet_;
8454 	}BeforeRet_: ;
8455 	return result;
8456 }
N_NIMCALL(NIM_BOOL,isCharArrayPtr__types_4078)8457 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCharArrayPtr__types_4078)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, NIM_BOOL allowPointerToChar) {
8458 	NIM_BOOL result;
8459 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
8460 	result = (NIM_BOOL)0;
8461 	t_2 = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_167);
8462 	{
8463 		tyObject_TType__facALICuu8zUj0hjvbTLFg* pointsTo;
8464 		if (!((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA3_;
8465 		pointsTo = skipTypes__ast_3735((*t_2).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_167);
8466 		switch ((*pointsTo).kind) {
8467 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
8468 		{
8469 			result = ((*(*pointsTo).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
8470 		}
8471 		break;
8472 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
8473 		{
8474 			NIM_BOOL T7_;
8475 			NIM_BOOL T8_;
8476 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T10_;
8477 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T12_;
8478 			T7_ = (NIM_BOOL)0;
8479 			T8_ = (NIM_BOOL)0;
8480 			T8_ = ((*(*pointsTo).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
8481 			if (!(T8_)) goto LA9_;
8482 			T10_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), (*pointsTo).sons->data[((NI) 0)]);
8483 			T8_ = eqeq___int495056_759(T10_, IL64(0));
8484 			LA9_: ;
8485 			T7_ = T8_;
8486 			if (!(T7_)) goto LA11_;
8487 			T12_ = NIM_NIL;
8488 			T12_ = skipTypes__ast_3735((*pointsTo).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_217);
8489 			T7_ = ((*T12_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T12_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35));
8490 			LA11_: ;
8491 			result = T7_;
8492 		}
8493 		break;
8494 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
8495 		{
8496 			result = allowPointerToChar;
8497 		}
8498 		break;
8499 		default:
8500 		{
8501 		}
8502 		break;
8503 		}
8504 	}
8505 	LA3_: ;
8506 	return result;
8507 }
N_NIMCALL(NIM_BOOL,isSinkTypeForParam__types_4046)8508 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSinkTypeForParam__types_4046)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8509 	NIM_BOOL result;
8510 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
8511 	result = (NIM_BOOL)0;
8512 	T1_ = NIM_NIL;
8513 	T1_ = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_2);
8514 	result = ((*T1_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*T1_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
8515 	return result;
8516 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,baseOfDistinct__types_3354)8517 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, baseOfDistinct__types_3354)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
8518 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
8519 	result = NIM_NIL;
8520 	{
8521 		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA3_;
8522 		result = (*t).sons->data[((NI) 0)];
8523 	}
8524 	goto LA1_;
8525 	LA3_: ;
8526 	{
8527 		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T6_;
8528 		tyObject_TType__facALICuu8zUj0hjvbTLFg* parent;
8529 		tyObject_TType__facALICuu8zUj0hjvbTLFg* it;
8530 		T6_ = nextTypeId__ast_3151(idgen);
8531 		result = copyType__ast_4046(t, T6_, (*t).owner);
8532 		copyTypeProps__modulegraphs_8872(g, ((NI) ((*idgen).module)), result, t);
8533 		parent = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
8534 		it = result;
8535 		{
8536 			while (1) {
8537 				if (!((*it).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*it).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*it).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA8;
8538 				parent = it;
8539 				it = lastSon__ast_3743(it);
8540 			} LA8: ;
8541 		}
8542 		{
8543 			NIM_BOOL T11_;
8544 			T11_ = (NIM_BOOL)0;
8545 			T11_ = ((*it).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
8546 			if (!(T11_)) goto LA12_;
8547 			T11_ = !((parent == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
8548 			LA12_: ;
8549 			if (!T11_) goto LA13_;
8550 			asgnRef((void**) (&(*parent).sons->data[((NI) 0)]), (*it).sons->data[((NI) 0)]);
8551 		}
8552 		LA13_: ;
8553 	}
8554 	LA1_: ;
8555 	return result;
8556 }
N_INLINE(NI,nextTry__stdZpackedsets_41)8557 static N_INLINE(NI, nextTry__stdZpackedsets_41)(NI h, NI maxHash, NI* perturb) {
8558 	NI result;
8559 	NU perturb2;
8560 	result = (NI)0;
8561 	perturb2 = (NU)((NU32)(((NU) ((*perturb)))) >> (NU32)(((NI) 5)));
8562 	(*perturb) = ((NI) (perturb2));
8563 	result = (NI)((NI)((NI)((NI)(((NI) 5) * h) + ((NI) 1)) + (*perturb)) & maxHash);
8564 	return result;
8565 }
N_NIMCALL(void,assign__types_3920)8566 N_LIB_PRIVATE N_NIMCALL(void, assign__types_3920)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* dest, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* src) {
8567 	{
8568 		if (!((*src).elems <= ((NI) 34))) goto LA3_;
8569 		unsureAsgnRef((void**) (&(*dest).data), NIM_NIL);
8570 		(*dest).max = ((NI) 0);
8571 		(*dest).counter = (*src).counter;
8572 		unsureAsgnRef((void**) (&(*dest).head), ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL));
8573 		(*dest).elems = (*src).elems;
8574 		nimCopyMem((void*)(*dest).a, (NIM_CONST void*)(*src).a, sizeof(tyArray__emiAJ8okywrJw7ZHLzlXbQ));
8575 	}
8576 	goto LA1_;
8577 	LA3_: ;
8578 	{
8579 		NI T6_;
8580 		tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* it;
8581 		(*dest).counter = (*src).counter;
8582 		(*dest).max = (*src).max;
8583 		(*dest).elems = (*src).elems;
8584 		T6_ = ((*src).data ? (*src).data->Sup.len : 0);
8585 		unsureAsgnRef((void**) (&(*dest).data), (tySequence__Bre9bNyuQOg1EJKitjSzn8w*) newSeq((&NTItrunkseq__Bre9bNyuQOg1EJKitjSzn8w_), ((NI) (T6_))));
8586 		it = (*src).head;
8587 		{
8588 			while (1) {
8589 				NI h;
8590 				NI perturb;
8591 				tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* n;
8592 				if (!!((it == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA8;
8593 				h = (NI)((*it).key & (*dest).max);
8594 				perturb = (*it).key;
8595 				{
8596 					while (1) {
8597 						if (!!(((*dest).data->data[h] == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA10;
8598 						h = nextTry__stdZpackedsets_41(h, (*dest).max, (&perturb));
8599 					} LA10: ;
8600 				}
8601 				n = NIM_NIL;
8602 				n = (tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) newObj((&NTItrunk__jMZvnc6V09aC24Isyj9alOEA_), sizeof(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA));
8603 				asgnRef((void**) (&(*n).next), (*dest).head);
8604 				(*n).key = (*it).key;
8605 				nimCopyMem((void*)(*n).bits, (NIM_CONST void*)(*it).bits, sizeof(tyArray__cC4ce9cdvDKtIpar5g9cDejA));
8606 				unsureAsgnRef((void**) (&(*dest).head), n);
8607 				asgnRef((void**) (&(*dest).data->data[h]), n);
8608 				it = (*it).next;
8609 			} LA8: ;
8610 		}
8611 	}
8612 	LA1_: ;
8613 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,skipConvTakeType__types_3614)8614 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConvTakeType__types_3614)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
8615 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
8616 	result = NIM_NIL;
8617 	result = skipConv__types_3588(n);
8618 	asgnRef((void**) (&(*result).typ), (*n).typ);
8619 	return result;
8620 }
N_NIMCALL(NIM_BOOL,isTupleRecursive__types_3893)8621 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTupleRecursive__types_3893)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* cycleDetector) {
8622 	NIM_BOOL result;
8623 {	result = (NIM_BOOL)0;
8624 	{
8625 		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
8626 		result = NIM_FALSE;
8627 		goto BeforeRet_;
8628 	}
8629 	LA3_: ;
8630 	{
8631 		tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym563_;
8632 		NIM_BOOL T7_;
8633 		xX60gensym563_ = t;
8634 		T7_ = (NIM_BOOL)0;
8635 		T7_ = containsOrIncl__astalgo_402(cycleDetector, (NI)((NI)((NU32)(((NI) ((*xX60gensym563_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym563_).Sup.itemId.item))));
8636 		if (!T7_) goto LA8_;
8637 		result = NIM_TRUE;
8638 		goto BeforeRet_;
8639 	}
8640 	LA8_: ;
8641 	switch ((*t).kind) {
8642 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
8643 	{
8644 		tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA cycleDetectorCopy;
8645 		nimZeroMem((void*)(&cycleDetectorCopy), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
8646 		{
8647 			NI i;
8648 			NI colontmp_;
8649 			NI i_2;
8650 			i = (NI)0;
8651 			colontmp_ = (NI)0;
8652 			colontmp_ = len__ast_4002(t);
8653 			i_2 = ((NI) 0);
8654 			{
8655 				while (1) {
8656 					if (!(i_2 < colontmp_)) goto LA13;
8657 					i = i_2;
8658 					assign__types_3920((&cycleDetectorCopy), (&(*cycleDetector)));
8659 					{
8660 						NIM_BOOL T16_;
8661 						T16_ = (NIM_BOOL)0;
8662 						T16_ = isTupleRecursive__types_3893((*t).sons->data[i], (&cycleDetectorCopy));
8663 						if (!T16_) goto LA17_;
8664 						result = NIM_TRUE;
8665 						goto BeforeRet_;
8666 					}
8667 					LA17_: ;
8668 					i_2 += ((NI) 1);
8669 				} LA13: ;
8670 			}
8671 		}
8672 	}
8673 	break;
8674 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
8675 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
8676 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
8677 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
8678 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
8679 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
8680 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
8681 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
8682 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
8683 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
8684 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
8685 	{
8686 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T20_;
8687 		T20_ = NIM_NIL;
8688 		T20_ = lastSon__ast_3743(t);
8689 		result = isTupleRecursive__types_3893(T20_, cycleDetector);
8690 		goto BeforeRet_;
8691 	}
8692 	break;
8693 	default:
8694 	{
8695 		result = NIM_FALSE;
8696 		goto BeforeRet_;
8697 	}
8698 	break;
8699 	}
8700 	}BeforeRet_: ;
8701 	return result;
8702 }
N_NIMCALL(NIM_BOOL,isTupleRecursive__types_3987)8703 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTupleRecursive__types_3987)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8704 	NIM_BOOL result;
8705 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA cycleDetector;
8706 	result = (NIM_BOOL)0;
8707 	nimZeroMem((void*)(&cycleDetector), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
8708 	initIntSet__pureZcollectionsZintsets_238((&cycleDetector));
8709 	result = isTupleRecursive__types_3893(t, (&cycleDetector));
8710 	return result;
8711 }
N_NIMCALL(void,addTypeHeader__types_216)8712 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) {
8713 	NimStringDesc* T1_;
8714 	T1_ = NIM_NIL;
8715 	T1_ = typeToString__types_50(typ, prefer);
8716 	unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T1_ ? T1_->Sup.len : 0) + 0));
8717 appendString((*result), T1_);
8718 	{
8719 		if (!getDeclarationPath) goto LA4_;
8720 		addDeclaredLoc__astmsgs_17(result, conf, (*typ).sym);
8721 	}
8722 	LA4_: ;
8723 }
N_NIMCALL(NI64,computeSize__types_3308)8724 N_LIB_PRIVATE N_NIMCALL(NI64, computeSize__types_3308)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
8725 	NI64 result;
8726 	result = (NI64)0;
8727 	computeSizeAlign__types_2915(conf, typ);
8728 	result = (*typ).size;
8729 	return result;
8730 }
N_NIMCALL(NIM_BOOL,isException__types_3991)8731 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isException__types_3991)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8732 	NIM_BOOL result;
8733 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
8734 {	result = (NIM_BOOL)0;
8735 	t_2 = skipTypes__ast_3735(t, TM__PpBJsMJcrcWrpLTS6mci1g_167);
8736 	{
8737 		while (1) {
8738 			if (!((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA2;
8739 			{
8740 				NIM_BOOL T5_;
8741 				T5_ = (NIM_BOOL)0;
8742 				T5_ = !(((*t_2).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
8743 				if (!(T5_)) goto LA6_;
8744 				T5_ = ((*(*t_2).sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 268));
8745 				LA6_: ;
8746 				if (!T5_) goto LA7_;
8747 				result = NIM_TRUE;
8748 				goto BeforeRet_;
8749 			}
8750 			LA7_: ;
8751 			{
8752 				if (!((*t_2).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA11_;
8753 				goto LA1;
8754 			}
8755 			LA11_: ;
8756 			t_2 = skipTypes__ast_3735((*t_2).sons->data[((NI) 0)], TM__PpBJsMJcrcWrpLTS6mci1g_215);
8757 		} LA2: ;
8758 	} LA1: ;
8759 	result = NIM_FALSE;
8760 	goto BeforeRet_;
8761 	}BeforeRet_: ;
8762 	return result;
8763 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,safeSkipTypes__types_3543)8764 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, safeSkipTypes__types_3543)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds) {
8765 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
8766 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA seen;
8767 	result = NIM_NIL;
8768 	result = t;
8769 	nimZeroMem((void*)(&seen), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
8770 	initIntSet__pureZcollectionsZintsets_238((&seen));
8771 	{
8772 		while (1) {
8773 			NIM_BOOL T3_;
8774 			tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym530_;
8775 			NIM_BOOL T5_;
8776 			T3_ = (NIM_BOOL)0;
8777 			T3_ = ((kinds[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0);
8778 			if (!(T3_)) goto LA4_;
8779 			xX60gensym530_ = result;
8780 			T5_ = (NIM_BOOL)0;
8781 			T5_ = containsOrIncl__astalgo_402((&seen), (NI)((NI)((NU32)(((NI) ((*xX60gensym530_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym530_).Sup.itemId.item))));
8782 			T3_ = !(T5_);
8783 			LA4_: ;
8784 			if (!T3_) goto LA2;
8785 			result = lastSon__ast_3743(result);
8786 		} LA2: ;
8787 	}
8788 	return result;
8789 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,lookupFieldAgain__types_4053)8790 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookupFieldAgain__types_4053)(tyObject_TType__facALICuu8zUj0hjvbTLFg* ty, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field) {
8791 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
8792 	tyObject_TType__facALICuu8zUj0hjvbTLFg* ty_2;
8793 	result = NIM_NIL;
8794 	ty_2 = ty;
8795 	{
8796 		while (1) {
8797 			if (!!((ty_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA2;
8798 			ty_2 = skipTypes__ast_3735(ty_2, TM__PpBJsMJcrcWrpLTS6mci1g_5);
8799 			result = lookupInRecord__astalgo_84((*ty_2).n, (*field).name);
8800 			{
8801 				if (!!((result == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA5_;
8802 				goto LA1;
8803 			}
8804 			LA5_: ;
8805 			ty_2 = (*ty_2).sons->data[((NI) 0)];
8806 		} LA2: ;
8807 	} LA1: ;
8808 	{
8809 		if (!(result == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA9_;
8810 		result = field;
8811 	}
8812 	LA9_: ;
8813 	return result;
8814 }
N_NIMCALL(tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw,analyseObjectWithTypeFieldAux__types_520)8815 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw, analyseObjectWithTypeFieldAux__types_520)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker) {
8816 	tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw result;
8817 	tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw res;
8818 {	result = (tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw)0;
8819 	res = (tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw)0;
8820 	result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 0);
8821 	{
8822 		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
8823 		goto BeforeRet_;
8824 	}
8825 	LA3_: ;
8826 	switch ((*t).kind) {
8827 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
8828 	{
8829 		{
8830 			if (!!(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA8_;
8831 			{
8832 				NIM_BOOL T12_;
8833 				T12_ = (NIM_BOOL)0;
8834 				T12_ = searchTypeNodeForAux__types_397((*t).n, isObjectWithTypeFieldPredicate__types_485, marker);
8835 				if (!T12_) goto LA13_;
8836 				result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 2);
8837 				goto BeforeRet_;
8838 			}
8839 			LA13_: ;
8840 		}
8841 		LA8_: ;
8842 		{
8843 			NI i;
8844 			NI colontmp_;
8845 			NI i_2;
8846 			i = (NI)0;
8847 			colontmp_ = (NI)0;
8848 			colontmp_ = len__ast_4002(t);
8849 			i_2 = ((NI) 0);
8850 			{
8851 				while (1) {
8852 					tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
8853 					if (!(i_2 < colontmp_)) goto LA17;
8854 					i = i_2;
8855 					x = (*t).sons->data[i];
8856 					{
8857 						if (!!((x == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA20_;
8858 						x = skipTypes__ast_3735(x, TM__PpBJsMJcrcWrpLTS6mci1g_5);
8859 					}
8860 					LA20_: ;
8861 					res = analyseObjectWithTypeFieldAux__types_520(x, marker);
8862 					{
8863 						if (!(res == ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 2))) goto LA24_;
8864 						result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 2);
8865 						goto BeforeRet_;
8866 					}
8867 					LA24_: ;
8868 					{
8869 						if (!(res == ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 1))) goto LA28_;
8870 						result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 1);
8871 					}
8872 					LA28_: ;
8873 					i_2 += ((NI) 1);
8874 				} LA17: ;
8875 			}
8876 		}
8877 		{
8878 			if (!(result == ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 0))) goto LA32_;
8879 			{
8880 				NIM_BOOL T36_;
8881 				T36_ = (NIM_BOOL)0;
8882 				T36_ = isObjectWithTypeFieldPredicate__types_485(t);
8883 				if (!T36_) goto LA37_;
8884 				result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 1);
8885 			}
8886 			LA37_: ;
8887 		}
8888 		LA32_: ;
8889 	}
8890 	break;
8891 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
8892 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
8893 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
8894 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
8895 	{
8896 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T40_;
8897 		T40_ = NIM_NIL;
8898 		T40_ = lastSon__ast_3743(t);
8899 		result = analyseObjectWithTypeFieldAux__types_520(T40_, marker);
8900 	}
8901 	break;
8902 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
8903 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
8904 	{
8905 		{
8906 			NI i_3;
8907 			NI colontmp__2;
8908 			NI i_4;
8909 			i_3 = (NI)0;
8910 			colontmp__2 = (NI)0;
8911 			colontmp__2 = len__ast_4002(t);
8912 			i_4 = ((NI) 0);
8913 			{
8914 				while (1) {
8915 					if (!(i_4 < colontmp__2)) goto LA44;
8916 					i_3 = i_4;
8917 					res = analyseObjectWithTypeFieldAux__types_520((*t).sons->data[i_3], marker);
8918 					{
8919 						if (!!((res == ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 0)))) goto LA47_;
8920 						result = ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 2);
8921 						goto BeforeRet_;
8922 					}
8923 					LA47_: ;
8924 					i_4 += ((NI) 1);
8925 				} LA44: ;
8926 			}
8927 		}
8928 	}
8929 	break;
8930 	default:
8931 	{
8932 	}
8933 	break;
8934 	}
8935 	}BeforeRet_: ;
8936 	return result;
8937 }
N_NIMCALL(tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw,analyseObjectWithTypeField__types_585)8938 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw, analyseObjectWithTypeField__types_585)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8939 	tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw result;
8940 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
8941 	result = (tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw)0;
8942 	nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
8943 	initIntSet__pureZcollectionsZintsets_238((&marker));
8944 	result = analyseObjectWithTypeFieldAux__types_520(t, (&marker));
8945 	return result;
8946 }
N_NIMCALL(NIM_BOOL,isHiddenPointer__types_651)8947 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isHiddenPointer__types_651)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
8948 	NIM_BOOL result;
8949 	result = (NIM_BOOL)0;
8950 	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));
8951 	return result;
8952 }
N_NIMCALL(NIM_BOOL,containsHiddenPointer__types_658)8953 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsHiddenPointer__types_658)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
8954 	NIM_BOOL result;
8955 	result = (NIM_BOOL)0;
8956 	result = searchTypeFor__types_470(typ, isHiddenPointer__types_651);
8957 	return result;
8958 }
N_NIMCALL(NIM_BOOL,sameBackendType__types_2641)8959 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameBackendType__types_2641)(tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TType__facALICuu8zUj0hjvbTLFg* y) {
8960 	NIM_BOOL result;
8961 	tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg c;
8962 	result = (NIM_BOOL)0;
8963 	nimZeroMem((void*)(&c), sizeof(tyObject_TSameTypeClosure__UjPoGeLOOcdElE05vDOvTg));
8964 	initSameTypeClosure__types_1690((&c));
8965 	c.flags |= ((NU8)1)<<((((tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw) 0)) & 7);
8966 	c.cmp = ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 1);
8967 	result = sameTypeAux__types_1794(x, y, (&c));
8968 	return result;
8969 }
N_NIMCALL(void,compiler_typesDatInit000)8970 N_LIB_PRIVATE N_NIMCALL(void, compiler_typesDatInit000)(void) {
8971 static TNimNode* TM__PpBJsMJcrcWrpLTS6mci1g_3_2[2];
8972 static TNimNode* TM__PpBJsMJcrcWrpLTS6mci1g_6_2[2];
8973 static TNimNode* TM__PpBJsMJcrcWrpLTS6mci1g_7_8[8];
8974 NI TM__PpBJsMJcrcWrpLTS6mci1g_9;
8975 static char* NIM_CONST TM__PpBJsMJcrcWrpLTS6mci1g_8[8] = {
8976 "preferName",
8977 "preferDesc",
8978 "preferExported",
8979 "preferModuleInfo",
8980 "preferGenericArg",
8981 "preferTypeName",
8982 "preferResolved",
8983 "preferMixed"};
8984 static TNimNode TM__PpBJsMJcrcWrpLTS6mci1g_0[16];
8985 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.size = sizeof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ);
8986 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.align = NIM_ALIGNOF(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ);
8987 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.kind = 18;
8988 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.base = 0;
8989 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.flags = 1;
8990 TM__PpBJsMJcrcWrpLTS6mci1g_3_2[0] = &TM__PpBJsMJcrcWrpLTS6mci1g_0[1];
8991 TM__PpBJsMJcrcWrpLTS6mci1g_0[1].kind = 1;
8992 TM__PpBJsMJcrcWrpLTS6mci1g_0[1].offset = offsetof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, Field0);
8993 TM__PpBJsMJcrcWrpLTS6mci1g_0[1].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
8994 TM__PpBJsMJcrcWrpLTS6mci1g_0[1].name = "Field0";
8995 TM__PpBJsMJcrcWrpLTS6mci1g_3_2[1] = &TM__PpBJsMJcrcWrpLTS6mci1g_0[2];
8996 TM__PpBJsMJcrcWrpLTS6mci1g_0[2].kind = 1;
8997 TM__PpBJsMJcrcWrpLTS6mci1g_0[2].offset = offsetof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, Field1);
8998 TM__PpBJsMJcrcWrpLTS6mci1g_0[2].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
8999 TM__PpBJsMJcrcWrpLTS6mci1g_0[2].name = "Field1";
9000 TM__PpBJsMJcrcWrpLTS6mci1g_0[0].len = 2; TM__PpBJsMJcrcWrpLTS6mci1g_0[0].kind = 2; TM__PpBJsMJcrcWrpLTS6mci1g_0[0].sons = &TM__PpBJsMJcrcWrpLTS6mci1g_3_2[0];
9001 NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_.node = &TM__PpBJsMJcrcWrpLTS6mci1g_0[0];
9002 NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_.size = sizeof(tySequence__8Np6tlClE5az1CyqZdN19bQ*);
9003 NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_.align = NIM_ALIGNOF(tySequence__8Np6tlClE5az1CyqZdN19bQ*);
9004 NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_.kind = 24;
9005 NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_.base = (&NTItupleLa58int_b58intT__1v9bKyksXWMsm0vNwmZ4EuQ_);
9006 NTIseqLtupleLa58int_b58intTT__8Np6tlClE5az1CyqZdN19bQ_.marker = Marker_tySequence__8Np6tlClE5az1CyqZdN19bQ;
9007 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.size = sizeof(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw);
9008 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.align = NIM_ALIGNOF(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw);
9009 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.kind = 17;
9010 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
9011 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.flags = 1;
9012 TM__PpBJsMJcrcWrpLTS6mci1g_6_2[0] = &TM__PpBJsMJcrcWrpLTS6mci1g_0[4];
9013 TM__PpBJsMJcrcWrpLTS6mci1g_0[4].kind = 1;
9014 TM__PpBJsMJcrcWrpLTS6mci1g_0[4].offset = offsetof(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw, colonstate_);
9015 TM__PpBJsMJcrcWrpLTS6mci1g_0[4].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
9016 TM__PpBJsMJcrcWrpLTS6mci1g_0[4].name = ":state";
9017 TM__PpBJsMJcrcWrpLTS6mci1g_6_2[1] = &TM__PpBJsMJcrcWrpLTS6mci1g_0[5];
9018 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.size = sizeof(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw);
9019 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.align = NIM_ALIGNOF(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw);
9020 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.kind = 14;
9021 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.base = 0;
9022 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.flags = 3;
9023 for (TM__PpBJsMJcrcWrpLTS6mci1g_9 = 0; TM__PpBJsMJcrcWrpLTS6mci1g_9 < 8; TM__PpBJsMJcrcWrpLTS6mci1g_9++) {
9024 TM__PpBJsMJcrcWrpLTS6mci1g_0[TM__PpBJsMJcrcWrpLTS6mci1g_9+6].kind = 1;
9025 TM__PpBJsMJcrcWrpLTS6mci1g_0[TM__PpBJsMJcrcWrpLTS6mci1g_9+6].offset = TM__PpBJsMJcrcWrpLTS6mci1g_9;
9026 TM__PpBJsMJcrcWrpLTS6mci1g_0[TM__PpBJsMJcrcWrpLTS6mci1g_9+6].name = TM__PpBJsMJcrcWrpLTS6mci1g_8[TM__PpBJsMJcrcWrpLTS6mci1g_9];
9027 TM__PpBJsMJcrcWrpLTS6mci1g_7_8[TM__PpBJsMJcrcWrpLTS6mci1g_9] = &TM__PpBJsMJcrcWrpLTS6mci1g_0[TM__PpBJsMJcrcWrpLTS6mci1g_9+6];
9028 }
9029 TM__PpBJsMJcrcWrpLTS6mci1g_0[14].len = 8; TM__PpBJsMJcrcWrpLTS6mci1g_0[14].kind = 2; TM__PpBJsMJcrcWrpLTS6mci1g_0[14].sons = &TM__PpBJsMJcrcWrpLTS6mci1g_7_8[0];
9030 NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_.node = &TM__PpBJsMJcrcWrpLTS6mci1g_0[14];
9031 TM__PpBJsMJcrcWrpLTS6mci1g_0[5].kind = 1;
9032 TM__PpBJsMJcrcWrpLTS6mci1g_0[5].offset = offsetof(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw, preferToplevel1);
9033 TM__PpBJsMJcrcWrpLTS6mci1g_0[5].typ = (&NTItprefereddesc__tnd4qt9c4xddV8oKV5zyusw_);
9034 TM__PpBJsMJcrcWrpLTS6mci1g_0[5].name = "preferToplevel1";
9035 TM__PpBJsMJcrcWrpLTS6mci1g_0[3].len = 2; TM__PpBJsMJcrcWrpLTS6mci1g_0[3].kind = 2; TM__PpBJsMJcrcWrpLTS6mci1g_0[3].sons = &TM__PpBJsMJcrcWrpLTS6mci1g_6_2[0];
9036 NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_.node = &TM__PpBJsMJcrcWrpLTS6mci1g_0[3];
9037 NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_.size = sizeof(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw*);
9038 NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_.align = NIM_ALIGNOF(tyObject_Env_typesdotnim_typeToString___aFpjIZ5GhrcXv4WiFpqyxw*);
9039 NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_.kind = 22;
9040 NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_.base = (&NTIobject__aFpjIZ5GhrcXv4WiFpqyxw_);
9041 NTIrefobject__ik3gfZ9aJJHPxASsunXJrEA_.marker = Marker_tyRef__ik3gfZ9aJJHPxASsunXJrEA;
9042 NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_.size = sizeof(tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA);
9043 NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_.align = NIM_ALIGNOF(tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA);
9044 NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_.kind = 17;
9045 NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_.base = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
9046 TM__PpBJsMJcrcWrpLTS6mci1g_0[15].len = 0; TM__PpBJsMJcrcWrpLTS6mci1g_0[15].kind = 2;
9047 NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_.node = &TM__PpBJsMJcrcWrpLTS6mci1g_0[15];
9048 NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_.size = sizeof(tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA*);
9049 NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_.align = NIM_ALIGNOF(tyObject_IllegalTypeRecursionError__eSlcgGR6dDg1zp0Mnw4yVA*);
9050 NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_.kind = 22;
9051 NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_.base = (&NTIillegaltyperecursionerror__eSlcgGR6dDg1zp0Mnw4yVA_);
9052 NTIrefillegaltyperecursionerror__SFgbIvdx8bC9cxnXgi8Zn1A_.marker = Marker_tyRef__SFgbIvdx8bC9cxnXgi8Zn1A;
9053 }
9054 
9055