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