/* Generated by Nim Compiler v0.16.0 */ /* (c) 2017 Andreas Rumpf */ /* The generated code is subject to the original license. */ #define NIM_INTBITS 32 #include "nimbase.h" #include #undef linux typedef struct Tnode_bROa11lyF5vxEN9aYNbHmhw Tnode_bROa11lyF5vxEN9aYNbHmhw; typedef struct Tcontext_5TfOJKwTttj3W1t1tMzWUQ Tcontext_5TfOJKwTttj3W1t1tMzWUQ; typedef struct Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q; typedef struct TY_Mh9agqM29bm9aP5AUL1x7dZGA TY_Mh9agqM29bm9aP5AUL1x7dZGA; typedef struct Tsym_AXG7xcvKqaxY6koRX1xkCw Tsym_AXG7xcvKqaxY6koRX1xkCw; typedef struct Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg; typedef struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw; typedef struct Ttype_LTUWCZolpovw9cWE3JBWSUw Ttype_LTUWCZolpovw9cWE3JBWSUw; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct Tident_4umxGerWTHGPwUms7Yqu3g Tident_4umxGerWTHGPwUms7Yqu3g; typedef struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ TY_ehmV9bTklH2Gt9cXHV9c0HLeQ; typedef struct Tidobj_raN9cHVgzmvaXisezY9aGg9cg Tidobj_raN9cHVgzmvaXisezY9aGg9cg; typedef struct TNimObject TNimObject; typedef struct TNimType TNimType; typedef struct TNimNode TNimNode; typedef struct TY_zuqP4Riz26Oi5fWgPYVEgA TY_zuqP4Riz26Oi5fWgPYVEgA; typedef struct TY_iGkpo9aKQdr3NWelKC4cnJA TY_iGkpo9aKQdr3NWelKC4cnJA; typedef struct Tloc_EtHNvCB0bgfu9bFjzx9cb6aA Tloc_EtHNvCB0bgfu9bFjzx9cb6aA; typedef struct Ropeobj_HF4qJnb6xiOddgPmsxodtQ Ropeobj_HF4qJnb6xiOddgPmsxodtQ; typedef struct TY_XOVT24GHXwqiEj5GCsEGCA TY_XOVT24GHXwqiEj5GCsEGCA; typedef struct TY_DXS6mEo7PVUFJkirsQ9bNQA TY_DXS6mEo7PVUFJkirsQ9bNQA; typedef struct Tstrtable_f07aOS3dr28kGa5wcE29aFA Tstrtable_f07aOS3dr28kGa5wcE29aFA; typedef struct TY_sksVpmPRIkNR9axiwtD1Guw TY_sksVpmPRIkNR9axiwtD1Guw; typedef struct Tlib_4f9aBgmqEuj7uWJdBBGcRgA Tlib_4f9aBgmqEuj7uWJdBBGcRgA; typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g; typedef struct Cellseq_Axo1XVm9aaQueTOldv8le5w Cellseq_Axo1XVm9aaQueTOldv8le5w; typedef struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ Gcheap_1TRH1TZMaVZTnLNcIHuNFQ; typedef struct Gcstack_7fytPA5bBsob6See21YMRA Gcstack_7fytPA5bBsob6See21YMRA; typedef struct Memregion_x81NhDv59b8ercDZ9bi85jyg Memregion_x81NhDv59b8ercDZ9bi85jyg; typedef struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ Smallchunk_tXn60W2f8h3jgAYdEmy5NQ; typedef struct Llchunk_XsENErzHIZV9bhvyJx56wGw Llchunk_XsENErzHIZV9bhvyJx56wGw; typedef struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg Bigchunk_Rv9c70Uhp2TytkX7eH78qEg; typedef struct Intset_EZObFrE3NC9bIb3YMkY9crZA Intset_EZObFrE3NC9bIb3YMkY9crZA; typedef struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw Trunk_W0r8S0Y3UGke6T9bIUWnnuw; typedef struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw Avlnode_IaqjtwKhxLEpvDS9bct9blEw; typedef struct Gcstat_0RwLoVBHZPfUAcLczmfQAg Gcstat_0RwLoVBHZPfUAcLczmfQAg; typedef struct Cellset_jG87P0AI9aZtss9ccTYBIISQ Cellset_jG87P0AI9aZtss9ccTYBIISQ; typedef struct Pagedesc_fublkgIY4LG3mT51LU2WHg Pagedesc_fublkgIY4LG3mT51LU2WHg; typedef struct Tpasscontext_qNsm39cWb35W2r5AAd9ch87g Tpasscontext_qNsm39cWb35W2r5AAd9ch87g; typedef struct Tscope_1cQRXW6aAknk7ywAwjH3nw Tscope_1cQRXW6aAknk7ywAwjH3nw; typedef struct Tproccon_s5jyYR8yL1QmFqiHICzU9aQ Tproccon_s5jyYR8yL1QmFqiHICzU9aQ; typedef struct Intset_PQrmFm4BXFkFSVOUl1ojSg Intset_PQrmFm4BXFkFSVOUl1ojSg; typedef struct Trunk_ul49aWfv9aes8cutmeltT3gQ Trunk_ul49aWfv9aes8cutmeltT3gQ; typedef struct TY_9brg1xNurxcus33lU4IE1Dw TY_9brg1xNurxcus33lU4IE1Dw; typedef struct Tlinkedlist_9aBiIjAa4z2zTLjp4yMUvLw Tlinkedlist_9aBiIjAa4z2zTLjp4yMUvLw; typedef struct Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q; typedef struct Tctx_hJGtOysUvnnuB9cLutWG9a2w Tctx_hJGtOysUvnnuB9cLutWG9a2w; typedef struct TY_jWKvSdankQPoT5bw9cBU9aiw TY_jWKvSdankQPoT5bw9cBU9aiw; typedef struct IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw; typedef struct ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ; typedef struct TY_a09bGTAl9ceOKTAytYdkbyKg TY_a09bGTAl9ceOKTAytYdkbyKg; typedef struct Tidpair_AdFnD2YdADPeuJbG2YJ4vg Tidpair_AdFnD2YdADPeuJbG2YJ4vg; typedef struct Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA; typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w; typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ; typedef struct TY_9bAGqSvkAaFL9bWjsEPslrFA TY_9bAGqSvkAaFL9bWjsEPslrFA; typedef struct TY_dRkMGUPOSmkGlhHeIeiomQ TY_dRkMGUPOSmkGlhHeIeiomQ; typedef struct PprocHEX3Aobjecttype_VFEBuxrDHC6kHPzc1TWaRQ PprocHEX3Aobjecttype_VFEBuxrDHC6kHPzc1TWaRQ; typedef struct TY_RsxI3z4wK8jTuZiO0576gQ TY_RsxI3z4wK8jTuZiO0576gQ; typedef struct Tinstantiationpair_HkXM4cJmOpk8zFcmq9c9c3gQ Tinstantiationpair_HkXM4cJmOpk8zFcmq9c9c3gQ; typedef struct Table_tfmlwa8ktiw8woWAs5vhtQ Table_tfmlwa8ktiw8woWAs5vhtQ; typedef struct TY_kxu4GK0onha2t9bo86mdVAg TY_kxu4GK0onha2t9bo86mdVAg; typedef struct TY_48JTohSgTy339bRxHzUD8KA TY_48JTohSgTy339bRxHzUD8KA; typedef struct TY_JokFGfUW6i9b6aeU7xu6xBw TY_JokFGfUW6i9b6aeU7xu6xBw; typedef struct TY_SlmU1Ju0WFHUWkihyHMVYg TY_SlmU1Ju0WFHUWkihyHMVYg; typedef struct TY_UCrBsiykDha2x4hr9aWPwKA TY_UCrBsiykDha2x4hr9aWPwKA; typedef struct Vmargs_0UUl6e5CNNQfMon2xW2bVA Vmargs_0UUl6e5CNNQfMon2xW2bVA; typedef struct TY_xDU9bZmv1ZbZkJDaATBekIQ TY_xDU9bZmv1ZbZkJDaATBekIQ; typedef struct Tblock_2tJGcW69ahqq39a9bVJC1sqGQ Tblock_2tJGcW69ahqq39a9bVJC1sqGQ; typedef struct TY_qwqHTkRvwhrRyENtudHQ7g TY_qwqHTkRvwhrRyENtudHQ7g; struct Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q { NI counter; TY_Mh9agqM29bm9aP5AUL1x7dZGA* data; }; struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw { NI16 line; NI16 col; NI32 fileindex; }; struct Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg { Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c; Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q typemap; Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q symmap; Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q localcache; Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info; NIM_BOOL allowmetatypes; NIM_BOOL skiptypedesc; Tsym_AXG7xcvKqaxY6koRX1xkCw* owner; NI recursionlimit; }; typedef NU16 Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set; typedef NU8 Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw; struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; struct Tnode_bROa11lyF5vxEN9aYNbHmhw { Ttype_LTUWCZolpovw9cWE3JBWSUw* typ; Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info; Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set flags; Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind; union{ struct {NI64 intval; } S1; struct {NF floatval; } S2; struct {NimStringDesc* strval; } S3; struct {Tsym_AXG7xcvKqaxY6koRX1xkCw* sym; } S4; struct {Tident_4umxGerWTHGPwUms7Yqu3g* ident; } S5; struct {TY_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons; } S6; } kindU; NimStringDesc* comment; }; typedef NU8 Tnimkind_jIBKr1ejBgsfM33Kxw4j7A; typedef NU8 Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set; typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p0, NI op0); typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p0); struct TNimType { NI size; Tnimkind_jIBKr1ejBgsfM33Kxw4j7A kind; Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set flags; TNimType* base; TNimNode* node; void* finalizer; TY_ojoeKfW4VYIm36I9cpDTQIg marker; TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy; }; struct TNimObject { TNimType* m_type; }; struct Tidobj_raN9cHVgzmvaXisezY9aGg9cg { TNimObject Sup; NI id; }; typedef NU8 Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag; typedef NU8 Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA; typedef NU32 Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set; typedef NU8 Tlockind_O7PRFZKuiBBWbku09cayVBg; typedef NU8 Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw; typedef NU16 Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set; struct Tloc_EtHNvCB0bgfu9bFjzx9cb6aA { Tlockind_O7PRFZKuiBBWbku09cayVBg k; Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw s; Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set flags; Ttype_LTUWCZolpovw9cWE3JBWSUw* t; Ropeobj_HF4qJnb6xiOddgPmsxodtQ* r; }; struct Ttype_LTUWCZolpovw9cWE3JBWSUw { Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup; Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag kind; Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA callconv; Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set flags; TY_zuqP4Riz26Oi5fWgPYVEgA* sons; Tnode_bROa11lyF5vxEN9aYNbHmhw* n; Tsym_AXG7xcvKqaxY6koRX1xkCw* owner; Tsym_AXG7xcvKqaxY6koRX1xkCw* sym; Tsym_AXG7xcvKqaxY6koRX1xkCw* destructor; Tsym_AXG7xcvKqaxY6koRX1xkCw* deepcopy; Tsym_AXG7xcvKqaxY6koRX1xkCw* assignment; TY_iGkpo9aKQdr3NWelKC4cnJA* methods; NI64 size; NI16 align; NI16 locklevel; Tloc_EtHNvCB0bgfu9bFjzx9cb6aA loc; Ttype_LTUWCZolpovw9cWE3JBWSUw* typeinst; }; struct TY_XOVT24GHXwqiEj5GCsEGCA { NimStringDesc* Field0; NI Field1; }; typedef NU8 Tsymkind_cNCW9acsSznmEccl1fgQwkw; struct Tstrtable_f07aOS3dr28kGa5wcE29aFA { NI counter; TY_sksVpmPRIkNR9axiwtD1Guw* data; }; typedef NU16 Tmagic_shZhZOdbVC5nnFvcXQAImg; typedef NU32 Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set; typedef NU32 Toption_WspMeQySXNP2XoTWR5MTgg_Set; struct Tsym_AXG7xcvKqaxY6koRX1xkCw { Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup; Tsymkind_cNCW9acsSznmEccl1fgQwkw kind; union{ struct {TY_zuqP4Riz26Oi5fWgPYVEgA* typeinstcache; } S1; struct {TY_DXS6mEo7PVUFJkirsQ9bNQA* procinstcache; Tsym_AXG7xcvKqaxY6koRX1xkCw* gcunsafetyreason; } S2; struct {TY_DXS6mEo7PVUFJkirsQ9bNQA* usedgenerics; Tstrtable_f07aOS3dr28kGa5wcE29aFA tab; } S3; struct {Tsym_AXG7xcvKqaxY6koRX1xkCw* guard; NI bitsize; } S4; } kindU; Tmagic_shZhZOdbVC5nnFvcXQAImg magic; Ttype_LTUWCZolpovw9cWE3JBWSUw* typ; Tident_4umxGerWTHGPwUms7Yqu3g* name; Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info; Tsym_AXG7xcvKqaxY6koRX1xkCw* owner; Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set flags; Tnode_bROa11lyF5vxEN9aYNbHmhw* ast; Toption_WspMeQySXNP2XoTWR5MTgg_Set options; NI position; NI offset; Tloc_EtHNvCB0bgfu9bFjzx9cb6aA loc; Tlib_4f9aBgmqEuj7uWJdBBGcRgA* annex; Tnode_bROa11lyF5vxEN9aYNbHmhw* constraint; }; typedef NU8 Tdistinctcompare_9bNKHGs63atuMFXnAleTveg; typedef NU8 Ttypecmpflag_72pgRXSg7774cr9aCWVPORw_Set; typedef NU8 Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw; typedef NU16 Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw; typedef NU8 Tprefereddesc_tnd4qt9c4xddV8oKV5zyusw; struct Cell_1zcF9cV8XIAtbN8h5HRUB8g { NI refcount; TNimType* typ; }; struct Cellseq_Axo1XVm9aaQueTOldv8le5w { NI len; NI cap; Cell_1zcF9cV8XIAtbN8h5HRUB8g** d; }; typedef Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* TY_SiRwrEKZdLgxqz9a9aoVBglg[512]; typedef Trunk_W0r8S0Y3UGke6T9bIUWnnuw* TY_lh2A89ahMmYg9bCmpVaplLbA[256]; struct Intset_EZObFrE3NC9bIb3YMkY9crZA { TY_lh2A89ahMmYg9bCmpVaplLbA data; }; struct Memregion_x81NhDv59b8ercDZ9bi85jyg { NI minlargeobj; NI maxlargeobj; TY_SiRwrEKZdLgxqz9a9aoVBglg freesmallchunks; Llchunk_XsENErzHIZV9bhvyJx56wGw* llmem; NI currmem; NI maxmem; NI freemem; NI lastsize; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* freechunkslist; Intset_EZObFrE3NC9bIb3YMkY9crZA chunkstarts; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* root; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* deleted; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* last; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* freeavlnodes; NIM_BOOL locked; NIM_BOOL blockchunksizeincrease; NI nextchunksize; }; struct Gcstat_0RwLoVBHZPfUAcLczmfQAg { NI stackscans; NI cyclecollections; NI maxthreshold; NI maxstacksize; NI maxstackcells; NI cycletablesize; NI64 maxpause; }; struct Cellset_jG87P0AI9aZtss9ccTYBIISQ { NI counter; NI max; Pagedesc_fublkgIY4LG3mT51LU2WHg* head; Pagedesc_fublkgIY4LG3mT51LU2WHg** data; }; struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ { Gcstack_7fytPA5bBsob6See21YMRA* stack; void* stackbottom; NI cyclethreshold; Cellseq_Axo1XVm9aaQueTOldv8le5w zct; Cellseq_Axo1XVm9aaQueTOldv8le5w decstack; Cellseq_Axo1XVm9aaQueTOldv8le5w tempstack; NI recgclock; Memregion_x81NhDv59b8ercDZ9bi85jyg region; Gcstat_0RwLoVBHZPfUAcLczmfQAg stat; Cellset_jG87P0AI9aZtss9ccTYBIISQ marked; Cellseq_Axo1XVm9aaQueTOldv8le5w additionalroots; }; typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ; struct TNimNode { Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; typedef Ttype_LTUWCZolpovw9cWE3JBWSUw* TY_BF9aKj6RAH9ccQDWaEKQ1HOw[1]; typedef NU64 Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag_Set; typedef NU8 Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw; struct Tpasscontext_qNsm39cWb35W2r5AAd9ch87g { TNimObject Sup; NIM_BOOL fromcache; }; struct Intset_PQrmFm4BXFkFSVOUl1ojSg { NI counter; NI max; Trunk_ul49aWfv9aes8cutmeltT3gQ* head; TY_9brg1xNurxcus33lU4IE1Dw* data; }; struct Tlinkedlist_9aBiIjAa4z2zTLjp4yMUvLw { Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* head; Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* tail; NI counter; }; typedef N_NIMCALL_PTR(Tnode_bROa11lyF5vxEN9aYNbHmhw*, TY_AKW0Vo9cFIVu0NCvmOexsSA) (Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); typedef NU16 Texprflag_0WWd9a4ssQWuY7Q6ZKepq9cQ_Set; typedef N_NIMCALL_PTR(Tnode_bROa11lyF5vxEN9aYNbHmhw*, TY_iQuMqQxTQ0KsiquHcemjUQ) (Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Texprflag_0WWd9a4ssQWuY7Q6ZKepq9cQ_Set flags0); typedef NU32 Tsymkind_cNCW9acsSznmEccl1fgQwkw_Set; typedef N_NIMCALL_PTR(Tnode_bROa11lyF5vxEN9aYNbHmhw*, TY_C8AXaVscqGOxLOeiHy1lmw) (Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tnode_bROa11lyF5vxEN9aYNbHmhw* norig0, Tsymkind_cNCW9acsSznmEccl1fgQwkw_Set filter0); typedef N_NIMCALL_PTR(Ttype_LTUWCZolpovw9cWE3JBWSUw*, TY_bA9c5ClPJvgmXvNlbUiJQiQ) (Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Ttype_LTUWCZolpovw9cWE3JBWSUw* prev0); typedef struct { N_NIMCALL_PTR(Tnode_bROa11lyF5vxEN9aYNbHmhw*, ClPrc) (Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c0, Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q pt0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, void* ClEnv); void* ClEnv; } TY_rVRuvning49bS21o9c7OfIPQ; typedef struct { N_NIMCALL_PTR(Tsym_AXG7xcvKqaxY6koRX1xkCw*, ClPrc) (Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c0, Tsym_AXG7xcvKqaxY6koRX1xkCw* fn0, Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q pt0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, void* ClEnv); void* ClEnv; } TY_jT9bmmdeK1mqhnuxic7a1jw; typedef NU8 Ttypeattachedop_jZY2AMF49b43fezf9aDwN9c9cQ; typedef N_NIMCALL_PTR(Tsym_AXG7xcvKqaxY6koRX1xkCw*, TY_kd4mVSM3CyNW38z8itHZOA) (Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c0, Tsym_AXG7xcvKqaxY6koRX1xkCw* dc0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Ttypeattachedop_jZY2AMF49b43fezf9aDwN9c9cQ op0, NI col0); struct Tcontext_5TfOJKwTttj3W1t1tMzWUQ { Tpasscontext_qNsm39cWb35W2r5AAd9ch87g Sup; Tsym_AXG7xcvKqaxY6koRX1xkCw* module; Tscope_1cQRXW6aAknk7ywAwjH3nw* currentscope; Tscope_1cQRXW6aAknk7ywAwjH3nw* importtable; Tscope_1cQRXW6aAknk7ywAwjH3nw* toplevelscope; Tproccon_s5jyYR8yL1QmFqiHICzU9aQ* p; TY_sksVpmPRIkNR9axiwtD1Guw* friendmodules; NI instcounter; Intset_PQrmFm4BXFkFSVOUl1ojSg ambiguoussymbols; NI intypeclass; NI ingenericcontext; NI inunrolledcontext; NI compilescontextid; NI compilescontextidgenerator; NI ingenericinst; TY_sksVpmPRIkNR9axiwtD1Guw* converters; TY_sksVpmPRIkNR9axiwtD1Guw* patterns; Tlinkedlist_9aBiIjAa4z2zTLjp4yMUvLw optionstack; Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q symmapping; Tlinkedlist_9aBiIjAa4z2zTLjp4yMUvLw libs; TY_AKW0Vo9cFIVu0NCvmOexsSA semconstexpr; TY_iQuMqQxTQ0KsiquHcemjUQ semexpr; TY_iQuMqQxTQ0KsiquHcemjUQ semtryexpr; TY_AKW0Vo9cFIVu0NCvmOexsSA semtryconstexpr; TY_iQuMqQxTQ0KsiquHcemjUQ semoperand; TY_AKW0Vo9cFIVu0NCvmOexsSA semconstboolexpr; TY_C8AXaVscqGOxLOeiHy1lmw semoverloadedcall; TY_bA9c5ClPJvgmXvNlbUiJQiQ semtypenode; TY_rVRuvning49bS21o9c7OfIPQ seminferredlambda; TY_jT9bmmdeK1mqhnuxic7a1jw semgenerateinstance; Intset_PQrmFm4BXFkFSVOUl1ojSg includedfiles; Tstrtable_f07aOS3dr28kGa5wcE29aFA userpragmas; Tctx_hJGtOysUvnnuB9cLutWG9a2w* evalcontext; Intset_PQrmFm4BXFkFSVOUl1ojSg unknownidents; TY_jWKvSdankQPoT5bw9cBU9aiw* generics; NI topstmts; NI lastgenericidx; NI hloloopdetector; NI inparallelstmt; TY_kd4mVSM3CyNW38z8itHZOA insttypeboundop; Tident_4umxGerWTHGPwUms7Yqu3g* selfname; IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache; ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ* graph; Tstrtable_f07aOS3dr28kGa5wcE29aFA signatures; NimStringDesc* recursivedep; }; struct TY_a09bGTAl9ceOKTAytYdkbyKg { NI Field0; Tsym_AXG7xcvKqaxY6koRX1xkCw* Field1; }; struct Tidpair_AdFnD2YdADPeuJbG2YJ4vg { Tidobj_raN9cHVgzmvaXisezY9aGg9cg* key; TNimObject* val; }; struct Tident_4umxGerWTHGPwUms7Yqu3g { Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup; NimStringDesc* s; Tident_4umxGerWTHGPwUms7Yqu3g* next; NI h; }; struct Ropeobj_HF4qJnb6xiOddgPmsxodtQ { TNimObject Sup; Ropeobj_HF4qJnb6xiOddgPmsxodtQ* left; Ropeobj_HF4qJnb6xiOddgPmsxodtQ* right; NI length; NimStringDesc* data; }; struct Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q { TNimObject Sup; Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* prev; Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* next; }; typedef NU8 Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ; struct Tlib_4f9aBgmqEuj7uWJdBBGcRgA { Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Sup; Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ kind; NIM_BOOL generated; NIM_BOOL isoverriden; Ropeobj_HF4qJnb6xiOddgPmsxodtQ* name; Tnode_bROa11lyF5vxEN9aYNbHmhw* path; }; struct Gcstack_7fytPA5bBsob6See21YMRA { Gcstack_7fytPA5bBsob6See21YMRA* prev; Gcstack_7fytPA5bBsob6See21YMRA* next; void* starts; void* pos; NI maxstacksize; }; struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w { NI prevsize; NI size; NIM_BOOL used; }; struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ { Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup; Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* next; Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* prev; Freecell_u6M5LHprqzkn9axr04yg9bGQ* freelist; NI free; NI acc; NF data; }; struct Llchunk_XsENErzHIZV9bhvyJx56wGw { NI size; NI acc; Llchunk_XsENErzHIZV9bhvyJx56wGw* next; }; struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg { Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* next; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* prev; NI align; NF data; }; typedef NI TY_9agrCtWKhCnWWMJpKKugJag[16]; struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw { Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next; NI key; TY_9agrCtWKhCnWWMJpKKugJag bits; }; typedef Avlnode_IaqjtwKhxLEpvDS9bct9blEw* TY_0aOLqZchNi8nWtMTi8ND8w[2]; struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw { TY_0aOLqZchNi8nWtMTi8ND8w link; NI key; NI upperbound; NI level; }; struct Pagedesc_fublkgIY4LG3mT51LU2WHg { Pagedesc_fublkgIY4LG3mT51LU2WHg* next; NI key; TY_9agrCtWKhCnWWMJpKKugJag bits; }; struct Tscope_1cQRXW6aAknk7ywAwjH3nw { NI depthlevel; Tstrtable_f07aOS3dr28kGa5wcE29aFA symbols; Tscope_1cQRXW6aAknk7ywAwjH3nw* parent; }; struct Tproccon_s5jyYR8yL1QmFqiHICzU9aQ { Tsym_AXG7xcvKqaxY6koRX1xkCw* owner; Tsym_AXG7xcvKqaxY6koRX1xkCw* resultsym; Tsym_AXG7xcvKqaxY6koRX1xkCw* selfsym; NI nestedloopcounter; NI nestedblockcounter; NI intrystmt; Tproccon_s5jyYR8yL1QmFqiHICzU9aQ* next; NIM_BOOL wasforwarded; Tnode_bROa11lyF5vxEN9aYNbHmhw* bracketexpr; }; struct Trunk_ul49aWfv9aes8cutmeltT3gQ { Trunk_ul49aWfv9aes8cutmeltT3gQ* next; NI key; TY_9agrCtWKhCnWWMJpKKugJag bits; }; typedef NU8 Tevalmode_UbrbHUpo4hYFr1DbYzJgRQ; typedef NU8 Tsandboxflag_JyPEhkAmDAldmLHNNrLR0A_Set; struct Tctx_hJGtOysUvnnuB9cLutWG9a2w { Tpasscontext_qNsm39cWb35W2r5AAd9ch87g Sup; TY_9bAGqSvkAaFL9bWjsEPslrFA* code; TY_dRkMGUPOSmkGlhHeIeiomQ* debug; Tnode_bROa11lyF5vxEN9aYNbHmhw* globals; Tnode_bROa11lyF5vxEN9aYNbHmhw* constants; TY_zuqP4Riz26Oi5fWgPYVEgA* types; Tnode_bROa11lyF5vxEN9aYNbHmhw* currentexceptiona; Tnode_bROa11lyF5vxEN9aYNbHmhw* currentexceptionb; NI exceptioninstr; PprocHEX3Aobjecttype_VFEBuxrDHC6kHPzc1TWaRQ* prc; Tsym_AXG7xcvKqaxY6koRX1xkCw* module; Tnode_bROa11lyF5vxEN9aYNbHmhw* callsite; Tevalmode_UbrbHUpo4hYFr1DbYzJgRQ mode; Tsandboxflag_JyPEhkAmDAldmLHNNrLR0A_Set features; NIM_BOOL traceactive; NI loopiterations; Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw comesfromheuristic; TY_RsxI3z4wK8jTuZiO0576gQ* callbacks; NimStringDesc* errorflag; IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache; }; struct Tinstantiationpair_HkXM4cJmOpk8zFcmq9c9c3gQ { Tsym_AXG7xcvKqaxY6koRX1xkCw* genericsym; Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA* inst; }; typedef Tident_4umxGerWTHGPwUms7Yqu3g* TY_CBfZt49asUfAsBVM7a3Rc9cw[8192]; struct IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw { TY_CBfZt49asUfAsBVM7a3Rc9cw buckets; NI wordcounter; Tident_4umxGerWTHGPwUms7Yqu3g* idanon; Tident_4umxGerWTHGPwUms7Yqu3g* iddelegator; Tident_4umxGerWTHGPwUms7Yqu3g* emptyident; }; struct Table_tfmlwa8ktiw8woWAs5vhtQ { TY_kxu4GK0onha2t9bo86mdVAg* data; NI counter; }; struct ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ { TY_sksVpmPRIkNR9axiwtD1Guw* modules; Tstrtable_f07aOS3dr28kGa5wcE29aFA packagesyms; Intset_PQrmFm4BXFkFSVOUl1ojSg deps; NIM_BOOL suggestmode; NIM_BOOL invalidtransitiveclosure; Table_tfmlwa8ktiw8woWAs5vhtQ incltomod; TY_48JTohSgTy339bRxHzUD8KA* importstack; TNimObject* backend; }; struct Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA { Tsym_AXG7xcvKqaxY6koRX1xkCw* sym; TY_zuqP4Riz26Oi5fWgPYVEgA* concretetypes; NI compilesid; }; struct Freecell_u6M5LHprqzkn9axr04yg9bGQ { Freecell_u6M5LHprqzkn9axr04yg9bGQ* next; NI zerofield; }; typedef NU8 Tslotkind_QOyrDzzey9cf6gDtSRPuZMQ; struct TY_SlmU1Ju0WFHUWkihyHMVYg { NIM_BOOL Field0; Tslotkind_QOyrDzzey9cf6gDtSRPuZMQ Field1; }; typedef TY_SlmU1Ju0WFHUWkihyHMVYg TY_ORKcvNw6ApGJhbot1dJ6oA[256]; struct PprocHEX3Aobjecttype_VFEBuxrDHC6kHPzc1TWaRQ { TY_JokFGfUW6i9b6aeU7xu6xBw* blocks; Tsym_AXG7xcvKqaxY6koRX1xkCw* sym; TY_ORKcvNw6ApGJhbot1dJ6oA slots; NI maxslots; }; typedef struct { N_NIMCALL_PTR(void, ClPrc) (Vmargs_0UUl6e5CNNQfMon2xW2bVA* args0, void* ClEnv); void* ClEnv; } TY_S09bPfanQx9bEvdh4862x8zw; struct TY_UCrBsiykDha2x4hr9aWPwKA { NimStringDesc* Field0; TY_S09bPfanQx9bEvdh4862x8zw Field1; }; struct TY_xDU9bZmv1ZbZkJDaATBekIQ { NI Field0; NI32 Field1; NI32 Field2; }; struct Tblock_2tJGcW69ahqq39a9bVJC1sqGQ { Tsym_AXG7xcvKqaxY6koRX1xkCw* label; TY_qwqHTkRvwhrRyENtudHQ7g* fixups; }; struct Vmargs_0UUl6e5CNNQfMon2xW2bVA { NI ra; NI rb; NI rc; void* slots; Tnode_bROa11lyF5vxEN9aYNbHmhw* currentexception; Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw currentlineinfo; }; struct TY_zuqP4Riz26Oi5fWgPYVEgA { TGenericSeq Sup; Ttype_LTUWCZolpovw9cWE3JBWSUw* data[SEQ_DECL_SIZE]; }; struct TY_iGkpo9aKQdr3NWelKC4cnJA { TGenericSeq Sup; TY_a09bGTAl9ceOKTAytYdkbyKg data[SEQ_DECL_SIZE]; }; struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ { TGenericSeq Sup; Tnode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE]; }; struct TY_Mh9agqM29bm9aP5AUL1x7dZGA { TGenericSeq Sup; Tidpair_AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE]; }; struct TY_DXS6mEo7PVUFJkirsQ9bNQA { TGenericSeq Sup; Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE]; }; struct TY_sksVpmPRIkNR9axiwtD1Guw { TGenericSeq Sup; Tsym_AXG7xcvKqaxY6koRX1xkCw* data[SEQ_DECL_SIZE]; }; struct TY_9brg1xNurxcus33lU4IE1Dw { TGenericSeq Sup; Trunk_ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE]; }; struct TY_jWKvSdankQPoT5bw9cBU9aiw { TGenericSeq Sup; Tinstantiationpair_HkXM4cJmOpk8zFcmq9c9c3gQ data[SEQ_DECL_SIZE]; }; struct TY_9bAGqSvkAaFL9bWjsEPslrFA { TGenericSeq Sup; NU32 data[SEQ_DECL_SIZE]; }; struct TY_dRkMGUPOSmkGlhHeIeiomQ { TGenericSeq Sup; Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw data[SEQ_DECL_SIZE]; }; struct TY_RsxI3z4wK8jTuZiO0576gQ { TGenericSeq Sup; TY_UCrBsiykDha2x4hr9aWPwKA data[SEQ_DECL_SIZE]; }; struct TY_kxu4GK0onha2t9bo86mdVAg { TGenericSeq Sup; TY_xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE]; }; struct TY_48JTohSgTy339bRxHzUD8KA { TGenericSeq Sup; NI32 data[SEQ_DECL_SIZE]; }; struct TY_JokFGfUW6i9b6aeU7xu6xBw { TGenericSeq Sup; Tblock_2tJGcW69ahqq39a9bVJC1sqGQ data[SEQ_DECL_SIZE]; }; struct TY_qwqHTkRvwhrRyENtudHQ7g { TGenericSeq Sup; NI data[SEQ_DECL_SIZE]; }; N_NIMCALL(void, inittypevars_B6DfgKqYd3MzIbY05bllqg)(Tcontext_5TfOJKwTttj3W1t1tMzWUQ* p0, Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q pt0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* Result); N_NIMCALL(void, initidtable_9cUS2oaKn1IFXKjLdglPZHQ)(Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q* x0); N_NIMCALL(void, copyidtable_PAWgxjpTWlqAOeehMcKZ0w)(Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q* dest0, Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q src0); N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0); N_NOINLINE(void, chckNil)(void* p0); N_NIMCALL(void, pushinfocontext_zQWo2MALtrYvLPyMtv28iA)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, replacetypevarsn_TMTYUYo5YIKojKgBmj9boOQ)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n_ftT2MWlQLa2i76jcszbEdg, NI start0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, copynode_lz8T1F9c0YwEOpUnrAUYgjg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* src0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, replacetypevarstaux_0MFAr9a79bLFEM8gy9cdgtELQ_2)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(TNimObject*, idtableget_D12lVDWWPrKae8szg3EYLw)(Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q t0, Tidobj_raN9cHVgzmvaXisezY9aGg9cg* key0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, handlegenericinvocation_0MFAr9a79bLFEM8gy9cdgtELQ_3)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(void, internalerror_MXmtqrCmYwtOPkDCFgUWKQ)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, NimStringDesc* errmsg0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, searchinsttypes_T2ndCJpp8aQTm9cejePWLOQ)(Ttype_LTUWCZolpovw9cWE3JBWSUw* key0); N_NIMCALL(void, internalerror_5XY9cUy7hZmUusM38U9cYYdw)(NimStringDesc* errmsg0); N_NIMCALL(NimStringDesc*, HEX24_k53Ge4e9cDjc7y9c5uML7sPQ)(TY_XOVT24GHXwqiEj5GCsEGCA x0); N_NIMCALL(NIM_BOOL, HEX3DHEX3D_59b802owH8LncWkMg9cCE3ng)(TY_zuqP4Riz26Oi5fWgPYVEgA* x0, TY_zuqP4Riz26Oi5fWgPYVEgA* y0); N_NIMCALL(NIM_BOOL, comparetypes_Wiat9a9c5vPvjDreVawQ2qgA)(Ttype_LTUWCZolpovw9cWE3JBWSUw* x0, Ttype_LTUWCZolpovw9cWE3JBWSUw* y0, Tdistinctcompare_9bNKHGs63atuMFXnAleTveg cmp0, Ttypecmpflag_72pgRXSg7774cr9aCWVPORw_Set flags0); N_NIMCALL(NI, sonslen_gG7hUAX9cA629ahMLVL3xN4w)(Ttype_LTUWCZolpovw9cWE3JBWSUw* n0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, lookuptypevar_0MFAr9a79bLFEM8gy9cdgtELQ_4)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(void, localerror_VpilfPWbplGz6ny7O9cfr2g)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0); N_NIMCALL(NimStringDesc*, typetostring_iUZlBdvGqNPVN17wd9aVBNw)(Ttype_LTUWCZolpovw9cWE3JBWSUw* typ0, Tprefereddesc_tnd4qt9c4xddV8oKV5zyusw prefer0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, errortype_ShA6p2jJG1xQ4GbGPvr38g)(Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c0); N_NIMCALL(void, idtableput_3gLsywwJ9bZDaf06DfKpYbw)(Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q* t0, Tidobj_raN9cHVgzmvaXisezY9aGg9cg* key0, TNimObject* val0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, instcopytype_b9aBYowK1Ij4sKZs0TgWHnA)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, copytype_50MJeIR3xcM7dF9b6Ly3suQ)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, NIM_BOOL keepid0); static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0); static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0); static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0); N_NOINLINE(void, addzct_fCDI7oO1NNVXXURtxSzsRw)(Cellseq_Axo1XVm9aaQueTOldv8le5w* s0, Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0); N_NIMCALL(void, propagatetoowner_25RD9cAXWAJ2zW7s6mQQfCw)(Ttype_LTUWCZolpovw9cWE3JBWSUw* owner0, Ttype_LTUWCZolpovw9cWE3JBWSUw* elem0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, newtype_FL9cZh2bRuJE31MWfcWQ4Yg)(Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag kind0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0); static N_INLINE(void, nimGCunrefNoCycle)(void* p0); N_NIMCALL(void*, newSeqRC1)(TNimType* typ0, NI len0); N_NIMCALL(void, cachetypeinst_7lJfsNZ0dRWZrZEn5DhjCQ)(Ttype_LTUWCZolpovw9cWE3JBWSUw* inst0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, lastson_E41DMKHtT9c6sAMyyvhmSIw)(Ttype_LTUWCZolpovw9cWE3JBWSUw* n0); N_NIMCALL(void, safeadd_VD4SAHgDoDEHV5x9bi89cbwA)(TY_zuqP4Riz26Oi5fWgPYVEgA** x0, Ttype_LTUWCZolpovw9cWE3JBWSUw* y0); N_NIMCALL(void, rawaddson_52UH8yKinsYmFX9bFij9c2Hw)(Ttype_LTUWCZolpovw9cWE3JBWSUw* father0, Ttype_LTUWCZolpovw9cWE3JBWSUw* son0); N_NIMCALL(NIM_BOOL, isgenericalias_XI7vH8jtAcp7rWqTmfZOSg)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, skipgenericalias_46gPaVDDGhiU69b2oKDJZuA_3)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(void, checkpartialconstructedtype_uGlVklTa0nheDc1LA8DgWw)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, skiptypes_pLCdCGDuirMe9cspwviV9aVA)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0, Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag_Set kinds0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, preparenode_gKp9aBprbf0cqtXoSYBnCkw)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, replacetypevarss_aS9ajWMKW64cZlNljoqEWtA)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, copysym_KkocQl2VXhKLz8kG9aC7GEw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0, NIM_BOOL keepid0); static N_INLINE(NI, safelen_CdME9baJhvveuPEDZE9bXoxAsigmatch)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(void, add_gCCf68XrWL79bKes6htzFjQ_3)(Tnode_bROa11lyF5vxEN9aYNbHmhw* father0, Tnode_bROa11lyF5vxEN9aYNbHmhw* son0); static N_INLINE(Tnode_bROa11lyF5vxEN9aYNbHmhw*, HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, NI i0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, newtypes_9cQrDprXawJ1DKOUTsPNMTg)(Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag kind0, Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c0); static N_INLINE(Ttype_LTUWCZolpovw9cWE3JBWSUw*, skipintlit_Wqqd75hh0NzCssCyCNzd9agmagicsys)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, getsystype_dewjtBqyEbcVGQRaQFtDAw)(Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag kind0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, base_46gPaVDDGhiU69b2oKDJZuA)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, maketypedesc_CqYEBJKDkKTW89cDtM9aYg4g)(Tcontext_5TfOJKwTttj3W1t1tMzWUQ* c0, Ttype_LTUWCZolpovw9cWE3JBWSUw* typ0); N_NIMCALL(NIM_BOOL, containsgenerictype_Xhr5Lz1SR4KhD6lSHAyGDA)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(void, propagatefieldflags_10MNs5SJa8Vc6z11wRYAuw)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAlambdalifting)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(void, erasevoidparams_IjFFjY79a5Qy1exgpfVgQ4g)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq0, NI elemsize0, NI newlen0); N_NIMCALL(void, skipintliteralparams_SWD6AyXwYcQVjtguU79adwQ)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newnode_o9aHrUvOCIeQhfywzvo7yOA)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, TY_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons0, Ttype_LTUWCZolpovw9cWE3JBWSUw* typ0); N_NIMCALL(void*, newSeq)(TNimType* typ0, NI len0); N_NIMCALL(NI, sonslen_qPWPHw7WgJeEVYUdcaRIig)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(void, illformedast_DpsImAn3UbwOKcZFm2pVSg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(void, checksonslen_rPu9akNNYZgL0UexjMvt0HA)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, NI length0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newnodei_PIqgSH9b0m7nFpOyXf9cpz5w)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, reresolvecallswithtypedescparams_sMLp8yxUilACnyKrAFoTOA)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(NIM_BOOL, istypeparam_u68mEkLdR18iAnbsLA6Rgg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newsymnode_1ARBpggFQuvUDBVYjBelcw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* sym0); N_NIMCALL(void, newsons_W9cZG9c5PyHYZPzxHXuunFyQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* father0, NI length0); N_NIMCALL(void, popinfocontext_GmmyRSXe1noER8ex1U9aGUA)(void); N_NIMCALL(NIM_BOOL, hasgenericarguments_u68mEkLdR18iAnbsLA6Rgg_2)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(NI64, computesize_spMpEAO8ubfQavMigOxQdA_2)(Ttype_LTUWCZolpovw9cWE3JBWSUw* typ0); extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q; extern TNimType NTI_zuqP4Riz26Oi5fWgPYVEgA; extern TNimType NTI_ehmV9bTklH2Gt9cXHV9c0HLeQ; STRING_LITERAL(T_mrkrD9c2e31kE4GdQtpMdaQ_2, "no generic body", 15); STRING_LITERAL(T_mrkrD9c2e31kE4GdQtpMdaQ_4, "semtypinst.nim", 14); NIM_CONST TY_XOVT24GHXwqiEj5GCsEGCA T_mrkrD9c2e31kE4GdQtpMdaQ_3 = {((NimStringDesc*) &T_mrkrD9c2e31kE4GdQtpMdaQ_4), ((NI) 39)} ; STRING_LITERAL(T_mrkrD9c2e31kE4GdQtpMdaQ_5, "substitution with generic parameter", 35); STRING_LITERAL(T_mrkrD9c2e31kE4GdQtpMdaQ_6, "acyclic", 7); STRING_LITERAL(T_mrkrD9c2e31kE4GdQtpMdaQ_7, "", 0); NIM_CONST TY_XOVT24GHXwqiEj5GCsEGCA T_mrkrD9c2e31kE4GdQtpMdaQ_8 = {((NimStringDesc*) &T_mrkrD9c2e31kE4GdQtpMdaQ_4), ((NI) 481)} ; NIM_CONST TY_XOVT24GHXwqiEj5GCsEGCA T_mrkrD9c2e31kE4GdQtpMdaQ_9 = {((NimStringDesc*) &T_mrkrD9c2e31kE4GdQtpMdaQ_4), ((NI) 371)} ; STRING_LITERAL(T_mrkrD9c2e31kE4GdQtpMdaQ_10, "ReplaceTypeVarsN: when condition not a bool", 43); N_NIMCALL(void, inittypevars_B6DfgKqYd3MzIbY05bllqg)(Tcontext_5TfOJKwTttj3W1t1tMzWUQ* p0, Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q pt0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* Result) { initidtable_9cUS2oaKn1IFXKjLdglPZHQ((&(*Result).symmap)); copyidtable_PAWgxjpTWlqAOeehMcKZ0w((&(*Result).typemap), pt0); initidtable_9cUS2oaKn1IFXKjLdglPZHQ((&(*Result).localcache)); (*Result).info = info0; unsureAsgnRef((void**) (&(*Result).c), p0); unsureAsgnRef((void**) (&(*Result).owner), owner0); } N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, searchinsttypes_T2ndCJpp8aQTm9cejePWLOQ)(Ttype_LTUWCZolpovw9cWE3JBWSUw* key0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; Ttype_LTUWCZolpovw9cWE3JBWSUw* generictyp0; { result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; generictyp0 = (*key0).sons->data[((NI) 0)]; { NIM_BOOL LOC3; NIM_BOOL LOC4; NimStringDesc* LOC9; LOC3 = (NIM_BOOL)0; LOC4 = (NIM_BOOL)0; LOC4 = ((*generictyp0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 10)); if (!(LOC4)) goto LA5; LOC4 = ((*key0).sons->data[((NI) 0)] == generictyp0); LA5: ; LOC3 = LOC4; if (!(LOC3)) goto LA6; LOC3 = !(((*generictyp0).sym == NIM_NIL)); LA6: ; if (!!(LOC3)) goto LA7; LOC9 = (NimStringDesc*)0; LOC9 = HEX24_k53Ge4e9cDjc7y9c5uML7sPQ(T_mrkrD9c2e31kE4GdQtpMdaQ_3); internalerror_5XY9cUy7hZmUusM38U9cYYdw(LOC9); } LA7: ; { NIM_BOOL LOC12; LOC12 = (NIM_BOOL)0; LOC12 = HEX3DHEX3D_59b802owH8LncWkMg9cCE3ng((*(*generictyp0).sym).kindU.S1.typeinstcache, NIM_NIL); if (!LOC12) goto LA13; goto BeforeRet; } LA13: ; { Ttype_LTUWCZolpovw9cWE3JBWSUw* inst_iSyP00wnrhVSnsnE9c9b9cjOA; TY_zuqP4Riz26Oi5fWgPYVEgA* HEX3Atmp_PsBEyxKKWtUE7JAQtWCgxQ; NI i_38seL1y5sC8sXSxiYB9bFPA; NI L_CM6qhXzUFZhtx75EElmKfg; inst_iSyP00wnrhVSnsnE9c9b9cjOA = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; HEX3Atmp_PsBEyxKKWtUE7JAQtWCgxQ = (TY_zuqP4Riz26Oi5fWgPYVEgA*)0; HEX3Atmp_PsBEyxKKWtUE7JAQtWCgxQ = (*(*generictyp0).sym).kindU.S1.typeinstcache; i_38seL1y5sC8sXSxiYB9bFPA = ((NI) 0); L_CM6qhXzUFZhtx75EElmKfg = (HEX3Atmp_PsBEyxKKWtUE7JAQtWCgxQ ? HEX3Atmp_PsBEyxKKWtUE7JAQtWCgxQ->Sup.len : 0); { while (1) { if (!(i_38seL1y5sC8sXSxiYB9bFPA < L_CM6qhXzUFZhtx75EElmKfg)) goto LA17; inst_iSyP00wnrhVSnsnE9c9b9cjOA = HEX3Atmp_PsBEyxKKWtUE7JAQtWCgxQ->data[i_38seL1y5sC8sXSxiYB9bFPA]; { if (!((*inst_iSyP00wnrhVSnsnE9c9b9cjOA).Sup.id == (*key0).Sup.id)) goto LA20; result0 = inst_iSyP00wnrhVSnsnE9c9b9cjOA; goto BeforeRet; } LA20: ; { if (!(((*inst_iSyP00wnrhVSnsnE9c9b9cjOA).sons ? (*inst_iSyP00wnrhVSnsnE9c9b9cjOA).sons->Sup.len : 0) < ((*key0).sons ? (*key0).sons->Sup.len : 0))) goto LA24; goto BeforeRet; } LA24: ; { { NI j_r4mK8ECMCNaUgiJoUZThFg; NI HEX3Atmp_PsBEyxKKWtUE7JAQtWCgxQ_2; NI res_UXzE9ca1M4KvhNH6devGDXQ; j_r4mK8ECMCNaUgiJoUZThFg = (NI)0; HEX3Atmp_PsBEyxKKWtUE7JAQtWCgxQ_2 = (NI)0; HEX3Atmp_PsBEyxKKWtUE7JAQtWCgxQ_2 = ((*key0).sons ? ((*key0).sons->Sup.len-1) : -1); res_UXzE9ca1M4KvhNH6devGDXQ = ((NI) 1); { while (1) { if (!(res_UXzE9ca1M4KvhNH6devGDXQ <= HEX3Atmp_PsBEyxKKWtUE7JAQtWCgxQ_2)) goto LA29; j_r4mK8ECMCNaUgiJoUZThFg = res_UXzE9ca1M4KvhNH6devGDXQ; { NIM_BOOL LOC32; LOC32 = (NIM_BOOL)0; LOC32 = comparetypes_Wiat9a9c5vPvjDreVawQ2qgA((*inst_iSyP00wnrhVSnsnE9c9b9cjOA).sons->data[j_r4mK8ECMCNaUgiJoUZThFg], (*key0).sons->data[j_r4mK8ECMCNaUgiJoUZThFg], ((Tdistinctcompare_9bNKHGs63atuMFXnAleTveg) 0), 8); if (!!(LOC32)) goto LA33; goto LA26; } LA33: ; res_UXzE9ca1M4KvhNH6devGDXQ += ((NI) 1); } LA29: ; } } result0 = inst_iSyP00wnrhVSnsnE9c9b9cjOA; goto BeforeRet; } LA26: ; i_38seL1y5sC8sXSxiYB9bFPA += ((NI) 1); } LA17: ; } } }BeforeRet: ; return result0; } N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, lookuptypevar_0MFAr9a79bLFEM8gy9cdgtELQ_4)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC1; TNimObject* LOC2; { result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC1 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC1 = &t0->Sup; LOC2 = (TNimObject*)0; LOC2 = idtableget_D12lVDWWPrKae8szg3EYLw((*cl0).typemap, LOC1); result0 = ((Ttype_LTUWCZolpovw9cWE3JBWSUw*) (LOC2)); { NimStringDesc* LOC13; Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC14; TNimObject* LOC15; if (!(result0 == NIM_NIL)) goto LA5; { NIM_BOOL LOC9; LOC9 = (NIM_BOOL)0; LOC9 = (*cl0).allowmetatypes; if (LOC9) goto LA10; LOC9 = (((*t0).flags &(1U<<((NU)(((Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw) 10))&31U)))!=0); LA10: ; if (!LOC9) goto LA11; goto BeforeRet; } LA11: ; LOC13 = (NimStringDesc*)0; LOC13 = typetostring_iUZlBdvGqNPVN17wd9aVBNw(t0, ((Tprefereddesc_tnd4qt9c4xddV8oKV5zyusw) 0)); localerror_VpilfPWbplGz6ny7O9cfr2g((*(*t0).sym).info, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 127), LOC13); result0 = errortype_ShA6p2jJG1xQ4GbGPvr38g((*cl0).c); LOC14 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC14 = &t0->Sup; LOC15 = (TNimObject*)0; LOC15 = &result0->Sup.Sup; idtableput_3gLsywwJ9bZDaf06DfKpYbw((&(*cl0).typemap), LOC14, LOC15); } goto LA3; LA5: ; { NIM_BOOL LOC17; LOC17 = (NIM_BOOL)0; LOC17 = ((*result0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 12)); if (!(LOC17)) goto LA18; LOC17 = !((*cl0).allowmetatypes); LA18: ; if (!LOC17) goto LA19; internalerror_MXmtqrCmYwtOPkDCFgUWKQ((*cl0).info, ((NimStringDesc*) &T_mrkrD9c2e31kE4GdQtpMdaQ_5)); } goto LA3; LA19: ; LA3: ; }BeforeRet: ; return result0; } N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, instcopytype_b9aBYowK1Ij4sKZs0TgWHnA)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; result0 = copytype_50MJeIR3xcM7dF9b6Ly3suQ(t0, (*t0).owner, (*cl0).allowmetatypes); (*result0).flags |= ((NU32)1)<<((((Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw) 8))%(sizeof(NU32)*8)); { NIM_BOOL LOC3; NIM_BOOL LOC5; LOC3 = (NIM_BOOL)0; LOC3 = ((*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 6) || (*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*t0).kind >= ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 51) && (*t0).kind <= ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 58)); if (LOC3) goto LA4; LOC5 = (NIM_BOOL)0; LOC5 = ((*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 59)); if (!(LOC5)) goto LA6; LOC5 = ((*t0).n == NIM_NIL); LA6: ; LOC3 = LOC5; LA4: ; if (!!(LOC3)) goto LA7; (*result0).flags = ((*result0).flags & ~ 524288); } LA7: ; return result0; } static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) { Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0; result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0; result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (usr0))) - (NU32)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g)))))); return result0; } static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) { addzct_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c0); } static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) { { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; if (!!((src0 == NIM_NIL))) goto LA3; c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0); (*c0).refcount += ((NI) 8); } LA3: ; { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; if (!!(((*dest0) == NIM_NIL))) goto LA7; c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0)); { (*c0).refcount -= ((NI) 8); if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA11; rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0); } LA11: ; } LA7: ; (*dest0) = src0; } static N_INLINE(void, nimGCunrefNoCycle)(void* p0) { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p0); { (*c0).refcount -= ((NI) 8); if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3; rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0); } LA3: ; } N_NIMCALL(void, cachetypeinst_7lJfsNZ0dRWZrZEn5DhjCQ)(Ttype_LTUWCZolpovw9cWE3JBWSUw* inst0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* gt0; Ttype_LTUWCZolpovw9cWE3JBWSUw* t0; { gt0 = (*inst0).sons->data[((NI) 0)]; { if (!((*gt0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 10))) goto LA3; t0 = lastson_E41DMKHtT9c6sAMyyvhmSIw(gt0); } goto LA1; LA3: ; { t0 = gt0; } LA1: ; { if (!((*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*t0).kind >= ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 51) && (*t0).kind <= ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 59))) goto LA8; goto BeforeRet; } LA8: ; safeadd_VD4SAHgDoDEHV5x9bi89cbwA((&(*(*gt0).sym).kindU.S1.typeinstcache), inst0); }BeforeRet: ; } N_NIMCALL(void, checkpartialconstructedtype_uGlVklTa0nheDc1LA8DgWw)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0) { { NIM_BOOL LOC3; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC5; LOC3 = (NIM_BOOL)0; LOC3 = (((*t0).flags &(1U<<((NU)(((Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw) 4))&31U)))!=0); if (!(LOC3)) goto LA4; LOC5 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC5 = skiptypes_pLCdCGDuirMe9cspwviV9aVA(t0, 43280); LOC3 = !(((*LOC5).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 17))); LA4: ; if (!LOC3) goto LA6; localerror_VpilfPWbplGz6ny7O9cfr2g(info0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 165), ((NimStringDesc*) &T_mrkrD9c2e31kE4GdQtpMdaQ_6)); } goto LA1; LA6: ; { NIM_BOOL LOC9; LOC9 = (NIM_BOOL)0; LOC9 = ((*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 23)); if (!(LOC9)) goto LA10; LOC9 = ((*(*t0).sons->data[((NI) 0)]).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 23)); LA10: ; if (!LOC9) goto LA11; localerror_VpilfPWbplGz6ny7O9cfr2g(info0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 201), ((NimStringDesc*) &T_mrkrD9c2e31kE4GdQtpMdaQ_7)); } goto LA1; LA11: ; LA1: ; } N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, handlegenericinvocation_0MFAr9a79bLFEM8gy9cdgtELQ_3)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; Ttype_LTUWCZolpovw9cWE3JBWSUw* body0; Ttype_LTUWCZolpovw9cWE3JBWSUw* header0; TY_BF9aKj6RAH9ccQDWaEKQ1HOw LOC46; NIM_BOOL oldskiptypedesc0; Ttype_LTUWCZolpovw9cWE3JBWSUw* bbody0; Ttype_LTUWCZolpovw9cWE3JBWSUw* newbody0; NIM_BOOL bodyisnew0; Tsym_AXG7xcvKqaxY6koRX1xkCw* dc0; Tsym_AXG7xcvKqaxY6koRX1xkCw* asgn0; TY_iGkpo9aKQdr3NWelKC4cnJA* methods0; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC92; { result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; body0 = (*t0).sons->data[((NI) 0)]; { if (!!(((*body0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 10)))) goto LA3; internalerror_MXmtqrCmYwtOPkDCFgUWKQ((*cl0).info, ((NimStringDesc*) &T_mrkrD9c2e31kE4GdQtpMdaQ_2)); } LA3: ; header0 = t0; { Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC9; TNimObject* LOC10; if (!(*cl0).allowmetatypes) goto LA7; LOC9 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC9 = &t0->Sup; LOC10 = (TNimObject*)0; LOC10 = idtableget_D12lVDWWPrKae8szg3EYLw((*cl0).localcache, LOC9); result0 = ((Ttype_LTUWCZolpovw9cWE3JBWSUw*) (LOC10)); } goto LA5; LA7: ; { result0 = searchinsttypes_T2ndCJpp8aQTm9cejePWLOQ(t0); } LA5: ; { NIM_BOOL LOC14; LOC14 = (NIM_BOOL)0; LOC14 = !((result0 == NIM_NIL)); if (!(LOC14)) goto LA15; LOC14 = ((344064 & (*result0).flags) == (344064 & (*t0).flags)); LA15: ; if (!LOC14) goto LA16; goto BeforeRet; } LA16: ; { NI i_ETHCB7uJ3PXbctU0bYJQxw; NI HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ; NI LOC19; NI res_nu71jkNxQ0bWSUEnerjbeA; i_ETHCB7uJ3PXbctU0bYJQxw = (NI)0; HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ = (NI)0; LOC19 = (NI)0; LOC19 = sonslen_gG7hUAX9cA629ahMLVL3xN4w(t0); HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ = (NI)(LOC19 - ((NI) 1)); res_nu71jkNxQ0bWSUEnerjbeA = ((NI) 1); { while (1) { Ttype_LTUWCZolpovw9cWE3JBWSUw* x0; if (!(res_nu71jkNxQ0bWSUEnerjbeA <= HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ)) goto LA21; i_ETHCB7uJ3PXbctU0bYJQxw = res_nu71jkNxQ0bWSUEnerjbeA; x0 = (*t0).sons->data[i_ETHCB7uJ3PXbctU0bYJQxw]; { if (!((*x0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA24; x0 = lookuptypevar_0MFAr9a79bLFEM8gy9cdgtELQ_4(cl0, x0); { if (!!((x0 == NIM_NIL))) goto LA28; { if (!(header0 == t0)) goto LA32; header0 = instcopytype_b9aBYowK1Ij4sKZs0TgWHnA(cl0, t0); } LA32: ; asgnRefNoCycle((void**) (&(*header0).sons->data[i_ETHCB7uJ3PXbctU0bYJQxw]), x0); propagatetoowner_25RD9cAXWAJ2zW7s6mQQfCw(header0, x0); } LA28: ; } goto LA22; LA24: ; { propagatetoowner_25RD9cAXWAJ2zW7s6mQQfCw(header0, x0); } LA22: ; res_nu71jkNxQ0bWSUEnerjbeA += ((NI) 1); } LA21: ; } } { if (!!((header0 == t0))) goto LA37; result0 = searchinsttypes_T2ndCJpp8aQTm9cejePWLOQ(header0); { NIM_BOOL LOC41; LOC41 = (NIM_BOOL)0; LOC41 = !((result0 == NIM_NIL)); if (!(LOC41)) goto LA42; LOC41 = ((344064 & (*result0).flags) == (344064 & (*t0).flags)); LA42: ; if (!LOC41) goto LA43; goto BeforeRet; } LA43: ; } goto LA35; LA37: ; { header0 = instcopytype_b9aBYowK1Ij4sKZs0TgWHnA(cl0, t0); } LA35: ; result0 = newtype_FL9cZh2bRuJE31MWfcWQ4Yg(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 11), (*(*t0).sons->data[((NI) 0)]).owner); (*result0).flags = (*header0).flags; if ((*result0).sons) nimGCunrefNoCycle((*result0).sons); (*result0).sons = (TY_zuqP4Riz26Oi5fWgPYVEgA*) newSeqRC1((&NTI_zuqP4Riz26Oi5fWgPYVEgA), 1); memset((void*)LOC46, 0, sizeof(LOC46)); LOC46[0] = (*header0).sons->data[((NI) 0)]; asgnRefNoCycle((void**) (&(*result0).sons->data[0]), LOC46[0]); { if (!!((*cl0).allowmetatypes)) goto LA49; cachetypeinst_7lJfsNZ0dRWZrZEn5DhjCQ(result0); } goto LA47; LA49: ; { Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC52; TNimObject* LOC53; LOC52 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC52 = &t0->Sup; LOC53 = (TNimObject*)0; LOC53 = &result0->Sup.Sup; idtableput_3gLsywwJ9bZDaf06DfKpYbw((&(*cl0).localcache), LOC52, LOC53); } LA47: ; oldskiptypedesc0 = (*cl0).skiptypedesc; (*cl0).skiptypedesc = NIM_TRUE; { NI i_ETHCB7uJ3PXbctU0bYJQxw_2; NI HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ_2; NI LOC55; NI res_nu71jkNxQ0bWSUEnerjbeA_2; i_ETHCB7uJ3PXbctU0bYJQxw_2 = (NI)0; HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ_2 = (NI)0; LOC55 = (NI)0; LOC55 = sonslen_gG7hUAX9cA629ahMLVL3xN4w(t0); HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ_2 = (NI)(LOC55 - ((NI) 1)); res_nu71jkNxQ0bWSUEnerjbeA_2 = ((NI) 1); { while (1) { Ttype_LTUWCZolpovw9cWE3JBWSUw* x0; Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC58; TNimObject* LOC59; if (!(res_nu71jkNxQ0bWSUEnerjbeA_2 <= HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ_2)) goto LA57; i_ETHCB7uJ3PXbctU0bYJQxw_2 = res_nu71jkNxQ0bWSUEnerjbeA_2; x0 = replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ(cl0, (*t0).sons->data[i_ETHCB7uJ3PXbctU0bYJQxw_2]); asgnRefNoCycle((void**) (&(*header0).sons->data[i_ETHCB7uJ3PXbctU0bYJQxw_2]), x0); propagatetoowner_25RD9cAXWAJ2zW7s6mQQfCw(header0, x0); LOC58 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC58 = &(*body0).sons->data[(NI)(i_ETHCB7uJ3PXbctU0bYJQxw_2 - ((NI) 1))]->Sup; LOC59 = (TNimObject*)0; LOC59 = &x0->Sup.Sup; idtableput_3gLsywwJ9bZDaf06DfKpYbw((&(*cl0).typemap), LOC58, LOC59); res_nu71jkNxQ0bWSUEnerjbeA_2 += ((NI) 1); } LA57: ; } } { NI i_ETHCB7uJ3PXbctU0bYJQxw_3; NI HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ_3; NI LOC61; NI res_nu71jkNxQ0bWSUEnerjbeA_3; i_ETHCB7uJ3PXbctU0bYJQxw_3 = (NI)0; HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ_3 = (NI)0; LOC61 = (NI)0; LOC61 = sonslen_gG7hUAX9cA629ahMLVL3xN4w(t0); HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ_3 = (NI)(LOC61 - ((NI) 1)); res_nu71jkNxQ0bWSUEnerjbeA_3 = ((NI) 1); { while (1) { if (!(res_nu71jkNxQ0bWSUEnerjbeA_3 <= HEX3Atmp_9bBEYurK9byq1vSpo869bYjBQ_3)) goto LA63; i_ETHCB7uJ3PXbctU0bYJQxw_3 = res_nu71jkNxQ0bWSUEnerjbeA_3; rawaddson_52UH8yKinsYmFX9bFij9c2Hw(result0, (*header0).sons->data[i_ETHCB7uJ3PXbctU0bYJQxw_3]); res_nu71jkNxQ0bWSUEnerjbeA_3 += ((NI) 1); } LA63: ; } } bbody0 = lastson_E41DMKHtT9c6sAMyyvhmSIw(body0); newbody0 = replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ(cl0, bbody0); bodyisnew0 = !((newbody0 == bbody0)); (*cl0).skiptypedesc = oldskiptypedesc0; (*newbody0).flags = ((*newbody0).flags | (((*t0).flags | (*body0).flags) & ~ 524288)); (*result0).flags = (((*result0).flags | (*newbody0).flags) & ~ 524288); { NIM_BOOL LOC66; LOC66 = (NIM_BOOL)0; LOC66 = isgenericalias_XI7vH8jtAcp7rWqTmfZOSg(newbody0); if (!LOC66) goto LA67; newbody0 = skipgenericalias_46gPaVDDGhiU69b2oKDJZuA_3(newbody0); } LA67: ; rawaddson_52UH8yKinsYmFX9bFij9c2Hw(result0, newbody0); checkpartialconstructedtype_uGlVklTa0nheDc1LA8DgWw((*cl0).info, newbody0); dc0 = (*newbody0).deepcopy; { NIM_BOOL LOC71; LOC71 = (NIM_BOOL)0; LOC71 = !((dc0 == NIM_NIL)); if (!(LOC71)) goto LA72; LOC71 = !((((*(*newbody0).deepcopy).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 2))&31U)))!=0)); LA72: ; if (!LOC71) goto LA73; asgnRefNoCycle((void**) (&(*newbody0).deepcopy), (*(*cl0).c).insttypeboundop((*cl0).c, dc0, result0, (*cl0).info, ((Ttypeattachedop_jZY2AMF49b43fezf9aDwN9c9cQ) 1), ((NI) 1))); } LA73: ; { NIM_BOOL LOC77; LOC77 = (NIM_BOOL)0; LOC77 = bodyisnew0; if (!(LOC77)) goto LA78; LOC77 = ((*newbody0).typeinst == NIM_NIL); LA78: ; if (!LOC77) goto LA79; asgnRefNoCycle((void**) (&(*newbody0).typeinst), result0); { Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC85; if (!(((*newbody0).flags &(1U<<((NU)(((Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw) 29))&31U)))!=0)) goto LA83; LOC85 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC85 = lastson_E41DMKHtT9c6sAMyyvhmSIw(newbody0); asgnRefNoCycle((void**) (&(*LOC85).typeinst), result0); } LA83: ; } LA79: ; asgn0 = (*newbody0).assignment; { NIM_BOOL LOC88; LOC88 = (NIM_BOOL)0; LOC88 = !((asgn0 == NIM_NIL)); if (!(LOC88)) goto LA89; LOC88 = !((((*asgn0).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 2))&31U)))!=0)); LA89: ; if (!LOC88) goto LA90; asgnRefNoCycle((void**) (&(*newbody0).assignment), (*(*cl0).c).insttypeboundop((*cl0).c, asgn0, result0, (*cl0).info, ((Ttypeattachedop_jZY2AMF49b43fezf9aDwN9c9cQ) 0), ((NI) 1))); } LA90: ; LOC92 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC92 = skiptypes_pLCdCGDuirMe9cspwviV9aVA(bbody0, 14723344); methods0 = (*LOC92).methods; { NI col_cp9aZxvE0VrOU43MpdYV2Vw; Tsym_AXG7xcvKqaxY6koRX1xkCw* meth_HtCfUFpHX9cAXHESX1I5TJw; NI i_ETHCB7uJ3PXbctU0bYJQxw_4; NI L_cnn9b0z0b7ic69adD9bX2P6xA; col_cp9aZxvE0VrOU43MpdYV2Vw = (NI)0; meth_HtCfUFpHX9cAXHESX1I5TJw = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; i_ETHCB7uJ3PXbctU0bYJQxw_4 = ((NI) 0); L_cnn9b0z0b7ic69adD9bX2P6xA = (methods0 ? methods0->Sup.len : 0); { while (1) { Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC96; if (!(i_ETHCB7uJ3PXbctU0bYJQxw_4 < L_cnn9b0z0b7ic69adD9bX2P6xA)) goto LA95; col_cp9aZxvE0VrOU43MpdYV2Vw = methods0->data[i_ETHCB7uJ3PXbctU0bYJQxw_4].Field0; meth_HtCfUFpHX9cAXHESX1I5TJw = methods0->data[i_ETHCB7uJ3PXbctU0bYJQxw_4].Field1; LOC96 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC96 = (*(*cl0).c).insttypeboundop((*cl0).c, meth_HtCfUFpHX9cAXHESX1I5TJw, result0, (*cl0).info, ((Ttypeattachedop_jZY2AMF49b43fezf9aDwN9c9cQ) 0), col_cp9aZxvE0VrOU43MpdYV2Vw); i_ETHCB7uJ3PXbctU0bYJQxw_4 += ((NI) 1); } LA95: ; } } }BeforeRet: ; return result0; } N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, replacetypevarss_aS9ajWMKW64cZlNljoqEWtA)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Tsym_AXG7xcvKqaxY6koRX1xkCw* s0) { Tsym_AXG7xcvKqaxY6koRX1xkCw* result0; { result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; { if (!(s0 == NIM_NIL)) goto LA3; result0 = NIM_NIL; goto BeforeRet; } LA3: ; { NIM_BOOL LOC7; LOC7 = (NIM_BOOL)0; LOC7 = !(((*cl0).owner == NIM_NIL)); if (!(LOC7)) goto LA8; LOC7 = !(((*s0).owner == (*cl0).owner)); LA8: ; if (!LOC7) goto LA9; result0 = s0; goto BeforeRet; } LA9: ; result0 = copysym_KkocQl2VXhKLz8kG9aC7GEw(s0, NIM_FALSE); (*result0).flags |= ((NU32)1)<<((((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 2))%(sizeof(NU32)*8)); asgnRefNoCycle((void**) (&(*result0).owner), (*s0).owner); asgnRefNoCycle((void**) (&(*result0).typ), replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ(cl0, (*s0).typ)); asgnRefNoCycle((void**) (&(*result0).ast), replacetypevarsn_TMTYUYo5YIKojKgBmj9boOQ(cl0, (*s0).ast, ((NI) 0))); }BeforeRet: ; return result0; } static N_INLINE(NI, safelen_CdME9baJhvveuPEDZE9bXoxAsigmatch)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { NI result0; result0 = (NI)0; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = ((*n0).kind >= ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n0).kind <= ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23)); if (LOC3) goto LA4; LOC3 = ((*n0).kindU.S6.sons == 0); LA4: ; if (!LOC3) goto LA5; result0 = ((NI) 0); } goto LA1; LA5: ; { result0 = ((*n0).kindU.S6.sons ? (*n0).kindU.S6.sons->Sup.len : 0); } LA1: ; return result0; } static N_INLINE(Tnode_bROa11lyF5vxEN9aYNbHmhw*, HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, NI i0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; result0 = (*n0).kindU.S6.sons->data[i0]; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, preparenode_gKp9aBprbf0cqtXoSYBnCkw)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Ttype_LTUWCZolpovw9cWE3JBWSUw* t0; NIM_BOOL iscall0; { result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; t0 = replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ(cl0, (*n0).typ); { NIM_BOOL LOC3; NIM_BOOL LOC4; LOC3 = (NIM_BOOL)0; LOC4 = (NIM_BOOL)0; LOC4 = !((t0 == NIM_NIL)); if (!(LOC4)) goto LA5; LOC4 = ((*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 59)); LA5: ; LOC3 = LOC4; if (!(LOC3)) goto LA6; LOC3 = !(((*t0).n == NIM_NIL)); LA6: ; if (!LOC3) goto LA7; result0 = (*t0).n; goto BeforeRet; } LA7: ; result0 = copynode_lz8T1F9c0YwEOpUnrAUYgjg(n0); asgnRefNoCycle((void**) (&(*result0).typ), t0); { if (!((*result0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA11; asgnRefNoCycle((void**) (&(*result0).kindU.S4.sym), replacetypevarss_aS9ajWMKW64cZlNljoqEWtA(cl0, (*n0).kindU.S4.sym)); } LA11: ; iscall0 = ((*result0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*result0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*result0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*result0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*result0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*result0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*result0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 32)); { NI i_fgCKcOZ420Yg5tFQPK6X2g; NI HEX3Atmp_U0ipA76kbYEJMY1E9b1oBMw; NI LOC14; NI res_ChcqaRMmlA5Fi48Wz5dTmg; i_fgCKcOZ420Yg5tFQPK6X2g = (NI)0; HEX3Atmp_U0ipA76kbYEJMY1E9b1oBMw = (NI)0; LOC14 = (NI)0; LOC14 = safelen_CdME9baJhvveuPEDZE9bXoxAsigmatch(n0); HEX3Atmp_U0ipA76kbYEJMY1E9b1oBMw = (LOC14 - 1); res_ChcqaRMmlA5Fi48Wz5dTmg = ((NI) 0); { while (1) { if (!(res_ChcqaRMmlA5Fi48Wz5dTmg <= HEX3Atmp_U0ipA76kbYEJMY1E9b1oBMw)) goto LA16; i_fgCKcOZ420Yg5tFQPK6X2g = res_ChcqaRMmlA5Fi48Wz5dTmg; { NIM_BOOL LOC19; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC23; LOC19 = (NIM_BOOL)0; LOC19 = iscall0; if (!(LOC19)) goto LA20; LOC19 = (i_fgCKcOZ420Yg5tFQPK6X2g == ((NI) 0)); LA20: ; if (!LOC19) goto LA21; LOC23 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC23 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, i_fgCKcOZ420Yg5tFQPK6X2g); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC23); } goto LA17; LA21: ; { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC25; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC26; LOC25 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC25 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, i_fgCKcOZ420Yg5tFQPK6X2g); LOC26 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC26 = preparenode_gKp9aBprbf0cqtXoSYBnCkw(cl0, LOC25); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC26); } LA17: ; res_ChcqaRMmlA5Fi48Wz5dTmg += ((NI) 1); } LA16: ; } } }BeforeRet: ; return result0; } static N_INLINE(Ttype_LTUWCZolpovw9cWE3JBWSUw*, skipintlit_Wqqd75hh0NzCssCyCNzd9agmagicsys)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; { result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; { if (!!(((*t0).n == NIM_NIL))) goto LA3; { if (!((*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 31) || (*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 36))) goto LA7; result0 = getsystype_dewjtBqyEbcVGQRaQFtDAw((*t0).kind); goto BeforeRet; } LA7: ; } LA3: ; result0 = t0; }BeforeRet: ; return result0; } static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAlambdalifting)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { NI result0; result0 = (NI)0; { if (!((*n0).kindU.S6.sons == 0)) goto LA3; result0 = ((NI) 0); } goto LA1; LA3: ; { result0 = ((*n0).kindU.S6.sons ? (*n0).kindU.S6.sons->Sup.len : 0); } LA1: ; return result0; } N_NIMCALL(void, propagatefieldflags_10MNs5SJa8Vc6z11wRYAuw)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { { { if (!(n0 == 0)) goto LA3; goto BeforeRet; } LA3: ; { NimStringDesc* LOC9; if (!!(!(((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 140))))) goto LA7; LOC9 = (NimStringDesc*)0; LOC9 = HEX24_k53Ge4e9cDjc7y9c5uML7sPQ(T_mrkrD9c2e31kE4GdQtpMdaQ_9); internalerror_5XY9cUy7hZmUusM38U9cYYdw(LOC9); } LA7: ; switch ((*n0).kind) { case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3): { propagatetoowner_25RD9cAXWAJ2zW7s6mQQfCw(t0, (*(*n0).kindU.S4.sym).typ); } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 138): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 139): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 85): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 88): { { Tnode_bROa11lyF5vxEN9aYNbHmhw* son_RTJM8fWYLNzEWAv4fmAung; son_RTJM8fWYLNzEWAv4fmAung = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NI i_n7bfgNhHVVUTeslFrmAbXw; NI HEX3Atmp_5t55Tnf5U9bCLiA1XVdBh6g; NI LOC14; NI res_8rL2N13c8eMZvAP2V9cE6LQ; i_n7bfgNhHVVUTeslFrmAbXw = (NI)0; HEX3Atmp_5t55Tnf5U9bCLiA1XVdBh6g = (NI)0; LOC14 = (NI)0; LOC14 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n0); HEX3Atmp_5t55Tnf5U9bCLiA1XVdBh6g = (LOC14 - 1); res_8rL2N13c8eMZvAP2V9cE6LQ = ((NI) 0); { while (1) { if (!(res_8rL2N13c8eMZvAP2V9cE6LQ <= HEX3Atmp_5t55Tnf5U9bCLiA1XVdBh6g)) goto LA16; i_n7bfgNhHVVUTeslFrmAbXw = res_8rL2N13c8eMZvAP2V9cE6LQ; son_RTJM8fWYLNzEWAv4fmAung = (*n0).kindU.S6.sons->data[i_n7bfgNhHVVUTeslFrmAbXw]; propagatefieldflags_10MNs5SJa8Vc6z11wRYAuw(t0, son_RTJM8fWYLNzEWAv4fmAung); res_8rL2N13c8eMZvAP2V9cE6LQ += ((NI) 1); } LA16: ; } } } } break; default: { } break; } }BeforeRet: ; } N_NIMCALL(void, erasevoidparams_IjFFjY79a5Qy1exgpfVgQ4g)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0) { { { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = !(((*t0).sons->data[((NI) 0)] == NIM_NIL)); if (!(LOC3)) goto LA4; LOC3 = ((*(*t0).sons->data[((NI) 0)]).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 62)); LA4: ; if (!LOC3) goto LA5; asgnRefNoCycle((void**) (&(*t0).sons->data[((NI) 0)]), NIM_NIL); } LA5: ; { NI i_PZjxO9aQ4C9bbEJIaXMsrE9bg; NI HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg; NI LOC8; NI res_keSqAPdSw8fkbWspvqMJHA; i_PZjxO9aQ4C9bbEJIaXMsrE9bg = (NI)0; HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg = (NI)0; LOC8 = (NI)0; LOC8 = sonslen_gG7hUAX9cA629ahMLVL3xN4w(t0); HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg = (LOC8 - 1); res_keSqAPdSw8fkbWspvqMJHA = ((NI) 1); { while (1) { if (!(res_keSqAPdSw8fkbWspvqMJHA <= HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg)) goto LA10; i_PZjxO9aQ4C9bbEJIaXMsrE9bg = res_keSqAPdSw8fkbWspvqMJHA; { NI pos0; if (!((*(*t0).sons->data[i_PZjxO9aQ4C9bbEJIaXMsrE9bg]).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 62))) goto LA13; pos0 = i_PZjxO9aQ4C9bbEJIaXMsrE9bg; { NI j_zM341CQKeneY7niAOxKqNA; NI HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg_2; NI HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg_3; NI LOC16; NI res_keSqAPdSw8fkbWspvqMJHA_2; j_zM341CQKeneY7niAOxKqNA = (NI)0; HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg_2 = (NI)0; HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg_3 = (NI)0; HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg_2 = (NI)(i_PZjxO9aQ4C9bbEJIaXMsrE9bg + ((NI) 1)); LOC16 = (NI)0; LOC16 = sonslen_gG7hUAX9cA629ahMLVL3xN4w(t0); HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg_3 = (LOC16 - 1); res_keSqAPdSw8fkbWspvqMJHA_2 = HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg_2; { while (1) { if (!(res_keSqAPdSw8fkbWspvqMJHA_2 <= HEX3Atmp_5m1ASz0s9bZ9bL4fWYW8N9bCg_3)) goto LA18; j_zM341CQKeneY7niAOxKqNA = res_keSqAPdSw8fkbWspvqMJHA_2; { if (!!(((*(*t0).sons->data[j_zM341CQKeneY7niAOxKqNA]).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 62)))) goto LA21; asgnRefNoCycle((void**) (&(*t0).sons->data[pos0]), (*t0).sons->data[j_zM341CQKeneY7niAOxKqNA]); asgnRefNoCycle((void**) (&(*(*t0).n).kindU.S6.sons->data[pos0]), (*(*t0).n).kindU.S6.sons->data[j_zM341CQKeneY7niAOxKqNA]); pos0 += ((NI) 1); } LA21: ; res_keSqAPdSw8fkbWspvqMJHA_2 += ((NI) 1); } LA18: ; } } (*t0).sons = (TY_zuqP4Riz26Oi5fWgPYVEgA*) setLengthSeq(&((*t0).sons)->Sup, sizeof(Ttype_LTUWCZolpovw9cWE3JBWSUw*), ((NI) (pos0))); (*(*t0).n).kindU.S6.sons = (TY_ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeq(&((*(*t0).n).kindU.S6.sons)->Sup, sizeof(Tnode_bROa11lyF5vxEN9aYNbHmhw*), ((NI) (pos0))); goto BeforeRet; } LA13: ; res_keSqAPdSw8fkbWspvqMJHA += ((NI) 1); } LA10: ; } } }BeforeRet: ; } N_NIMCALL(void, skipintliteralparams_SWD6AyXwYcQVjtguU79adwQ)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0) { { NI i_6C2ufX8fcArFj5rwib5AXA; NI HEX3Atmp_zlx9cQyYRrxnk3MaQUwPPGw; NI LOC2; NI res_1X9a5yIC9bwdvx8mmo0LKIPg; i_6C2ufX8fcArFj5rwib5AXA = (NI)0; HEX3Atmp_zlx9cQyYRrxnk3MaQUwPPGw = (NI)0; LOC2 = (NI)0; LOC2 = sonslen_gG7hUAX9cA629ahMLVL3xN4w(t0); HEX3Atmp_zlx9cQyYRrxnk3MaQUwPPGw = (LOC2 - 1); res_1X9a5yIC9bwdvx8mmo0LKIPg = ((NI) 0); { while (1) { if (!(res_1X9a5yIC9bwdvx8mmo0LKIPg <= HEX3Atmp_zlx9cQyYRrxnk3MaQUwPPGw)) goto LA4; i_6C2ufX8fcArFj5rwib5AXA = res_1X9a5yIC9bwdvx8mmo0LKIPg; { Ttype_LTUWCZolpovw9cWE3JBWSUw* p0; Ttype_LTUWCZolpovw9cWE3JBWSUw* skipped0; p0 = (*t0).sons->data[i_6C2ufX8fcArFj5rwib5AXA]; { if (!(p0 == NIM_NIL)) goto LA8; goto LA5; } LA8: ; skipped0 = skipintlit_Wqqd75hh0NzCssCyCNzd9agmagicsys(p0); { if (!!((skipped0 == p0))) goto LA12; asgnRefNoCycle((void**) (&(*t0).sons->data[i_6C2ufX8fcArFj5rwib5AXA]), skipped0); { if (!(((NI) 0) < i_6C2ufX8fcArFj5rwib5AXA)) goto LA16; asgnRefNoCycle((void**) (&(*(*(*(*t0).n).kindU.S6.sons->data[i_6C2ufX8fcArFj5rwib5AXA]).kindU.S4.sym).typ), skipped0); } LA16: ; } LA12: ; } LA5: ; res_1X9a5yIC9bwdvx8mmo0LKIPg += ((NI) 1); } LA4: ; } } { NIM_BOOL LOC20; LOC20 = (NIM_BOOL)0; LOC20 = !(((*t0).sons->data[((NI) 0)] == NIM_NIL)); if (!(LOC20)) goto LA21; LOC20 = ((*(*t0).sons->data[((NI) 0)]).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 59)); LA21: ; if (!LOC20) goto LA22; asgnRefNoCycle((void**) (&(*t0).sons->data[((NI) 0)]), base_46gPaVDDGhiU69b2oKDJZuA((*t0).sons->data[((NI) 0)])); } LA22: ; } N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, replacetypevarstaux_0MFAr9a79bLFEM8gy9cdgtELQ_2)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; { result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; result0 = t0; { if (!(t0 == NIM_NIL)) goto LA3; goto BeforeRet; } LA3: ; { Ttype_LTUWCZolpovw9cWE3JBWSUw* lookup0; Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC9; TNimObject* LOC10; if (!((*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*t0).kind >= ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 51) && (*t0).kind <= ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 59))) goto LA7; LOC9 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC9 = &t0->Sup; LOC10 = (TNimObject*)0; LOC10 = idtableget_D12lVDWWPrKae8szg3EYLw((*cl0).typemap, LOC9); lookup0 = ((Ttype_LTUWCZolpovw9cWE3JBWSUw*) (LOC10)); { if (!!((lookup0 == NIM_NIL))) goto LA13; result0 = lookup0; goto BeforeRet; } LA13: ; } LA7: ; switch ((*t0).kind) { case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 9): { result0 = handlegenericinvocation_0MFAr9a79bLFEM8gy9cdgtELQ_3(cl0, t0); } break; case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 10): { NimStringDesc* LOC17; LOC17 = (NimStringDesc*)0; LOC17 = typetostring_iUZlBdvGqNPVN17wd9aVBNw(t0, ((Tprefereddesc_tnd4qt9c4xddV8oKV5zyusw) 0)); localerror_VpilfPWbplGz6ny7O9cfr2g((*cl0).info, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 127), LOC17); result0 = errortype_ShA6p2jJG1xQ4GbGPvr38g((*cl0).c); } break; case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 60): { Tnode_bROa11lyF5vxEN9aYNbHmhw* n0; { if (!(*cl0).allowmetatypes) goto LA21; goto BeforeRet; } LA21: ; n0 = preparenode_gKp9aBprbf0cqtXoSYBnCkw(cl0, (*t0).n); { if (!!(((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA25; n0 = (*(*cl0).c).semconstexpr((*cl0).c, n0); } LA25: ; { if (!((*(*n0).typ).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA29; result0 = skiptypes_pLCdCGDuirMe9cspwviV9aVA((*n0).typ, 256); } goto LA27; LA29: ; { { TY_BF9aKj6RAH9ccQDWaEKQ1HOw LOC36; if (!!(((*(*n0).typ).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 59)))) goto LA34; result0 = newtypes_9cQrDprXawJ1DKOUTsPNMTg(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 59), (*cl0).c); if ((*result0).sons) nimGCunrefNoCycle((*result0).sons); (*result0).sons = (TY_zuqP4Riz26Oi5fWgPYVEgA*) newSeqRC1((&NTI_zuqP4Riz26Oi5fWgPYVEgA), 1); memset((void*)LOC36, 0, sizeof(LOC36)); LOC36[0] = (*n0).typ; asgnRefNoCycle((void**) (&(*result0).sons->data[0]), LOC36[0]); asgnRefNoCycle((void**) (&(*result0).n), n0); } goto LA32; LA34: ; { result0 = (*n0).typ; } LA32: ; } LA27: ; } break; case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 31): case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 36): { result0 = skipintlit_Wqqd75hh0NzCssCyCNzd9agmagicsys(t0); } break; case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 8): { Ttype_LTUWCZolpovw9cWE3JBWSUw* lookup0; Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC40; TNimObject* LOC41; LOC40 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC40 = &t0->Sup; LOC41 = (TNimObject*)0; LOC41 = idtableget_D12lVDWWPrKae8szg3EYLw((*cl0).typemap, LOC40); lookup0 = ((Ttype_LTUWCZolpovw9cWE3JBWSUw*) (LOC41)); { if (!!((lookup0 == NIM_NIL))) goto LA44; result0 = lookup0; { NIM_BOOL LOC48; LOC48 = (NIM_BOOL)0; LOC48 = (((*t0).flags &(1U<<((NU)(((Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw) 9))&31U)))!=0); if (LOC48) goto LA49; LOC48 = (*cl0).skiptypedesc; LA49: ; if (!LOC48) goto LA50; result0 = base_46gPaVDDGhiU69b2oKDJZuA(result0); } LA50: ; } goto LA42; LA44: ; { Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC55; if (!!(((*(*t0).sons->data[((NI) 0)]).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 0)))) goto LA53; LOC55 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC55 = replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ(cl0, (*t0).sons->data[((NI) 0)]); result0 = maketypedesc_CqYEBJKDkKTW89cDtM9aYg4g((*cl0).c, LOC55); } goto LA42; LA53: ; LA42: ; } break; case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 52): { result0 = t0; } break; case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 11): { Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC68; TNimObject* LOC69; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC74; { Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC62; TNimObject* LOC63; if (!(((NI) 100) < (*cl0).recursionlimit)) goto LA60; LOC62 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC62 = &t0->Sup; LOC63 = (TNimObject*)0; LOC63 = idtableget_D12lVDWWPrKae8szg3EYLw((*cl0).localcache, LOC62); result0 = ((Ttype_LTUWCZolpovw9cWE3JBWSUw*) (LOC63)); { if (!!((result0 == NIM_NIL))) goto LA66; goto BeforeRet; } LA66: ; } LA60: ; (*cl0).recursionlimit += ((NI) 1); result0 = instcopytype_b9aBYowK1Ij4sKZs0TgWHnA(cl0, t0); LOC68 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC68 = &t0->Sup; LOC69 = (TNimObject*)0; LOC69 = &result0->Sup.Sup; idtableput_3gLsywwJ9bZDaf06DfKpYbw((&(*cl0).localcache), LOC68, LOC69); { NI i_a72lMqX0nUATf4LsKZLD9bA; NI HEX3Atmp_MOAi7IL89b6PjWHz0BvFKvg; NI LOC71; NI res_hPIUWLcWnGg3c2c8Y8p5sw; i_a72lMqX0nUATf4LsKZLD9bA = (NI)0; HEX3Atmp_MOAi7IL89b6PjWHz0BvFKvg = (NI)0; LOC71 = (NI)0; LOC71 = sonslen_gG7hUAX9cA629ahMLVL3xN4w(result0); HEX3Atmp_MOAi7IL89b6PjWHz0BvFKvg = (LOC71 - 1); res_hPIUWLcWnGg3c2c8Y8p5sw = ((NI) 1); { while (1) { if (!(res_hPIUWLcWnGg3c2c8Y8p5sw <= HEX3Atmp_MOAi7IL89b6PjWHz0BvFKvg)) goto LA73; i_a72lMqX0nUATf4LsKZLD9bA = res_hPIUWLcWnGg3c2c8Y8p5sw; asgnRefNoCycle((void**) (&(*result0).sons->data[i_a72lMqX0nUATf4LsKZLD9bA]), replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ(cl0, (*result0).sons->data[i_a72lMqX0nUATf4LsKZLD9bA])); res_hPIUWLcWnGg3c2c8Y8p5sw += ((NI) 1); } LA73: ; } } LOC74 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC74 = lastson_E41DMKHtT9c6sAMyyvhmSIw(result0); propagatetoowner_25RD9cAXWAJ2zW7s6mQQfCw(result0, LOC74); } break; default: { { NIM_BOOL LOC78; Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC91; TNimObject* LOC92; LOC78 = (NIM_BOOL)0; LOC78 = containsgenerictype_Xhr5Lz1SR4KhD6lSHAyGDA(t0); if (!LOC78) goto LA79; { Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC85; TNimObject* LOC86; if (!(((NI) 100) < (*cl0).recursionlimit)) goto LA83; LOC85 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC85 = &t0->Sup; LOC86 = (TNimObject*)0; LOC86 = idtableget_D12lVDWWPrKae8szg3EYLw((*cl0).localcache, LOC85); result0 = ((Ttype_LTUWCZolpovw9cWE3JBWSUw*) (LOC86)); { if (!!((result0 == NIM_NIL))) goto LA89; goto BeforeRet; } LA89: ; } LA83: ; (*cl0).recursionlimit += ((NI) 1); result0 = instcopytype_b9aBYowK1Ij4sKZs0TgWHnA(cl0, t0); (*result0).size = IL64(-1); LOC91 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC91 = &t0->Sup; LOC92 = (TNimObject*)0; LOC92 = &result0->Sup.Sup; idtableput_3gLsywwJ9bZDaf06DfKpYbw((&(*cl0).localcache), LOC91, LOC92); { NI i_a72lMqX0nUATf4LsKZLD9bA_2; NI HEX3Atmp_MOAi7IL89b6PjWHz0BvFKvg_2; NI LOC94; NI res_hPIUWLcWnGg3c2c8Y8p5sw_2; i_a72lMqX0nUATf4LsKZLD9bA_2 = (NI)0; HEX3Atmp_MOAi7IL89b6PjWHz0BvFKvg_2 = (NI)0; LOC94 = (NI)0; LOC94 = sonslen_gG7hUAX9cA629ahMLVL3xN4w(result0); HEX3Atmp_MOAi7IL89b6PjWHz0BvFKvg_2 = (NI)(LOC94 - ((NI) 1)); res_hPIUWLcWnGg3c2c8Y8p5sw_2 = ((NI) 0); { while (1) { if (!(res_hPIUWLcWnGg3c2c8Y8p5sw_2 <= HEX3Atmp_MOAi7IL89b6PjWHz0BvFKvg_2)) goto LA96; i_a72lMqX0nUATf4LsKZLD9bA_2 = res_hPIUWLcWnGg3c2c8Y8p5sw_2; { Ttype_LTUWCZolpovw9cWE3JBWSUw* r0; if (!!(((*result0).sons->data[i_a72lMqX0nUATf4LsKZLD9bA_2] == NIM_NIL))) goto LA99; r0 = replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ(cl0, (*result0).sons->data[i_a72lMqX0nUATf4LsKZLD9bA_2]); { Ttype_LTUWCZolpovw9cWE3JBWSUw* r20; if (!((*result0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA103; r20 = skiptypes_pLCdCGDuirMe9cspwviV9aVA(r0, 2064); { if (!((*r20).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*r20).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA107; r0 = skiptypes_pLCdCGDuirMe9cspwviV9aVA(r20, 6291456); } LA107: ; } LA103: ; asgnRefNoCycle((void**) (&(*result0).sons->data[i_a72lMqX0nUATf4LsKZLD9bA_2]), r0); propagatetoowner_25RD9cAXWAJ2zW7s6mQQfCw(result0, r0); } LA99: ; res_hPIUWLcWnGg3c2c8Y8p5sw_2 += ((NI) 1); } LA96: ; } } asgnRefNoCycle((void**) (&(*result0).n), replacetypevarsn_TMTYUYo5YIKojKgBmj9boOQ(cl0, (*result0).n, ((NI) (((*result0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 25)))))); switch ((*result0).kind) { case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 16): { Ttype_LTUWCZolpovw9cWE3JBWSUw* idx0; idx0 = (*result0).sons->data[((NI) 0)]; { NimStringDesc* LOC114; if (!!(!(((*idx0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 59))))) goto LA112; LOC114 = (NimStringDesc*)0; LOC114 = HEX24_k53Ge4e9cDjc7y9c5uML7sPQ(T_mrkrD9c2e31kE4GdQtpMdaQ_8); internalerror_5XY9cUy7hZmUusM38U9cYYdw(LOC114); } LA112: ; } break; case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 17): case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 18): { propagatefieldflags_10MNs5SJa8Vc6z11wRYAuw(result0, (*result0).n); } break; case ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 25): { erasevoidparams_IjFFjY79a5Qy1exgpfVgQ4g(result0); skipintliteralparams_SWD6AyXwYcQVjtguU79adwQ(result0); } break; default: { } break; } } LA79: ; } break; } }BeforeRet: ; return result0; } N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; result0 = replacetypevarstaux_0MFAr9a79bLFEM8gy9cdgtELQ_2(cl0, t0); return result0; } N_NIMCALL(NIM_BOOL, istypeparam_u68mEkLdR18iAnbsLA6Rgg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { NIM_BOOL result0; NIM_BOOL LOC1; NIM_BOOL LOC3; NIM_BOOL LOC5; { result0 = (NIM_BOOL)0; LOC1 = (NIM_BOOL)0; LOC1 = ((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3)); if (!(LOC1)) goto LA2; LOC3 = (NIM_BOOL)0; LOC3 = ((*(*n0).kindU.S4.sym).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 4)); if (LOC3) goto LA4; LOC5 = (NIM_BOOL)0; LOC5 = ((*(*n0).kindU.S4.sym).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 7)); if (!(LOC5)) goto LA6; LOC5 = (((*(*n0).kindU.S4.sym).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 2))&31U)))!=0); LA6: ; LOC3 = LOC5; LA4: ; LOC1 = LOC3; LA2: ; result0 = LOC1; goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, reresolvecallswithtypedescparams_sMLp8yxUilACnyKrAFoTOA)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; { result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NIM_BOOL LOC3; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC5; NIM_BOOL needsfixing0; LOC3 = (NIM_BOOL)0; LOC3 = ((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 32)); if (!(LOC3)) goto LA4; LOC5 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC5 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, ((NI) 0)); LOC3 = (((*(*LOC5).kindU.S4.sym).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 2))&31U)))!=0); LA4: ; if (!LOC3) goto LA6; needsfixing0 = NIM_FALSE; { NI i_U8eARkeHCmCN9cs0ikKzTNw; NI HEX3Atmp_rj2SQAkOIn9ackmco8w6XKQ; NI LOC9; NI res_ZCVlDtH12s6W48R1Jh6Tcg; i_U8eARkeHCmCN9cs0ikKzTNw = (NI)0; HEX3Atmp_rj2SQAkOIn9ackmco8w6XKQ = (NI)0; LOC9 = (NI)0; LOC9 = safelen_CdME9baJhvveuPEDZE9bXoxAsigmatch(n0); HEX3Atmp_rj2SQAkOIn9ackmco8w6XKQ = (LOC9 - 1); res_ZCVlDtH12s6W48R1Jh6Tcg = ((NI) 1); { while (1) { if (!(res_ZCVlDtH12s6W48R1Jh6Tcg <= HEX3Atmp_rj2SQAkOIn9ackmco8w6XKQ)) goto LA11; i_U8eARkeHCmCN9cs0ikKzTNw = res_ZCVlDtH12s6W48R1Jh6Tcg; { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC14; NIM_BOOL LOC15; LOC14 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC14 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, i_U8eARkeHCmCN9cs0ikKzTNw); LOC15 = (NIM_BOOL)0; LOC15 = istypeparam_u68mEkLdR18iAnbsLA6Rgg(LOC14); if (!LOC15) goto LA16; needsfixing0 = NIM_TRUE; } LA16: ; res_ZCVlDtH12s6W48R1Jh6Tcg += ((NI) 1); } LA11: ; } } { if (!needsfixing0) goto LA20; asgnRefNoCycle((void**) (&(*n0).kindU.S6.sons->data[((NI) 0)]), newsymnode_1ARBpggFQuvUDBVYjBelcw((*(*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).owner)); result0 = (*(*cl0).c).semoverloadedcall((*cl0).c, n0, n0, 4096); goto BeforeRet; } LA20: ; } LA6: ; { NI i_U8eARkeHCmCN9cs0ikKzTNw_2; NI HEX3Atmp_rj2SQAkOIn9ackmco8w6XKQ_2; NI LOC23; NI res_ZCVlDtH12s6W48R1Jh6Tcg_2; i_U8eARkeHCmCN9cs0ikKzTNw_2 = (NI)0; HEX3Atmp_rj2SQAkOIn9ackmco8w6XKQ_2 = (NI)0; LOC23 = (NI)0; LOC23 = safelen_CdME9baJhvveuPEDZE9bXoxAsigmatch(n0); HEX3Atmp_rj2SQAkOIn9ackmco8w6XKQ_2 = (LOC23 - 1); res_ZCVlDtH12s6W48R1Jh6Tcg_2 = ((NI) 0); { while (1) { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC26; if (!(res_ZCVlDtH12s6W48R1Jh6Tcg_2 <= HEX3Atmp_rj2SQAkOIn9ackmco8w6XKQ_2)) goto LA25; i_U8eARkeHCmCN9cs0ikKzTNw_2 = res_ZCVlDtH12s6W48R1Jh6Tcg_2; LOC26 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC26 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, i_U8eARkeHCmCN9cs0ikKzTNw_2); asgnRefNoCycle((void**) (&(*n0).kindU.S6.sons->data[i_U8eARkeHCmCN9cs0ikKzTNw_2]), reresolvecallswithtypedescparams_sMLp8yxUilACnyKrAFoTOA(cl0, LOC26)); res_ZCVlDtH12s6W48R1Jh6Tcg_2 += ((NI) 1); } LA25: ; } } result0 = n0; goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, replacetypevarsn_TMTYUYo5YIKojKgBmj9boOQ)(Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg* cl0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n_ftT2MWlQLa2i76jcszbEdg, NI start0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; { result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { if (!(n_ftT2MWlQLa2i76jcszbEdg == NIM_NIL)) goto LA3; goto BeforeRet; } LA3: ; result0 = copynode_lz8T1F9c0YwEOpUnrAUYgjg(n_ftT2MWlQLa2i76jcszbEdg); { if (!!(((*n_ftT2MWlQLa2i76jcszbEdg).typ == NIM_NIL))) goto LA7; asgnRefNoCycle((void**) (&(*result0).typ), replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ(cl0, (*n_ftT2MWlQLa2i76jcszbEdg).typ)); } LA7: ; switch ((*n_ftT2MWlQLa2i76jcszbEdg).kind) { case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 2): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23): { } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3): { asgnRefNoCycle((void**) (&(*result0).kindU.S4.sym), replacetypevarss_aS9ajWMKW64cZlNljoqEWtA(cl0, (*n_ftT2MWlQLa2i76jcszbEdg).kindU.S4.sym)); { TY_ehmV9bTklH2Gt9cXHV9c0HLeQ* LOC15; if (!((*(*(*result0).kindU.S4.sym).typ).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 62))) goto LA13; LOC15 = (TY_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0; LOC15 = (TY_ehmV9bTklH2Gt9cXHV9c0HLeQ*) newSeq((&NTI_ehmV9bTklH2Gt9cXHV9c0HLeQ), 0); result0 = newnode_o9aHrUvOCIeQhfywzvo7yOA(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n_ftT2MWlQLa2i76jcszbEdg).info, LOC15, NIM_NIL); } LA13: ; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 140): { Tnode_bROa11lyF5vxEN9aYNbHmhw* branch0; branch0 = NIM_NIL; { NI i_hhuF9aXdNHlZWpTXwiEIYFQ; NI HEX3Atmp_lb7ZhG5ZMsKS9bRVQTa9b9amA; NI LOC18; NI res_Cs0QC8JS8SPEixF59chK9c5A; i_hhuF9aXdNHlZWpTXwiEIYFQ = (NI)0; HEX3Atmp_lb7ZhG5ZMsKS9bRVQTa9b9amA = (NI)0; LOC18 = (NI)0; LOC18 = sonslen_qPWPHw7WgJeEVYUdcaRIig(n_ftT2MWlQLa2i76jcszbEdg); HEX3Atmp_lb7ZhG5ZMsKS9bRVQTa9b9amA = (NI)(LOC18 - ((NI) 1)); res_Cs0QC8JS8SPEixF59chK9c5A = ((NI) 0); { while (1) { Tnode_bROa11lyF5vxEN9aYNbHmhw* it0; if (!(res_Cs0QC8JS8SPEixF59chK9c5A <= HEX3Atmp_lb7ZhG5ZMsKS9bRVQTa9b9amA)) goto LA20; i_hhuF9aXdNHlZWpTXwiEIYFQ = res_Cs0QC8JS8SPEixF59chK9c5A; it0 = (*n_ftT2MWlQLa2i76jcszbEdg).kindU.S6.sons->data[i_hhuF9aXdNHlZWpTXwiEIYFQ]; { if (!(it0 == NIM_NIL)) goto LA23; illformedast_DpsImAn3UbwOKcZFm2pVSg(n_ftT2MWlQLa2i76jcszbEdg); } LA23: ; switch ((*it0).kind) { case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 86): { Tnode_bROa11lyF5vxEN9aYNbHmhw* cond0; Tnode_bROa11lyF5vxEN9aYNbHmhw* e0; checksonslen_rPu9akNNYZgL0UexjMvt0HA(it0, ((NI) 2)); cond0 = preparenode_gKp9aBprbf0cqtXoSYBnCkw(cl0, (*it0).kindU.S6.sons->data[((NI) 0)]); e0 = (*(*cl0).c).semconstexpr((*cl0).c, cond0); { if (!!(((*e0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA28; internalerror_MXmtqrCmYwtOPkDCFgUWKQ((*e0).info, ((NimStringDesc*) &T_mrkrD9c2e31kE4GdQtpMdaQ_10)); } LA28: ; { NIM_BOOL LOC32; LOC32 = (NIM_BOOL)0; LOC32 = !(((*e0).kindU.S1.intval == IL64(0))); if (!(LOC32)) goto LA33; LOC32 = (branch0 == NIM_NIL); LA33: ; if (!LOC32) goto LA34; branch0 = (*it0).kindU.S6.sons->data[((NI) 1)]; } LA34: ; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 88): { checksonslen_rPu9akNNYZgL0UexjMvt0HA(it0, ((NI) 1)); { if (!(branch0 == NIM_NIL)) goto LA39; branch0 = (*it0).kindU.S6.sons->data[((NI) 0)]; } LA39: ; } break; default: { illformedast_DpsImAn3UbwOKcZFm2pVSg(n_ftT2MWlQLa2i76jcszbEdg); } break; } res_Cs0QC8JS8SPEixF59chK9c5A += ((NI) 1); } LA20: ; } } { if (!!((branch0 == NIM_NIL))) goto LA44; result0 = replacetypevarsn_TMTYUYo5YIKojKgBmj9boOQ(cl0, branch0, ((NI) 0)); } goto LA42; LA44: ; { result0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n_ftT2MWlQLa2i76jcszbEdg).info); } LA42: ; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 62): { Tnode_bROa11lyF5vxEN9aYNbHmhw* n0; n0 = preparenode_gKp9aBprbf0cqtXoSYBnCkw(cl0, n_ftT2MWlQLa2i76jcszbEdg); n0 = reresolvecallswithtypedescparams_sMLp8yxUilACnyKrAFoTOA(cl0, n0); { if (!(*cl0).allowmetatypes) goto LA50; result0 = n0; } goto LA48; LA50: ; { result0 = (*(*cl0).c).semexpr((*cl0).c, n0, 0); } LA48: ; } break; default: { NI length0; length0 = sonslen_qPWPHw7WgJeEVYUdcaRIig(n_ftT2MWlQLa2i76jcszbEdg); { if (!(((NI) 0) < length0)) goto LA56; newsons_W9cZG9c5PyHYZPzxHXuunFyQ(result0, length0); { if (!(((NI) 0) < start0)) goto LA60; asgnRefNoCycle((void**) (&(*result0).kindU.S6.sons->data[((NI) 0)]), (*n_ftT2MWlQLa2i76jcszbEdg).kindU.S6.sons->data[((NI) 0)]); } LA60: ; { NI i_hhuF9aXdNHlZWpTXwiEIYFQ_2; NI HEX3Atmp_lb7ZhG5ZMsKS9bRVQTa9b9amA_2; NI res_Cs0QC8JS8SPEixF59chK9c5A_2; i_hhuF9aXdNHlZWpTXwiEIYFQ_2 = (NI)0; HEX3Atmp_lb7ZhG5ZMsKS9bRVQTa9b9amA_2 = (NI)0; HEX3Atmp_lb7ZhG5ZMsKS9bRVQTa9b9amA_2 = (NI)(length0 - ((NI) 1)); res_Cs0QC8JS8SPEixF59chK9c5A_2 = start0; { while (1) { if (!(res_Cs0QC8JS8SPEixF59chK9c5A_2 <= HEX3Atmp_lb7ZhG5ZMsKS9bRVQTa9b9amA_2)) goto LA64; i_hhuF9aXdNHlZWpTXwiEIYFQ_2 = res_Cs0QC8JS8SPEixF59chK9c5A_2; asgnRefNoCycle((void**) (&(*result0).kindU.S6.sons->data[i_hhuF9aXdNHlZWpTXwiEIYFQ_2]), replacetypevarsn_TMTYUYo5YIKojKgBmj9boOQ(cl0, (*n_ftT2MWlQLa2i76jcszbEdg).kindU.S6.sons->data[i_hhuF9aXdNHlZWpTXwiEIYFQ_2], ((NI) 0))); res_Cs0QC8JS8SPEixF59chK9c5A_2 += ((NI) 1); } LA64: ; } } } LA56: ; } break; } }BeforeRet: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, replacetypesinbody_B4zyXrESj1hI8fRLnmKryA)(Tcontext_5TfOJKwTttj3W1t1tMzWUQ* p0, Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q pt0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg cl0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; memset((void*)(&cl0), 0, sizeof(cl0)); chckNil((void*)(&cl0)); memset((void*)(&cl0), 0, sizeof(cl0)); inittypevars_B6DfgKqYd3MzIbY05bllqg(p0, pt0, (*n0).info, owner0, (&cl0)); pushinfocontext_zQWo2MALtrYvLPyMtv28iA((*n0).info); result0 = replacetypevarsn_TMTYUYo5YIKojKgBmj9boOQ((&cl0), n0, ((NI) 0)); popinfocontext_GmmyRSXe1noER8ex1U9aGUA(); return result0; } N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, generatetypeinstance_J1KXEIMiOMsSsHjeCCCXbQ)(Tcontext_5TfOJKwTttj3W1t1tMzWUQ* p0, Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q pt0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Ttype_LTUWCZolpovw9cWE3JBWSUw* t0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; Trepltypevars_gMP9b9b8d4Uze3mE5G9aP9afmg cl0; result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; memset((void*)(&cl0), 0, sizeof(cl0)); chckNil((void*)(&cl0)); memset((void*)(&cl0), 0, sizeof(cl0)); inittypevars_B6DfgKqYd3MzIbY05bllqg(p0, pt0, info0, NIM_NIL, (&cl0)); pushinfocontext_zQWo2MALtrYvLPyMtv28iA(info0); result0 = replacetypevarst_0MFAr9a79bLFEM8gy9cdgtELQ((&cl0), t0); popinfocontext_GmmyRSXe1noER8ex1U9aGUA(); return result0; } N_NIMCALL(NIM_BOOL, hasgenericarguments_u68mEkLdR18iAnbsLA6Rgg_2)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { NIM_BOOL result0; { result0 = (NIM_BOOL)0; { NIM_BOOL LOC5; NIM_BOOL LOC7; if (!((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3; LOC5 = (NIM_BOOL)0; LOC5 = ((*(*n0).kindU.S4.sym).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 4)); if (LOC5) goto LA6; LOC7 = (NIM_BOOL)0; LOC7 = ((*(*n0).kindU.S4.sym).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 7)); if (!(LOC7)) goto LA8; LOC7 = !((((*(*(*n0).kindU.S4.sym).typ).flags & 25165824) == 0)); LA8: ; LOC5 = LOC7; LA6: ; result0 = LOC5; goto BeforeRet; } goto LA1; LA3: ; { { NI i_tEv7FmC2dc76fyq8nBi1mQ; NI HEX3Atmp_gTUYl9aRHP5RQRYaTATLd5w; NI LOC11; NI res_nsX6Wrrv8YbFJd3NCzy2QQ; i_tEv7FmC2dc76fyq8nBi1mQ = (NI)0; HEX3Atmp_gTUYl9aRHP5RQRYaTATLd5w = (NI)0; LOC11 = (NI)0; LOC11 = safelen_CdME9baJhvveuPEDZE9bXoxAsigmatch(n0); HEX3Atmp_gTUYl9aRHP5RQRYaTATLd5w = (LOC11 - 1); res_nsX6Wrrv8YbFJd3NCzy2QQ = ((NI) 0); { while (1) { if (!(res_nsX6Wrrv8YbFJd3NCzy2QQ <= HEX3Atmp_gTUYl9aRHP5RQRYaTATLd5w)) goto LA13; i_tEv7FmC2dc76fyq8nBi1mQ = res_nsX6Wrrv8YbFJd3NCzy2QQ; { NIM_BOOL LOC16; LOC16 = (NIM_BOOL)0; LOC16 = hasgenericarguments_u68mEkLdR18iAnbsLA6Rgg_2((*n0).kindU.S6.sons->data[i_tEv7FmC2dc76fyq8nBi1mQ]); if (!LOC16) goto LA17; result0 = NIM_TRUE; goto BeforeRet; } LA17: ; res_nsX6Wrrv8YbFJd3NCzy2QQ += ((NI) 1); } LA13: ; } } result0 = NIM_FALSE; goto BeforeRet; } LA1: ; }BeforeRet: ; return result0; } N_NIMCALL(void, checkconstructedtype_DjnhSDYiTT9aAcoOKm9bgFaQ)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Ttype_LTUWCZolpovw9cWE3JBWSUw* typ0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* t0; t0 = skiptypes_pLCdCGDuirMe9cspwviV9aVA(typ0, 8192); { if (!((*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 51) || (*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 54) || (*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 52) || (*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 53) || (*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 55) || (*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 56) || (*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 57) || (*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 58))) goto LA3; } goto LA1; LA3: ; { NIM_BOOL LOC6; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC8; LOC6 = (NIM_BOOL)0; LOC6 = (((*t0).flags &(1U<<((NU)(((Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw) 4))&31U)))!=0); if (!(LOC6)) goto LA7; LOC8 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC8 = skiptypes_pLCdCGDuirMe9cspwviV9aVA(t0, 43280); LOC6 = !(((*LOC8).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 17))); LA7: ; if (!LOC6) goto LA9; localerror_VpilfPWbplGz6ny7O9cfr2g(info0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 165), ((NimStringDesc*) &T_mrkrD9c2e31kE4GdQtpMdaQ_6)); } goto LA1; LA9: ; { NIM_BOOL LOC12; LOC12 = (NIM_BOOL)0; LOC12 = ((*t0).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 23)); if (!(LOC12)) goto LA13; LOC12 = ((*(*t0).sons->data[((NI) 0)]).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 23)); LA13: ; if (!LOC12) goto LA14; localerror_VpilfPWbplGz6ny7O9cfr2g(info0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 201), ((NimStringDesc*) &T_mrkrD9c2e31kE4GdQtpMdaQ_7)); } goto LA1; LA14: ; { NI64 LOC17; NimStringDesc* LOC20; LOC17 = (NI64)0; LOC17 = computesize_spMpEAO8ubfQavMigOxQdA_2(t0); if (!(LOC17 == IL64(-2))) goto LA18; LOC20 = (NimStringDesc*)0; LOC20 = typetostring_iUZlBdvGqNPVN17wd9aVBNw(t0, ((Tprefereddesc_tnd4qt9c4xddV8oKV5zyusw) 0)); localerror_VpilfPWbplGz6ny7O9cfr2g(info0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 126), LOC20); } goto LA1; LA18: ; LA1: ; } NIM_EXTERNC N_NOINLINE(void, compiler_semtypinstInit000)(void) { } NIM_EXTERNC N_NOINLINE(void, compiler_semtypinstDatInit000)(void) { }