/* 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 Tsym_AXG7xcvKqaxY6koRX1xkCw Tsym_AXG7xcvKqaxY6koRX1xkCw; typedef struct Ttype_LTUWCZolpovw9cWE3JBWSUw Ttype_LTUWCZolpovw9cWE3JBWSUw; typedef struct Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ; typedef struct Intset_PQrmFm4BXFkFSVOUl1ojSg Intset_PQrmFm4BXFkFSVOUl1ojSg; typedef struct Trunk_ul49aWfv9aes8cutmeltT3gQ Trunk_ul49aWfv9aes8cutmeltT3gQ; typedef struct TY_9brg1xNurxcus33lU4IE1Dw TY_9brg1xNurxcus33lU4IE1Dw; typedef struct Table_NpjDKtgjRLp82BuThYZLAw Table_NpjDKtgjRLp82BuThYZLAw; typedef struct TY_bAbxBa4xUcordBcoebNUJA TY_bAbxBa4xUcordBcoebNUJA; 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_DXS6mEo7PVUFJkirsQ9bNQA TY_DXS6mEo7PVUFJkirsQ9bNQA; typedef struct Tstrtable_f07aOS3dr28kGa5wcE29aFA Tstrtable_f07aOS3dr28kGa5wcE29aFA; typedef struct TY_sksVpmPRIkNR9axiwtD1Guw TY_sksVpmPRIkNR9axiwtD1Guw; typedef struct Tident_4umxGerWTHGPwUms7Yqu3g Tident_4umxGerWTHGPwUms7Yqu3g; typedef struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw; typedef struct Tloc_EtHNvCB0bgfu9bFjzx9cb6aA Tloc_EtHNvCB0bgfu9bFjzx9cb6aA; typedef struct Ropeobj_HF4qJnb6xiOddgPmsxodtQ Ropeobj_HF4qJnb6xiOddgPmsxodtQ; typedef struct Tlib_4f9aBgmqEuj7uWJdBBGcRgA Tlib_4f9aBgmqEuj7uWJdBBGcRgA; typedef struct Liftingpass_xciiuOR269bKYtnZXJZ4Npw Liftingpass_xciiuOR269bKYtnZXJZ4Npw; typedef struct Table_oQfDu9cXwlXXh879bYXyEd8g Table_oQfDu9cXwlXXh879bYXyEd8g; typedef struct TY_YuKuU17u5ApAIki23DK9bJw TY_YuKuU17u5ApAIki23DK9bJw; typedef struct TY_iGkpo9aKQdr3NWelKC4cnJA TY_iGkpo9aKQdr3NWelKC4cnJA; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ TY_ehmV9bTklH2Gt9cXHV9c0HLeQ; 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 TY_iBvq4fj35BMkXhywDd7OrQ TY_iBvq4fj35BMkXhywDd7OrQ; typedef struct Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA; typedef struct Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q; typedef struct TY_Wymbvuvlf49clEgp9bKoFN9bw TY_Wymbvuvlf49clEgp9bKoFN9bw; typedef struct TY_a09bGTAl9ceOKTAytYdkbyKg TY_a09bGTAl9ceOKTAytYdkbyKg; typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w; typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ; struct Intset_PQrmFm4BXFkFSVOUl1ojSg { NI counter; NI max; Trunk_ul49aWfv9aes8cutmeltT3gQ* head; TY_9brg1xNurxcus33lU4IE1Dw* data; }; struct Table_NpjDKtgjRLp82BuThYZLAw { TY_bAbxBa4xUcordBcoebNUJA* data; NI counter; }; struct Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ { Intset_PQrmFm4BXFkFSVOUl1ojSg processed; Intset_PQrmFm4BXFkFSVOUl1ojSg capturedvars; Table_NpjDKtgjRLp82BuThYZLAw ownertotype; NIM_BOOL somethingtodo; }; 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 Tsymkind_cNCW9acsSznmEccl1fgQwkw; struct Tstrtable_f07aOS3dr28kGa5wcE29aFA { NI counter; TY_sksVpmPRIkNR9axiwtD1Guw* data; }; typedef NU16 Tmagic_shZhZOdbVC5nnFvcXQAImg; struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw { NI16 line; NI16 col; NI32 fileindex; }; typedef NU32 Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set; typedef NU32 Toption_WspMeQySXNP2XoTWR5MTgg_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 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; }; struct Table_oQfDu9cXwlXXh879bYXyEd8g { TY_YuKuU17u5ApAIki23DK9bJw* data; NI counter; }; struct Liftingpass_xciiuOR269bKYtnZXJZ4Npw { Intset_PQrmFm4BXFkFSVOUl1ojSg processed; Table_oQfDu9cXwlXXh879bYXyEd8g envvars; }; typedef NU8 Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA; typedef NU8 Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag; typedef NU32 Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set; 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; }; 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; }; struct Tident_4umxGerWTHGPwUms7Yqu3g { Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup; NimStringDesc* s; Tident_4umxGerWTHGPwUms7Yqu3g* next; NI h; }; 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 Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw; typedef NU64 Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag_Set; typedef NU16 Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw; typedef NU8 Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw; typedef Tnode_bROa11lyF5vxEN9aYNbHmhw* TY_AB6yfoUgfWM2NtGe9bzkCmw[2]; typedef NU8 Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg; typedef NU8 Tcommands_VH3ghgQVwLSg3krOAoXigw; typedef NI TY_9agrCtWKhCnWWMJpKKugJag[16]; struct Trunk_ul49aWfv9aes8cutmeltT3gQ { Trunk_ul49aWfv9aes8cutmeltT3gQ* next; NI key; TY_9agrCtWKhCnWWMJpKKugJag bits; }; struct TY_iBvq4fj35BMkXhywDd7OrQ { NI Field0; NI Field1; Ttype_LTUWCZolpovw9cWE3JBWSUw* Field2; }; typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ; struct TNimNode { Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; 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 TY_Wymbvuvlf49clEgp9bKoFN9bw { NI Field0; NI Field1; Tnode_bROa11lyF5vxEN9aYNbHmhw* Field2; }; struct TY_a09bGTAl9ceOKTAytYdkbyKg { NI Field0; Tsym_AXG7xcvKqaxY6koRX1xkCw* Field1; }; 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; }; 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 Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA { Tsym_AXG7xcvKqaxY6koRX1xkCw* sym; TY_zuqP4Riz26Oi5fWgPYVEgA* concretetypes; NI compilesid; }; struct Freecell_u6M5LHprqzkn9axr04yg9bGQ { Freecell_u6M5LHprqzkn9axr04yg9bGQ* next; NI zerofield; }; struct TY_9brg1xNurxcus33lU4IE1Dw { TGenericSeq Sup; Trunk_ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE]; }; struct TY_bAbxBa4xUcordBcoebNUJA { TGenericSeq Sup; TY_iBvq4fj35BMkXhywDd7OrQ data[SEQ_DECL_SIZE]; }; struct TY_zuqP4Riz26Oi5fWgPYVEgA { TGenericSeq Sup; Ttype_LTUWCZolpovw9cWE3JBWSUw* 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_YuKuU17u5ApAIki23DK9bJw { TGenericSeq Sup; TY_Wymbvuvlf49clEgp9bKoFN9bw 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]; }; N_NIMCALL(void, initdetectionpass_7sM9c9bcbcVQx7BTqh2PiMyA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* fn0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* Result); N_NIMCALL(void, initintset_a9a80eJplB17xrdZJ41Baww)(Intset_PQrmFm4BXFkFSVOUl1ojSg* Result); N_NIMCALL(void, inittable_Kr5n5hiph0hPrCOizYEDCg)(NI initialsize0, Table_NpjDKtgjRLp82BuThYZLAw* Result); N_NIMCALL(void, incl_iUpE9bYmIR0fROyJskQwN8g)(Intset_PQrmFm4BXFkFSVOUl1ojSg* s0, NI key0); N_NOINLINE(void, chckNil)(void* p0); N_NIMCALL(void, initliftingpass_62bdir8veRlom0cBrOUW9bA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* fn0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* Result); N_NIMCALL(void, inittable_J1vlMy8ICF252ouHxZ5SqQ)(NI initialsize0, Table_oQfDu9cXwlXXh879bYXyEd8g* Result); N_NIMCALL(void, HEX5BHEX5DHEX3D_pJMT9adwe5BrCeachvpnv9ag)(Table_NpjDKtgjRLp82BuThYZLAw* t0, NI key0, Ttype_LTUWCZolpovw9cWE3JBWSUw* val0); N_NIMCALL(void, detectcapturedvars_G0sYb9cMklOSIXYgdKvwboA)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* c0); N_NIMCALL(void, addclosureparam_WJOZqUrl4mMyPmygOoI0sQ)(Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* c0, Tsym_AXG7xcvKqaxY6koRX1xkCw* fn0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, getenvparam_qj1Hj30TtUYCPgOKm6E9crQ)(Tsym_AXG7xcvKqaxY6koRX1xkCw* routine0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, lastson_esDJA7239bJDiq4UrX9aHCjg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0); static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a0, void* b0, NI size0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, skipgenericowner_ugWPlZqqVshHUeOH4zw3vA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, getenvtypeforowner_QYyRSNqFuyfOx30LZIpqgw)(Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* c0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, getordefault_RL2E4O6HwEm70OzqxfmT4A)(Table_NpjDKtgjRLp82BuThYZLAw t0, NI key0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, newtype_FL9cZh2bRuJE31MWfcWQ4Yg)(Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag kind0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, createenvobj_y7R8owDkDG7JwQANIXg6og)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, createobj_tCygNbhBN9bFkvCkJXL9aWZg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(void, rawaddfield_1ZE9cbUzQqHwYsPuLXCFjVQ)(Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0, Tsym_AXG7xcvKqaxY6koRX1xkCw* field0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, createstatefield_MbjK6U9a6qlc6jCMQSOo5Qg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* iter0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, newsym_2uJTpCZGZAi7a4eAm1ds8Q)(Tsymkind_cNCW9acsSznmEccl1fgQwkw symkind0, Tident_4umxGerWTHGPwUms7Yqu3g* name0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Tident_4umxGerWTHGPwUms7Yqu3g*, getident_oH8GBf4tG3b1F5BIuNPwtA)(NimStringDesc* identifier0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, createstatetype_Ym6CG3r1rvxc9aMAgptl2sA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* iter0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newnodei_PIqgSH9b0m7nFpOyXf9cpz5w)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(void, addson_gCCf68XrWL79bKes6htzFjQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* father0, Tnode_bROa11lyF5vxEN9aYNbHmhw* son0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newintnode_v2VGJAZNfKPVngZCqEXQtA)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0, NI64 intval0); 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(Ttype_LTUWCZolpovw9cWE3JBWSUw*, nilorsysint_kinQ5u9ceusIOIKmkvpLhQQ)(void); N_NIMCALL(void, rawaddson_52UH8yKinsYmFX9bFij9c2Hw)(Ttype_LTUWCZolpovw9cWE3JBWSUw* father0, Ttype_LTUWCZolpovw9cWE3JBWSUw* son0); N_NIMCALL(void, addhiddenparam_FOD6f2j9bRVdfKUUxEKk9abg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* routine0, Tsym_AXG7xcvKqaxY6koRX1xkCw* param0); static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAlambdalifting)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newsymnode_1ARBpggFQuvUDBVYjBelcw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* sym0); N_NIMCALL(void, localerror_GarD0CQJ5aQhoHekHYinVQ)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, NimStringDesc* arg0); N_NIMCALL(NIM_BOOL, isinnerproc_ajzQZu4plYdRwZD9asUSy0g)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); N_NIMCALL(NIM_BOOL, containsorincl_B0EhVMrh5BBBZOOtYjAvVg)(Intset_PQrmFm4BXFkFSVOUl1ojSg* s0, NI key0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, getbody_eMf5HLowckpW9cDxAV9bNIZw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); static N_INLINE(NIM_BOOL, interestingitervar_UYKaGrUlDbbGlGF9c2hme0Alambdalifting)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, lastson_E41DMKHtT9c6sAMyyvhmSIw)(Ttype_LTUWCZolpovw9cWE3JBWSUw* n0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* routine0); static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0); static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest0, void* source0, NI size0); N_NIMCALL(NimStringDesc*, rawNewString)(NI space0); N_NIMCALL(void, addfield_1CQ9cxECTcbSPI3pM9bWZPYA)(Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0, Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); static N_INLINE(NIM_BOOL, interestingvar_UYKaGrUlDbbGlGF9c2hme0A_2lambdalifting)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); N_NIMCALL(void, markasclosure_bom3RshaecLKyfFP7rALtQ)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); static N_INLINE(NIM_BOOL, illegalcapture_UYKaGrUlDbbGlGF9c2hme0A_3lambdalifting)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, skiptypes_pLCdCGDuirMe9cspwviV9aVA)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t0, Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag_Set kinds0); N_NIMCALL(void, localerror_VpilfPWbplGz6ny7O9cfr2g)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0); N_NIMCALL(void, createupfield_KW0fKXrsUtvtiNKslSAAGQ)(Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* c0, Tsym_AXG7xcvKqaxY6koRX1xkCw* dest0, Tsym_AXG7xcvKqaxY6koRX1xkCw* dep0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, lookupinrecord_s51A17ot5EKQXx9bfMBO03w)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tident_4umxGerWTHGPwUms7Yqu3g* field0); static N_INLINE(Tnode_bROa11lyF5vxEN9aYNbHmhw*, HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, NI i0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, wrapiterbody_iIgrr9bvZJE8NSMwnlFN0Uw)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0); N_NIMCALL(void, add_gCCf68XrWL79bKes6htzFjQ_3)(Tnode_bROa11lyF5vxEN9aYNbHmhw* father0, Tnode_bROa11lyF5vxEN9aYNbHmhw* son0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* a0, Tsym_AXG7xcvKqaxY6koRX1xkCw* field0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, getstatefield_ezqDcwixWM86hcD9alLylJg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newinttypenode_v0NY9cuqixP6ToMm9avHw5ig)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0, NI64 intval0, Ttype_LTUWCZolpovw9cWE3JBWSUw* typ0); N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, getsystype_dewjtBqyEbcVGQRaQFtDAw)(Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag kind0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, getordefault_7OO5N4Ahz4d8VGzPmfi0Ag)(Table_oQfDu9cXwlXXh879bYXyEd8g t0, NI key0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newtree_4bkTFXme4frVOAuq2YEc4g)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0, Tnode_bROa11lyF5vxEN9aYNbHmhw** children0, NI children0Len0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, rawclosurecreation_r6pHmIfJ8SmeWGL2tSlDXA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, setupenvvar_r6pHmIfJ8SmeWGL2tSlDXA_2)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newenvvar_WzETt9b8PstsH7isuHSVuFw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Ttype_LTUWCZolpovw9cWE3JBWSUw* typ0); N_NIMCALL(void, HEX5BHEX5DHEX3D_TKCL4R1Tr9cxqLyNI9cn7igw)(Table_oQfDu9cXwlXXh879bYXyEd8g* t0, NI key0, Tnode_bROa11lyF5vxEN9aYNbHmhw* val0); N_NIMCALL(void, addvar_PhSnWtH9c5LFLMyViy9ciz8Q)(Tnode_bROa11lyF5vxEN9aYNbHmhw* father0, Tnode_bROa11lyF5vxEN9aYNbHmhw* v0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newcall_RtuHTJ0dw8HR3RBCEMIA5g)(Tsym_AXG7xcvKqaxY6koRX1xkCw* a0, Tnode_bROa11lyF5vxEN9aYNbHmhw* b0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, getsyssym_shbCpG9bVTG0JrTOcXxC2hQ)(NimStringDesc* name0); N_NIMCALL(NIM_BOOL, contains_sYBLNwnPJlAFi0nfWU79awg)(Intset_PQrmFm4BXFkFSVOUl1ojSg s0, NI key0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, indirectaccess_SPIn9atMD6qDWTu3U9aH9aPyg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* a0, Tsym_AXG7xcvKqaxY6koRX1xkCw* b0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newasgnstmt_CpTgUZ6pUrATklrOcO9cu9bg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* le0, Tnode_bROa11lyF5vxEN9aYNbHmhw* ri0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newnodei_jIQp9ciM8if1a6TX6toZelw)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, NI children0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, getupviaparam_ZQZvBtGLvvhwv24jWs1osg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, symtoclosure_U4G8bpOoRFQH33HjCOCFjQ_2)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, makeclosure_ro9aMvXuFEeNRoFQmHk7X7w)(Tsym_AXG7xcvKqaxY6koRX1xkCw* prc0, Tnode_bROa11lyF5vxEN9aYNbHmhw* env0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newnodeit_lbGnVdZM6n2HPza7jVIlww)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Ttype_LTUWCZolpovw9cWE3JBWSUw* typ0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, skipconv_6rsSLwtlU9c53a6w69be5JlQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, closurecreationforiter_aBUE4CjNZyw9ch83XM4bSVA)(Tnode_bROa11lyF5vxEN9aYNbHmhw* iter0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0); N_NIMCALL(void, adduniquefield_1CQ9cxECTcbSPI3pM9bWZPYA_2)(Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0, Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, accessviaenvparam_iIgrr9bvZJE8NSMwnlFN0Uw_2)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, getfieldfromobj_ew6R9a132KuZGJY10w29b9beg)(Ttype_LTUWCZolpovw9cWE3JBWSUw* t_wc8zMqNh1bhSskgREHTNMQ, Tsym_AXG7xcvKqaxY6koRX1xkCw* v0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, accessviaenvvar_U4G8bpOoRFQH33HjCOCFjQ_3)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, transformyield_U4G8bpOoRFQH33HjCOCFjQ_4)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, getiterresult_MbjK6U9a6qlc6jCMQSOo5Qg_2)(Tsym_AXG7xcvKqaxY6koRX1xkCw* iter0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, transformreturn_U4G8bpOoRFQH33HjCOCFjQ_5)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0); N_NIMCALL(NIM_BOOL, isgenericroutine_djUd579cPfs7OC9aZ8QT9cItg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); static N_INLINE(NIM_BOOL, liftingharmful_W40MyfRNIiM75iBdo9c9boFglambdalifting)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0); extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q; extern Tnode_bROa11lyF5vxEN9aYNbHmhw* emptynode_69ccLGuQ2mITw7zylZYtWcA; extern Tcommands_VH3ghgQVwLSg3krOAoXigw gcmd_0oKScFtMiSKnjiHF9cU9c5GQ; STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_2, ":envP", 5); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_3, ":state", 6); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_4, "internal error: inconsistent environment type", 45); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_5, "internal error: could not find env param for ", 45); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_6, "internal error: invalid up reference computed", 45); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_7, ":up", 3); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_8, "internal error: up references do not agree", 42); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_9, "internal error: could not determine closure type", 48); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_10, ":env", 4); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_11, "internalNew", 11); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_12, "could not find up reference for closure iter", 44); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_13, "internal error: cannot create up reference", 42); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_14, "internal error: taking closure of closure", 41); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_15, "internal error: cannot create up reference for iter", 51); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_16, "internal error: no environment found", 36); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_17, "internal error: environment misses: ", 36); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_18, "internal error: not part of closure object type", 47); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_19, ":result", 7); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_20, "ignored invalid for loop", 24); STRING_LITERAL(T_PI7oJkFuxeeTWjPTjlNxqg_21, "internal error: cannot generate fresh variable", 46); N_NIMCALL(void, initdetectionpass_7sM9c9bcbcVQx7BTqh2PiMyA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* fn0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* Result) { initintset_a9a80eJplB17xrdZJ41Baww((&(*Result).processed)); initintset_a9a80eJplB17xrdZJ41Baww((&(*Result).capturedvars)); inittable_Kr5n5hiph0hPrCOizYEDCg(((NI) 64), (&(*Result).ownertotype)); incl_iUpE9bYmIR0fROyJskQwN8g((&(*Result).processed), (*fn0).Sup.id); } N_NIMCALL(void, initliftingpass_62bdir8veRlom0cBrOUW9bA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* fn0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* Result) { initintset_a9a80eJplB17xrdZJ41Baww((&(*Result).processed)); incl_iUpE9bYmIR0fROyJskQwN8g((&(*Result).processed), (*fn0).Sup.id); inittable_J1vlMy8ICF252ouHxZ5SqQ(((NI) 64), (&(*Result).envvars)); } static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a0, void* b0, NI size0) { NIM_BOOL result0; int LOC1; result0 = (NIM_BOOL)0; LOC1 = (int)0; LOC1 = memcmp(a0, b0, ((size_t) (size0))); result0 = (LOC1 == ((NI32) 0)); return result0; } static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0) { NIM_BOOL result0; NIM_BOOL LOC11; { result0 = (NIM_BOOL)0; { if (!(a0 == b0)) goto LA3; result0 = NIM_TRUE; goto BeforeRet; } LA3: ; { NIM_BOOL LOC7; LOC7 = (NIM_BOOL)0; LOC7 = (a0 == NIM_NIL); if (LOC7) goto LA8; LOC7 = (b0 == NIM_NIL); LA8: ; if (!LOC7) goto LA9; result0 = NIM_FALSE; goto BeforeRet; } LA9: ; LOC11 = (NIM_BOOL)0; LOC11 = ((*a0).Sup.len == (*b0).Sup.len); if (!(LOC11)) goto LA12; LOC11 = equalmem_DCrUjdaMvFDHaR1hs7sQGwropes(((void*) ((*a0).data)), ((void*) ((*b0).data)), ((NI) ((*a0).Sup.len))); LA12: ; result0 = LOC11; goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, getenvparam_qj1Hj30TtUYCPgOKm6E9crQ)(Tsym_AXG7xcvKqaxY6koRX1xkCw* routine0) { Tsym_AXG7xcvKqaxY6koRX1xkCw* result0; Tnode_bROa11lyF5vxEN9aYNbHmhw* params0; Tnode_bROa11lyF5vxEN9aYNbHmhw* hidden0; result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; params0 = (*(*routine0).ast).kindU.S6.sons->data[((NI) 3)]; hidden0 = lastson_esDJA7239bJDiq4UrX9aHCjg(params0); { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = ((*hidden0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3)); if (!(LOC3)) goto LA4; LOC3 = eqStrings((*(*(*hidden0).kindU.S4.sym).name).s, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_2)); LA4: ; if (!LOC3) goto LA5; result0 = (*hidden0).kindU.S4.sym; } LA5: ; 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; } N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, createstatetype_Ym6CG3r1rvxc9aMAgptl2sA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* iter0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; Tnode_bROa11lyF5vxEN9aYNbHmhw* n0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC1; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC2; Ttype_LTUWCZolpovw9cWE3JBWSUw* inttype0; result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; n0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 44), (*iter0).info); LOC1 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC1 = newintnode_v2VGJAZNfKPVngZCqEXQtA(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(-1)); addson_gCCf68XrWL79bKes6htzFjQ(n0, LOC1); LOC2 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC2 = newintnode_v2VGJAZNfKPVngZCqEXQtA(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0)); addson_gCCf68XrWL79bKes6htzFjQ(n0, LOC2); result0 = newtype_FL9cZh2bRuJE31MWfcWQ4Yg(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 20), iter0); asgnRefNoCycle((void**) (&(*result0).n), n0); inttype0 = nilorsysint_kinQ5u9ceusIOIKmkvpLhQQ(); { if (!(inttype0 == 0)) goto LA5; inttype0 = newtype_FL9cZh2bRuJE31MWfcWQ4Yg(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 31), iter0); } LA5: ; rawaddson_52UH8yKinsYmFX9bFij9c2Hw(result0, inttype0); return result0; } N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, createstatefield_MbjK6U9a6qlc6jCMQSOo5Qg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* iter0) { Tsym_AXG7xcvKqaxY6koRX1xkCw* result0; Tident_4umxGerWTHGPwUms7Yqu3g* LOC1; result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC1 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0; LOC1 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_3)); result0 = newsym_2uJTpCZGZAi7a4eAm1ds8Q(((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 18), LOC1, iter0, (*iter0).info); asgnRefNoCycle((void**) (&(*result0).typ), createstatetype_Ym6CG3r1rvxc9aMAgptl2sA(iter0)); return result0; } N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, createenvobj_y7R8owDkDG7JwQANIXg6og)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC1; result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; result0 = createobj_tCygNbhBN9bFkvCkJXL9aWZg(owner0, info0); LOC1 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC1 = createstatefield_MbjK6U9a6qlc6jCMQSOo5Qg(owner0); rawaddfield_1ZE9cbUzQqHwYsPuLXCFjVQ(result0, LOC1); return result0; } N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, getenvtypeforowner_QYyRSNqFuyfOx30LZIpqgw)(Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* c0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* result0; result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; result0 = getordefault_RL2E4O6HwEm70OzqxfmT4A((*c0).ownertotype, (*owner0).Sup.id); { Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0; if (!(result0 == 0)) goto LA3; result0 = newtype_FL9cZh2bRuJE31MWfcWQ4Yg(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 22), owner0); obj0 = createenvobj_y7R8owDkDG7JwQANIXg6og(owner0, info0); rawaddson_52UH8yKinsYmFX9bFij9c2Hw(result0, obj0); HEX5BHEX5DHEX3D_pJMT9adwe5BrCeachvpnv9ag((&(*c0).ownertotype), (*owner0).Sup.id, result0); } LA3: ; 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, addhiddenparam_FOD6f2j9bRVdfKUUxEKk9abg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* routine0, Tsym_AXG7xcvKqaxY6koRX1xkCw* param0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* params0; NI LOC1; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC2; params0 = (*(*routine0).ast).kindU.S6.sons->data[((NI) 3)]; LOC1 = (NI)0; LOC1 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting((*(*routine0).typ).n); (*param0).position = (NI)(LOC1 - ((NI) 1)); LOC2 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC2 = newsymnode_1ARBpggFQuvUDBVYjBelcw(param0); addson_gCCf68XrWL79bKes6htzFjQ(params0, LOC2); } N_NIMCALL(void, addclosureparam_WJOZqUrl4mMyPmygOoI0sQ)(Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* c0, Tsym_AXG7xcvKqaxY6koRX1xkCw* fn0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) { Tsym_AXG7xcvKqaxY6koRX1xkCw* cp0; Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0; Ttype_LTUWCZolpovw9cWE3JBWSUw* t0; cp0 = getenvparam_qj1Hj30TtUYCPgOKm6E9crQ(fn0); { if (!((*fn0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14))) goto LA3; owner0 = fn0; } goto LA1; LA3: ; { owner0 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA(fn0); } LA1: ; t0 = getenvtypeforowner_QYyRSNqFuyfOx30LZIpqgw(c0, owner0, info0); { Tident_4umxGerWTHGPwUms7Yqu3g* LOC10; if (!(cp0 == NIM_NIL)) goto LA8; LOC10 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0; LOC10 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_2)); cp0 = newsym_2uJTpCZGZAi7a4eAm1ds8Q(((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 3), LOC10, fn0, (*fn0).info); (*cp0).flags |= ((NU32)1)<<((((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 2))%(sizeof(NU32)*8)); asgnRefNoCycle((void**) (&(*cp0).typ), t0); addhiddenparam_FOD6f2j9bRVdfKUUxEKk9abg(fn0, cp0); } goto LA6; LA8: ; { NIM_BOOL LOC12; LOC12 = (NIM_BOOL)0; LOC12 = !(((*cp0).typ == t0)); if (!(LOC12)) goto LA13; LOC12 = !(((*fn0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14))); LA13: ; if (!LOC12) goto LA14; localerror_GarD0CQJ5aQhoHekHYinVQ((*fn0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_4)); } goto LA6; LA14: ; LA6: ; } N_NIMCALL(NIM_BOOL, isinnerproc_ajzQZu4plYdRwZD9asUSy0g)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0) { NIM_BOOL result0; result0 = (NIM_BOOL)0; { NIM_BOOL LOC3; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC7; LOC3 = (NIM_BOOL)0; LOC3 = ((61440 &(1U<<((NU)((*s0).kind)&31U)))!=0); if (!(LOC3)) goto LA4; LOC3 = ((*s0).magic == ((Tmagic_shZhZOdbVC5nnFvcXQAImg) 0)); LA4: ; if (!LOC3) goto LA5; LOC7 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC7 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA(s0); result0 = ((258048 &(1U<<((NU)((*LOC7).kind)&31U)))!=0); } LA5: ; return result0; } static N_INLINE(NIM_BOOL, interestingitervar_UYKaGrUlDbbGlGF9c2hme0Alambdalifting)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0) { NIM_BOOL result0; NIM_BOOL LOC1; result0 = (NIM_BOOL)0; LOC1 = (NIM_BOOL)0; LOC1 = ((1049376 &(1U<<((NU)((*s0).kind)&31U)))!=0); if (!(LOC1)) goto LA2; LOC1 = !((((*s0).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&31U)))!=0)); LA2: ; result0 = LOC1; return result0; } static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest0, void* source0, NI size0) { void* LOC1; LOC1 = (void*)0; LOC1 = memcpy(dest0, source0, ((size_t) (size0))); } static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) { copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1))))); (*dest0).Sup.len += (*src0).Sup.len; } N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* routine0) { Tsym_AXG7xcvKqaxY6koRX1xkCw* result0; Tnode_bROa11lyF5vxEN9aYNbHmhw* params0; Tnode_bROa11lyF5vxEN9aYNbHmhw* hidden0; result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; params0 = (*(*routine0).ast).kindU.S6.sons->data[((NI) 3)]; hidden0 = lastson_esDJA7239bJDiq4UrX9aHCjg(params0); { NIM_BOOL LOC3; NIM_BOOL LOC4; LOC3 = (NIM_BOOL)0; LOC4 = (NIM_BOOL)0; LOC4 = ((*hidden0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3)); if (!(LOC4)) goto LA5; LOC4 = ((*(*hidden0).kindU.S4.sym).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 3)); LA5: ; LOC3 = LOC4; if (!(LOC3)) goto LA6; LOC3 = eqStrings((*(*(*hidden0).kindU.S4.sym).name).s, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_2)); LA6: ; if (!LOC3) goto LA7; result0 = (*hidden0).kindU.S4.sym; } goto LA1; LA7: ; { NimStringDesc* LOC10; LOC10 = (NimStringDesc*)0; LOC10 = rawNewString((*(*routine0).name).s->Sup.len + 45); appendString(LOC10, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_5)); appendString(LOC10, (*(*routine0).name).s); localerror_GarD0CQJ5aQhoHekHYinVQ((*routine0).info, LOC10); result0 = routine0; } LA1: ; return result0; } static N_INLINE(NIM_BOOL, interestingvar_UYKaGrUlDbbGlGF9c2hme0A_2lambdalifting)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0) { NIM_BOOL result0; NIM_BOOL LOC1; result0 = (NIM_BOOL)0; LOC1 = (NIM_BOOL)0; LOC1 = ((1051432 &(1U<<((NU)((*s0).kind)&31U)))!=0); if (!(LOC1)) goto LA2; LOC1 = !((((*s0).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&31U)))!=0)); LA2: ; result0 = LOC1; return result0; } static N_INLINE(NIM_BOOL, illegalcapture_UYKaGrUlDbbGlGF9c2hme0A_3lambdalifting)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0) { NIM_BOOL result0; NIM_BOOL LOC1; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC2; result0 = (NIM_BOOL)0; LOC1 = (NIM_BOOL)0; LOC2 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC2 = skiptypes_pLCdCGDuirMe9cspwviV9aVA((*s0).typ, 43280); LOC1 = ((*LOC2).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*LOC2).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*LOC2).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 48)); if (LOC1) goto LA3; LOC1 = ((*s0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 11)); LA3: ; result0 = LOC1; return result0; } N_NIMCALL(void, markasclosure_bom3RshaecLKyfFP7rALtQ)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { Tsym_AXG7xcvKqaxY6koRX1xkCw* s0; s0 = (*n0).kindU.S4.sym; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = illegalcapture_UYKaGrUlDbbGlGF9c2hme0A_3lambdalifting(s0); if (LOC3) goto LA4; LOC3 = !(((257 &(1U<<((NU)((*(*owner0).typ).callconv)&15U)))!=0)); LA4: ; if (!LOC3) goto LA5; localerror_VpilfPWbplGz6ny7O9cfr2g((*n0).info, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 226), (*(*s0).name).s); } LA5: ; (*(*owner0).typ).flags |= ((NU32)1)<<((((Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw) 11))%(sizeof(NU32)*8)); (*(*owner0).typ).callconv = ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8); } N_NIMCALL(void, createupfield_KW0fKXrsUtvtiNKslSAAGQ)(Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* c0, Tsym_AXG7xcvKqaxY6koRX1xkCw* dest0, Tsym_AXG7xcvKqaxY6koRX1xkCw* dep0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) { Ttype_LTUWCZolpovw9cWE3JBWSUw* refobj0; Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0; Ttype_LTUWCZolpovw9cWE3JBWSUw* fieldtype0; Tident_4umxGerWTHGPwUms7Yqu3g* upident0; Tsym_AXG7xcvKqaxY6koRX1xkCw* upfield0; refobj0 = getenvtypeforowner_QYyRSNqFuyfOx30LZIpqgw(c0, dest0, info0); obj0 = lastson_E41DMKHtT9c6sAMyyvhmSIw(refobj0); fieldtype0 = getenvtypeforowner_QYyRSNqFuyfOx30LZIpqgw(c0, dep0, info0); { if (!(refobj0 == fieldtype0)) goto LA3; localerror_GarD0CQJ5aQhoHekHYinVQ((*dep0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_6)); } LA3: ; upident0 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_7)); upfield0 = lookupinrecord_s51A17ot5EKQXx9bfMBO03w((*obj0).n, upident0); { if (!!((upfield0 == NIM_NIL))) goto LA7; { if (!!(((*upfield0).typ == fieldtype0))) goto LA11; localerror_GarD0CQJ5aQhoHekHYinVQ((*dep0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_8)); } LA11: ; } goto LA5; LA7: ; { Tsym_AXG7xcvKqaxY6koRX1xkCw* result0; result0 = newsym_2uJTpCZGZAi7a4eAm1ds8Q(((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 18), upident0, (*obj0).owner, (*(*obj0).owner).info); asgnRefNoCycle((void**) (&(*result0).typ), fieldtype0); rawaddfield_1ZE9cbUzQqHwYsPuLXCFjVQ(obj0, result0); } LA5: ; } 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(void, detectcapturedvars_G0sYb9cMklOSIXYgdKvwboA)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* c0) { { switch ((*n0).kind) { case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3): { Tsym_AXG7xcvKqaxY6koRX1xkCw* s0; NIM_BOOL innerproc0; Tsym_AXG7xcvKqaxY6koRX1xkCw* ow0; s0 = (*n0).kindU.S4.sym; { NIM_BOOL LOC4; NIM_BOOL LOC5; LOC4 = (NIM_BOOL)0; LOC5 = (NIM_BOOL)0; LOC5 = ((61440 &(1U<<((NU)((*s0).kind)&31U)))!=0); if (!(LOC5)) goto LA6; LOC5 = !(((*s0).typ == NIM_NIL)); LA6: ; LOC4 = LOC5; if (!(LOC4)) goto LA7; LOC4 = ((*(*s0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA7: ; if (!LOC4) goto LA8; addclosureparam_WJOZqUrl4mMyPmygOoI0sQ(c0, s0, (*n0).info); (*c0).somethingtodo = NIM_TRUE; } LA8: ; innerproc0 = isinnerproc_ajzQZu4plYdRwZD9asUSy0g(s0); { if (!innerproc0) goto LA12; { NIM_BOOL LOC16; LOC16 = (NIM_BOOL)0; LOC16 = ((*s0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC16)) goto LA17; LOC16 = ((*(*s0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA17: ; if (!LOC16) goto LA18; (*c0).somethingtodo = NIM_TRUE; } LA18: ; { NIM_BOOL LOC22; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC25; LOC22 = (NIM_BOOL)0; LOC22 = containsorincl_B0EhVMrh5BBBZOOtYjAvVg((&(*c0).processed), (*s0).Sup.id); if (!!(LOC22)) goto LA23; LOC25 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC25 = getbody_eMf5HLowckpW9cDxAV9bNIZw(s0); detectcapturedvars_G0sYb9cMklOSIXYgdKvwboA(LOC25, s0, c0); } LA23: ; } LA12: ; ow0 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA(s0); { if (!(ow0 == owner0)) goto LA28; { NIM_BOOL LOC32; LOC32 = (NIM_BOOL)0; LOC32 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC32)) goto LA33; LOC32 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA33: ; if (!LOC32) goto LA34; (*c0).somethingtodo = NIM_TRUE; addclosureparam_WJOZqUrl4mMyPmygOoI0sQ(c0, owner0, (*n0).info); { NIM_BOOL LOC38; LOC38 = (NIM_BOOL)0; LOC38 = interestingitervar_UYKaGrUlDbbGlGF9c2hme0Alambdalifting(s0); if (!LOC38) goto LA39; { NIM_BOOL LOC43; Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC46; LOC43 = (NIM_BOOL)0; LOC43 = containsorincl_B0EhVMrh5BBBZOOtYjAvVg((&(*c0).capturedvars), (*s0).Sup.id); if (!!(LOC43)) goto LA44; LOC46 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC46 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); obj0 = lastson_E41DMKHtT9c6sAMyyvhmSIw((*LOC46).typ); addfield_1CQ9cxECTcbSPI3pM9bWZPYA(obj0, s0); } LA44: ; } LA39: ; } LA34: ; goto BeforeRet; } LA28: ; { NIM_BOOL LOC49; NIM_BOOL LOC50; Tsym_AXG7xcvKqaxY6koRX1xkCw* w0; LOC49 = (NIM_BOOL)0; LOC50 = (NIM_BOOL)0; LOC50 = innerproc0; if (!(LOC50)) goto LA51; LOC50 = ((*(*s0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA51: ; LOC49 = LOC50; if (LOC49) goto LA52; LOC49 = interestingvar_UYKaGrUlDbbGlGF9c2hme0A_2lambdalifting(s0); LA52: ; if (!LOC49) goto LA53; (*c0).somethingtodo = NIM_TRUE; markasclosure_bom3RshaecLKyfFP7rALtQ(owner0, n0); addclosureparam_WJOZqUrl4mMyPmygOoI0sQ(c0, owner0, (*n0).info); { NIM_BOOL LOC57; NIM_BOOL LOC59; Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC62; LOC57 = (NIM_BOOL)0; LOC57 = interestingvar_UYKaGrUlDbbGlGF9c2hme0A_2lambdalifting(s0); if (!(LOC57)) goto LA58; LOC59 = (NIM_BOOL)0; LOC59 = containsorincl_B0EhVMrh5BBBZOOtYjAvVg((&(*c0).capturedvars), (*s0).Sup.id); LOC57 = !(LOC59); LA58: ; if (!LOC57) goto LA60; LOC62 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC62 = getenvtypeforowner_QYyRSNqFuyfOx30LZIpqgw(c0, ow0, (*n0).info); obj0 = lastson_E41DMKHtT9c6sAMyyvhmSIw(LOC62); addfield_1CQ9cxECTcbSPI3pM9bWZPYA(obj0, s0); } LA60: ; w0 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA(owner0); { NIM_BOOL LOC65; NIM_BOOL LOC67; Tsym_AXG7xcvKqaxY6koRX1xkCw* last0; LOC65 = (NIM_BOOL)0; LOC65 = isinnerproc_ajzQZu4plYdRwZD9asUSy0g(w0); if (LOC65) goto LA66; LOC67 = (NIM_BOOL)0; LOC67 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC67)) goto LA68; LOC67 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA68: ; LOC65 = LOC67; LA66: ; if (!LOC65) goto LA69; { NIM_BOOL LOC73; LOC73 = (NIM_BOOL)0; LOC73 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC73)) goto LA74; LOC73 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA74: ; if (!LOC73) goto LA75; w0 = owner0; } LA75: ; { NIM_BOOL LOC79; LOC79 = (NIM_BOOL)0; LOC79 = ((*ow0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC79)) goto LA80; LOC79 = ((*(*ow0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA80: ; if (!LOC79) goto LA81; last0 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA(ow0); } goto LA77; LA81: ; { last0 = ow0; } LA77: ; { while (1) { NIM_BOOL LOC86; NIM_BOOL LOC87; Tsym_AXG7xcvKqaxY6koRX1xkCw* up0; LOC86 = (NIM_BOOL)0; LOC87 = (NIM_BOOL)0; LOC87 = !((w0 == NIM_NIL)); if (!(LOC87)) goto LA88; LOC87 = !(((*w0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 6))); LA88: ; LOC86 = LOC87; if (!(LOC86)) goto LA89; LOC86 = !((last0 == w0)); LA89: ; if (!LOC86) goto LA85; up0 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA(w0); markasclosure_bom3RshaecLKyfFP7rALtQ(w0, n0); addclosureparam_WJOZqUrl4mMyPmygOoI0sQ(c0, w0, (*n0).info); createupfield_KW0fKXrsUtvtiNKslSAAGQ(c0, w0, up0, (*n0).info); w0 = up0; } LA85: ; } } LA69: ; } LA53: ; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 2): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 83): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 98): { } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 79): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 80): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 81): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 82): { } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 51): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 84): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 52): { { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC97; if (!!(((*n0).typ == NIM_NIL))) goto LA95; LOC97 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC97 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, ((NI) 0)); detectcapturedvars_G0sYb9cMklOSIXYgdKvwboA(LOC97, owner0, c0); } LA95: ; } break; default: { { NI i_FQYOUu9aejSjOtfx3PCz4lg; NI HEX3Atmp_TyMytCfb34E6P2DjbY3CNQ; NI i_FQYOUu9aejSjOtfx3PCz4lg_2; i_FQYOUu9aejSjOtfx3PCz4lg = (NI)0; HEX3Atmp_TyMytCfb34E6P2DjbY3CNQ = (NI)0; HEX3Atmp_TyMytCfb34E6P2DjbY3CNQ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n0); i_FQYOUu9aejSjOtfx3PCz4lg_2 = ((NI) 0); { while (1) { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC102; if (!(i_FQYOUu9aejSjOtfx3PCz4lg_2 < HEX3Atmp_TyMytCfb34E6P2DjbY3CNQ)) goto LA101; i_FQYOUu9aejSjOtfx3PCz4lg = i_FQYOUu9aejSjOtfx3PCz4lg_2; LOC102 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC102 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, i_FQYOUu9aejSjOtfx3PCz4lg); detectcapturedvars_G0sYb9cMklOSIXYgdKvwboA(LOC102, owner0, c0); i_FQYOUu9aejSjOtfx3PCz4lg_2 += ((NI) 1); } LA101: ; } } } break; } }BeforeRet: ; } N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, getstatefield_ezqDcwixWM86hcD9alLylJg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0) { Tsym_AXG7xcvKqaxY6koRX1xkCw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC1; result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC1 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC1 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); result0 = (*(*(*(*(*LOC1).typ).sons->data[((NI) 0)]).n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, wrapiterbody_iIgrr9bvZJE8NSMwnlFN0Uw)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0; Tnode_bROa11lyF5vxEN9aYNbHmhw* gs0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC7; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC8; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC9; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC10; Tnode_bROa11lyF5vxEN9aYNbHmhw* state00; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC11; Tnode_bROa11lyF5vxEN9aYNbHmhw* stateasgnstmt0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC12; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC13; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC14; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC15; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC16; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC17; { result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC3)) goto LA4; LOC3 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA4: ; if (!!(LOC3)) goto LA5; result0 = n0; goto BeforeRet; } LA5: ; info0 = (*n0).info; result0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 115), info0); gs0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 156), info0); LOC7 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC7 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); LOC8 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC8 = newsymnode_1ARBpggFQuvUDBVYjBelcw(LOC7); LOC9 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC9 = getstatefield_ezqDcwixWM86hcD9alLylJg(owner0); LOC10 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC10 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(LOC8, LOC9, info0); add_gCCf68XrWL79bKes6htzFjQ_3(gs0, LOC10); add_gCCf68XrWL79bKes6htzFjQ_3(result0, gs0); state00 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 157), info0); LOC11 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC11 = newintnode_v2VGJAZNfKPVngZCqEXQtA(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0)); add_gCCf68XrWL79bKes6htzFjQ_3(state00, LOC11); add_gCCf68XrWL79bKes6htzFjQ_3(result0, state00); add_gCCf68XrWL79bKes6htzFjQ_3(result0, n0); stateasgnstmt0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 73), info0); LOC12 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC12 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); LOC13 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC13 = newsymnode_1ARBpggFQuvUDBVYjBelcw(LOC12); LOC14 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC14 = getstatefield_ezqDcwixWM86hcD9alLylJg(owner0); LOC15 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC15 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(LOC13, LOC14, info0); add_gCCf68XrWL79bKes6htzFjQ_3(stateasgnstmt0, LOC15); LOC16 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC16 = getsystype_dewjtBqyEbcVGQRaQFtDAw(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 31)); LOC17 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC17 = newinttypenode_v0NY9cuqixP6ToMm9avHw5ig(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(-1), LOC16); add_gCCf68XrWL79bKes6htzFjQ_3(stateasgnstmt0, LOC17); add_gCCf68XrWL79bKes6htzFjQ_3(result0, stateasgnstmt0); }BeforeRet: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newenvvar_WzETt9b8PstsH7isuHSVuFw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Ttype_LTUWCZolpovw9cWE3JBWSUw* typ0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* v0; Tident_4umxGerWTHGPwUms7Yqu3g* LOC1; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC1 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0; LOC1 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_10)); v0 = newsym_2uJTpCZGZAi7a4eAm1ds8Q(((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 8), LOC1, owner0, (*owner0).info); (*v0).flags |= ((NU32)1)<<((((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 21))%(sizeof(NU32)*8)); asgnRefNoCycle((void**) (&(*v0).typ), typ0); result0 = newsymnode_1ARBpggFQuvUDBVYjBelcw(v0); return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, setupenvvar_r6pHmIfJ8SmeWGL2tSlDXA_2)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; { result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NIM_BOOL LOC3; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC7; LOC3 = (NIM_BOOL)0; LOC3 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC3)) goto LA4; LOC3 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA4: ; if (!LOC3) goto LA5; LOC7 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC7 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); result0 = newsymnode_1ARBpggFQuvUDBVYjBelcw(LOC7); goto BeforeRet; } LA5: ; result0 = getordefault_7OO5N4Ahz4d8VGzPmfi0Ag((*c0).envvars, (*owner0).Sup.id); { Ttype_LTUWCZolpovw9cWE3JBWSUw* envvartype0; if (!(result0 == 0)) goto LA10; envvartype0 = getordefault_RL2E4O6HwEm70OzqxfmT4A((*d0).ownertotype, (*owner0).Sup.id); { if (!(envvartype0 == 0)) goto LA14; localerror_GarD0CQJ5aQhoHekHYinVQ((*owner0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_9)); } LA14: ; result0 = newenvvar_WzETt9b8PstsH7isuHSVuFw(owner0, envvartype0); HEX5BHEX5DHEX3D_TKCL4R1Tr9cxqLyNI9cn7igw((&(*c0).envvars), (*owner0).Sup.id, result0); } LA10: ; }BeforeRet: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newcall_RtuHTJ0dw8HR3RBCEMIA5g)(Tsym_AXG7xcvKqaxY6koRX1xkCw* a0, Tnode_bROa11lyF5vxEN9aYNbHmhw* b0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC1; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; result0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 27), (*a0).info); LOC1 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC1 = newsymnode_1ARBpggFQuvUDBVYjBelcw(a0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC1); add_gCCf68XrWL79bKes6htzFjQ_3(result0, b0); return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newasgnstmt_CpTgUZ6pUrATklrOcO9cu9bg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* le0, Tnode_bROa11lyF5vxEN9aYNbHmhw* ri0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; result0 = newnodei_jIQp9ciM8if1a6TX6toZelw(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 73), info0, ((NI) 2)); asgnRefNoCycle((void**) (&(*result0).kindU.S6.sons->data[((NI) 0)]), le0); asgnRefNoCycle((void**) (&(*result0).kindU.S6.sons->data[((NI) 1)]), ri0); return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, getupviaparam_ZQZvBtGLvvhwv24jWs1osg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* p0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; p0 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); result0 = newsymnode_1ARBpggFQuvUDBVYjBelcw(p0); { NIM_BOOL LOC3; Tsym_AXG7xcvKqaxY6koRX1xkCw* upfield0; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC7; Tident_4umxGerWTHGPwUms7Yqu3g* LOC8; LOC3 = (NIM_BOOL)0; LOC3 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC3)) goto LA4; LOC3 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA4: ; if (!LOC3) goto LA5; LOC7 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC7 = lastson_E41DMKHtT9c6sAMyyvhmSIw((*p0).typ); LOC8 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0; LOC8 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_7)); upfield0 = lookupinrecord_s51A17ot5EKQXx9bfMBO03w((*LOC7).n, LOC8); { if (!(upfield0 == NIM_NIL)) goto LA11; localerror_GarD0CQJ5aQhoHekHYinVQ((*owner0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_12)); } goto LA9; LA11: ; { result0 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(result0, upfield0, (*p0).info); } LA9: ; } LA5: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, rawclosurecreation_r6pHmIfJ8SmeWGL2tSlDXA)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tnode_bROa11lyF5vxEN9aYNbHmhw* env0; Tsym_AXG7xcvKqaxY6koRX1xkCw* upfield0; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC26; Tident_4umxGerWTHGPwUms7Yqu3g* LOC27; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; result0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 115), (*owner0).info); env0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NIM_BOOL LOC3; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC7; LOC3 = (NIM_BOOL)0; LOC3 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC3)) goto LA4; LOC3 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA4: ; if (!LOC3) goto LA5; LOC7 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC7 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); env0 = newsymnode_1ARBpggFQuvUDBVYjBelcw(LOC7); } goto LA1; LA5: ; { Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC13; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC14; env0 = setupenvvar_r6pHmIfJ8SmeWGL2tSlDXA_2(owner0, d0, c0); { Tnode_bROa11lyF5vxEN9aYNbHmhw* v0; if (!((*env0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA11; v0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 99), (*env0).info); addvar_PhSnWtH9c5LFLMyViy9ciz8Q(v0, env0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, v0); } LA11: ; LOC13 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC13 = getsyssym_shbCpG9bVTG0JrTOcXxC2hQ(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_11)); LOC14 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC14 = newcall_RtuHTJ0dw8HR3RBCEMIA5g(LOC13, env0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC14); { NI i_TaVMEK2LKxuPmyanY351TA; NI HEX3Atmp_YQ0hVhfmgoy9bBc9cfNFkzQQ; NI i_TaVMEK2LKxuPmyanY351TA_2; i_TaVMEK2LKxuPmyanY351TA = (NI)0; HEX3Atmp_YQ0hVhfmgoy9bBc9cfNFkzQQ = (NI)0; HEX3Atmp_YQ0hVhfmgoy9bBc9cfNFkzQQ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting((*(*owner0).typ).n); i_TaVMEK2LKxuPmyanY351TA_2 = ((NI) 1); { while (1) { Tsym_AXG7xcvKqaxY6koRX1xkCw* local0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC18; if (!(i_TaVMEK2LKxuPmyanY351TA_2 < HEX3Atmp_YQ0hVhfmgoy9bBc9cfNFkzQQ)) goto LA17; i_TaVMEK2LKxuPmyanY351TA = i_TaVMEK2LKxuPmyanY351TA_2; LOC18 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC18 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen((*(*owner0).typ).n, i_TaVMEK2LKxuPmyanY351TA); local0 = (*LOC18).kindU.S4.sym; { NIM_BOOL LOC21; Tnode_bROa11lyF5vxEN9aYNbHmhw* fieldaccess0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC24; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC25; LOC21 = (NIM_BOOL)0; LOC21 = contains_sYBLNwnPJlAFi0nfWU79awg((*d0).capturedvars, (*local0).Sup.id); if (!LOC21) goto LA22; fieldaccess0 = indirectaccess_SPIn9atMD6qDWTu3U9aH9aPyg(env0, local0, (*env0).info); LOC24 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC24 = newsymnode_1ARBpggFQuvUDBVYjBelcw(local0); LOC25 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC25 = newasgnstmt_CpTgUZ6pUrATklrOcO9cu9bg(fieldaccess0, LOC24, (*env0).info); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC25); } LA22: ; i_TaVMEK2LKxuPmyanY351TA_2 += ((NI) 1); } LA17: ; } } } LA1: ; LOC26 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC26 = lastson_E41DMKHtT9c6sAMyyvhmSIw((*env0).typ); LOC27 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0; LOC27 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_7)); upfield0 = lookupinrecord_s51A17ot5EKQXx9bfMBO03w((*LOC26).n, LOC27); { Tnode_bROa11lyF5vxEN9aYNbHmhw* up0; if (!!((upfield0 == NIM_NIL))) goto LA30; up0 = getupviaparam_ZQZvBtGLvvhwv24jWs1osg(owner0); { NIM_BOOL LOC34; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC38; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC39; LOC34 = (NIM_BOOL)0; LOC34 = !((up0 == NIM_NIL)); if (!(LOC34)) goto LA35; LOC34 = ((*upfield0).typ == (*up0).typ); LA35: ; if (!LOC34) goto LA36; LOC38 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC38 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(env0, upfield0, (*env0).info); LOC39 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC39 = newasgnstmt_CpTgUZ6pUrATklrOcO9cu9bg(LOC38, up0, (*env0).info); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC39); } goto LA32; LA36: ; { localerror_GarD0CQJ5aQhoHekHYinVQ((*env0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_13)); } LA32: ; } LA30: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, makeclosure_ro9aMvXuFEeNRoFQmHk7X7w)(Tsym_AXG7xcvKqaxY6koRX1xkCw* prc0, Tnode_bROa11lyF5vxEN9aYNbHmhw* env0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC1; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; result0 = newnodeit_lbGnVdZM6n2HPza7jVIlww(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 155), info0, (*prc0).typ); LOC1 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC1 = newsymnode_1ARBpggFQuvUDBVYjBelcw(prc0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC1); { Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC6; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC7; if (!(env0 == NIM_NIL)) goto LA4; LOC6 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC6 = getsystype_dewjtBqyEbcVGQRaQFtDAw(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 5)); LOC7 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC7 = newnodeit_lbGnVdZM6n2HPza7jVIlww(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info0, LOC6); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC7); } goto LA2; LA4: ; { { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC11; LOC11 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC11 = skipconv_6rsSLwtlU9c53a6w69be5JlQ(env0); if (!((*LOC11).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA12; localerror_GarD0CQJ5aQhoHekHYinVQ(info0, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_14)); } LA12: ; add_gCCf68XrWL79bKes6htzFjQ_3(result0, env0); } LA2: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, closurecreationforiter_aBUE4CjNZyw9ch83XM4bSVA)(Tnode_bROa11lyF5vxEN9aYNbHmhw* iter0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0; Tsym_AXG7xcvKqaxY6koRX1xkCw* v0; Tident_4umxGerWTHGPwUms7Yqu3g* LOC1; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC2; Tnode_bROa11lyF5vxEN9aYNbHmhw* vnode0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC11; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC12; Tsym_AXG7xcvKqaxY6koRX1xkCw* upfield0; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC13; Tident_4umxGerWTHGPwUms7Yqu3g* LOC14; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC26; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; result0 = newnodeit_lbGnVdZM6n2HPza7jVIlww(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 126), (*iter0).info, (*(*iter0).kindU.S4.sym).typ); owner0 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA((*iter0).kindU.S4.sym); LOC1 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0; LOC1 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_10)); v0 = newsym_2uJTpCZGZAi7a4eAm1ds8Q(((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 8), LOC1, owner0, (*iter0).info); (*v0).flags |= ((NU32)1)<<((((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 21))%(sizeof(NU32)*8)); LOC2 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC2 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA((*iter0).kindU.S4.sym); asgnRefNoCycle((void**) (&(*v0).typ), (*LOC2).typ); vnode0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NIM_BOOL LOC5; Tsym_AXG7xcvKqaxY6koRX1xkCw* it0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC9; LOC5 = (NIM_BOOL)0; LOC5 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC5)) goto LA6; LOC5 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA6: ; if (!LOC5) goto LA7; it0 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); adduniquefield_1CQ9cxECTcbSPI3pM9bWZPYA_2((*(*it0).typ).sons->data[((NI) 0)], v0); LOC9 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC9 = newsymnode_1ARBpggFQuvUDBVYjBelcw(it0); vnode0 = indirectaccess_SPIn9atMD6qDWTu3U9aH9aPyg(LOC9, v0, (*v0).info); } goto LA3; LA7: ; { Tnode_bROa11lyF5vxEN9aYNbHmhw* vs0; vnode0 = newsymnode_1ARBpggFQuvUDBVYjBelcw(v0); vs0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 99), (*iter0).info); addvar_PhSnWtH9c5LFLMyViy9ciz8Q(vs0, vnode0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, vs0); } LA3: ; LOC11 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC11 = getsyssym_shbCpG9bVTG0JrTOcXxC2hQ(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_11)); LOC12 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC12 = newcall_RtuHTJ0dw8HR3RBCEMIA5g(LOC11, vnode0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC12); LOC13 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC13 = lastson_E41DMKHtT9c6sAMyyvhmSIw((*v0).typ); LOC14 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0; LOC14 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_7)); upfield0 = lookupinrecord_s51A17ot5EKQXx9bfMBO03w((*LOC13).n, LOC14); { Tnode_bROa11lyF5vxEN9aYNbHmhw* u0; if (!!((upfield0 == NIM_NIL))) goto LA17; u0 = setupenvvar_r6pHmIfJ8SmeWGL2tSlDXA_2(owner0, d0, c0); { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC23; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC24; if (!((*u0).typ == (*upfield0).typ)) goto LA21; LOC23 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC23 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(vnode0, upfield0, (*iter0).info); LOC24 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC24 = newasgnstmt_CpTgUZ6pUrATklrOcO9cu9bg(LOC23, u0, (*iter0).info); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC24); } goto LA19; LA21: ; { localerror_GarD0CQJ5aQhoHekHYinVQ((*iter0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_15)); } LA19: ; } LA17: ; LOC26 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC26 = makeclosure_ro9aMvXuFEeNRoFQmHk7X7w((*iter0).kindU.S4.sym, vnode0, (*iter0).info); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC26); return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, symtoclosure_U4G8bpOoRFQH33HjCOCFjQ_2)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* s0; { result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; s0 = (*n0).kindU.S4.sym; { Tsym_AXG7xcvKqaxY6koRX1xkCw* available0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC5; if (!(s0 == owner0)) goto LA3; available0 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); LOC5 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC5 = newsymnode_1ARBpggFQuvUDBVYjBelcw(available0); result0 = makeclosure_ro9aMvXuFEeNRoFQmHk7X7w(s0, LOC5, (*n0).info); } goto LA1; LA3: ; { NIM_BOOL LOC7; LOC7 = (NIM_BOOL)0; LOC7 = ((*s0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC7)) goto LA8; LOC7 = ((*(*s0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA8: ; if (!LOC7) goto LA9; result0 = closurecreationforiter_aBUE4CjNZyw9ch83XM4bSVA(n0, d0, c0); } goto LA1; LA9: ; { Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC12; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC15; LOC12 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC12 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA(s0); if (!(LOC12 == owner0)) goto LA13; LOC15 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC15 = setupenvvar_r6pHmIfJ8SmeWGL2tSlDXA_2(owner0, d0, c0); result0 = makeclosure_ro9aMvXuFEeNRoFQmHk7X7w(s0, LOC15, (*n0).info); } goto LA1; LA13: ; { Tsym_AXG7xcvKqaxY6koRX1xkCw* available0; Ttype_LTUWCZolpovw9cWE3JBWSUw* wanted0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC17; Tnode_bROa11lyF5vxEN9aYNbHmhw* access0; available0 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); LOC17 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC17 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(s0); wanted0 = (*LOC17).typ; access0 = newsymnode_1ARBpggFQuvUDBVYjBelcw(available0); { while (1) { Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0; Tsym_AXG7xcvKqaxY6koRX1xkCw* upfield0; Tident_4umxGerWTHGPwUms7Yqu3g* LOC24; { if (!((*access0).typ == wanted0)) goto LA22; result0 = makeclosure_ro9aMvXuFEeNRoFQmHk7X7w(s0, access0, (*n0).info); goto BeforeRet; } LA22: ; obj0 = (*(*access0).typ).sons->data[((NI) 0)]; LOC24 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0; LOC24 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_7)); upfield0 = lookupinrecord_s51A17ot5EKQXx9bfMBO03w((*obj0).n, LOC24); { if (!(upfield0 == NIM_NIL)) goto LA27; localerror_GarD0CQJ5aQhoHekHYinVQ((*n0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_16)); result0 = n0; goto BeforeRet; } LA27: ; access0 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(access0, upfield0, (*n0).info); } } } LA1: ; }BeforeRet: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, accessviaenvparam_iIgrr9bvZJE8NSMwnlFN0Uw_2)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* s0; Tsym_AXG7xcvKqaxY6koRX1xkCw* envparam0; NimStringDesc* LOC16; { result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; s0 = (*n0).kindU.S4.sym; envparam0 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); { Tnode_bROa11lyF5vxEN9aYNbHmhw* access0; if (!!((envparam0 == 0))) goto LA3; access0 = newsymnode_1ARBpggFQuvUDBVYjBelcw(envparam0); { while (1) { Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0; Tsym_AXG7xcvKqaxY6koRX1xkCw* field0; Tsym_AXG7xcvKqaxY6koRX1xkCw* upfield0; Tident_4umxGerWTHGPwUms7Yqu3g* LOC11; obj0 = (*(*access0).typ).sons->data[((NI) 0)]; field0 = getfieldfromobj_ew6R9a132KuZGJY10w29b9beg(obj0, s0); { if (!!((field0 == NIM_NIL))) goto LA9; result0 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(access0, field0, (*n0).info); goto BeforeRet; } LA9: ; LOC11 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0; LOC11 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_7)); upfield0 = lookupinrecord_s51A17ot5EKQXx9bfMBO03w((*obj0).n, LOC11); { if (!(upfield0 == NIM_NIL)) goto LA14; goto LA5; } LA14: ; access0 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(access0, upfield0, (*n0).info); } } LA5: ; } LA3: ; LOC16 = (NimStringDesc*)0; LOC16 = rawNewString((*(*s0).name).s->Sup.len + 36); appendString(LOC16, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_17)); appendString(LOC16, (*(*s0).name).s); localerror_GarD0CQJ5aQhoHekHYinVQ((*n0).info, LOC16); result0 = n0; }BeforeRet: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, accessviaenvvar_U4G8bpOoRFQH33HjCOCFjQ_3)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tnode_bROa11lyF5vxEN9aYNbHmhw* access0; Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0; Tsym_AXG7xcvKqaxY6koRX1xkCw* field0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; access0 = setupenvvar_r6pHmIfJ8SmeWGL2tSlDXA_2(owner0, d0, c0); obj0 = (*(*access0).typ).sons->data[((NI) 0)]; field0 = getfieldfromobj_ew6R9a132KuZGJY10w29b9beg(obj0, (*n0).kindU.S4.sym); { if (!!((field0 == NIM_NIL))) goto LA3; result0 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(access0, field0, (*n0).info); } goto LA1; LA3: ; { localerror_GarD0CQJ5aQhoHekHYinVQ((*n0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_18)); result0 = n0; } LA1: ; return result0; } N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, getiterresult_MbjK6U9a6qlc6jCMQSOo5Qg_2)(Tsym_AXG7xcvKqaxY6koRX1xkCw* iter0) { Tsym_AXG7xcvKqaxY6koRX1xkCw* result0; result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; { NI LOC3; LOC3 = (NI)0; LOC3 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting((*iter0).ast); if (!(((NI) 7) < LOC3)) goto LA4; result0 = (*(*(*iter0).ast).kindU.S6.sons->data[((NI) 7)]).kindU.S4.sym; } goto LA1; LA4: ; { Tident_4umxGerWTHGPwUms7Yqu3g* LOC7; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC8; LOC7 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0; LOC7 = getident_oH8GBf4tG3b1F5BIuNPwtA(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_19)); result0 = newsym_2uJTpCZGZAi7a4eAm1ds8Q(((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 11), LOC7, iter0, (*iter0).info); asgnRefNoCycle((void**) (&(*result0).typ), (*(*iter0).typ).sons->data[((NI) 0)]); (*result0).flags |= ((NU32)1)<<((((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 0))%(sizeof(NU32)*8)); LOC8 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC8 = newsymnode_1ARBpggFQuvUDBVYjBelcw(result0); add_gCCf68XrWL79bKes6htzFjQ_3((*iter0).ast, LOC8); } LA1: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, transformyield_U4G8bpOoRFQH33HjCOCFjQ_4)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* state0; NI64 stateno0; Tnode_bROa11lyF5vxEN9aYNbHmhw* stateasgnstmt0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC1; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC2; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC3; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC4; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC5; Tnode_bROa11lyF5vxEN9aYNbHmhw* retstmt0; Tnode_bROa11lyF5vxEN9aYNbHmhw* statelabelstmt0; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC13; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC14; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; state0 = getstatefield_ezqDcwixWM86hcD9alLylJg(owner0); (*(*(*(*state0).typ).n).kindU.S6.sons->data[((NI) 1)]).kindU.S1.intval += ((NI) 1); stateno0 = (*(*(*(*state0).typ).n).kindU.S6.sons->data[((NI) 1)]).kindU.S1.intval; stateasgnstmt0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n0).info); LOC1 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC1 = getenvparam_qj1Hj30TtUYCPgOKm6E9crQ(owner0); LOC2 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC2 = newsymnode_1ARBpggFQuvUDBVYjBelcw(LOC1); LOC3 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC3 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(LOC2, state0, (*n0).info); add_gCCf68XrWL79bKes6htzFjQ_3(stateasgnstmt0, LOC3); LOC4 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC4 = getsystype_dewjtBqyEbcVGQRaQFtDAw(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 31)); LOC5 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC5 = newinttypenode_v0NY9cuqixP6ToMm9avHw5ig(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 6), stateno0, LOC4); add_gCCf68XrWL79bKes6htzFjQ_3(stateasgnstmt0, LOC5); retstmt0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 109), (*n0).info); { Tnode_bROa11lyF5vxEN9aYNbHmhw* a0; Tnode_bROa11lyF5vxEN9aYNbHmhw* retval0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC10; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC11; if (!!(((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA8; a0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 73), (*(*n0).kindU.S6.sons->data[((NI) 0)]).info); retval0 = liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ((*n0).kindU.S6.sons->data[((NI) 0)], owner0, d0, c0); LOC10 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC10 = getiterresult_MbjK6U9a6qlc6jCMQSOo5Qg_2(owner0); LOC11 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC11 = newsymnode_1ARBpggFQuvUDBVYjBelcw(LOC10); addson_gCCf68XrWL79bKes6htzFjQ(a0, LOC11); addson_gCCf68XrWL79bKes6htzFjQ(a0, retval0); add_gCCf68XrWL79bKes6htzFjQ_3(retstmt0, a0); } goto LA6; LA8: ; { add_gCCf68XrWL79bKes6htzFjQ_3(retstmt0, emptynode_69ccLGuQ2mITw7zylZYtWcA); } LA6: ; statelabelstmt0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 157), (*n0).info); LOC13 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC13 = getsystype_dewjtBqyEbcVGQRaQFtDAw(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 31)); LOC14 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC14 = newinttypenode_v0NY9cuqixP6ToMm9avHw5ig(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 6), stateno0, LOC13); add_gCCf68XrWL79bKes6htzFjQ_3(statelabelstmt0, LOC14); result0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n0).info); add_gCCf68XrWL79bKes6htzFjQ_3(result0, stateasgnstmt0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, retstmt0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, statelabelstmt0); return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, transformreturn_U4G8bpOoRFQH33HjCOCFjQ_5)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* state0; Tnode_bROa11lyF5vxEN9aYNbHmhw* stateasgnstmt0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC1; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC2; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC3; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC4; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC5; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; state0 = getstatefield_ezqDcwixWM86hcD9alLylJg(owner0); result0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n0).info); stateasgnstmt0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n0).info); LOC1 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC1 = getenvparam_qj1Hj30TtUYCPgOKm6E9crQ(owner0); LOC2 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC2 = newsymnode_1ARBpggFQuvUDBVYjBelcw(LOC1); LOC3 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC3 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(LOC2, state0, (*n0).info); add_gCCf68XrWL79bKes6htzFjQ_3(stateasgnstmt0, LOC3); LOC4 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC4 = getsystype_dewjtBqyEbcVGQRaQFtDAw(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 31)); LOC5 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC5 = newinttypenode_v0NY9cuqixP6ToMm9avHw5ig(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(-1), LOC4); add_gCCf68XrWL79bKes6htzFjQ_3(stateasgnstmt0, LOC5); add_gCCf68XrWL79bKes6htzFjQ_3(result0, stateasgnstmt0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, n0); return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0, Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ* d0, Liftingpass_xciiuOR269bKYtnZXJZ4Npw* c0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; { result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; result0 = n0; switch ((*n0).kind) { case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3): { Tsym_AXG7xcvKqaxY6koRX1xkCw* s0; s0 = (*n0).kindU.S4.sym; { NIM_BOOL LOC4; LOC4 = (NIM_BOOL)0; LOC4 = isinnerproc_ajzQZu4plYdRwZD9asUSy0g(s0); if (!LOC4) goto LA5; { NIM_BOOL LOC9; Tnode_bROa11lyF5vxEN9aYNbHmhw* body0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC12; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC13; LOC9 = (NIM_BOOL)0; LOC9 = containsorincl_B0EhVMrh5BBBZOOtYjAvVg((&(*c0).processed), (*s0).Sup.id); if (!!(LOC9)) goto LA10; LOC12 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC12 = getbody_eMf5HLowckpW9cDxAV9bNIZw(s0); LOC13 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC13 = liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ(LOC12, s0, d0, c0); body0 = wrapiterbody_iIgrr9bvZJE8NSMwnlFN0Uw(LOC13, s0); { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC16; LOC16 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC16 = getordefault_7OO5N4Ahz4d8VGzPmfi0Ag((*c0).envvars, (*s0).Sup.id); if (!(LOC16 == 0)) goto LA17; asgnRefNoCycle((void**) (&(*(*s0).ast).kindU.S6.sons->data[((NI) 6)]), body0); } goto LA14; LA17: ; { TY_AB6yfoUgfWM2NtGe9bzkCmw LOC20; memset((void*)LOC20, 0, sizeof(LOC20)); LOC20[0] = rawclosurecreation_r6pHmIfJ8SmeWGL2tSlDXA(s0, d0, c0); LOC20[1] = body0; asgnRefNoCycle((void**) (&(*(*s0).ast).kindU.S6.sons->data[((NI) 6)]), newtree_4bkTFXme4frVOAuq2YEc4g(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 115), LOC20, 2)); } LA14: ; } LA10: ; { if (!((*(*s0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA23; result0 = symtoclosure_U4G8bpOoRFQH33HjCOCFjQ_2(n0, owner0, d0, c0); } LA23: ; } goto LA2; LA5: ; { NIM_BOOL LOC26; LOC26 = (NIM_BOOL)0; LOC26 = contains_sYBLNwnPJlAFi0nfWU79awg((*d0).capturedvars, (*s0).Sup.id); if (!LOC26) goto LA27; { if (!!(((*s0).owner == owner0))) goto LA31; result0 = accessviaenvparam_iIgrr9bvZJE8NSMwnlFN0Uw_2(n0, owner0); } goto LA29; LA31: ; { NIM_BOOL LOC34; NIM_BOOL LOC35; LOC34 = (NIM_BOOL)0; LOC35 = (NIM_BOOL)0; LOC35 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC35)) goto LA36; LOC35 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA36: ; LOC34 = LOC35; if (!(LOC34)) goto LA37; LOC34 = interestingitervar_UYKaGrUlDbbGlGF9c2hme0Alambdalifting(s0); LA37: ; if (!LOC34) goto LA38; result0 = accessviaenvparam_iIgrr9bvZJE8NSMwnlFN0Uw_2(n0, owner0); } goto LA29; LA38: ; { result0 = accessviaenvvar_U4G8bpOoRFQH33HjCOCFjQ_3(n0, owner0, d0, c0); } LA29: ; } goto LA2; LA27: ; LA2: ; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 2): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 83): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 98): { } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 79): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 80): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 81): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 82): { } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 155): { { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC46; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC49; Tnode_bROa11lyF5vxEN9aYNbHmhw* x0; LOC46 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC46 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, ((NI) 1)); if (!((*LOC46).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA47; LOC49 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC49 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, ((NI) 0)); asgnRefNoCycle((void**) (&(*n0).kindU.S6.sons->data[((NI) 0)]), liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ(LOC49, owner0, d0, c0)); x0 = skipconv_6rsSLwtlU9c53a6w69be5JlQ((*n0).kindU.S6.sons->data[((NI) 0)]); { if (!((*x0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA52; asgnRefNoCycle((void**) (&(*n0).kindU.S6.sons->data[((NI) 0)]), (*x0).kindU.S6.sons->data[((NI) 0)]); asgnRefNoCycle((void**) (&(*n0).kindU.S6.sons->data[((NI) 1)]), (*x0).kindU.S6.sons->data[((NI) 1)]); } LA52: ; } LA47: ; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 51): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 84): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 52): { { NIM_BOOL LOC57; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC59; Tnode_bROa11lyF5vxEN9aYNbHmhw* m0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC62; LOC57 = (NIM_BOOL)0; LOC57 = !(((*n0).typ == NIM_NIL)); if (!(LOC57)) goto LA58; LOC59 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC59 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, ((NI) 0)); LOC57 = ((*LOC59).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3)); LA58: ; if (!LOC57) goto LA60; LOC62 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC62 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, ((NI) 0)); m0 = newsymnode_1ARBpggFQuvUDBVYjBelcw((*LOC62).kindU.S4.sym); asgnRefNoCycle((void**) (&(*m0).typ), (*n0).typ); result0 = liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ(m0, owner0, d0, c0); } LA60: ; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 58): { { NI LOC66; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC69; LOC66 = (NI)0; LOC66 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n0); if (!(LOC66 == ((NI) 2))) goto LA67; LOC69 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC69 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, ((NI) 1)); asgnRefNoCycle((void**) (&(*n0).kindU.S6.sons->data[((NI) 1)]), liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ(LOC69, owner0, d0, c0)); { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC72; LOC72 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC72 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, ((NI) 1)); if (!((*LOC72).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA73; result0 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, ((NI) 1)); } LA73: ; } LA67: ; } break; default: { { NIM_BOOL LOC78; LOC78 = (NIM_BOOL)0; LOC78 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC78)) goto LA79; LOC78 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA79: ; if (!LOC78) goto LA80; { if (!((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 104))) goto LA84; result0 = transformyield_U4G8bpOoRFQH33HjCOCFjQ_4(n0, owner0, d0, c0); goto BeforeRet; } goto LA82; LA84: ; { if (!((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 109))) goto LA87; result0 = transformreturn_U4G8bpOoRFQH33HjCOCFjQ_5(n0, owner0, d0, c0); goto BeforeRet; } goto LA82; LA87: ; { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC92; if (!(((*n0).flags &(1U<<((NU)(((Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg) 8))&15U)))!=0)) goto LA90; LOC92 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC92 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, ((NI) 1)); asgnRefNoCycle((void**) (&(*n0).kindU.S6.sons->data[((NI) 1)]), liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ(LOC92, owner0, d0, c0)); goto BeforeRet; } goto LA82; LA90: ; LA82: ; } LA80: ; { NI i_O9ceT6mmslU9cuXJ0h9bE6cHA; NI HEX3Atmp_h38bkPFAIm7cwg04RXLuEg; NI i_O9ceT6mmslU9cuXJ0h9bE6cHA_2; i_O9ceT6mmslU9cuXJ0h9bE6cHA = (NI)0; HEX3Atmp_h38bkPFAIm7cwg04RXLuEg = (NI)0; HEX3Atmp_h38bkPFAIm7cwg04RXLuEg = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n0); i_O9ceT6mmslU9cuXJ0h9bE6cHA_2 = ((NI) 0); { while (1) { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC96; if (!(i_O9ceT6mmslU9cuXJ0h9bE6cHA_2 < HEX3Atmp_h38bkPFAIm7cwg04RXLuEg)) goto LA95; i_O9ceT6mmslU9cuXJ0h9bE6cHA = i_O9ceT6mmslU9cuXJ0h9bE6cHA_2; LOC96 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC96 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(n0, i_O9ceT6mmslU9cuXJ0h9bE6cHA); asgnRefNoCycle((void**) (&(*n0).kindU.S6.sons->data[i_O9ceT6mmslU9cuXJ0h9bE6cHA]), liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ(LOC96, owner0, d0, c0)); i_O9ceT6mmslU9cuXJ0h9bE6cHA_2 += ((NI) 1); } LA95: ; } } } break; } }BeforeRet: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, liftitertoproc_yw6ySuqJpp5U29bE3CP0gMg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* fn0, Tnode_bROa11lyF5vxEN9aYNbHmhw* body0, Ttype_LTUWCZolpovw9cWE3JBWSUw* ptrtype0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ d0; Liftingpass_xciiuOR269bKYtnZXJZ4Npw c0; Tsymkind_cNCW9acsSznmEccl1fgQwkw oldkind0; Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA oldcc0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC1; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; memset((void*)(&d0), 0, sizeof(d0)); chckNil((void*)(&d0)); memset((void*)(&d0), 0, sizeof(d0)); initdetectionpass_7sM9c9bcbcVQx7BTqh2PiMyA(fn0, (&d0)); memset((void*)(&c0), 0, sizeof(c0)); chckNil((void*)(&c0)); memset((void*)(&c0), 0, sizeof(c0)); initliftingpass_62bdir8veRlom0cBrOUW9bA(fn0, (&c0)); oldkind0 = (*fn0).kind; oldcc0 = (*(*fn0).typ).callconv; (*fn0).kind = ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14); (*(*fn0).typ).callconv = ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8); HEX5BHEX5DHEX3D_pJMT9adwe5BrCeachvpnv9ag((&d0.ownertotype), (*fn0).Sup.id, ptrtype0); detectcapturedvars_G0sYb9cMklOSIXYgdKvwboA(body0, fn0, (&d0)); LOC1 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC1 = liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ(body0, fn0, (&d0), (&c0)); result0 = wrapiterbody_iIgrr9bvZJE8NSMwnlFN0Uw(LOC1, fn0); (*fn0).kind = oldkind0; (*(*fn0).typ).callconv = oldcc0; return result0; } N_NIMCALL(void, semcapturesym_wz9cxcPAng9cCy1HG0XN4ssw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0) { { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = interestingvar_UYKaGrUlDbbGlGF9c2hme0A_2lambdalifting(s0); if (!(LOC3)) goto LA4; LOC3 = !(((*s0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 11))); LA4: ; if (!LOC3) goto LA5; { NIM_BOOL LOC9; NIM_BOOL LOC11; Tsym_AXG7xcvKqaxY6koRX1xkCw* o0; LOC9 = (NIM_BOOL)0; LOC9 = !(((*owner0).typ == NIM_NIL)); if (!(LOC9)) goto LA10; LOC11 = (NIM_BOOL)0; LOC11 = isgenericroutine_djUd579cPfs7OC9aZ8QT9cItg(owner0); LOC9 = !(LOC11); LA10: ; if (!LOC9) goto LA12; o0 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA(owner0); { while (1) { NIM_BOOL LOC16; LOC16 = (NIM_BOOL)0; LOC16 = !(((*o0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 6))); if (!(LOC16)) goto LA17; LOC16 = !((o0 == NIM_NIL)); LA17: ; if (!LOC16) goto LA15; { if (!((*s0).owner == o0)) goto LA20; (*(*owner0).typ).callconv = ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8); } LA20: ; o0 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA(o0); } LA15: ; } } LA12: ; } LA5: ; } static N_INLINE(NIM_BOOL, liftingharmful_W40MyfRNIiM75iBdo9c9boFglambdalifting)(Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0) { NIM_BOOL result0; NIM_BOOL iscompiletime0; NIM_BOOL LOC1; NIM_BOOL LOC3; result0 = (NIM_BOOL)0; LOC1 = (NIM_BOOL)0; LOC1 = (((*owner0).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&31U)))!=0); if (LOC1) goto LA2; LOC1 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 16)); LA2: ; iscompiletime0 = LOC1; LOC3 = (NIM_BOOL)0; LOC3 = ((48 &(1U<<((NU)(gcmd_0oKScFtMiSKnjiHF9cU9c5GQ)&31U)))!=0); if (!(LOC3)) goto LA4; LOC3 = !(iscompiletime0); LA4: ; result0 = LOC3; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, liftitersym_iIgrr9bvZJE8NSMwnlFN0Uw_3)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* iter0; Tsym_AXG7xcvKqaxY6koRX1xkCw* hp0; Tnode_bROa11lyF5vxEN9aYNbHmhw* env0; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC14; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC15; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC16; { result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = liftingharmful_W40MyfRNIiM75iBdo9c9boFglambdalifting(owner0); if (!LOC3) goto LA4; result0 = n0; goto BeforeRet; } LA4: ; iter0 = (*n0).kindU.S4.sym; result0 = newnodeit_lbGnVdZM6n2HPza7jVIlww(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n0).info, (*n0).typ); hp0 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(iter0); env0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NIM_BOOL LOC8; Tsym_AXG7xcvKqaxY6koRX1xkCw* it0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC12; LOC8 = (NIM_BOOL)0; LOC8 = ((*owner0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC8)) goto LA9; LOC8 = ((*(*owner0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA9: ; if (!LOC8) goto LA10; it0 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); adduniquefield_1CQ9cxECTcbSPI3pM9bWZPYA_2((*(*it0).typ).sons->data[((NI) 0)], hp0); LOC12 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC12 = newsymnode_1ARBpggFQuvUDBVYjBelcw(it0); env0 = indirectaccess_SPIn9atMD6qDWTu3U9aH9aPyg(LOC12, hp0, (*hp0).info); } goto LA6; LA10: ; { Tsym_AXG7xcvKqaxY6koRX1xkCw* e0; Tnode_bROa11lyF5vxEN9aYNbHmhw* v0; e0 = newsym_2uJTpCZGZAi7a4eAm1ds8Q(((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 9), (*iter0).name, owner0, (*n0).info); asgnRefNoCycle((void**) (&(*e0).typ), (*hp0).typ); (*e0).flags = (*hp0).flags; env0 = newsymnode_1ARBpggFQuvUDBVYjBelcw(e0); v0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 99), (*n0).info); addvar_PhSnWtH9c5LFLMyViy9ciz8Q(v0, env0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, v0); } LA6: ; LOC14 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC14 = getsyssym_shbCpG9bVTG0JrTOcXxC2hQ(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_11)); LOC15 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC15 = newcall_RtuHTJ0dw8HR3RBCEMIA5g(LOC14, env0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC15); LOC16 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC16 = makeclosure_ro9aMvXuFEeNRoFQmHk7X7w(iter0, env0, (*n0).info); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC16); }BeforeRet: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, liftforloop_2NbagHa9apD6n7yLpjjxiTQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* body0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; NI L0; Tnode_bROa11lyF5vxEN9aYNbHmhw* call0; Tsym_AXG7xcvKqaxY6koRX1xkCw* env0; Tnode_bROa11lyF5vxEN9aYNbHmhw* op0; Tnode_bROa11lyF5vxEN9aYNbHmhw* loopbody0; Tnode_bROa11lyF5vxEN9aYNbHmhw* whileloop0; Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC37; Tnode_bROa11lyF5vxEN9aYNbHmhw* v20; Tnode_bROa11lyF5vxEN9aYNbHmhw* vpart0; Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw LOC38; Tnode_bROa11lyF5vxEN9aYNbHmhw* bs0; { result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = liftingharmful_W40MyfRNIiM75iBdo9c9boFglambdalifting(owner0); if (!LOC3) goto LA4; result0 = body0; goto BeforeRet; } LA4: ; L0 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(body0); { NIM_BOOL LOC8; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC10; LOC8 = (NIM_BOOL)0; LOC8 = ((*body0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 94)); if (!(LOC8)) goto LA9; LOC10 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC10 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(body0, (NI)(L0 - ((NI) 2))); LOC8 = ((*LOC10).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*LOC10).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*LOC10).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*LOC10).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*LOC10).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*LOC10).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*LOC10).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 32)); LA9: ; if (!!(LOC8)) goto LA11; localerror_GarD0CQJ5aQhoHekHYinVQ((*body0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_20)); result0 = body0; goto BeforeRet; } LA11: ; call0 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(body0, (NI)(L0 - ((NI) 2))); result0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 115), (*body0).info); env0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; op0 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(call0, ((NI) 0)); { NIM_BOOL LOC15; NIM_BOOL LOC17; Tsym_AXG7xcvKqaxY6koRX1xkCw* iter0; Tsym_AXG7xcvKqaxY6koRX1xkCw* hp0; Tnode_bROa11lyF5vxEN9aYNbHmhw* v0; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC21; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC22; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC23; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC24; LOC15 = (NIM_BOOL)0; LOC15 = ((*op0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3)); if (!(LOC15)) goto LA16; LOC17 = (NIM_BOOL)0; LOC17 = ((*(*op0).kindU.S4.sym).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC17)) goto LA18; LOC17 = ((*(*(*op0).kindU.S4.sym).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA18: ; LOC15 = LOC17; LA16: ; if (!LOC15) goto LA19; iter0 = (*op0).kindU.S4.sym; hp0 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(iter0); env0 = newsym_2uJTpCZGZAi7a4eAm1ds8Q(((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 9), (*iter0).name, owner0, (*body0).info); asgnRefNoCycle((void**) (&(*env0).typ), (*hp0).typ); (*env0).flags = (*hp0).flags; v0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 99), (*body0).info); LOC21 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC21 = newsymnode_1ARBpggFQuvUDBVYjBelcw(env0); addvar_PhSnWtH9c5LFLMyViy9ciz8Q(v0, LOC21); add_gCCf68XrWL79bKes6htzFjQ_3(result0, v0); LOC22 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC22 = getsyssym_shbCpG9bVTG0JrTOcXxC2hQ(((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_11)); LOC23 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC23 = newsymnode_1ARBpggFQuvUDBVYjBelcw(env0); LOC24 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC24 = newcall_RtuHTJ0dw8HR3RBCEMIA5g(LOC22, LOC23); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC24); } goto LA13; LA19: ; { Tnode_bROa11lyF5vxEN9aYNbHmhw* closure0; if (!((*op0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA26; closure0 = lastson_esDJA7239bJDiq4UrX9aHCjg(op0); { if (!((*closure0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA30; asgnRefNoCycle((void**) (&(*call0).kindU.S6.sons->data[((NI) 0)]), closure0); { NI i_lBcHyT9a0LhVYN7cii7hxkg; NI HEX3Atmp_seV2QxWrqQhVO9a1Xu8tHNw; NI LOC33; NI res_ZAaVGWq1hCCL9b26qL1IZAg; i_lBcHyT9a0LhVYN7cii7hxkg = (NI)0; HEX3Atmp_seV2QxWrqQhVO9a1Xu8tHNw = (NI)0; LOC33 = (NI)0; LOC33 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(op0); HEX3Atmp_seV2QxWrqQhVO9a1Xu8tHNw = (NI)(LOC33 - ((NI) 2)); res_ZAaVGWq1hCCL9b26qL1IZAg = ((NI) 0); { while (1) { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC36; if (!(res_ZAaVGWq1hCCL9b26qL1IZAg <= HEX3Atmp_seV2QxWrqQhVO9a1Xu8tHNw)) goto LA35; i_lBcHyT9a0LhVYN7cii7hxkg = res_ZAaVGWq1hCCL9b26qL1IZAg; LOC36 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC36 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(op0, i_lBcHyT9a0LhVYN7cii7hxkg); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC36); res_ZAaVGWq1hCCL9b26qL1IZAg += ((NI) 1); } LA35: ; } } } LA30: ; } goto LA13; LA26: ; LA13: ; loopbody0 = newnodei_jIQp9ciM8if1a6TX6toZelw(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 115), (*body0).info, ((NI) 3)); whileloop0 = newnodei_jIQp9ciM8if1a6TX6toZelw(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 96), (*body0).info, ((NI) 2)); LOC37 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0; LOC37 = getsystype_dewjtBqyEbcVGQRaQFtDAw(((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 1)); asgnRefNoCycle((void**) (&(*whileloop0).kindU.S6.sons->data[((NI) 0)]), newinttypenode_v0NY9cuqixP6ToMm9avHw5ig(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1), LOC37)); asgnRefNoCycle((void**) (&(*whileloop0).kindU.S6.sons->data[((NI) 1)]), loopbody0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, whileloop0); v20 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 100), (*body0).info); LOC38 = (Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw)0; { if (!(L0 == ((NI) 3))) goto LA41; LOC38 = ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 35); } goto LA39; LA41: ; { LOC38 = ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 36); } LA39: ; vpart0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(LOC38, (*body0).info); { NI i_lBcHyT9a0LhVYN7cii7hxkg_2; NI HEX3Atmp_seV2QxWrqQhVO9a1Xu8tHNw_2; NI res_ZAaVGWq1hCCL9b26qL1IZAg_2; i_lBcHyT9a0LhVYN7cii7hxkg_2 = (NI)0; HEX3Atmp_seV2QxWrqQhVO9a1Xu8tHNw_2 = (NI)0; HEX3Atmp_seV2QxWrqQhVO9a1Xu8tHNw_2 = (NI)(L0 - ((NI) 3)); res_ZAaVGWq1hCCL9b26qL1IZAg_2 = ((NI) 0); { while (1) { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC53; if (!(res_ZAaVGWq1hCCL9b26qL1IZAg_2 <= HEX3Atmp_seV2QxWrqQhVO9a1Xu8tHNw_2)) goto LA46; i_lBcHyT9a0LhVYN7cii7hxkg_2 = res_ZAaVGWq1hCCL9b26qL1IZAg_2; { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC49; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC52; LOC49 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC49 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(body0, i_lBcHyT9a0LhVYN7cii7hxkg_2); if (!((*LOC49).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA50; LOC52 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC52 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(body0, i_lBcHyT9a0LhVYN7cii7hxkg_2); (*(*LOC52).kindU.S4.sym).kind = ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 9); } LA50: ; LOC53 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC53 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(body0, i_lBcHyT9a0LhVYN7cii7hxkg_2); addson_gCCf68XrWL79bKes6htzFjQ(vpart0, LOC53); res_ZAaVGWq1hCCL9b26qL1IZAg_2 += ((NI) 1); } LA46: ; } } addson_gCCf68XrWL79bKes6htzFjQ(vpart0, emptynode_69ccLGuQ2mITw7zylZYtWcA); { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC58; if (!!((env0 == 0))) goto LA56; LOC58 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC58 = newsymnode_1ARBpggFQuvUDBVYjBelcw(env0); asgnRefNoCycle((void**) (&(*call0).kindU.S6.sons->data[((NI) 0)]), makeclosure_ro9aMvXuFEeNRoFQmHk7X7w((*(*call0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym, LOC58, (*body0).info)); } LA56: ; addson_gCCf68XrWL79bKes6htzFjQ(vpart0, call0); addson_gCCf68XrWL79bKes6htzFjQ(v20, vpart0); asgnRefNoCycle((void**) (&(*loopbody0).kindU.S6.sons->data[((NI) 0)]), v20); bs0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 158), (*body0).info); addson_gCCf68XrWL79bKes6htzFjQ(bs0, (*call0).kindU.S6.sons->data[((NI) 0)]); asgnRefNoCycle((void**) (&(*loopbody0).kindU.S6.sons->data[((NI) 1)]), bs0); asgnRefNoCycle((void**) (&(*loopbody0).kindU.S6.sons->data[((NI) 2)]), HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen(body0, (NI)(L0 - ((NI) 1)))); }BeforeRet: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, freshvarforclosureiter_0535N4q9aJOhoN3jQpDQyxw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0, Tsym_AXG7xcvKqaxY6koRX1xkCw* owner0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tsym_AXG7xcvKqaxY6koRX1xkCw* envparam0; Ttype_LTUWCZolpovw9cWE3JBWSUw* obj0; Tnode_bROa11lyF5vxEN9aYNbHmhw* access0; Tsym_AXG7xcvKqaxY6koRX1xkCw* field0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; envparam0 = gethiddenparam_4NVGGTxTGZx9bLUCKypF5JA(owner0); obj0 = lastson_E41DMKHtT9c6sAMyyvhmSIw((*envparam0).typ); addfield_1CQ9cxECTcbSPI3pM9bWZPYA(obj0, s0); access0 = newsymnode_1ARBpggFQuvUDBVYjBelcw(envparam0); field0 = getfieldfromobj_ew6R9a132KuZGJY10w29b9beg(obj0, s0); { if (!!((field0 == NIM_NIL))) goto LA3; result0 = rawindirectaccess_G8YTsBQ4KmIArrFr9cczJHg(access0, field0, (*s0).info); } goto LA1; LA3: ; { localerror_GarD0CQJ5aQhoHekHYinVQ((*s0).info, ((NimStringDesc*) &T_PI7oJkFuxeeTWjPTjlNxqg_21)); result0 = access0; } LA1: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, liftlambdas_nCMGymrFZRJyHkkifBt8Yw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* fn0, Tnode_bROa11lyF5vxEN9aYNbHmhw* body0, NIM_BOOL* tooearly0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; NIM_BOOL iscompiletime0; NIM_BOOL LOC1; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC1 = (NIM_BOOL)0; LOC1 = (((*fn0).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&31U)))!=0); if (LOC1) goto LA2; LOC1 = ((*fn0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 16)); LA2: ; iscompiletime0 = LOC1; { NIM_BOOL LOC5; NIM_BOOL LOC6; NIM_BOOL LOC8; Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC11; LOC5 = (NIM_BOOL)0; LOC6 = (NIM_BOOL)0; LOC6 = ((*body0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 1)); if (LOC6) goto LA7; LOC8 = (NIM_BOOL)0; LOC8 = ((48 &(1U<<((NU)(gcmd_0oKScFtMiSKnjiHF9cU9c5GQ)&31U)))!=0); if (!(LOC8)) goto LA9; LOC8 = !(iscompiletime0); LA9: ; LOC6 = LOC8; LA7: ; LOC5 = LOC6; if (LOC5) goto LA10; LOC11 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0; LOC11 = skipgenericowner_ugWPlZqqVshHUeOH4zw3vA(fn0); LOC5 = !(((*LOC11).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 6))); LA10: ; if (!LOC5) goto LA12; result0 = body0; (*tooearly0) = NIM_TRUE; } goto LA3; LA12: ; { Detectionpass_CrsGUD9a6sd4xCGl64gvIdQ d0; memset((void*)(&d0), 0, sizeof(d0)); chckNil((void*)(&d0)); memset((void*)(&d0), 0, sizeof(d0)); initdetectionpass_7sM9c9bcbcVQx7BTqh2PiMyA(fn0, (&d0)); detectcapturedvars_G0sYb9cMklOSIXYgdKvwboA(body0, fn0, (&d0)); { NIM_BOOL LOC17; NIM_BOOL LOC19; LOC17 = (NIM_BOOL)0; LOC17 = !(d0.somethingtodo); if (!(LOC17)) goto LA18; LOC19 = (NIM_BOOL)0; LOC19 = ((*fn0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14)); if (!(LOC19)) goto LA20; LOC19 = ((*(*fn0).typ).callconv == ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)); LA20: ; LOC17 = LOC19; LA18: ; if (!LOC17) goto LA21; addclosureparam_WJOZqUrl4mMyPmygOoI0sQ((&d0), fn0, (*body0).info); d0.somethingtodo = NIM_TRUE; } LA21: ; { Liftingpass_xciiuOR269bKYtnZXJZ4Npw c0; Tnode_bROa11lyF5vxEN9aYNbHmhw* newbody0; if (!d0.somethingtodo) goto LA25; memset((void*)(&c0), 0, sizeof(c0)); chckNil((void*)(&c0)); memset((void*)(&c0), 0, sizeof(c0)); initliftingpass_62bdir8veRlom0cBrOUW9bA(fn0, (&c0)); newbody0 = liftcapturedvars_U4G8bpOoRFQH33HjCOCFjQ(body0, fn0, (&d0), (&c0)); { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC29; TY_AB6yfoUgfWM2NtGe9bzkCmw LOC32; LOC29 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC29 = getordefault_7OO5N4Ahz4d8VGzPmfi0Ag(c0.envvars, (*fn0).Sup.id); if (!!((LOC29 == NIM_NIL))) goto LA30; memset((void*)LOC32, 0, sizeof(LOC32)); LOC32[0] = rawclosurecreation_r6pHmIfJ8SmeWGL2tSlDXA(fn0, (&d0), (&c0)); LOC32[1] = newbody0; newbody0 = newtree_4bkTFXme4frVOAuq2YEc4g(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 115), LOC32, 2); } LA30: ; result0 = wrapiterbody_iIgrr9bvZJE8NSMwnlFN0Uw(newbody0, fn0); } goto LA23; LA25: ; { result0 = body0; } LA23: ; } LA3: ; return result0; } NIM_EXTERNC N_NOINLINE(void, compiler_lambdaliftingInit000)(void) { } NIM_EXTERNC N_NOINLINE(void, compiler_lambdaliftingDatInit000)(void) { }