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