/* Generated by Nim Compiler v1.6.2 */ #define NIM_INTBITS 32 #include "nimbase.h" #include #undef LANGUAGE_C #undef MIPSEB #undef MIPSEL #undef PPC #undef R3000 #undef R4000 #undef i386 #undef linux #undef mips #undef near #undef far #undef powerpc #undef unix #define nimfr_(x, y) #define nimln_(x, y) typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw; typedef struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug; typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ; typedef struct tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug; typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ; typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w; typedef struct RootObj RootObj; typedef struct TNimType TNimType; typedef struct TNimNode TNimNode; typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g; typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg; typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA; typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q; typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA; typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA; typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA; typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w; typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q; typedef struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw; typedef struct tySequence__eiMlYcU7NrAOGD2H36QOOQ tySequence__eiMlYcU7NrAOGD2H36QOOQ; typedef struct tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ; typedef struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg; typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ; typedef struct tySequence__oYkV9aFZe0MXcEAprJaOUsA tySequence__oYkV9aFZe0MXcEAprJaOUsA; typedef struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q; typedef struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA tySequence__Mh9agqM29bm9aP5AUL1x7dZGA; typedef struct tySequence__arD7Tw6eD6lvOczWZl9buNg tySequence__arD7Tw6eD6lvOczWZl9buNg; typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA; typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA; typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w; typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA; typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw; typedef struct tySequence__jWKvSdankQPoT5bw9cBU9aiw tySequence__jWKvSdankQPoT5bw9cBU9aiw; typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw; typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct tySequence__xSqu3cxq5WeFlOO3YgE6yA tySequence__xSqu3cxq5WeFlOO3YgE6yA; typedef struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w; typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw; typedef struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w; typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw; typedef struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ; typedef struct tySequence__Hkw5zrAn53wlKDHdJF1GFA tySequence__Hkw5zrAn53wlKDHdJF1GFA; typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A; typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g; typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w; typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ; typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA; typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg; typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ; typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg; typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw; typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA; typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw; typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw; typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg; typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg; typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg; typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ; typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg; typedef struct tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA; typedef struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ; typedef struct tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w; typedef struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg; typedef struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ; typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA; typedef struct tyTuple__KNXySARiHvEh2wA9asnyYmw tyTuple__KNXySARiHvEh2wA9asnyYmw; typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ; typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ; typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q; typedef struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag tyTuple__Y6Ewh3MCxsjd1bsriN6Gag; typedef struct tySequence__vGU8AyGT6KxtLJwEg0BpNw tySequence__vGU8AyGT6KxtLJwEg0BpNw; typedef struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw tyTuple__KvKIqRIx9anKcDMu8DPSkHw; struct tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug { tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner; tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* mapping; NI formals; tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c; NIM_BOOL subMatch; NIM_BOOL mappingIsFull; }; typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A; typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ; typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op); typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p); struct TNimType { NI size; NI align; tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind; tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags; TNimType* base; TNimNode* node; void* finalizer; tyProc__ojoeKfW4VYIm36I9cpDTQIg marker; tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy; }; struct RootObj { TNimType* m_type; }; struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g { NI32 module; NI32 item; }; struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w { RootObj Sup; tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId; }; typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw; typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg; struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q { NU16 line; NI16 col; NI32 fileIndex; }; typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw; typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg; typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg; typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw; typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA; struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA { tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k; tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage; tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode; tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r; }; struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ { tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup; tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind; union{ struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody; } _kind_1; struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard; NI bitsize; NI alignment; } _kind_2; }; tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic; tyObject_TType__facALICuu8zUj0hjvbTLFg* typ; tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name; tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info; tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner; tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast; tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options; NI position; NI offset; tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc; tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint; }; struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w { RootObj Sup; tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen; }; typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__d88NmFOoQ1OEoX9af4f9aptg[38]; struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q { NI counter; tySequence__Mh9agqM29bm9aP5AUL1x7dZGA* data; }; typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__RcJNn9bSvWdJgUmA1O6sbHA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); typedef NU32 tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ; typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__39auogS0nN05zO6JrT7za9cQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags); typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__DZXD9cPwIfL76eNszoUR9aVA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t); typedef struct { N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0); void* ClE_0; } tyProc__7JwrY3AhkVNlleAJXClX9cw; typedef NU32 tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw; typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__qlV9aWvA5wrWVg9bI5PqwJyA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags); typedef N_NIMCALL_PTR(tyObject_TType__facALICuu8zUj0hjvbTLFg*, tyProc__IDzB9bjws1yntQXPpMRrBvA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev); typedef struct { N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0); void* ClE_0; } tyProc__3cacbJ4la9bDJNibHybQSnA; typedef struct { N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, void* ClE_0); void* ClE_0; } tyProc__fMj9boIZZOt9cLWRnD3rtKhA; typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34]; struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA { NI elems; NI counter; NI max; tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head; tySequence__Bre9bNyuQOg1EJKitjSzn8w* data; tyArray__emiAJ8okywrJw7ZHLzlXbQ a; }; struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA { NI counter; tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data; }; typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg; typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dc, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, NI col); struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ; struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w { tySequence__Bis5AbpONWcIRrPyPJS8Yw* data; NI counter; }; struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w { tySequence__E8pi9b5QNahsURYzXMjh3qw* data; NI counter; }; struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ { tySequence__Hkw5zrAn53wlKDHdJF1GFA* data; NI counter; }; struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug { tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup; tyObject_TType__facALICuu8zUj0hjvbTLFg* enforceVoidContext; tyObject_TType__facALICuu8zUj0hjvbTLFg* voidType; tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module; tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* currentScope; tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* moduleScope; tySequence__eiMlYcU7NrAOGD2H36QOOQ* imports; tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* topLevelScope; tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p; tyArray__d88NmFOoQ1OEoX9af4f9aptg intTypeCache; tyObject_TType__facALICuu8zUj0hjvbTLFg* nilTypeCache; tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* matchedConcept; tySequence__eHqUwlHGGaPw0TDPDeL79cQ* friendModules; NI instCounter; NI* templInstCounter; NI inGenericContext; NI inStaticContext; NI inUnrolledContext; NI compilesContextId; NI compilesContextIdGenerator; NI inGenericInst; tySequence__eHqUwlHGGaPw0TDPDeL79cQ* converters; tySequence__eHqUwlHGGaPw0TDPDeL79cQ* patterns; tySequence__oYkV9aFZe0MXcEAprJaOUsA* optionStack; tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMapping; tySequence__arD7Tw6eD6lvOczWZl9buNg* libs; tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstExpr; tyProc__39auogS0nN05zO6JrT7za9cQ semExpr; tyProc__39auogS0nN05zO6JrT7za9cQ semTryExpr; tyProc__RcJNn9bSvWdJgUmA1O6sbHA semTryConstExpr; tyProc__DZXD9cPwIfL76eNszoUR9aVA computeRequiresInit; tyProc__7JwrY3AhkVNlleAJXClX9cw hasUnresolvedArgs; tyProc__39auogS0nN05zO6JrT7za9cQ semOperand; tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstBoolExpr; tyProc__qlV9aWvA5wrWVg9bI5PqwJyA semOverloadedCall; tyProc__IDzB9bjws1yntQXPpMRrBvA semTypeNode; tyProc__3cacbJ4la9bDJNibHybQSnA semInferredLambda; tyProc__fMj9boIZZOt9cLWRnD3rtKhA semGenerateInstance; tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA includedFiles; tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA pureEnumFields; tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA userPragmas; tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* evalContext; tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA unknownIdents; tySequence__jWKvSdankQPoT5bw9cBU9aiw* generics; NI topStmts; NI lastGenericIdx; NI hloLoopDetector; NI inParallelStmt; tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ instTypeBoundOp; tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* selfName; tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache; tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph; tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA signatures; NimStringDesc* recursiveDep; NIM_BOOL suggestionsMade; NIM_BOOL isAmbiguous; tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features; NI inTypeContext; NI inConceptDecl; tySequence__xSqu3cxq5WeFlOO3YgE6yA* unusedImports; tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w exportIndirections; tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w importModuleMap; tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastTLineInfo; tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ sideEffects; NI inUncheckedAssignSection; }; typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag; typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA; typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw; struct tyObject_TType__facALICuu8zUj0hjvbTLFg { tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup; tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind; tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv; tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags; tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n; tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner; tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym; NI64 size; NI16 align; NI16 paddingAtEnd; NI16 lockLevel; tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc; tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst; tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId; }; typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg; typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw; struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw { tyObject_TType__facALICuu8zUj0hjvbTLFg* typ; tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info; tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags; tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind; union{ struct {NI64 intVal; } _kind_1; struct {NF floatVal; } _kind_2; struct {NimStringDesc* strVal; } _kind_3; struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym; } _kind_4; struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident; } _kind_5; struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons; } _kind_6; }; }; typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg; struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA { NI id; NimStringDesc* s; tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next; NI h; }; typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw; typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ; struct TNimNode { tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g { NI refcount; TNimType* typ; }; struct tyObject_GcStack__7fytPA5bBsob6See21YMRA { void* bottom; }; struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w { NI len; NI cap; tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d; }; typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256]; typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24]; typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32]; typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24]; typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256]; struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA { tyArray__lh2A89ahMmYg9bCmpVaplLbA data; }; typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2]; struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw { tyArray__0aOLqZchNi8nWtMTi8ND8w link; NI key; NI upperBound; NI level; }; struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg { tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0; NI Field1; }; typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30]; struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg { NI len; tyArray__LzOv2eCDGiceMKQstCLmhw chunks; tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next; }; struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg { NI minLargeObj; NI maxLargeObj; tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks; NU32 flBitmap; tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap; tyArray__B6durA4ZCi1xjJvRtyYxMg matrix; tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem; NI currMem; NI maxMem; NI freeMem; NI occ; NI lastSize; tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes; NIM_BOOL locked; NIM_BOOL blockChunkSizeIncrease; NI nextChunkSize; tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData; tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks; }; struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg { NI stackScans; NI cycleCollections; NI maxThreshold; NI maxStackSize; NI maxStackCells; NI cycleTableSize; NI64 maxPause; }; struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ { NI counter; NI max; tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head; tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data; }; struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ { tyObject_GcStack__7fytPA5bBsob6See21YMRA stack; NI cycleThreshold; NI zctThreshold; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack; NI recGcLock; tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region; tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat; tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked; tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots; NI gcThreadId; }; struct tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA { RootObj Sup; NI colonstate_; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p1; }; typedef struct { N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn, void* ClE_0); void* ClE_0; } tyProc__2zVtpTRUOsHSWXUjCANYlA; typedef N_CLOSURE_PTR(NIM_BOOL, TM__1E9cVLQUjhbw81lEou89bC9bw_7) (tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn); typedef N_CLOSURE_PTR(NIM_BOOL, TM__1E9cVLQUjhbw81lEou89bC9bw_8) (tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn); typedef N_CLOSURE_PTR(NIM_BOOL, TM__1E9cVLQUjhbw81lEou89bC9bw_9) (tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn); typedef NU8 tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw; typedef NU8 tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w; typedef NU8 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ; struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ { tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m; tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ mode; union{ struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA imported; } _mode_2; struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA exceptSet; } _mode_3; }; }; struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg { tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key; RootObj* val; }; struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ { tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genericSym; tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst; }; struct tyTuple__KNXySARiHvEh2wA9asnyYmw { tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0; tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field1; }; struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ { NI Field0; NI Field1; }; struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ { NI Field0; tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1; }; struct tyTuple__47w2DboNEPf69aPgubZdd7Q { NI Field0; NI Field1; NI Field2; }; struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw { tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0; tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1; }; struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag { NI Field0; NI Field1; tySequence__vGU8AyGT6KxtLJwEg0BpNw* Field2; }; struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ { TGenericSeq Sup; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE]; }; struct tySequence__eiMlYcU7NrAOGD2H36QOOQ { TGenericSeq Sup; tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ data[SEQ_DECL_SIZE]; }; struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ { TGenericSeq Sup; tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE]; }; struct tySequence__oYkV9aFZe0MXcEAprJaOUsA { TGenericSeq Sup; tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* data[SEQ_DECL_SIZE]; }; struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA { TGenericSeq Sup; tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE]; }; struct tySequence__arD7Tw6eD6lvOczWZl9buNg { TGenericSeq Sup; tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* data[SEQ_DECL_SIZE]; }; struct tySequence__Bre9bNyuQOg1EJKitjSzn8w { TGenericSeq Sup; tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE]; }; struct tySequence__jWKvSdankQPoT5bw9cBU9aiw { TGenericSeq Sup; tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ data[SEQ_DECL_SIZE]; }; struct tySequence__xSqu3cxq5WeFlOO3YgE6yA { TGenericSeq Sup; tyTuple__KNXySARiHvEh2wA9asnyYmw data[SEQ_DECL_SIZE]; }; struct tySequence__Bis5AbpONWcIRrPyPJS8Yw { TGenericSeq Sup; tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE]; }; struct tySequence__E8pi9b5QNahsURYzXMjh3qw { TGenericSeq Sup; tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE]; }; struct tySequence__vGU8AyGT6KxtLJwEg0BpNw { TGenericSeq Sup; tyTuple__KvKIqRIx9anKcDMu8DPSkHw data[SEQ_DECL_SIZE]; }; struct tySequence__Hkw5zrAn53wlKDHdJF1GFA { TGenericSeq Sup; tyTuple__Y6Ewh3MCxsjd1bsriN6Gag data[SEQ_DECL_SIZE]; }; struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A { TGenericSeq Sup; tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE]; }; static N_INLINE(void, nimZeroMem)(void* p, NI size); static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size); static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, matchStmtList__patterns_432)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, flattenStmts__trees_355)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchRange__patterns_437)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__patterns_29)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipHidden__types_3604)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); static N_INLINE(NIM_BOOL, isPatternParam__patterns_114)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bindOrCheck__patterns_144)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getLazy__patterns_17)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTrees__patterns_48)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b); static N_INLINE(NIM_BOOL, sameKinds__patterns_36)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b); N_LIB_PRIVATE N_NIMCALL(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw, canonKind__patterns_33)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b); static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size); static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_1839)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkTypes__patterns_98)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNodeKinds__parampatterns_505)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argtypeMatches__sigmatch_4281)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, NIM_BOOL fromHlo); N_LIB_PRIVATE N_NIMCALL(void, putLazy__patterns_21)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len); N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src); static N_INLINE(void, asgnRef)(void** dest, void* src); static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); static N_INLINE(NI, pluspercent___system_696)(NI x, NI y); static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr); static N_INLINE(NI, minuspercent___system_716)(NI x, NI y); static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y); static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSymChoice__patterns_72)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchChoice__patterns_130)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNested__patterns_176)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL rpn); N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op); static N_NIMCALL(void, Marker_tyRef__jrUntIBTBNpJiJYXuyZctg)(void* p, NI op); N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info); N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, matchStarAux__patterns_182)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn, void* ClE_0); N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son); N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg); N_LIB_PRIVATE N_NIMCALL(void, gather__patterns_158)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3360)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4832)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, extractRange__trees_362)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI a, NI b); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3719)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, aliasAnalysisRequested__patterns_495)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params); N_LIB_PRIVATE N_NIMCALL(tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw, whichAlias__parampatterns_48)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* p); N_LIB_PRIVATE N_NIMCALL(void, addToArgList__patterns_516)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n); N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w, isPartOf__aliases_129)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b); N_LIB_PRIVATE N_NIMCALL(void, markUsed__sigmatch_85)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s); extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_; STRING_LITERAL(TM__1E9cVLQUjhbw81lEou89bC9bw_2, "|", 1); STRING_LITERAL(TM__1E9cVLQUjhbw81lEou89bC9bw_3, "*", 1); STRING_LITERAL(TM__1E9cVLQUjhbw81lEou89bC9bw_4, "**", 2); STRING_LITERAL(TM__1E9cVLQUjhbw81lEou89bC9bw_5, "~", 1); extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_; N_LIB_PRIVATE TNimType NTIobject__MvzTl9buOo7Gy8twSJhcfLA_; extern TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_; extern TNimType NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_; N_LIB_PRIVATE TNimType NTIrefobject__jrUntIBTBNpJiJYXuyZctg_; STRING_LITERAL(TM__1E9cVLQUjhbw81lEou89bC9bw_10, "patterns.nim(155, 19) `false` invalid pattern", 45); extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217; static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) { void* T1_; T1_ = (void*)0; T1_ = memset(a, v, ((size_t) (size))); } static N_INLINE(void, nimZeroMem)(void* p, NI size) { nimSetMem__systemZmemory_7(p, ((int) 0), size); } static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n) { NI result; NI T1_; result = (NI)0; T1_ = ((*n).sons ? (*n).sons->Sup.len : 0); result = T1_; return result; } static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { NI result; NI T1_; result = (NI)0; T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0); result = T1_; return result; } static N_INLINE(NIM_BOOL, isPatternParam__patterns_114)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p) { NIM_BOOL result; NIM_BOOL T1_; NIM_BOOL T2_; result = (NIM_BOOL)0; T1_ = (NIM_BOOL)0; T2_ = (NIM_BOOL)0; T2_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)); if (!(T2_)) goto LA3_; T2_ = ((*(*p)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)); LA3_: ; T1_ = T2_; if (!(T1_)) goto LA4_; T1_ = ((*(*p)._kind_4.sym).owner == (*c).owner); LA4_: ; result = T1_; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getLazy__patterns_17)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym) { tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result; result = NIM_NIL; { if (!(*c).mappingIsFull) goto LA3_; result = (*c).mapping->data[(*sym).position]; } LA3_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw, canonKind__patterns_33)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw result; result = (tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)0; result = (*n).kind; switch (result) { case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32): { result = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22): { result = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74): { result = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73); } break; default: { } break; } return result; } static N_INLINE(NIM_BOOL, sameKinds__patterns_36)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) { NIM_BOOL result; NIM_BOOL T1_; tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw T3_; tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw T4_; result = (NIM_BOOL)0; T1_ = (NIM_BOOL)0; T1_ = ((*a).kind == (*b).kind); if (T1_) goto LA2_; T3_ = (tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)0; T3_ = canonKind__patterns_33(a); T4_ = (tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)0; T4_ = canonKind__patterns_33(b); T1_ = (T3_ == T4_); LA2_: ; result = T1_; return result; } static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) { int result; result = (int)0; result = memcmp(a, b, ((size_t) (size))); return result; } static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) { NIM_BOOL result; int T1_; result = (NIM_BOOL)0; T1_ = (int)0; T1_ = nimCmpMem(a, b, size); result = (T1_ == ((NI32) 0)); return result; } static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) { NIM_BOOL result; NI alen; NI blen; { result = (NIM_BOOL)0; alen = (a ? a->Sup.len : 0); blen = (b ? b->Sup.len : 0); { if (!(alen == blen)) goto LA3_; { if (!(alen == ((NI) 0))) goto LA7_; result = NIM_TRUE; goto BeforeRet_; } LA7_: ; result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen))); goto BeforeRet_; } LA3_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTrees__patterns_48)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) { NIM_BOOL result; { result = (NIM_BOOL)0; { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = sameKinds__patterns_36(a, b); if (!T3_) goto LA4_; switch ((*a).kind) { case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3): { result = ((*a)._kind_4.sym == (*b)._kind_4.sym); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2): { result = ((*(*a)._kind_5.ident).id == (*(*b)._kind_5.ident).id); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10): { result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18): { result = ((*a)._kind_2.floatVal == (*b)._kind_2.floatVal); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22): { result = eqStrings((*a)._kind_3.strVal, (*b)._kind_3.strVal); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1): case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23): { result = NIM_TRUE; } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4): { result = sameTypeOrNil__types_1839((*a).typ, (*b).typ, 0); } break; default: { { NI T16_; NI T17_; T16_ = (NI)0; T16_ = len__ast_3198(a); T17_ = (NI)0; T17_ = len__ast_3198(b); if (!(T16_ == T17_)) goto LA18_; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3198(a); i_2 = ((NI) 0); { while (1) { if (!(i_2 < colontmp_)) goto LA22; i = i_2; { NIM_BOOL T25_; T25_ = (NIM_BOOL)0; T25_ = sameTrees__patterns_48((*a)._kind_6.sons->data[i], (*b)._kind_6.sons->data[i]); if (!!(T25_)) goto LA26_; goto BeforeRet_; } LA26_: ; i_2 += ((NI) 1); } LA22: ; } } result = NIM_TRUE; } LA18_: ; } break; } } LA4_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkTypes__patterns_98)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { NIM_BOOL result; { result = (NIM_BOOL)0; { if (!!(((*p).constraint == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_; result = matchNodeKinds__parampatterns_505((*p).constraint, n); { if (!!(result)) goto LA7_; goto BeforeRet_; } LA7_: ; } LA3_: ; { if (!((*n).typ == 0)) goto LA11_; result = ((*(*p).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*(*p).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7)); } goto LA9_; LA11_: ; { result = argtypeMatches__sigmatch_4281((*c).c, (*p).typ, (*n).typ, NIM_TRUE); } LA9_: ; }BeforeRet_: ; return result; } static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) { NI result; result = (NI)0; result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y)))))); return result; } static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { (*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8)); } static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) { NI result; result = (NI)0; result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y)))))); return result; } static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result; NI T1_; result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T1_ = (NI)0; T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8)); result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_)); return result; } static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) { NIM_BOOL result; result = (NIM_BOOL)0; result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y)))); return result; } static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { addZCT__system_5264((&gch__system_5217.zct), c); } static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) { (*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8)); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8)); if (!T3_) goto LA4_; rtlAddZCT__system_5313(c); } LA4_: ; } static N_INLINE(void, asgnRef)(void** dest, void* src) { { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_; if (!!((src == NIM_NIL))) goto LA3_; T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T5_ = usrToCell__system_5270(src); incRef__system_5308(T5_); } LA3_: ; { tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_; if (!!(((*dest) == NIM_NIL))) goto LA8_; T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0; T10_ = usrToCell__system_5270((*dest)); decRef__system_5315(T10_); } LA8_: ; (*dest) = src; } N_LIB_PRIVATE N_NIMCALL(void, putLazy__patterns_21)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { { if (!!((*c).mappingIsFull)) goto LA3_; unsureAsgnRef((void**) (&(*c).mapping), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) newSeq((&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) ((*c).formals)))); (*c).mappingIsFull = NIM_TRUE; } LA3_: ; asgnRef((void**) (&(*c).mapping->data[(*sym).position]), n); } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bindOrCheck__patterns_144)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { NIM_BOOL result; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pp; result = (NIM_BOOL)0; pp = getLazy__patterns_17(c, param); { if (!!((pp == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_; result = sameTrees__patterns_48(pp, n); } goto LA1_; LA3_: ; { NIM_BOOL T6_; T6_ = (NIM_BOOL)0; T6_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)); if (T6_) goto LA7_; T6_ = checkTypes__patterns_98(c, param, n); LA7_: ; if (!T6_) goto LA8_; putLazy__patterns_21(c, param, n); result = NIM_TRUE; } goto LA1_; LA8_: ; LA1_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSymChoice__patterns_72)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) { NIM_BOOL result; { result = (NIM_BOOL)0; { if (!((*sc).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56))) goto LA3_; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3198(sc); i_2 = ((NI) 0); { while (1) { if (!(i_2 < colontmp_)) goto LA7; i = i_2; { if (!((*(*sc)._kind_6.sons->data[i])._kind_4.sym == (*x)._kind_4.sym)) goto LA10_; result = NIM_TRUE; goto BeforeRet_; } LA10_: ; i_2 += ((NI) 1); } LA7: ; } } } goto LA1_; LA3_: ; { if (!((*sc).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57))) goto LA13_; result = ((*(*(*(*sc)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).id == (*(*(*x)._kind_4.sym).name).id); } goto LA1_; LA13_: ; LA1_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchChoice__patterns_130)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { NIM_BOOL result; { result = (NIM_BOOL)0; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3198(p); i_2 = ((NI) 1); { while (1) { if (!(i_2 < colontmp_)) goto LA3; i = i_2; { NIM_BOOL T6_; T6_ = (NIM_BOOL)0; T6_ = matches__patterns_29(c, (*p)._kind_6.sons->data[i], n); if (!T6_) goto LA7_; result = NIM_TRUE; goto BeforeRet_; } LA7_: ; i_2 += ((NI) 1); } LA3: ; } } }BeforeRet_: ; return result; } static N_NIMCALL(void, Marker_tyRef__jrUntIBTBNpJiJYXuyZctg)(void* p, NI op) { tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA* a; a = (tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA*)p; nimGCvisit((void*)(*a).p1, op); } N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, matchStarAux__patterns_182)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist, NIM_BOOL rpn, void* ClE_0) { NIM_BOOL result; tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA* colonenvP_; { result = (NIM_BOOL)0; colonenvP_ = (tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA*) ClE_0; result = NIM_TRUE; { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)); if (!(T3_)) goto LA4_; T3_ = matches__patterns_29(c, (*op)._kind_6.sons->data[((NI) 1)], (*n)._kind_6.sons->data[((NI) 0)]); LA4_: ; if (!T3_) goto LA5_; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3198(n); i_2 = ((NI) 1); { while (1) { if (!(i_2 < colontmp_)) goto LA9; i = i_2; { tyProc__2zVtpTRUOsHSWXUjCANYlA T12_; NIM_BOOL T13_; nimZeroMem((void*)(&T12_), sizeof(tyProc__2zVtpTRUOsHSWXUjCANYlA)); T12_.ClP_0 = matchStarAux__patterns_182; T12_.ClE_0 = colonenvP_; T13_ = (NIM_BOOL)0; T13_ = T12_.ClE_0? T12_.ClP_0(c, op, (*n)._kind_6.sons->data[i], arglist, rpn, T12_.ClE_0):((TM__1E9cVLQUjhbw81lEou89bC9bw_7)(T12_.ClP_0))(c, op, (*n)._kind_6.sons->data[i], arglist, rpn); if (!!(T13_)) goto LA14_; result = NIM_FALSE; goto BeforeRet_; } LA14_: ; i_2 += ((NI) 1); } LA9: ; } } { if (!rpn) goto LA18_; add__ast_4797(arglist, (*n)._kind_6.sons->data[((NI) 0)]); } LA18_: ; } goto LA1_; LA5_: ; { NIM_BOOL T21_; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2; T21_ = (NIM_BOOL)0; T21_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58)); if (!(T21_)) goto LA22_; T21_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41)); LA22_: ; if (!T21_) goto LA23_; n_2 = (*n)._kind_6.sons->data[((NI) 1)]; { NI i_3; NI colontmp__2; NI i_4; i_3 = (NI)0; colontmp__2 = (NI)0; colontmp__2 = len__ast_3198(n_2); i_4 = ((NI) 0); { while (1) { if (!(i_4 < colontmp__2)) goto LA27; i_3 = i_4; { tyProc__2zVtpTRUOsHSWXUjCANYlA T30_; NIM_BOOL T31_; nimZeroMem((void*)(&T30_), sizeof(tyProc__2zVtpTRUOsHSWXUjCANYlA)); T30_.ClP_0 = matchStarAux__patterns_182; T30_.ClE_0 = colonenvP_; T31_ = (NIM_BOOL)0; T31_ = T30_.ClE_0? T30_.ClP_0(c, op, (*n_2)._kind_6.sons->data[i_3], arglist, rpn, T30_.ClE_0):((TM__1E9cVLQUjhbw81lEou89bC9bw_8)(T30_.ClP_0))(c, op, (*n_2)._kind_6.sons->data[i_3], arglist, rpn); if (!!(T31_)) goto LA32_; result = NIM_FALSE; goto BeforeRet_; } LA32_: ; i_4 += ((NI) 1); } LA27: ; } } } goto LA1_; LA23_: ; { NIM_BOOL T35_; T35_ = (NIM_BOOL)0; T35_ = checkTypes__patterns_98(c, (*(*(*colonenvP_).p1)._kind_6.sons->data[((NI) 2)])._kind_4.sym, n); if (!T35_) goto LA36_; add__ast_4797(arglist, n); } goto LA1_; LA36_: ; { result = NIM_FALSE; } LA1_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNested__patterns_176)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL rpn) { NIM_BOOL result; tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA* colonenv_; { result = (NIM_BOOL)0; colonenv_ = NIM_NIL; colonenv_ = (tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA*) newObj((&NTIrefobject__jrUntIBTBNpJiJYXuyZctg_), sizeof(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA)); (*colonenv_).Sup.m_type = (&NTIobject__MvzTl9buOo7Gy8twSJhcfLA_); asgnRef((void**) (&(*colonenv_).p1), p); { if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)))) goto LA3_; result = NIM_FALSE; goto BeforeRet_; } LA3_: ; { NIM_BOOL T7_; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist; T7_ = (NIM_BOOL)0; T7_ = matches__patterns_29(c, (*(*colonenv_).p1)._kind_6.sons->data[((NI) 1)], (*n)._kind_6.sons->data[((NI) 0)]); if (!T7_) goto LA8_; arglist = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n).info); { tyProc__2zVtpTRUOsHSWXUjCANYlA T12_; NIM_BOOL T13_; nimZeroMem((void*)(&T12_), sizeof(tyProc__2zVtpTRUOsHSWXUjCANYlA)); T12_.ClP_0 = matchStarAux__patterns_182; T12_.ClE_0 = colonenv_; T13_ = (NIM_BOOL)0; T13_ = T12_.ClE_0? T12_.ClP_0(c, (*colonenv_).p1, n, arglist, rpn, T12_.ClE_0):((TM__1E9cVLQUjhbw81lEou89bC9bw_9)(T12_.ClP_0))(c, (*colonenv_).p1, n, arglist, rpn); if (!T13_) goto LA14_; result = bindOrCheck__patterns_144(c, (*(*(*colonenv_).p1)._kind_6.sons->data[((NI) 2)])._kind_4.sym, arglist); } LA14_: ; } LA8_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, gather__patterns_158)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pp; pp = getLazy__patterns_17(c, param); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = !((pp == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))); if (!(T3_)) goto LA4_; T3_ = ((*pp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)); LA4_: ; if (!T3_) goto LA5_; add__ast_4797(pp, n); } goto LA1_; LA5_: ; { pp = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n).info, ((NI) 1)); asgnRef((void**) (&(*pp)._kind_6.sons->data[((NI) 0)]), n); putLazy__patterns_21(c, param, pp); } LA1_: ; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__patterns_29)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { NIM_BOOL result; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2; { result = (NIM_BOOL)0; n_2 = skipHidden__types_3604(n); { if (!(((*n_2).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 6))&31U)))!=0)) goto LA3_; result = NIM_FALSE; } goto LA1_; LA3_: ; { NIM_BOOL T6_; T6_ = (NIM_BOOL)0; T6_ = isPatternParam__patterns_114(c, p); if (!T6_) goto LA7_; result = bindOrCheck__patterns_144(c, (*p)._kind_4.sym, n_2); } goto LA1_; LA7_: ; { NIM_BOOL T10_; T10_ = (NIM_BOOL)0; T10_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)); if (!(T10_)) goto LA11_; T10_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2)); LA11_: ; if (!T10_) goto LA12_; result = ((*(*p)._kind_5.ident).id == (*(*(*n_2)._kind_4.sym).name).id); } goto LA1_; LA12_: ; { NIM_BOOL T15_; T15_ = (NIM_BOOL)0; T15_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)); if (!(T15_)) goto LA16_; T15_ = inSymChoice__patterns_72(p, n_2); LA16_: ; if (!T15_) goto LA17_; result = NIM_TRUE; } goto LA1_; LA17_: ; { NIM_BOOL T20_; T20_ = (NIM_BOOL)0; T20_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)); if (!(T20_)) goto LA21_; T20_ = ((*(*n_2)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10)); LA21_: ; if (!T20_) goto LA22_; { if (!((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA26_; result = ((*p)._kind_4.sym == (*n_2)._kind_4.sym); } goto LA24_; LA26_: ; { NIM_BOOL T29_; T29_ = (NIM_BOOL)0; T29_ = matches__patterns_29(c, p, (*(*n_2)._kind_4.sym).ast); if (!T29_) goto LA30_; result = NIM_TRUE; } goto LA24_; LA30_: ; LA24_: ; } goto LA1_; LA22_: ; { NimStringDesc* opr; if (!((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 153))) goto LA33_; opr = (*(*(*p)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s; if (eqStrings(opr, ((NimStringDesc*) &TM__1E9cVLQUjhbw81lEou89bC9bw_2))) goto LA35_; if (eqStrings(opr, ((NimStringDesc*) &TM__1E9cVLQUjhbw81lEou89bC9bw_3))) goto LA36_; if (eqStrings(opr, ((NimStringDesc*) &TM__1E9cVLQUjhbw81lEou89bC9bw_4))) goto LA37_; if (eqStrings(opr, ((NimStringDesc*) &TM__1E9cVLQUjhbw81lEou89bC9bw_5))) goto LA38_; goto LA39_; LA35_: ; { result = matchChoice__patterns_130(c, p, n_2); } goto LA40_; LA36_: ; { result = matchNested__patterns_176(c, p, n_2, NIM_FALSE); } goto LA40_; LA37_: ; { result = matchNested__patterns_176(c, p, n_2, NIM_TRUE); } goto LA40_; LA38_: ; { NIM_BOOL T45_; T45_ = (NIM_BOOL)0; T45_ = matches__patterns_29(c, (*p)._kind_6.sons->data[((NI) 1)], n_2); result = !(T45_); } goto LA40_; LA39_: ; { { if (!NIM_TRUE) goto LA49_; failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__1E9cVLQUjhbw81lEou89bC9bw_10)); } LA49_: ; } LA40_: ; } goto LA1_; LA33_: ; { if (!((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40))) goto LA52_; { if (!((*(*p)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30))) goto LA56_; { NIM_BOOL T60_; T60_ = (NIM_BOOL)0; T60_ = matches__patterns_29(c, (*p)._kind_6.sons->data[((NI) 0)], n_2); if (!T60_) goto LA61_; gather__patterns_158(c, (*(*(*p)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)])._kind_4.sym, n_2); result = NIM_TRUE; } LA61_: ; } goto LA54_; LA56_: ; { { NIM_BOOL T66_; T66_ = (NIM_BOOL)0; T66_ = matches__patterns_29(c, (*p)._kind_6.sons->data[((NI) 0)], n_2); if (!T66_) goto LA67_; result = bindOrCheck__patterns_144(c, (*(*p)._kind_6.sons->data[((NI) 1)])._kind_4.sym, n_2); } LA67_: ; } LA54_: ; } goto LA1_; LA52_: ; { NIM_BOOL T70_; T70_ = (NIM_BOOL)0; T70_ = sameKinds__patterns_36(p, n_2); if (!T70_) goto LA71_; switch ((*p).kind) { case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3): { result = ((*p)._kind_4.sym == (*n_2)._kind_4.sym); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2): { result = ((*(*p)._kind_5.ident).id == (*(*n_2)._kind_5.ident).id); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10): { result = ((*p)._kind_1.intVal == (*n_2)._kind_1.intVal); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18): { result = ((*p)._kind_2.floatVal == (*n_2)._kind_2.floatVal); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22): { result = eqStrings((*p)._kind_3.strVal, (*n_2)._kind_3.strVal); } break; case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1): case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23): case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4): { result = NIM_TRUE; } break; default: { tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v; v = lastSon__ast_4832(p); { NIM_BOOL T82_; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arglist; T82_ = (NIM_BOOL)0; T82_ = isPatternParam__patterns_114(c, v); if (!(T82_)) goto LA83_; T82_ = ((*(*(*v)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48)); LA83_: ; if (!T82_) goto LA84_; arglist = NIM_NIL; { NI T88_; NI T89_; T88_ = (NI)0; T88_ = len__ast_3198(p); T89_ = (NI)0; T89_ = len__ast_3198(n_2); if (!(T88_ <= T89_)) goto LA90_; { NI i; NI colontmp_; NI T93_; NI i_2; i = (NI)0; colontmp_ = (NI)0; T93_ = (NI)0; T93_ = len__ast_3198(p); colontmp_ = (NI)(T93_ - ((NI) 1)); i_2 = ((NI) 0); { while (1) { if (!(i_2 < colontmp_)) goto LA95; i = i_2; { NIM_BOOL T98_; T98_ = (NIM_BOOL)0; T98_ = matches__patterns_29(c, (*p)._kind_6.sons->data[i], (*n_2)._kind_6.sons->data[i]); if (!!(T98_)) goto LA99_; goto BeforeRet_; } LA99_: ; i_2 += ((NI) 1); } LA95: ; } } { NIM_BOOL T103_; NIM_BOOL T104_; NI T105_; NI T106_; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T108_; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T110_; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_3; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T113_; NI T114_; T103_ = (NIM_BOOL)0; T104_ = (NIM_BOOL)0; T105_ = (NI)0; T105_ = len__ast_3198(p); T106_ = (NI)0; T106_ = len__ast_3198(n_2); T104_ = (T105_ == T106_); if (!(T104_)) goto LA107_; T108_ = NIM_NIL; T108_ = lastSon__ast_4832(n_2); T104_ = ((*T108_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58)); LA107_: ; T103_ = T104_; if (!(T103_)) goto LA109_; T110_ = NIM_NIL; T110_ = lastSon__ast_4832(n_2); T103_ = ((*(*T110_)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41)); LA109_: ; if (!T103_) goto LA111_; T113_ = NIM_NIL; T113_ = lastSon__ast_4832(n_2); n_3 = (*T113_)._kind_6.sons->data[((NI) 1)]; T114_ = (NI)0; T114_ = len__ast_3198(n_3); arglist = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n_3).info, T114_); { NI i_3; NI colontmp__2; NI i_4; i_3 = (NI)0; colontmp__2 = (NI)0; colontmp__2 = len__ast_3198(n_3); i_4 = ((NI) 0); { while (1) { if (!(i_4 < colontmp__2)) goto LA117; i_3 = i_4; asgnRef((void**) (&(*arglist)._kind_6.sons->data[i_3]), (*n_3)._kind_6.sons->data[i_3]); i_4 += ((NI) 1); } LA117: ; } } } goto LA101_; LA111_: ; { NI T119_; NI T120_; T119_ = (NI)0; T119_ = len__ast_3198(n_2); T120_ = (NI)0; T120_ = len__ast_3198(p); arglist = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n_2).info, (NI)((NI)(T119_ - T120_) + ((NI) 1))); { NI i_5; NI colontmp__3; NI T122_; NI T123_; NI res; i_5 = (NI)0; colontmp__3 = (NI)0; T122_ = (NI)0; T122_ = len__ast_3198(n_2); T123_ = (NI)0; T123_ = len__ast_3198(p); colontmp__3 = (NI)(T122_ - T123_); res = ((NI) 0); { while (1) { NI T126_; if (!(res <= colontmp__3)) goto LA125; i_5 = res; T126_ = (NI)0; T126_ = len__ast_3198(p); asgnRef((void**) (&(*arglist)._kind_6.sons->data[i_5]), (*n_2)._kind_6.sons->data[(NI)((NI)(i_5 + T126_) - ((NI) 1))]); res += ((NI) 1); } LA125: ; } } } LA101_: ; result = bindOrCheck__patterns_144(c, (*v)._kind_4.sym, arglist); goto BeforeRet_; } goto LA86_; LA90_: ; { NI T128_; NI T129_; T128_ = (NI)0; T128_ = len__ast_3198(p); T129_ = (NI)0; T129_ = len__ast_3198(n_2); if (!((NI)(T128_ - ((NI) 1)) == T129_)) goto LA130_; { NI i_6; NI colontmp__4; NI T133_; NI i_7; i_6 = (NI)0; colontmp__4 = (NI)0; T133_ = (NI)0; T133_ = len__ast_3198(p); colontmp__4 = (NI)(T133_ - ((NI) 1)); i_7 = ((NI) 0); { while (1) { if (!(i_7 < colontmp__4)) goto LA135; i_6 = i_7; { NIM_BOOL T138_; T138_ = (NIM_BOOL)0; T138_ = matches__patterns_29(c, (*p)._kind_6.sons->data[i_6], (*n_2)._kind_6.sons->data[i_6]); if (!!(T138_)) goto LA139_; goto BeforeRet_; } LA139_: ; i_7 += ((NI) 1); } LA135: ; } } arglist = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n_2).info); result = bindOrCheck__patterns_144(c, (*v)._kind_4.sym, arglist); goto BeforeRet_; } goto LA86_; LA130_: ; LA86_: ; } LA84_: ; { NI T143_; NI T144_; T143_ = (NI)0; T143_ = len__ast_3198(p); T144_ = (NI)0; T144_ = len__ast_3198(n_2); if (!(T143_ == T144_)) goto LA145_; { NI i_8; NI colontmp__5; NI i_9; i_8 = (NI)0; colontmp__5 = (NI)0; colontmp__5 = len__ast_3198(p); i_9 = ((NI) 0); { while (1) { if (!(i_9 < colontmp__5)) goto LA149; i_8 = i_9; { NIM_BOOL T152_; T152_ = (NIM_BOOL)0; T152_ = matches__patterns_29(c, (*p)._kind_6.sons->data[i_8], (*n_2)._kind_6.sons->data[i_8]); if (!!(T152_)) goto LA153_; goto BeforeRet_; } LA153_: ; i_9 += ((NI) 1); } LA149: ; } } result = NIM_TRUE; } LA145_: ; } break; } } goto LA1_; LA71_: ; LA1_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchRange__patterns_437)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i) { NIM_BOOL result; { result = (NIM_BOOL)0; { NI j; NI colontmp_; NI i_2; j = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3198(p); i_2 = ((NI) 0); { while (1) { if (!(i_2 < colontmp_)) goto LA3; j = i_2; { NIM_BOOL T6_; T6_ = (NIM_BOOL)0; T6_ = matches__patterns_29(c, (*p)._kind_6.sons->data[j], (*n)._kind_6.sons->data[(NI)(i + j)]); if (!!(T6_)) goto LA7_; unsureAsgnRef((void**) (&(*c).mapping), NIM_NIL); (*c).mappingIsFull = NIM_FALSE; result = NIM_FALSE; goto BeforeRet_; } LA7_: ; i_2 += ((NI) 1); } LA3: ; } } result = NIM_TRUE; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, matchStmtList__patterns_432)(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result; result = NIM_NIL; { NIM_BOOL T3_; NIM_BOOL T4_; NI T7_; NI T8_; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2; T3_ = (NIM_BOOL)0; T4_ = (NIM_BOOL)0; T4_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115)); if (!(T4_)) goto LA5_; T4_ = ((*n).kind == (*p).kind); LA5_: ; T3_ = T4_; if (!(T3_)) goto LA6_; T7_ = (NI)0; T7_ = len__ast_3198(p); T8_ = (NI)0; T8_ = len__ast_3198(n); T3_ = (T7_ < T8_); LA6_: ; if (!T3_) goto LA9_; n_2 = flattenStmts__trees_355(n); { NI i; NI colontmp_; NI T12_; NI T13_; NI res; i = (NI)0; colontmp_ = (NI)0; T12_ = (NI)0; T12_ = len__ast_3198(n_2); T13_ = (NI)0; T13_ = len__ast_3198(p); colontmp_ = (NI)(T12_ - T13_); res = ((NI) 0); { while (1) { if (!(res <= colontmp_)) goto LA15; i = res; { NIM_BOOL T18_; NI T21_; NI T22_; NI T23_; T18_ = (NIM_BOOL)0; T18_ = matchRange__patterns_437(c, p, n_2, i); if (!T18_) goto LA19_; (*c).subMatch = NIM_TRUE; result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n_2).info, ((NI) 3)); asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), extractRange__trees_362(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), n_2, ((NI) 0), (NI)(i - ((NI) 1)))); T21_ = (NI)0; T21_ = len__ast_3198(p); asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), extractRange__trees_362(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), n_2, i, (NI)((NI)(i + T21_) - ((NI) 1)))); T22_ = (NI)0; T22_ = len__ast_3198(p); T23_ = (NI)0; T23_ = len__ast_3198(n_2); asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), extractRange__trees_362(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), n_2, (NI)(i + T22_), (NI)(T23_ - ((NI) 1)))); goto LA11; } LA19_: ; res += ((NI) 1); } LA15: ; } } LA11: ; } goto LA1_; LA9_: ; { NIM_BOOL T25_; T25_ = (NIM_BOOL)0; T25_ = matches__patterns_29(c, p, n); if (!T25_) goto LA26_; result = n; } goto LA1_; LA26_: ; LA1_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, aliasAnalysisRequested__patterns_495)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params) { NIM_BOOL result; { result = (NIM_BOOL)0; { NI T3_; T3_ = (NI)0; T3_ = len__ast_3198(params); if (!(((NI) 2) <= T3_)) goto LA4_; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3198(params); i_2 = ((NI) 1); { while (1) { tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param; if (!(i_2 < colontmp_)) goto LA8; i = i_2; param = (*(*params)._kind_6.sons->data[i])._kind_4.sym; { tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw T11_; T11_ = (tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw)0; T11_ = whichAlias__parampatterns_48(param); if (!!((T11_ == ((tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw) 1)))) goto LA12_; result = NIM_TRUE; goto BeforeRet_; } LA12_: ; i_2 += ((NI) 1); } LA8: ; } } } LA4_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, addToArgList__patterns_516)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))); if (!(T3_)) goto LA4_; T3_ = !(((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7))); LA4_: ; if (!T3_) goto LA5_; { if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152)))) goto LA9_; add__ast_4797(result, n); } goto LA7_; LA9_: ; { { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3198(n); i_2 = ((NI) 0); { while (1) { if (!(i_2 < colontmp_)) goto LA14; i = i_2; add__ast_4797(result, (*n)._kind_6.sons->data[i]); i_2 += ((NI) 1); } LA14: ; } } } LA7_: ; } LA5_: ; } static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { NI result; result = (NI)0; { if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_; result = ((NI) 0); } goto LA1_; LA3_: ; { result = len__ast_3198(n); } LA1_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyRule__patterns_548)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) { tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result; tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug ctx; NI T1_; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params; NIM_BOOL requiresAA; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* args; { result = NIM_NIL; nimZeroMem((void*)(&ctx), sizeof(tyObject_TPatternContext__ArP5wLemitHqyeu50ovXug)); ctx.owner = s; ctx.c = c; T1_ = (NI)0; T1_ = len__ast_4002((*s).typ); ctx.formals = (NI)(T1_ - ((NI) 1)); m = matchStmtList__patterns_432((&ctx), (*(*s).ast)._kind_6.sons->data[((NI) 1)], n); { if (!(m == 0)) goto LA4_; result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL); goto BeforeRet_; } LA4_: ; result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info); T6_ = NIM_NIL; T6_ = newSymNode__ast_3719(s, (*n).info); add__ast_4797(result, T6_); params = (*(*s).typ).n; requiresAA = aliasAnalysisRequested__patterns_495(params); args = NIM_NIL; { if (!requiresAA) goto LA9_; args = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n).info); } LA9_: ; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3198(params); i_2 = ((NI) 1); { while (1) { tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param; tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x; if (!(i_2 < colontmp_)) goto LA13; i = i_2; param = (*(*params)._kind_6.sons->data[i])._kind_4.sym; x = getLazy__patterns_17((&ctx), param); { if (!(x == 0)) goto LA16_; result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL); goto BeforeRet_; } LA16_: ; add__ast_4797(result, x); { if (!requiresAA) goto LA20_; addToArgList__patterns_516(args, x); } LA20_: ; i_2 += ((NI) 1); } LA13: ; } } { if (!requiresAA) goto LA24_; { NI i_3; NI colontmp__2; NI i_4; i_3 = (NI)0; colontmp__2 = (NI)0; colontmp__2 = len__ast_3198(params); i_4 = ((NI) 1); { while (1) { tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rs; tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param_2; tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw T29_; if (!(i_4 < colontmp__2)) goto LA28; i_3 = i_4; rs = (*result)._kind_6.sons->data[i_3]; param_2 = (*(*params)._kind_6.sons->data[i_3])._kind_4.sym; T29_ = (tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw)0; T29_ = whichAlias__parampatterns_48(param_2); switch (T29_) { case ((tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw) 1): { } break; case ((tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw) 2): { NIM_BOOL ok; ok = NIM_FALSE; { tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg; arg = NIM_NIL; { NI i_5; NI colontmp__3; NI i_6; i_5 = (NI)0; colontmp__3 = (NI)0; colontmp__3 = safeLen__ast_3191(args); i_6 = ((NI) 0); { while (1) { if (!(i_6 < colontmp__3)) goto LA35; i_5 = i_6; arg = (*args)._kind_6.sons->data[i_5]; { NIM_BOOL T38_; tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w T40_; T38_ = (NIM_BOOL)0; T38_ = !((arg == rs)); if (!(T38_)) goto LA39_; T40_ = (tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w)0; T40_ = isPartOf__aliases_129(rs, arg); T38_ = (T40_ == ((tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w) 2)); LA39_: ; if (!T38_) goto LA41_; ok = NIM_TRUE; goto LA32; } LA41_: ; i_6 += ((NI) 1); } LA35: ; } } } LA32: ; { if (!!(ok)) goto LA45_; result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL); goto BeforeRet_; } LA45_: ; } break; case ((tyEnum_TAliasRequest__BbWVl1Ad9ayM74eg8oBpAfw) 3): { NIM_BOOL ok_2; ok_2 = NIM_TRUE; { tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg_2; arg_2 = NIM_NIL; { NI i_7; NI colontmp__4; NI i_8; i_7 = (NI)0; colontmp__4 = (NI)0; colontmp__4 = safeLen__ast_3191(args); i_8 = ((NI) 0); { while (1) { if (!(i_8 < colontmp__4)) goto LA51; i_7 = i_8; arg_2 = (*args)._kind_6.sons->data[i_7]; { NIM_BOOL T54_; tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w T56_; T54_ = (NIM_BOOL)0; T54_ = !((arg_2 == rs)); if (!(T54_)) goto LA55_; T56_ = (tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w)0; T56_ = isPartOf__aliases_129(rs, arg_2); T54_ = !((T56_ == ((tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w) 0))); LA55_: ; if (!T54_) goto LA57_; ok_2 = NIM_FALSE; goto LA48; } LA57_: ; i_8 += ((NI) 1); } LA51: ; } } } LA48: ; { if (!!(ok_2)) goto LA61_; result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL); goto BeforeRet_; } LA61_: ; } break; } i_4 += ((NI) 1); } LA28: ; } } } LA24_: ; markUsed__sigmatch_85(c, (*n).info, s); { if (!ctx.subMatch) goto LA65_; asgnRef((void**) (&(*m)._kind_6.sons->data[((NI) 1)]), result); result = m; } LA65_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, compiler_patternsDatInit000)(void) { static TNimNode* TM__1E9cVLQUjhbw81lEou89bC9bw_6_2[2]; static TNimNode TM__1E9cVLQUjhbw81lEou89bC9bw_0[3]; NTIobject__MvzTl9buOo7Gy8twSJhcfLA_.size = sizeof(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA); NTIobject__MvzTl9buOo7Gy8twSJhcfLA_.align = NIM_ALIGNOF(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA); NTIobject__MvzTl9buOo7Gy8twSJhcfLA_.kind = 17; NTIobject__MvzTl9buOo7Gy8twSJhcfLA_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_); TM__1E9cVLQUjhbw81lEou89bC9bw_6_2[0] = &TM__1E9cVLQUjhbw81lEou89bC9bw_0[1]; TM__1E9cVLQUjhbw81lEou89bC9bw_0[1].kind = 1; TM__1E9cVLQUjhbw81lEou89bC9bw_0[1].offset = offsetof(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA, colonstate_); TM__1E9cVLQUjhbw81lEou89bC9bw_0[1].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_); TM__1E9cVLQUjhbw81lEou89bC9bw_0[1].name = ":state"; TM__1E9cVLQUjhbw81lEou89bC9bw_6_2[1] = &TM__1E9cVLQUjhbw81lEou89bC9bw_0[2]; TM__1E9cVLQUjhbw81lEou89bC9bw_0[2].kind = 1; TM__1E9cVLQUjhbw81lEou89bC9bw_0[2].offset = offsetof(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA, p1); TM__1E9cVLQUjhbw81lEou89bC9bw_0[2].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_); TM__1E9cVLQUjhbw81lEou89bC9bw_0[2].name = "p1"; TM__1E9cVLQUjhbw81lEou89bC9bw_0[0].len = 2; TM__1E9cVLQUjhbw81lEou89bC9bw_0[0].kind = 2; TM__1E9cVLQUjhbw81lEou89bC9bw_0[0].sons = &TM__1E9cVLQUjhbw81lEou89bC9bw_6_2[0]; NTIobject__MvzTl9buOo7Gy8twSJhcfLA_.node = &TM__1E9cVLQUjhbw81lEou89bC9bw_0[0]; NTIrefobject__jrUntIBTBNpJiJYXuyZctg_.size = sizeof(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA*); NTIrefobject__jrUntIBTBNpJiJYXuyZctg_.align = NIM_ALIGNOF(tyObject_Env_patternsdotnim_matchNested___MvzTl9buOo7Gy8twSJhcfLA*); NTIrefobject__jrUntIBTBNpJiJYXuyZctg_.kind = 22; NTIrefobject__jrUntIBTBNpJiJYXuyZctg_.base = (&NTIobject__MvzTl9buOo7Gy8twSJhcfLA_); NTIrefobject__jrUntIBTBNpJiJYXuyZctg_.marker = Marker_tyRef__jrUntIBTBNpJiJYXuyZctg; }