Ë NL iµ2ãóv—dZddlmZddlmZddlmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNddlOmPZPddlQmRZRmSZSmTZTddlUmVZVddlWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpdd lqmrZrmsZsmtZtmuZudd lvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZm€Z€mZm‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹mŒZŒmZGd „d eS«ZŽy )z€Dispatcher used when transforming a mypy AST to the IR form. mypyc.irbuild.builder and mypyc.irbuild.main are closely related. é)Ú annotations)ÚNoReturn)IÚ AssertStmtÚAssertTypeExprÚAssignmentExprÚAssignmentStmtÚ AwaitExprÚBlockÚ BreakStmtÚ BytesExprÚCallExprÚCastExprÚClassDefÚComparisonExprÚ ComplexExprÚConditionalExprÚ ContinueStmtÚ DecoratorÚDelStmtÚDictExprÚDictionaryComprehensionÚ EllipsisExprÚ EnumCallExprÚExpressionStmtÚ FloatExprÚForStmtÚFuncDefÚ GeneratorExprÚ GlobalDeclÚIfStmtÚImportÚ ImportAllÚ ImportFromÚ IndexExprÚIntExprÚ LambdaExprÚListComprehensionÚListExprÚ MatchStmtÚ MemberExprÚMypyFileÚNamedTupleExprÚNameExprÚ NewTypeExprÚ NonlocalDeclÚOperatorAssignmentStmtÚOpExprÚOverloadedFuncDefÚ ParamSpecExprÚPassStmtÚ PromoteExprÚ RaiseStmtÚ ReturnStmtÚ RevealExprÚSetComprehensionÚSetExprÚ SliceExprÚStarExprÚStrExprÚ SuperExprÚTempNodeÚTryStmtÚ TupleExprÚ TypeAliasExprÚ TypeAliasStmtÚTypeApplicationÚ TypedDictExprÚ TypeVarExprÚTypeVarTupleExprÚ UnaryExprÚVarÚ WhileStmtÚWithStmtÚ YieldExprÚ YieldFromExpr)ÚValue)Ú IRBuilderÚ IRVisitorÚUnsupportedException)Útransform_class_def)Útransform_assignment_exprÚtransform_bytes_exprÚtransform_call_exprÚtransform_comparison_exprÚtransform_complex_exprÚtransform_conditional_exprÚtransform_dict_exprÚ"transform_dictionary_comprehensionÚtransform_ellipsisÚtransform_float_exprÚtransform_generator_exprÚtransform_index_exprÚtransform_int_exprÚtransform_list_comprehensionÚtransform_list_exprÚtransform_member_exprÚtransform_name_exprÚtransform_op_exprÚtransform_set_comprehensionÚtransform_set_exprÚtransform_slice_exprÚtransform_str_exprÚtransform_super_exprÚtransform_tuple_exprÚtransform_unary_expr)Útransform_decoratorÚtransform_func_defÚtransform_lambda_exprÚtransform_overloaded_func_def)Útransform_assert_stmtÚtransform_assignment_stmtÚtransform_await_exprÚtransform_blockÚtransform_break_stmtÚtransform_continue_stmtÚtransform_del_stmtÚtransform_expression_stmtÚtransform_for_stmtÚtransform_if_stmtÚtransform_importÚtransform_import_allÚtransform_import_fromÚtransform_match_stmtÚ"transform_operator_assignment_stmtÚtransform_raise_stmtÚtransform_return_stmtÚtransform_try_stmtÚtransform_type_alias_stmtÚtransform_while_stmtÚtransform_with_stmtÚtransform_yield_exprÚtransform_yield_from_exprcól—eZdZUdZded<dOd„ZdPd„ZdQd„ZdRd„ZdSd„Z dTd „Z dUd „Z dVd „Z dWd „Z dXd „ZdYd„ZdZd„Zd[d„Zd\d„Zd]d„Zd^d„Zd_d„Zd`d„Zdad„Zdbd„Zdcd„Zddd„Zded„Zdfd„Zdgd„Zdhd„Zdid„Zdjd„Z dkd „Z!dld!„Z"dmd"„Z#dnd#„Z$dod$„Z%dpd%„Z&dqd&„Z'drd'„Z(dsd(„Z)dtd)„Z*dud*„Z+dvd+„Z,dwd,„Z-dxd-„Z.dyd.„Z/dzd/„Z0d{d0„Z1d|d1„Z2d}d2„Z3d~d3„Z4dd4„Z5d€d5„Z6dd6„Z7d‚d7„Z8dƒd8„Z9d„d9„Z:d…d:„Z;d†d;„Zd‰d>„Z?dŠd?„Z@d‹d@„ZAdŒdA„ZBddB„ZCdŽdC„ZDddD„ZEddE„ZFd‘dF„ZGd’dG„ZHd“dH„ZId”dI„ZJd•dJ„ZKd–dK„ZLd—dL„ZMd˜dM„ZNyN)™ÚIRBuilderVisitoraEMypy node visitor that dispatches to node transform implementations. This class should have no non-trivial logic. This visitor is separated from the rest of code to improve modularity and to avoid import cycles. This is based on the visitor pattern (https://en.wikipedia.org/wiki/Visitor_pattern). rOÚbuildercó—Jd«‚)Nzuse transform_mypy_file instead©)ÚselfÚmypyfiles ú[/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypyc/irbuild/visitor.pyÚvisit_mypy_filez IRBuilderVisitor.visit_mypy_file¥s €Ø7Ð7Ó7ˆuócó0—t|j|«y©N)rRr‰)rŒÚcdefs rŽÚvisit_class_defz IRBuilderVisitor.visit_class_def¨ó€Ü˜DŸL™L¨$Õ/rcó0—t|j|«yr’)rzr‰©rŒÚnodes rŽÚ visit_importzIRBuilderVisitor.visit_import«s€Ü˜Ÿ™ tÕ,rcó0—t|j|«yr’)r|r‰r—s rŽÚvisit_import_fromz"IRBuilderVisitor.visit_import_from®ó€Ü˜dŸl™l¨DÕ1rcó0—t|j|«yr’)r{r‰r—s rŽÚvisit_import_allz!IRBuilderVisitor.visit_import_all±ó€Ü˜TŸ\™\¨4Õ0rcó0—t|j|«yr’)rmr‰)rŒÚfdefs rŽÚvisit_func_defzIRBuilderVisitor.visit_func_def´ó€Ü˜4Ÿ<™<¨Õ.rcó0—t|j|«yr’)ror‰©rŒÚos rŽÚvisit_overloaded_func_defz*IRBuilderVisitor.visit_overloaded_func_def·s€Ü% d§l¡l°AÕ6rcó0—t|j|«yr’)rlr‰)rŒÚdecs rŽÚvisit_decoratorz IRBuilderVisitor.visit_decoratorºs€Ü˜DŸL™L¨#Õ.rcó0—t|j|«yr’)rsr‰)rŒÚblocks rŽÚ visit_blockzIRBuilderVisitor.visit_block½s€Ü˜Ÿ ™  eÕ,rcó0—t|j|«yr’)rwr‰©rŒÚstmts rŽÚvisit_expression_stmtz&IRBuilderVisitor.visit_expression_stmtÂó€Ü! $§,¡,°Õ5rcód—t|j|«|jj«yr’)r€r‰Úmark_block_unreachabler¯s rŽÚvisit_return_stmtz"IRBuilderVisitor.visit_return_stmtÅs €Ü˜dŸl™l¨DÔ1Ø ‰ ×+Ñ+Õ-rcó0—t|j|«yr’)rqr‰r¯s rŽÚvisit_assignment_stmtz&IRBuilderVisitor.visit_assignment_stmtÉr²rcó0—t|j|«yr’)r~r‰r¯s rŽÚvisit_operator_assignment_stmtz/IRBuilderVisitor.visit_operator_assignment_stmtÌs€Ü*¨4¯<©<¸Õ>rcó0—t|j|«yr’)ryr‰r¯s rŽÚ visit_if_stmtzIRBuilderVisitor.visit_if_stmtÏs€Ü˜$Ÿ,™,¨Õ-rcó0—t|j|«yr’)rƒr‰r¯s rŽÚvisit_while_stmtz!IRBuilderVisitor.visit_while_stmtÒrŸrcó0—t|j|«yr’)rxr‰r¯s rŽÚvisit_for_stmtzIRBuilderVisitor.visit_for_stmtÕr£rcód—t|j|«|jj«yr’)rtr‰r´r¯s rŽÚvisit_break_stmtz!IRBuilderVisitor.visit_break_stmtØó €Ü˜TŸ\™\¨4Ô0Ø ‰ ×+Ñ+Õ-rcód—t|j|«|jj«yr’)rur‰r´r¯s rŽÚvisit_continue_stmtz$IRBuilderVisitor.visit_continue_stmtÜs €Ü § ¡ ¨dÔ3Ø ‰ ×+Ñ+Õ-rcód—t|j|«|jj«yr’)rr‰r´r¯s rŽÚvisit_raise_stmtz!IRBuilderVisitor.visit_raise_stmtàrÂrcó0—t|j|«yr’)rr‰r¯s rŽÚvisit_try_stmtzIRBuilderVisitor.visit_try_stmtär£rcó0—t|j|«yr’)r„r‰r¯s rŽÚvisit_with_stmtz IRBuilderVisitor.visit_with_stmtçr•rcó—yr’r‹r¯s rŽÚvisit_pass_stmtz IRBuilderVisitor.visit_pass_stmtês€Ø rcó0—t|j|«yr’)rpr‰r¯s rŽÚvisit_assert_stmtz"IRBuilderVisitor.visit_assert_stmtírœrcó0—t|j|«yr’)rvr‰r¯s rŽÚvisit_del_stmtzIRBuilderVisitor.visit_del_stmtðr£rcó—yr’r‹r¯s rŽÚvisit_global_declz"IRBuilderVisitor.visit_global_declóó€à rcó—yr’r‹r¯s rŽÚvisit_nonlocal_declz$IRBuilderVisitor.visit_nonlocal_decl÷rÓrcó0—t|j|«yr’)r}r‰r¯s rŽÚvisit_match_stmtz!IRBuilderVisitor.visit_match_stmtûrŸrcó0—t|j|«yr’)r‚r‰r¯s rŽÚvisit_type_alias_stmtz&IRBuilderVisitor.visit_type_alias_stmtþr²rcó.—t|j|«Sr’)rcr‰©rŒÚexprs rŽÚvisit_name_exprz IRBuilderVisitor.visit_name_expró€Ü" 4§<¡<°Ó6Ð6rcó.—t|j|«Sr’)rbr‰rÛs rŽÚvisit_member_exprz"IRBuilderVisitor.visit_member_expró€Ü$ T§\¡\°4Ó8Ð8rcó.—t|j|«Sr’)rir‰rÛs rŽÚvisit_super_exprz!IRBuilderVisitor.visit_super_expr ó€Ü# D§L¡L°$Ó7Ð7rcó.—t|j|«Sr’)rUr‰rÛs rŽÚvisit_call_exprz IRBuilderVisitor.visit_call_expr rÞrcó.—t|j|«Sr’)rkr‰rÛs rŽÚvisit_unary_exprz!IRBuilderVisitor.visit_unary_exprrärcó.—t|j|«Sr’)rdr‰rÛs rŽÚ visit_op_exprzIRBuilderVisitor.visit_op_exprs€Ü  §¡¨tÓ4Ð4rcó.—t|j|«Sr’)r^r‰rÛs rŽÚvisit_index_exprz!IRBuilderVisitor.visit_index_exprrärcó.—t|j|«Sr’)rXr‰rÛs rŽÚvisit_conditional_exprz'IRBuilderVisitor.visit_conditional_exprs€Ü)¨$¯,©,¸Ó=Ð=rcó.—t|j|«Sr’)rVr‰rÛs rŽÚvisit_comparison_exprz&IRBuilderVisitor.visit_comparison_exprs€Ü(¨¯©°tÓ<ÐÐ>rcó.—t|j|«Sr’)rZr‰rÛs rŽÚvisit_dictionary_comprehensionz/IRBuilderVisitor.visit_dictionary_comprehensionBs€Ü1°$·,±,ÀÓEÐErcó.—t|j|«Sr’)rgr‰rÛs rŽÚvisit_slice_exprz!IRBuilderVisitor.visit_slice_exprErärcó.—t|j|«Sr’)r]r‰rÛs rŽÚvisit_generator_exprz%IRBuilderVisitor.visit_generator_exprHs€Ü'¨¯ © °dÓ;Ð;rcó.—t|j|«Sr’)rnr‰rÛs rŽÚvisit_lambda_exprz"IRBuilderVisitor.visit_lambda_exprKrárcó.—t|j|«Sr’)r…r‰rÛs rŽÚvisit_yield_exprz!IRBuilderVisitor.visit_yield_exprNrärcó.—t|j|«Sr’)r†r‰r¥s rŽÚvisit_yield_from_exprz&IRBuilderVisitor.visit_yield_from_exprQó€Ü(¨¯©°qÓ9Ð9rcó.—t|j|«Sr’)rrr‰r¥s rŽÚvisit_await_exprz!IRBuilderVisitor.visit_await_exprTs€Ü# D§L¡L°!Ó4Ð4rcó.—t|j|«Sr’)rSr‰r¥s rŽÚvisit_assignment_exprz&IRBuilderVisitor.visit_assignment_exprWrrcó—Jd«‚©Nz'can't compile analysis-only expressionsr‹r¥s rŽÚvisit_enum_call_exprz%IRBuilderVisitor.visit_enum_call_expr\ó €Ø?Ð?Ó?ˆurcó—Jd«‚rr‹r¥s rŽÚvisit__promote_exprz$IRBuilderVisitor.visit__promote_expr_rrcó—Jd«‚rr‹r¥s rŽÚvisit_namedtuple_exprz&IRBuilderVisitor.visit_namedtuple_exprbrrcó—Jd«‚rr‹r¥s rŽÚvisit_newtype_exprz#IRBuilderVisitor.visit_newtype_exprerrcó—Jd«‚rr‹r¥s rŽÚvisit_temp_nodez IRBuilderVisitor.visit_temp_nodehrrcó—Jd«‚rr‹r¥s rŽÚvisit_type_alias_exprz&IRBuilderVisitor.visit_type_alias_exprkrrcó—Jd«‚rr‹r¥s rŽÚvisit_type_applicationz'IRBuilderVisitor.visit_type_applicationnrrcó—Jd«‚rr‹r¥s rŽÚvisit_type_var_exprz$IRBuilderVisitor.visit_type_var_exprqrrcó—Jd«‚rr‹r¥s rŽÚvisit_paramspec_exprz%IRBuilderVisitor.visit_paramspec_exprtrrcó—Jd«‚rr‹r¥s rŽÚvisit_type_var_tuple_exprz*IRBuilderVisitor.visit_type_var_tuple_exprwrrcó—Jd«‚rr‹r¥s rŽÚvisit_typeddict_exprz%IRBuilderVisitor.visit_typeddict_exprzrrcó—Jd«‚rr‹r¥s rŽÚvisit_reveal_exprz"IRBuilderVisitor.visit_reveal_expr}rrcó—Jd«‚)Nz4can't compile Var; should have been handled already?r‹r¥s rŽÚ visit_varzIRBuilderVisitor.visit_var€s €ØLÐLÓLˆurcó—Jd«‚)Nz-CastExpr should have been handled in CallExprr‹r¥s rŽÚvisit_cast_exprz IRBuilderVisitor.visit_cast_exprƒs €ØEÐEÓEˆurcó—Jd«‚)Nz3AssertTypeExpr should have been handled in CallExprr‹r¥s rŽÚvisit_assert_type_exprz'IRBuilderVisitor.visit_assert_type_expr†s €ØKÐKÓKˆurcó—Jd«‚)Nz?should have been handled in Tuple/List/Set/DictExpr or CallExprr‹r¥s rŽÚvisit_star_exprz IRBuilderVisitor.visit_star_expr‰s €ØWÐWÓWˆurcóN—|jj||«t«‚)aReports an error and aborts compilation up until the last accept() call (accept() catches the UnsupportedException and keeps on processing. This allows errors to be non-blocking without always needing to write handling for them. )r‰ÚerrorrQ)rŒÚmsgÚlines rŽÚbailzIRBuilderVisitor.bailŽs!€ð ‰ ×ј3 Ô%Ü"Ó$Ð$rN)rr+ÚreturnÚNone)r“rrBrC)r˜r!rBrC)r˜r#rBrC)r˜r"rBrC)r¡rrBrC)r¦r2rBrC)r©rrBrC)r¬r rBrC)r°rrBrC)r°r7rBrC)r°rrBrC)r°r0rBrC)r°r rBrC)r°rJrBrC)r°rrBrC)r°r rBrC)r°rrBrC)r°r6rBrC)r°r@rBrC)r°rKrBrC)r°r4rBrC)r°rrBrC)r°rrBrC)r°rrBrC)r°r/rBrC)r°r)rBrC)r°rCrBrC)rÜr-rBrN)rÜr*rBrN)rÜr>rBrN)rÜr rBrN)rÜrHrBrN)rÜr1rBrN)rÜr$rBrN)rÜrrBrN)rÜrrBrN)rÜr%rBrN)rÜrrBrN)rÜrrBrN)rÜr=rBrN)rÜr rBrN)rÜrrBrN)rÜr(rBrN)rÜrArBrN)rÜrrBrN)rÜr:rBrN)rÜr'rBrN)rÜr9rBrN)rÜrrBrN)rÜr;rBrN)rÜrrBrN)rÜr&rBrN)rÜrLrBrN)r¦rMrBrN)r¦r rBrN)r¦rrBrN)r¦rrBrN)r¦r5rBrN)r¦r,rBrN)r¦r.rBrN)r¦r?rBrN)r¦rBrBrN)r¦rDrBrN)r¦rFrBrN)r¦r3rBrN)r¦rGrBrN)r¦rErBrN)r¦r8rBrN)r¦rIrBrC)r¦rrBrN)r¦rrBrN)r¦r<rBrN)r?Ústrr@ÚintrBr)OÚ__name__Ú __module__Ú __qualname__Ú__doc__Ú__annotations__rr”r™r›ržr¢r§rªr­r±rµr·r¹r»r½r¿rÁrÄrÆrÈrÊrÌrÎrÐrÒrÕr×rÙrÝràrãrærèrêrìrîrðròrõr÷rùrûrýrÿrrrrr r r rrrrrrrr r"r$r&r(r*r,r.r0r2r4r6r8r:r<rAr‹rrŽrˆrˆ”s“…ñ ðÓó8ó0ó-ó2ó1ó/ó7ó/ó-ó 6ó.ó6ó?ó.ó1ó/ó.ó.ó.ó/ó0ó ó2ó/ó ó ó1ó6ó 7ó9ó8ó7ó8ó5ó8ó>ó=ó6ó8ó:ó6ó8ó6ó7ó8ó7ó6ó@ó?óFó8ó<ó9ó8ó:ó5ó:ó @ó@ó@ó@ó@ó@ó@ó@ó@ó@ó@ó@óMóFóLóXô %rrˆN)rIÚ __future__rÚtypingrÚ mypy.nodesrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMÚ mypyc.ir.opsrNÚmypyc.irbuild.builderrOrPrQÚmypyc.irbuild.classdefrRÚmypyc.irbuild.expressionrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkÚmypyc.irbuild.functionrlrmrnroÚmypyc.irbuild.statementrprqrrrsrtrurvrwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†rˆr‹rrŽúrTsñðñõ #å÷J÷J÷J÷J÷J÷J÷J÷J÷J÷J÷J÷J÷J÷J÷J÷J÷J÷JõJõVßLÑLÝ6÷÷÷÷÷÷õ÷6ó÷ ÷÷÷÷÷ñô6B%yõB%r