jaclang 0.7.34__py3-none-any.whl → 0.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of jaclang might be problematic. Click here for more details.
- jaclang/__init__.py +7 -414
- jaclang/cli/cli.md +5 -5
- jaclang/cli/cli.py +311 -214
- jaclang/cli/cmdreg.py +188 -31
- jaclang/compiler/__init__.py +10 -15
- jaclang/compiler/{codeloc.py → codeinfo.py} +11 -30
- jaclang/compiler/constant.py +10 -33
- jaclang/compiler/jac.lark +61 -92
- jaclang/compiler/larkparse/jac_parser.py +3444 -0
- jaclang/compiler/parser.py +1004 -1223
- jaclang/compiler/passes/__init__.py +2 -2
- jaclang/compiler/passes/main/__init__.py +33 -14
- jaclang/compiler/passes/main/annex_pass.py +85 -0
- jaclang/compiler/passes/main/cfg_build_pass.py +275 -0
- jaclang/compiler/passes/main/def_impl_match_pass.py +146 -102
- jaclang/compiler/passes/main/def_use_pass.py +64 -269
- jaclang/compiler/passes/main/import_pass.py +175 -360
- jaclang/compiler/passes/main/inheritance_pass.py +107 -105
- jaclang/compiler/passes/main/pyast_gen_pass.py +1129 -1600
- jaclang/compiler/passes/main/pyast_load_pass.py +540 -584
- jaclang/compiler/passes/main/pybc_gen_pass.py +38 -35
- jaclang/compiler/passes/main/pyjac_ast_link_pass.py +46 -160
- jaclang/compiler/passes/main/sym_tab_build_pass.py +113 -1202
- jaclang/compiler/passes/main/sym_tab_link_pass.py +141 -0
- jaclang/{tests → compiler/passes/main/tests}/fixtures/access_modifier.jac +10 -9
- jaclang/compiler/passes/main/tests/fixtures/atest.impl.jac +3 -0
- jaclang/compiler/passes/main/tests/fixtures/atest.jac +11 -0
- jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl/getme.impl.jac +1 -1
- jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl.jac +1 -1
- jaclang/compiler/passes/main/tests/fixtures/autoimpl.jac +3 -3
- jaclang/compiler/passes/main/tests/fixtures/autoimpl.something.else.impl.jac +1 -1
- jaclang/compiler/passes/main/tests/fixtures/base.impl.jac +8 -0
- jaclang/compiler/passes/main/tests/fixtures/base.jac +4 -4
- jaclang/compiler/passes/main/tests/fixtures/base2.impl.jac +8 -0
- jaclang/compiler/passes/main/tests/fixtures/base2.jac +4 -4
- jaclang/compiler/passes/main/tests/fixtures/blip.jac +1 -1
- jaclang/compiler/passes/main/tests/fixtures/cfg_ability_test.jac +23 -0
- jaclang/compiler/passes/main/tests/fixtures/cfg_gen.jac +19 -0
- jaclang/compiler/passes/main/tests/fixtures/circular_import.jac +7 -0
- jaclang/compiler/passes/main/tests/fixtures/data_spatial_types.jac +12 -12
- jaclang/compiler/passes/main/tests/fixtures/decls.jac +4 -4
- jaclang/compiler/passes/main/tests/fixtures/defn_decl_mismatch.jac +4 -4
- jaclang/compiler/passes/main/tests/fixtures/defs_and_uses.jac +6 -6
- jaclang/compiler/passes/main/tests/fixtures/enumerations.jac +13 -0
- jaclang/compiler/passes/main/tests/fixtures/fstrings.jac +1 -1
- jaclang/compiler/passes/main/tests/fixtures/func.jac +2 -2
- jaclang/compiler/passes/main/tests/fixtures/func2.jac +1 -1
- jaclang/compiler/passes/main/tests/fixtures/game1.jac +4 -4
- jaclang/compiler/passes/main/tests/fixtures/impl/defs1.jac +2 -2
- jaclang/compiler/passes/main/tests/fixtures/impl/defs2.jac +2 -2
- jaclang/compiler/passes/main/tests/fixtures/impl/imps.jac +0 -8
- jaclang/compiler/passes/main/tests/fixtures/impl_grab.impl.jac +5 -0
- jaclang/{tests → compiler/passes/main/tests}/fixtures/impl_grab.jac +1 -1
- jaclang/compiler/passes/main/tests/fixtures/incautoimpl.jac +1 -1
- jaclang/compiler/passes/main/tests/fixtures/main_err.impl.jac +6 -0
- jaclang/compiler/passes/main/tests/fixtures/main_err.jac +6 -0
- jaclang/compiler/passes/main/tests/fixtures/mod_type_assign.jac +1 -1
- jaclang/compiler/passes/main/tests/fixtures/mtest.impl.jac +6 -0
- jaclang/{tests → compiler/passes/main/tests}/fixtures/mtest.jac +1 -1
- jaclang/{tests → compiler/passes/main/tests}/fixtures/nested_impls.jac +14 -15
- jaclang/compiler/passes/main/tests/fixtures/py_imp_test.jac +7 -7
- jaclang/compiler/passes/main/tests/fixtures/second_err.jac +4 -0
- jaclang/compiler/passes/main/tests/fixtures/str2doc.py +3 -0
- jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/action/__init__.py +5 -0
- jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/action/actions.jac +23 -0
- jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/main.jac +14 -0
- jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/no_dupls.jac +35 -0
- jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/one.jac +8 -0
- jaclang/compiler/passes/main/tests/fixtures/type_info.jac +4 -4
- jaclang/compiler/passes/main/tests/test_cfg_build_pass.py +99 -0
- jaclang/compiler/passes/main/tests/test_decl_impl_match_pass.py +157 -0
- jaclang/compiler/passes/main/tests/test_def_use_pass.py +4 -6
- jaclang/compiler/passes/main/tests/test_import_pass.py +59 -46
- jaclang/compiler/passes/main/tests/test_pyast_build_pass.py +15 -0
- jaclang/compiler/passes/main/tests/test_pyast_gen_pass.py +25 -34
- jaclang/compiler/passes/main/tests/test_pybc_gen_pass.py +3 -3
- jaclang/compiler/passes/main/tests/test_sub_node_pass.py +8 -7
- jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py +4 -4
- jaclang/compiler/passes/main/tests/test_sym_tab_link_pass.py +62 -0
- jaclang/compiler/passes/tool/__init__.py +2 -0
- jaclang/compiler/passes/tool/doc_ir.py +179 -0
- jaclang/compiler/passes/tool/doc_ir_gen_pass.py +1210 -0
- jaclang/compiler/passes/tool/fuse_comments_pass.py +90 -70
- jaclang/compiler/passes/tool/jac_formatter_pass.py +122 -2554
- jaclang/compiler/passes/tool/tests/fixtures/corelib.jac +249 -97
- jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac +94 -97
- jaclang/compiler/passes/tool/tests/fixtures/doc_string.jac +2 -2
- jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/access_mod_check.jac +5 -5
- jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/archetype_test.jac +13 -0
- jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/decorator_stack.jac +7 -7
- jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/line_spacing.jac +8 -8
- jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.dot +3 -3
- jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.txt +3 -3
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/ability_impl_long_comprehension.jac +1 -1
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/call_with_many_parameters.jac +2 -2
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/simple_walker.jac +3 -3
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/try_block_and_walker_spawn_and_fstrings.jac +1 -1
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/type_annotation.jac +1 -1
- jaclang/compiler/passes/tool/tests/fixtures/simple_walk.jac +1 -1
- jaclang/compiler/passes/tool/tests/fixtures/simple_walk_fmt.jac +10 -4
- jaclang/compiler/passes/tool/tests/test_doc_ir_gen_pass.py +29 -0
- jaclang/compiler/passes/tool/tests/test_jac_format_pass.py +63 -88
- jaclang/compiler/passes/tool/tests/test_unparse_validate.py +27 -28
- jaclang/compiler/passes/transform.py +56 -16
- jaclang/compiler/passes/{ir_pass.py → uni_pass.py} +35 -52
- jaclang/compiler/program.py +205 -0
- jaclang/compiler/tests/fixtures/codegentext.jac +31 -0
- jaclang/compiler/tests/fixtures/fam.jac +10 -10
- jaclang/compiler/tests/fixtures/hello_world.jac +1 -1
- jaclang/compiler/tests/fixtures/staticcheck.jac +2 -2
- jaclang/compiler/tests/test_importer.py +21 -16
- jaclang/compiler/tests/test_parser.py +38 -17
- jaclang/compiler/{absyntree.py → unitree.py} +1120 -1012
- jaclang/langserve/engine.py +183 -171
- jaclang/langserve/sem_manager.py +26 -22
- jaclang/langserve/server.py +6 -15
- jaclang/langserve/tests/fixtures/base_module_structure.jac +7 -7
- jaclang/langserve/tests/fixtures/circle.jac +6 -6
- jaclang/langserve/tests/fixtures/circle_err.jac +6 -6
- jaclang/langserve/tests/fixtures/circle_pure.impl.jac +5 -5
- jaclang/langserve/tests/fixtures/circle_pure.jac +7 -7
- jaclang/langserve/tests/fixtures/circle_pure_err.impl.jac +2 -2
- jaclang/langserve/tests/fixtures/circle_pure_err.jac +7 -7
- jaclang/langserve/tests/fixtures/import_include_statements.jac +6 -6
- jaclang/langserve/tests/fixtures/rename.jac +6 -6
- jaclang/langserve/tests/server_test/test_lang_serve.py +262 -0
- jaclang/langserve/tests/server_test/utils.py +115 -0
- jaclang/langserve/tests/test_sem_tokens.py +2 -2
- jaclang/langserve/tests/test_server.py +41 -23
- jaclang/langserve/utils.jac +438 -0
- jaclang/runtimelib/{architype.py → archetype.py} +85 -61
- jaclang/runtimelib/builtin.py +92 -0
- jaclang/runtimelib/constructs.py +11 -13
- jaclang/runtimelib/importer.py +63 -51
- jaclang/runtimelib/machine.py +1551 -144
- jaclang/runtimelib/memory.py +6 -6
- jaclang/{plugin → runtimelib}/tests/fixtures/graph_purger.jac +1 -1
- jaclang/{plugin → runtimelib}/tests/fixtures/impl_match.jac +2 -2
- jaclang/runtimelib/tests/fixtures/impl_match_impl.jac +3 -0
- jaclang/{plugin → runtimelib}/tests/fixtures/other_root_access.jac +7 -7
- jaclang/{plugin → runtimelib}/tests/fixtures/savable_object.jac +3 -5
- jaclang/{plugin → runtimelib}/tests/fixtures/simple_node_connection.jac +6 -6
- jaclang/{plugin → runtimelib}/tests/fixtures/simple_persistent.jac +1 -1
- jaclang/runtimelib/tests/test_features.py +72 -0
- jaclang/{plugin → runtimelib}/tests/test_jaseci.py +6 -5
- jaclang/runtimelib/utils.py +31 -63
- jaclang/settings.py +1 -6
- jaclang/tests/fixtures/{abc.jac → abc_check.jac} +6 -6
- jaclang/tests/fixtures/arch_rel_import_creation.jac +4 -4
- jaclang/tests/fixtures/async_ability.jac +18 -0
- jaclang/tests/fixtures/async_walker.jac +23 -0
- jaclang/tests/fixtures/baddy.jac +1 -1
- jaclang/tests/fixtures/base_class1.jac +2 -2
- jaclang/tests/fixtures/base_class2.jac +2 -2
- jaclang/tests/fixtures/base_class_complex_expr.jac +3 -3
- jaclang/tests/fixtures/builtin_dotgen.jac +1 -1
- jaclang/tests/fixtures/builtin_dotgen_json.jac +21 -0
- jaclang/tests/fixtures/byllmissue.jac +1 -1
- jaclang/tests/fixtures/chandra_bugs.jac +1 -1
- jaclang/tests/fixtures/chandra_bugs2.jac +1 -1
- jaclang/tests/fixtures/cls_method.jac +6 -6
- jaclang/tests/fixtures/concurrency.jac +39 -0
- jaclang/tests/fixtures/connect_traverse_syntax.jac +18 -0
- jaclang/tests/fixtures/create_dynamic_archetype.jac +35 -0
- jaclang/tests/fixtures/decl_defn_param_name.jac +4 -4
- jaclang/tests/fixtures/deep/deeper/__init__.jac +1 -0
- jaclang/tests/fixtures/deep/deeper/deep_outer_import.jac +2 -3
- jaclang/tests/fixtures/deep/deeper/deep_outer_import2.jac +3 -3
- jaclang/tests/fixtures/deep/deeper/snd_lev.jac +2 -2
- jaclang/tests/fixtures/deep/mycode.jac +1 -1
- jaclang/tests/fixtures/deep/one_lev.jac +3 -4
- jaclang/tests/fixtures/deep/one_lev_dup.jac +2 -2
- jaclang/tests/fixtures/deep_convert.jac +1 -1
- jaclang/tests/fixtures/deep_import.jac +2 -2
- jaclang/tests/fixtures/deep_import_interp.jac +8 -0
- jaclang/tests/fixtures/deep_import_mods.jac +3 -3
- jaclang/tests/fixtures/deferred_field.jac +1 -1
- jaclang/tests/fixtures/del_clean.jac +7 -0
- jaclang/tests/fixtures/disconn.jac +2 -2
- jaclang/tests/fixtures/dynamic_archetype.jac +34 -0
- jaclang/tests/fixtures/edge_node_walk.jac +12 -12
- jaclang/tests/fixtures/edge_ops.jac +7 -7
- jaclang/tests/fixtures/edges_walk.jac +10 -10
- jaclang/tests/fixtures/edgetypeissue.jac +1 -1
- jaclang/tests/fixtures/enum_inside_archtype.jac +4 -4
- jaclang/tests/fixtures/err.impl.jac +1 -1
- jaclang/tests/fixtures/err.jac +2 -2
- jaclang/tests/fixtures/err_runtime.jac +2 -2
- jaclang/tests/fixtures/foo.jac +7 -7
- jaclang/tests/fixtures/game1.jac +4 -4
- jaclang/tests/fixtures/gendot_bubble_sort.jac +4 -4
- jaclang/tests/fixtures/glob_multivar_statement.jac +1 -1
- jaclang/tests/fixtures/guess_game.jac +5 -5
- jaclang/tests/fixtures/has_goodness.jac +1 -1
- jaclang/tests/fixtures/hash_init_check.jac +3 -3
- jaclang/tests/fixtures/hello.jac +1 -1
- jaclang/tests/fixtures/ignore.jac +3 -3
- jaclang/tests/fixtures/ignore_dup.jac +3 -3
- jaclang/tests/fixtures/impl_match_confused.impl.jac +1 -1
- jaclang/tests/fixtures/import.jac +9 -9
- jaclang/tests/fixtures/import_all.jac +1 -1
- jaclang/tests/fixtures/index_slice.jac +1 -1
- jaclang/tests/fixtures/inherit_check.jac +3 -3
- jaclang/tests/fixtures/jac_from_py.py +4 -0
- jaclang/tests/fixtures/jacsamp.jac +1 -1
- jaclang/tests/fixtures/jactest_main.jac +1 -1
- jaclang/tests/fixtures/jp_importer.jac +7 -8
- jaclang/tests/fixtures/jp_importer_auto.jac +3 -3
- jaclang/tests/fixtures/lambda.jac +2 -2
- jaclang/tests/fixtures/needs_import.jac +6 -6
- jaclang/tests/fixtures/needs_import_1.jac +1 -1
- jaclang/tests/fixtures/needs_import_2.jac +1 -1
- jaclang/tests/fixtures/needs_import_3.jac +1 -1
- jaclang/tests/fixtures/needs_import_dup.jac +6 -6
- jaclang/tests/fixtures/node_del.jac +60 -0
- jaclang/tests/fixtures/nosigself.jac +3 -3
- jaclang/tests/fixtures/py2jac.py +30 -0
- jaclang/tests/fixtures/py_bool_expr.py +7 -0
- jaclang/tests/fixtures/py_namedexpr.py +7 -0
- jaclang/tests/fixtures/pyfunc_3.py +0 -2
- jaclang/tests/fixtures/random_check.jac +5 -5
- jaclang/tests/fixtures/simple_archs.jac +2 -2
- jaclang/tests/fixtures/simple_walk.jac +52 -0
- jaclang/tests/fixtures/slice_vals.jac +3 -3
- jaclang/tests/fixtures/sub_abil_sep.jac +3 -3
- jaclang/tests/fixtures/sub_abil_sep_multilev.jac +3 -3
- jaclang/tests/fixtures/trailing_comma.jac +4 -4
- jaclang/tests/fixtures/type_info.jac +5 -5
- jaclang/{compiler/passes/main/tests → tests}/fixtures/uninitialized_hasvars.jac +1 -1
- jaclang/tests/fixtures/visit_order.jac +4 -4
- jaclang/tests/fixtures/walker_override.jac +2 -2
- jaclang/tests/fixtures/walker_update.jac +5 -5
- jaclang/tests/fixtures/with_context.jac +4 -4
- jaclang/tests/test_bugs.py +2 -2
- jaclang/tests/test_cli.py +118 -223
- jaclang/tests/test_language.py +466 -473
- jaclang/tests/test_man_code.py +2 -2
- jaclang/tests/test_reference.py +4 -4
- jaclang/tests/test_settings.py +16 -16
- jaclang/tests/test_typecheck.py +555 -0
- jaclang/utils/__init__.py +4 -0
- jaclang/utils/helpers.py +12 -27
- jaclang/utils/lang_tools.py +84 -74
- jaclang/utils/module_resolver.py +69 -0
- jaclang/utils/test.py +8 -5
- jaclang/utils/tests/test_lang_tools.py +38 -13
- jaclang/utils/treeprinter.py +177 -40
- jaclang/vendor/__init__.py +1 -2
- jaclang/vendor/attr/__init__.py +14 -44
- jaclang/vendor/attr/__init__.pyi +155 -321
- jaclang/vendor/attr/_cmp.py +25 -15
- jaclang/vendor/attr/_cmp.pyi +7 -7
- jaclang/vendor/attr/_compat.py +15 -8
- jaclang/vendor/attr/_config.py +1 -1
- jaclang/vendor/attr/_funcs.py +148 -163
- jaclang/vendor/attr/_make.py +859 -855
- jaclang/vendor/attr/_next_gen.py +426 -32
- jaclang/vendor/attr/converters.py +67 -49
- jaclang/vendor/attr/converters.pyi +13 -7
- jaclang/vendor/attr/filters.py +17 -11
- jaclang/vendor/attr/filters.pyi +3 -3
- jaclang/vendor/attr/setters.py +11 -5
- jaclang/vendor/attr/setters.pyi +2 -1
- jaclang/vendor/attr/validators.py +191 -162
- jaclang/vendor/attr/validators.pyi +25 -27
- jaclang/vendor/attrs/__init__.py +9 -5
- jaclang/vendor/attrs/__init__.pyi +225 -29
- jaclang/vendor/attrs-25.3.0.dist-info/INSTALLER +1 -0
- jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/METADATA +83 -53
- jaclang/vendor/attrs-25.3.0.dist-info/RECORD +56 -0
- jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/WHEEL +1 -1
- jaclang/vendor/bin/dmypy +8 -0
- jaclang/vendor/bin/mypy +8 -0
- jaclang/vendor/bin/mypyc +8 -0
- jaclang/vendor/bin/stubgen +8 -0
- jaclang/vendor/bin/stubtest +8 -0
- jaclang/vendor/cattr/gen.py +2 -2
- jaclang/vendor/cattr/preconf/bson.py +1 -0
- jaclang/vendor/cattr/preconf/json.py +1 -0
- jaclang/vendor/cattr/preconf/msgpack.py +1 -0
- jaclang/vendor/cattr/preconf/orjson.py +1 -0
- jaclang/vendor/cattr/preconf/pyyaml.py +1 -0
- jaclang/vendor/cattr/preconf/tomlkit.py +1 -0
- jaclang/vendor/cattr/preconf/ujson.py +1 -0
- jaclang/vendor/cattrs/__init__.py +21 -21
- jaclang/vendor/cattrs/_compat.py +176 -62
- jaclang/vendor/cattrs/_generics.py +5 -3
- jaclang/vendor/cattrs/cols.py +289 -0
- jaclang/vendor/cattrs/converters.py +505 -187
- jaclang/vendor/cattrs/disambiguators.py +118 -45
- jaclang/vendor/cattrs/dispatch.py +66 -36
- jaclang/vendor/cattrs/fns.py +6 -1
- jaclang/vendor/cattrs/gen/__init__.py +365 -202
- jaclang/vendor/cattrs/gen/_generics.py +41 -5
- jaclang/vendor/cattrs/gen/_lc.py +3 -2
- jaclang/vendor/cattrs/gen/_shared.py +39 -32
- jaclang/vendor/cattrs/gen/typeddicts.py +75 -88
- jaclang/vendor/cattrs/preconf/__init__.py +20 -0
- jaclang/vendor/cattrs/preconf/bson.py +7 -8
- jaclang/vendor/cattrs/preconf/cbor2.py +3 -0
- jaclang/vendor/cattrs/preconf/json.py +8 -4
- jaclang/vendor/cattrs/preconf/msgpack.py +3 -0
- jaclang/vendor/cattrs/preconf/msgspec.py +185 -0
- jaclang/vendor/cattrs/preconf/orjson.py +20 -7
- jaclang/vendor/cattrs/preconf/pyyaml.py +15 -3
- jaclang/vendor/cattrs/preconf/tomlkit.py +3 -1
- jaclang/vendor/cattrs/preconf/ujson.py +3 -0
- jaclang/vendor/cattrs/strategies/__init__.py +1 -0
- jaclang/vendor/cattrs/strategies/_class_methods.py +1 -1
- jaclang/vendor/cattrs/strategies/_subclasses.py +43 -29
- jaclang/vendor/cattrs/strategies/_unions.py +47 -24
- jaclang/vendor/cattrs/v.py +1 -0
- jaclang/vendor/cattrs-24.1.3.dist-info/INSTALLER +1 -0
- jaclang/vendor/cattrs-24.1.3.dist-info/METADATA +161 -0
- jaclang/vendor/cattrs-24.1.3.dist-info/RECORD +96 -0
- jaclang/vendor/{cattrs-23.2.3.dist-info → cattrs-24.1.3.dist-info}/WHEEL +1 -1
- jaclang/vendor/lark/__init__.py +38 -38
- jaclang/vendor/lark/__pyinstaller/__init__.py +6 -6
- jaclang/vendor/lark/__pyinstaller/hook-lark.py +14 -14
- jaclang/vendor/lark/ast_utils.py +59 -59
- jaclang/vendor/lark/common.py +86 -89
- jaclang/vendor/lark/exceptions.py +292 -292
- jaclang/vendor/lark/grammar.py +130 -130
- jaclang/vendor/lark/grammars/common.lark +59 -59
- jaclang/vendor/lark/grammars/lark.lark +62 -62
- jaclang/vendor/lark/grammars/python.lark +302 -302
- jaclang/vendor/lark/grammars/unicode.lark +7 -7
- jaclang/vendor/lark/indenter.py +143 -112
- jaclang/vendor/lark/lark.py +658 -661
- jaclang/vendor/lark/lexer.py +678 -678
- jaclang/vendor/lark/load_grammar.py +1428 -1428
- jaclang/vendor/lark/parse_tree_builder.py +391 -391
- jaclang/vendor/lark/parser_frontends.py +257 -257
- jaclang/vendor/lark/parsers/cyk.py +340 -340
- jaclang/vendor/lark/parsers/earley.py +317 -308
- jaclang/vendor/lark/parsers/earley_common.py +42 -42
- jaclang/vendor/lark/parsers/earley_forest.py +802 -810
- jaclang/vendor/lark/parsers/grammar_analysis.py +203 -203
- jaclang/vendor/lark/parsers/lalr_analysis.py +332 -332
- jaclang/vendor/lark/parsers/lalr_interactive_parser.py +158 -157
- jaclang/vendor/lark/parsers/lalr_parser.py +122 -122
- jaclang/vendor/lark/parsers/lalr_parser_state.py +110 -110
- jaclang/vendor/lark/parsers/xearley.py +165 -165
- jaclang/vendor/lark/reconstruct.py +107 -107
- jaclang/vendor/lark/tools/__init__.py +70 -71
- jaclang/vendor/lark/tools/nearley.py +202 -202
- jaclang/vendor/lark/tools/serialize.py +32 -32
- jaclang/vendor/lark/tools/standalone.py +196 -196
- jaclang/vendor/lark/tree.py +267 -272
- jaclang/vendor/lark/tree_matcher.py +186 -186
- jaclang/vendor/lark/utils.py +346 -361
- jaclang/vendor/lark/visitors.py +596 -593
- jaclang/vendor/lark-1.2.2.dist-info/INSTALLER +1 -0
- jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/METADATA +48 -47
- jaclang/vendor/lark-1.2.2.dist-info/RECORD +83 -0
- jaclang/vendor/{mypy_extensions-1.0.0.dist-info → lark-1.2.2.dist-info}/WHEEL +1 -1
- jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info/licenses}/LICENSE +18 -18
- jaclang/vendor/lsprotocol-2023.0.1.dist-info/INSTALLER +1 -0
- jaclang/vendor/lsprotocol-2023.0.1.dist-info/METADATA +2 -1
- jaclang/vendor/lsprotocol-2023.0.1.dist-info/RECORD +17 -10
- jaclang/vendor/lsprotocol-2023.0.1.dist-info/WHEEL +1 -1
- jaclang/vendor/pluggy/_version.py +7 -2
- jaclang/vendor/pluggy-1.5.0.dist-info/INSTALLER +1 -0
- jaclang/vendor/pluggy-1.5.0.dist-info/METADATA +6 -5
- jaclang/vendor/pluggy-1.5.0.dist-info/RECORD +24 -14
- jaclang/vendor/pluggy-1.5.0.dist-info/WHEEL +1 -1
- jaclang/vendor/pygls-1.3.1.dist-info/INSTALLER +1 -0
- jaclang/vendor/pygls-1.3.1.dist-info/METADATA +2 -2
- jaclang/vendor/pygls-1.3.1.dist-info/RECORD +45 -24
- jaclang/vendor/pygls-1.3.1.dist-info/WHEEL +1 -1
- {jaclang-0.7.34.dist-info → jaclang-0.8.0.dist-info}/METADATA +4 -4
- jaclang-0.8.0.dist-info/RECORD +552 -0
- {jaclang-0.7.34.dist-info → jaclang-0.8.0.dist-info}/WHEEL +1 -1
- jaclang/compiler/.gitignore +0 -1
- jaclang/compiler/compile.py +0 -119
- jaclang/compiler/passes/main/access_modifier_pass.py +0 -130
- jaclang/compiler/passes/main/fuse_typeinfo_pass.py +0 -656
- jaclang/compiler/passes/main/py_collect_dep_pass.py +0 -78
- jaclang/compiler/passes/main/pyout_pass.py +0 -86
- jaclang/compiler/passes/main/registry_pass.py +0 -156
- jaclang/compiler/passes/main/schedules.py +0 -47
- jaclang/compiler/passes/main/sub_node_tab_pass.py +0 -36
- jaclang/compiler/passes/main/tests/fixtures/registry.jac +0 -36
- jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py +0 -114
- jaclang/compiler/passes/main/tests/test_registry_pass.py +0 -31
- jaclang/compiler/passes/main/tests/test_type_check_pass.py +0 -91
- jaclang/compiler/passes/main/tests/test_typeinfo_pass.py +0 -29
- jaclang/compiler/passes/main/type_check_pass.py +0 -128
- jaclang/compiler/passes/tool/schedules.py +0 -18
- jaclang/compiler/passes/tool/tests/fixtures/genai/essay_review.jac +0 -36
- jaclang/compiler/passes/tool/tests/fixtures/genai/expert_answer.jac +0 -17
- jaclang/compiler/passes/tool/tests/fixtures/genai/joke_gen.jac +0 -32
- jaclang/compiler/passes/tool/tests/fixtures/genai/odd_word_out.jac +0 -27
- jaclang/compiler/passes/tool/tests/fixtures/genai/personality_finder.jac +0 -35
- jaclang/compiler/passes/tool/tests/fixtures/genai/text_to_type.jac +0 -25
- jaclang/compiler/passes/tool/tests/fixtures/genai/translator.jac +0 -13
- jaclang/compiler/passes/tool/tests/fixtures/genai/wikipedia.jac +0 -63
- jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/architype_test.jac +0 -13
- jaclang/compiler/passes/utils/mypy_ast_build.py +0 -940
- jaclang/compiler/py_info.py +0 -22
- jaclang/compiler/semtable.py +0 -159
- jaclang/compiler/symtable.py +0 -297
- jaclang/langserve/utils.py +0 -458
- jaclang/plugin/__init__.py +0 -7
- jaclang/plugin/builtin.py +0 -57
- jaclang/plugin/default.py +0 -1443
- jaclang/plugin/feature.py +0 -574
- jaclang/plugin/plugin.md +0 -471
- jaclang/plugin/spec.py +0 -536
- jaclang/plugin/tests/fixtures/impl_match_impl.jac +0 -3
- jaclang/plugin/tests/test_features.py +0 -56
- jaclang/runtimelib/context.py +0 -191
- jaclang/tests/fixtures/create_dynamic_architype.jac +0 -35
- jaclang/tests/fixtures/dynamic_architype.jac +0 -34
- jaclang/tests/fixtures/impl_grab.impl.jac +0 -5
- jaclang/tests/fixtures/mtest.impl.jac +0 -6
- jaclang/tests/fixtures/registry.jac +0 -58
- jaclang/tests/fixtures/semstr.jac +0 -30
- jaclang/tests/main.jac +0 -2
- jaclang/utils/profiler.py +0 -62
- jaclang/vendor/attrs-23.2.0.dist-info/RECORD +0 -35
- jaclang/vendor/cattrs-23.2.3.dist-info/METADATA +0 -221
- jaclang/vendor/cattrs-23.2.3.dist-info/RECORD +0 -48
- jaclang/vendor/lark-1.1.9.dist-info/RECORD +0 -46
- jaclang/vendor/lark-1.1.9.dist-info/WHEEL +0 -5
- jaclang/vendor/mypy/__init__.py +0 -1
- jaclang/vendor/mypy/__main__.py +0 -37
- jaclang/vendor/mypy/api.py +0 -94
- jaclang/vendor/mypy/applytype.py +0 -172
- jaclang/vendor/mypy/argmap.py +0 -268
- jaclang/vendor/mypy/binder.py +0 -538
- jaclang/vendor/mypy/bogus_type.py +0 -27
- jaclang/vendor/mypy/build.py +0 -3562
- jaclang/vendor/mypy/checker.py +0 -8445
- jaclang/vendor/mypy/checkexpr.py +0 -6623
- jaclang/vendor/mypy/checkmember.py +0 -1363
- jaclang/vendor/mypy/checkpattern.py +0 -801
- jaclang/vendor/mypy/checkstrformat.py +0 -1109
- jaclang/vendor/mypy/config_parser.py +0 -670
- jaclang/vendor/mypy/constant_fold.py +0 -187
- jaclang/vendor/mypy/constraints.py +0 -1636
- jaclang/vendor/mypy/copytype.py +0 -133
- jaclang/vendor/mypy/defaults.py +0 -46
- jaclang/vendor/mypy/dmypy/__main__.py +0 -6
- jaclang/vendor/mypy/dmypy/client.py +0 -749
- jaclang/vendor/mypy/dmypy_os.py +0 -42
- jaclang/vendor/mypy/dmypy_server.py +0 -1107
- jaclang/vendor/mypy/dmypy_util.py +0 -117
- jaclang/vendor/mypy/erasetype.py +0 -278
- jaclang/vendor/mypy/errorcodes.py +0 -291
- jaclang/vendor/mypy/errors.py +0 -1280
- jaclang/vendor/mypy/evalexpr.py +0 -205
- jaclang/vendor/mypy/expandtype.py +0 -524
- jaclang/vendor/mypy/exprtotype.py +0 -209
- jaclang/vendor/mypy/fastparse.py +0 -2147
- jaclang/vendor/mypy/find_sources.py +0 -243
- jaclang/vendor/mypy/fixup.py +0 -428
- jaclang/vendor/mypy/freetree.py +0 -23
- jaclang/vendor/mypy/fscache.py +0 -309
- jaclang/vendor/mypy/fswatcher.py +0 -106
- jaclang/vendor/mypy/gclogger.py +0 -47
- jaclang/vendor/mypy/git.py +0 -34
- jaclang/vendor/mypy/graph_utils.py +0 -112
- jaclang/vendor/mypy/indirection.py +0 -121
- jaclang/vendor/mypy/infer.py +0 -75
- jaclang/vendor/mypy/inspections.py +0 -627
- jaclang/vendor/mypy/ipc.py +0 -310
- jaclang/vendor/mypy/join.py +0 -871
- jaclang/vendor/mypy/literals.py +0 -306
- jaclang/vendor/mypy/lookup.py +0 -61
- jaclang/vendor/mypy/main.py +0 -1574
- jaclang/vendor/mypy/maptype.py +0 -106
- jaclang/vendor/mypy/meet.py +0 -1140
- jaclang/vendor/mypy/memprofile.py +0 -121
- jaclang/vendor/mypy/message_registry.py +0 -329
- jaclang/vendor/mypy/messages.py +0 -3186
- jaclang/vendor/mypy/metastore.py +0 -225
- jaclang/vendor/mypy/mixedtraverser.py +0 -112
- jaclang/vendor/mypy/modulefinder.py +0 -875
- jaclang/vendor/mypy/moduleinspect.py +0 -184
- jaclang/vendor/mypy/mro.py +0 -62
- jaclang/vendor/mypy/nodes.py +0 -4115
- jaclang/vendor/mypy/operators.py +0 -126
- jaclang/vendor/mypy/options.py +0 -556
- jaclang/vendor/mypy/parse.py +0 -30
- jaclang/vendor/mypy/partially_defined.py +0 -675
- jaclang/vendor/mypy/patterns.py +0 -150
- jaclang/vendor/mypy/plugin.py +0 -901
- jaclang/vendor/mypy/plugins/attrs.py +0 -1166
- jaclang/vendor/mypy/plugins/common.py +0 -440
- jaclang/vendor/mypy/plugins/ctypes.py +0 -245
- jaclang/vendor/mypy/plugins/dataclasses.py +0 -1108
- jaclang/vendor/mypy/plugins/default.py +0 -531
- jaclang/vendor/mypy/plugins/enums.py +0 -259
- jaclang/vendor/mypy/plugins/functools.py +0 -104
- jaclang/vendor/mypy/plugins/proper_plugin.py +0 -175
- jaclang/vendor/mypy/plugins/singledispatch.py +0 -224
- jaclang/vendor/mypy/py.typed +0 -1
- jaclang/vendor/mypy/pyinfo.py +0 -78
- jaclang/vendor/mypy/reachability.py +0 -362
- jaclang/vendor/mypy/refinfo.py +0 -92
- jaclang/vendor/mypy/renaming.py +0 -568
- jaclang/vendor/mypy/report.py +0 -924
- jaclang/vendor/mypy/scope.py +0 -125
- jaclang/vendor/mypy/semanal.py +0 -7187
- jaclang/vendor/mypy/semanal_classprop.py +0 -187
- jaclang/vendor/mypy/semanal_enum.py +0 -253
- jaclang/vendor/mypy/semanal_infer.py +0 -128
- jaclang/vendor/mypy/semanal_main.py +0 -511
- jaclang/vendor/mypy/semanal_namedtuple.py +0 -670
- jaclang/vendor/mypy/semanal_newtype.py +0 -273
- jaclang/vendor/mypy/semanal_pass1.py +0 -156
- jaclang/vendor/mypy/semanal_shared.py +0 -490
- jaclang/vendor/mypy/semanal_typeargs.py +0 -265
- jaclang/vendor/mypy/semanal_typeddict.py +0 -575
- jaclang/vendor/mypy/server/astdiff.py +0 -518
- jaclang/vendor/mypy/server/astmerge.py +0 -562
- jaclang/vendor/mypy/server/aststrip.py +0 -281
- jaclang/vendor/mypy/server/deps.py +0 -1137
- jaclang/vendor/mypy/server/mergecheck.py +0 -83
- jaclang/vendor/mypy/server/objgraph.py +0 -101
- jaclang/vendor/mypy/server/subexpr.py +0 -198
- jaclang/vendor/mypy/server/target.py +0 -11
- jaclang/vendor/mypy/server/trigger.py +0 -26
- jaclang/vendor/mypy/server/update.py +0 -1339
- jaclang/vendor/mypy/sharedparse.py +0 -112
- jaclang/vendor/mypy/solve.py +0 -562
- jaclang/vendor/mypy/split_namespace.py +0 -35
- jaclang/vendor/mypy/state.py +0 -28
- jaclang/vendor/mypy/stats.py +0 -489
- jaclang/vendor/mypy/strconv.py +0 -641
- jaclang/vendor/mypy/stubdoc.py +0 -491
- jaclang/vendor/mypy/stubgen.py +0 -1886
- jaclang/vendor/mypy/stubgenc.py +0 -993
- jaclang/vendor/mypy/stubinfo.py +0 -173
- jaclang/vendor/mypy/stubtest.py +0 -2079
- jaclang/vendor/mypy/stubutil.py +0 -834
- jaclang/vendor/mypy/subtypes.py +0 -1980
- jaclang/vendor/mypy/suggestions.py +0 -1046
- jaclang/vendor/mypy/test/config.py +0 -28
- jaclang/vendor/mypy/test/data.py +0 -821
- jaclang/vendor/mypy/test/helpers.py +0 -476
- jaclang/vendor/mypy/test/meta/_pytest.py +0 -72
- jaclang/vendor/mypy/test/meta/test_diff_helper.py +0 -47
- jaclang/vendor/mypy/test/meta/test_parse_data.py +0 -73
- jaclang/vendor/mypy/test/meta/test_update_data.py +0 -135
- jaclang/vendor/mypy/test/test_find_sources.py +0 -376
- jaclang/vendor/mypy/test/test_ref_info.py +0 -45
- jaclang/vendor/mypy/test/testapi.py +0 -45
- jaclang/vendor/mypy/test/testargs.py +0 -77
- jaclang/vendor/mypy/test/testcheck.py +0 -322
- jaclang/vendor/mypy/test/testcmdline.py +0 -152
- jaclang/vendor/mypy/test/testconstraints.py +0 -134
- jaclang/vendor/mypy/test/testdaemon.py +0 -132
- jaclang/vendor/mypy/test/testdeps.py +0 -77
- jaclang/vendor/mypy/test/testdiff.py +0 -67
- jaclang/vendor/mypy/test/testerrorstream.py +0 -46
- jaclang/vendor/mypy/test/testfinegrained.py +0 -438
- jaclang/vendor/mypy/test/testfinegrainedcache.py +0 -18
- jaclang/vendor/mypy/test/testformatter.py +0 -85
- jaclang/vendor/mypy/test/testfscache.py +0 -101
- jaclang/vendor/mypy/test/testgraph.py +0 -83
- jaclang/vendor/mypy/test/testinfer.py +0 -373
- jaclang/vendor/mypy/test/testipc.py +0 -119
- jaclang/vendor/mypy/test/testmerge.py +0 -238
- jaclang/vendor/mypy/test/testmodulefinder.py +0 -278
- jaclang/vendor/mypy/test/testmypyc.py +0 -14
- jaclang/vendor/mypy/test/testparse.py +0 -107
- jaclang/vendor/mypy/test/testpep561.py +0 -211
- jaclang/vendor/mypy/test/testpythoneval.py +0 -117
- jaclang/vendor/mypy/test/testreports.py +0 -55
- jaclang/vendor/mypy/test/testsemanal.py +0 -209
- jaclang/vendor/mypy/test/testsolve.py +0 -285
- jaclang/vendor/mypy/test/teststubgen.py +0 -1412
- jaclang/vendor/mypy/test/teststubinfo.py +0 -12
- jaclang/vendor/mypy/test/teststubtest.py +0 -2492
- jaclang/vendor/mypy/test/testsubtypes.py +0 -303
- jaclang/vendor/mypy/test/testtransform.py +0 -64
- jaclang/vendor/mypy/test/testtypegen.py +0 -83
- jaclang/vendor/mypy/test/testtypes.py +0 -1551
- jaclang/vendor/mypy/test/testutil.py +0 -111
- jaclang/vendor/mypy/test/typefixture.py +0 -415
- jaclang/vendor/mypy/test/update_data.py +0 -87
- jaclang/vendor/mypy/test/visitors.py +0 -63
- jaclang/vendor/mypy/traverser.py +0 -961
- jaclang/vendor/mypy/treetransform.py +0 -800
- jaclang/vendor/mypy/tvar_scope.py +0 -169
- jaclang/vendor/mypy/type_visitor.py +0 -564
- jaclang/vendor/mypy/typeanal.py +0 -2596
- jaclang/vendor/mypy/typeops.py +0 -1082
- jaclang/vendor/mypy/types.py +0 -3708
- jaclang/vendor/mypy/types_utils.py +0 -166
- jaclang/vendor/mypy/typeshed/LICENSE +0 -237
- jaclang/vendor/mypy/typeshed/stdlib/VERSIONS +0 -309
- jaclang/vendor/mypy/typeshed/stdlib/__future__.pyi +0 -36
- jaclang/vendor/mypy/typeshed/stdlib/__main__.pyi +0 -3
- jaclang/vendor/mypy/typeshed/stdlib/_ast.pyi +0 -591
- jaclang/vendor/mypy/typeshed/stdlib/_bisect.pyi +0 -84
- jaclang/vendor/mypy/typeshed/stdlib/_bootlocale.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/_codecs.pyi +0 -133
- jaclang/vendor/mypy/typeshed/stdlib/_collections_abc.pyi +0 -94
- jaclang/vendor/mypy/typeshed/stdlib/_compat_pickle.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/_compression.pyi +0 -25
- jaclang/vendor/mypy/typeshed/stdlib/_csv.pyi +0 -90
- jaclang/vendor/mypy/typeshed/stdlib/_ctypes.pyi +0 -207
- jaclang/vendor/mypy/typeshed/stdlib/_curses.pyi +0 -566
- jaclang/vendor/mypy/typeshed/stdlib/_decimal.pyi +0 -281
- jaclang/vendor/mypy/typeshed/stdlib/_dummy_thread.pyi +0 -33
- jaclang/vendor/mypy/typeshed/stdlib/_dummy_threading.pyi +0 -164
- jaclang/vendor/mypy/typeshed/stdlib/_heapq.pyi +0 -11
- jaclang/vendor/mypy/typeshed/stdlib/_imp.pyi +0 -28
- jaclang/vendor/mypy/typeshed/stdlib/_json.pyi +0 -49
- jaclang/vendor/mypy/typeshed/stdlib/_locale.pyi +0 -100
- jaclang/vendor/mypy/typeshed/stdlib/_lsprof.pyi +0 -35
- jaclang/vendor/mypy/typeshed/stdlib/_markupbase.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/_msi.pyi +0 -92
- jaclang/vendor/mypy/typeshed/stdlib/_operator.pyi +0 -147
- jaclang/vendor/mypy/typeshed/stdlib/_osx_support.pyi +0 -34
- jaclang/vendor/mypy/typeshed/stdlib/_posixsubprocess.pyi +0 -33
- jaclang/vendor/mypy/typeshed/stdlib/_py_abc.pyi +0 -14
- jaclang/vendor/mypy/typeshed/stdlib/_pydecimal.pyi +0 -43
- jaclang/vendor/mypy/typeshed/stdlib/_random.pyi +0 -12
- jaclang/vendor/mypy/typeshed/stdlib/_sitebuiltins.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/_socket.pyi +0 -803
- jaclang/vendor/mypy/typeshed/stdlib/_stat.pyi +0 -103
- jaclang/vendor/mypy/typeshed/stdlib/_thread.pyi +0 -59
- jaclang/vendor/mypy/typeshed/stdlib/_threading_local.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/_tkinter.pyi +0 -121
- jaclang/vendor/mypy/typeshed/stdlib/_tracemalloc.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/_typeshed/__init__.pyi +0 -347
- jaclang/vendor/mypy/typeshed/stdlib/_typeshed/dbapi.pyi +0 -37
- jaclang/vendor/mypy/typeshed/stdlib/_typeshed/wsgi.pyi +0 -44
- jaclang/vendor/mypy/typeshed/stdlib/_typeshed/xml.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/_warnings.pyi +0 -55
- jaclang/vendor/mypy/typeshed/stdlib/_weakref.pyi +0 -41
- jaclang/vendor/mypy/typeshed/stdlib/_weakrefset.pyi +0 -51
- jaclang/vendor/mypy/typeshed/stdlib/_winapi.pyi +0 -255
- jaclang/vendor/mypy/typeshed/stdlib/abc.pyi +0 -51
- jaclang/vendor/mypy/typeshed/stdlib/aifc.pyi +0 -91
- jaclang/vendor/mypy/typeshed/stdlib/antigravity.pyi +0 -3
- jaclang/vendor/mypy/typeshed/stdlib/argparse.pyi +0 -595
- jaclang/vendor/mypy/typeshed/stdlib/array.pyi +0 -92
- jaclang/vendor/mypy/typeshed/stdlib/ast.pyi +0 -277
- jaclang/vendor/mypy/typeshed/stdlib/asynchat.pyi +0 -21
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/__init__.pyi +0 -41
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_events.pyi +0 -440
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_futures.pyi +0 -19
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +0 -63
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_tasks.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/constants.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/coroutines.pyi +0 -26
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/events.pyi +0 -580
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/exceptions.pyi +0 -43
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/format_helpers.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/futures.pyi +0 -57
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/locks.pyi +0 -121
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/log.pyi +0 -3
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/mixins.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/proactor_events.pyi +0 -64
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/protocols.pyi +0 -34
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/queues.pyi +0 -47
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/runners.pyi +0 -32
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/selector_events.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/sslproto.pyi +0 -165
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/staggered.pyi +0 -10
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/streams.pyi +0 -153
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/subprocess.pyi +0 -229
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/taskgroups.pyi +0 -25
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/tasks.pyi +0 -497
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/threads.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/timeouts.pyi +0 -19
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/transports.pyi +0 -47
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/trsock.pyi +0 -94
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/unix_events.pyi +0 -196
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_events.pyi +0 -85
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_utils.pyi +0 -49
- jaclang/vendor/mypy/typeshed/stdlib/asyncore.pyi +0 -90
- jaclang/vendor/mypy/typeshed/stdlib/atexit.pyi +0 -12
- jaclang/vendor/mypy/typeshed/stdlib/audioop.pyi +0 -43
- jaclang/vendor/mypy/typeshed/stdlib/base64.pyi +0 -59
- jaclang/vendor/mypy/typeshed/stdlib/bdb.pyi +0 -102
- jaclang/vendor/mypy/typeshed/stdlib/binascii.pyi +0 -36
- jaclang/vendor/mypy/typeshed/stdlib/binhex.pyi +0 -45
- jaclang/vendor/mypy/typeshed/stdlib/bisect.pyi +0 -4
- jaclang/vendor/mypy/typeshed/stdlib/builtins.pyi +0 -1936
- jaclang/vendor/mypy/typeshed/stdlib/bz2.pyi +0 -146
- jaclang/vendor/mypy/typeshed/stdlib/cProfile.pyi +0 -31
- jaclang/vendor/mypy/typeshed/stdlib/calendar.pyi +0 -208
- jaclang/vendor/mypy/typeshed/stdlib/cgi.pyi +0 -118
- jaclang/vendor/mypy/typeshed/stdlib/cgitb.pyi +0 -32
- jaclang/vendor/mypy/typeshed/stdlib/chunk.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/cmath.pyi +0 -36
- jaclang/vendor/mypy/typeshed/stdlib/cmd.pyi +0 -45
- jaclang/vendor/mypy/typeshed/stdlib/code.pyi +0 -33
- jaclang/vendor/mypy/typeshed/stdlib/codecs.pyi +0 -285
- jaclang/vendor/mypy/typeshed/stdlib/codeop.pyi +0 -13
- jaclang/vendor/mypy/typeshed/stdlib/collections/__init__.pyi +0 -485
- jaclang/vendor/mypy/typeshed/stdlib/collections/abc.pyi +0 -2
- jaclang/vendor/mypy/typeshed/stdlib/colorsys.pyi +0 -13
- jaclang/vendor/mypy/typeshed/stdlib/compileall.pyi +0 -111
- jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +0 -32
- jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/_base.pyi +0 -126
- jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/process.pyi +0 -233
- jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/thread.pyi +0 -80
- jaclang/vendor/mypy/typeshed/stdlib/configparser.pyi +0 -313
- jaclang/vendor/mypy/typeshed/stdlib/contextlib.pyi +0 -208
- jaclang/vendor/mypy/typeshed/stdlib/contextvars.pyi +0 -63
- jaclang/vendor/mypy/typeshed/stdlib/copy.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/copyreg.pyi +0 -21
- jaclang/vendor/mypy/typeshed/stdlib/crypt.pyi +0 -12
- jaclang/vendor/mypy/typeshed/stdlib/csv.pyi +0 -147
- jaclang/vendor/mypy/typeshed/stdlib/ctypes/__init__.pyi +0 -187
- jaclang/vendor/mypy/typeshed/stdlib/ctypes/_endian.pyi +0 -19
- jaclang/vendor/mypy/typeshed/stdlib/ctypes/util.pyi +0 -6
- jaclang/vendor/mypy/typeshed/stdlib/ctypes/wintypes.pyi +0 -298
- jaclang/vendor/mypy/typeshed/stdlib/curses/__init__.pyi +0 -22
- jaclang/vendor/mypy/typeshed/stdlib/curses/ascii.pyi +0 -62
- jaclang/vendor/mypy/typeshed/stdlib/curses/has_key.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/curses/panel.pyi +0 -22
- jaclang/vendor/mypy/typeshed/stdlib/curses/textpad.pyi +0 -11
- jaclang/vendor/mypy/typeshed/stdlib/dataclasses.pyi +0 -315
- jaclang/vendor/mypy/typeshed/stdlib/datetime.pyi +0 -295
- jaclang/vendor/mypy/typeshed/stdlib/dbm/__init__.pyi +0 -95
- jaclang/vendor/mypy/typeshed/stdlib/dbm/dumb.pyi +0 -31
- jaclang/vendor/mypy/typeshed/stdlib/dbm/gnu.pyi +0 -41
- jaclang/vendor/mypy/typeshed/stdlib/dbm/ndbm.pyi +0 -37
- jaclang/vendor/mypy/typeshed/stdlib/decimal.pyi +0 -2
- jaclang/vendor/mypy/typeshed/stdlib/difflib.pyi +0 -140
- jaclang/vendor/mypy/typeshed/stdlib/dis.pyi +0 -144
- jaclang/vendor/mypy/typeshed/stdlib/distutils/__init__.pyi +0 -5
- jaclang/vendor/mypy/typeshed/stdlib/distutils/archive_util.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +0 -3
- jaclang/vendor/mypy/typeshed/stdlib/distutils/ccompiler.pyi +0 -152
- jaclang/vendor/mypy/typeshed/stdlib/distutils/cmd.pyi +0 -66
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist.pyi +0 -25
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +0 -21
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +0 -45
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +0 -52
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build.pyi +0 -31
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_clib.pyi +0 -27
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_ext.pyi +0 -50
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_py.pyi +0 -44
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +0 -24
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/check.pyi +0 -39
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/clean.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/config.pyi +0 -83
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install.pyi +0 -63
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_data.pyi +0 -19
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +0 -18
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_headers.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_lib.pyi +0 -25
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +0 -18
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/register.pyi +0 -18
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/sdist.pyi +0 -42
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/upload.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/distutils/config.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/distutils/core.pyi +0 -57
- jaclang/vendor/mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/distutils/debug.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/distutils/dep_util.pyi +0 -3
- jaclang/vendor/mypy/typeshed/stdlib/distutils/dir_util.pyi +0 -13
- jaclang/vendor/mypy/typeshed/stdlib/distutils/dist.pyi +0 -146
- jaclang/vendor/mypy/typeshed/stdlib/distutils/errors.pyi +0 -19
- jaclang/vendor/mypy/typeshed/stdlib/distutils/extension.pyi +0 -36
- jaclang/vendor/mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +0 -34
- jaclang/vendor/mypy/typeshed/stdlib/distutils/file_util.pyi +0 -14
- jaclang/vendor/mypy/typeshed/stdlib/distutils/filelist.pyi +0 -50
- jaclang/vendor/mypy/typeshed/stdlib/distutils/log.pyi +0 -25
- jaclang/vendor/mypy/typeshed/stdlib/distutils/msvccompiler.pyi +0 -3
- jaclang/vendor/mypy/typeshed/stdlib/distutils/spawn.pyi +0 -2
- jaclang/vendor/mypy/typeshed/stdlib/distutils/sysconfig.pyi +0 -31
- jaclang/vendor/mypy/typeshed/stdlib/distutils/text_file.pyi +0 -21
- jaclang/vendor/mypy/typeshed/stdlib/distutils/unixccompiler.pyi +0 -3
- jaclang/vendor/mypy/typeshed/stdlib/distutils/util.pyi +0 -46
- jaclang/vendor/mypy/typeshed/stdlib/distutils/version.pyi +0 -36
- jaclang/vendor/mypy/typeshed/stdlib/doctest.pyi +0 -248
- jaclang/vendor/mypy/typeshed/stdlib/dummy_threading.pyi +0 -2
- jaclang/vendor/mypy/typeshed/stdlib/email/__init__.pyi +0 -29
- jaclang/vendor/mypy/typeshed/stdlib/email/_header_value_parser.pyi +0 -392
- jaclang/vendor/mypy/typeshed/stdlib/email/_policybase.pyi +0 -51
- jaclang/vendor/mypy/typeshed/stdlib/email/base64mime.pyi +0 -13
- jaclang/vendor/mypy/typeshed/stdlib/email/charset.pyi +0 -34
- jaclang/vendor/mypy/typeshed/stdlib/email/contentmanager.pyi +0 -11
- jaclang/vendor/mypy/typeshed/stdlib/email/encoders.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/email/errors.pyi +0 -39
- jaclang/vendor/mypy/typeshed/stdlib/email/feedparser.pyi +0 -23
- jaclang/vendor/mypy/typeshed/stdlib/email/generator.pyi +0 -40
- jaclang/vendor/mypy/typeshed/stdlib/email/header.pyi +0 -31
- jaclang/vendor/mypy/typeshed/stdlib/email/headerregistry.pyi +0 -178
- jaclang/vendor/mypy/typeshed/stdlib/email/iterators.pyi +0 -12
- jaclang/vendor/mypy/typeshed/stdlib/email/message.pyi +0 -165
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/application.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/audio.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/base.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/image.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/message.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/multipart.pyi +0 -18
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +0 -5
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/text.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/email/parser.pyi +0 -26
- jaclang/vendor/mypy/typeshed/stdlib/email/policy.pyi +0 -38
- jaclang/vendor/mypy/typeshed/stdlib/email/quoprimime.pyi +0 -28
- jaclang/vendor/mypy/typeshed/stdlib/email/utils.pyi +0 -70
- jaclang/vendor/mypy/typeshed/stdlib/encodings/__init__.pyi +0 -10
- jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8.pyi +0 -21
- jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +0 -22
- jaclang/vendor/mypy/typeshed/stdlib/ensurepip/__init__.pyi +0 -12
- jaclang/vendor/mypy/typeshed/stdlib/enum.pyi +0 -320
- jaclang/vendor/mypy/typeshed/stdlib/errno.pyi +0 -222
- jaclang/vendor/mypy/typeshed/stdlib/faulthandler.pyi +0 -13
- jaclang/vendor/mypy/typeshed/stdlib/fcntl.pyi +0 -127
- jaclang/vendor/mypy/typeshed/stdlib/filecmp.pyi +0 -57
- jaclang/vendor/mypy/typeshed/stdlib/fileinput.pyi +0 -213
- jaclang/vendor/mypy/typeshed/stdlib/fnmatch.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/formatter.pyi +0 -88
- jaclang/vendor/mypy/typeshed/stdlib/fractions.pyi +0 -150
- jaclang/vendor/mypy/typeshed/stdlib/ftplib.pyi +0 -178
- jaclang/vendor/mypy/typeshed/stdlib/functools.pyi +0 -213
- jaclang/vendor/mypy/typeshed/stdlib/gc.pyi +0 -37
- jaclang/vendor/mypy/typeshed/stdlib/genericpath.pyi +0 -52
- jaclang/vendor/mypy/typeshed/stdlib/getopt.pyi +0 -11
- jaclang/vendor/mypy/typeshed/stdlib/getpass.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/gettext.pyi +0 -169
- jaclang/vendor/mypy/typeshed/stdlib/glob.pyi +0 -42
- jaclang/vendor/mypy/typeshed/stdlib/graphlib.pyi +0 -28
- jaclang/vendor/mypy/typeshed/stdlib/grp.pyi +0 -22
- jaclang/vendor/mypy/typeshed/stdlib/gzip.pyi +0 -160
- jaclang/vendor/mypy/typeshed/stdlib/hashlib.pyi +0 -167
- jaclang/vendor/mypy/typeshed/stdlib/heapq.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/hmac.pyi +0 -38
- jaclang/vendor/mypy/typeshed/stdlib/html/__init__.pyi +0 -6
- jaclang/vendor/mypy/typeshed/stdlib/html/entities.pyi +0 -6
- jaclang/vendor/mypy/typeshed/stdlib/html/parser.pyi +0 -34
- jaclang/vendor/mypy/typeshed/stdlib/http/__init__.pyi +0 -105
- jaclang/vendor/mypy/typeshed/stdlib/http/client.pyi +0 -259
- jaclang/vendor/mypy/typeshed/stdlib/http/cookiejar.pyi +0 -159
- jaclang/vendor/mypy/typeshed/stdlib/http/cookies.pyi +0 -60
- jaclang/vendor/mypy/typeshed/stdlib/http/server.pyi +0 -83
- jaclang/vendor/mypy/typeshed/stdlib/imaplib.pyi +0 -168
- jaclang/vendor/mypy/typeshed/stdlib/imghdr.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/imp.pyi +0 -62
- jaclang/vendor/mypy/typeshed/stdlib/importlib/__init__.pyi +0 -24
- jaclang/vendor/mypy/typeshed/stdlib/importlib/_abc.pyi +0 -15
- jaclang/vendor/mypy/typeshed/stdlib/importlib/abc.pyi +0 -172
- jaclang/vendor/mypy/typeshed/stdlib/importlib/machinery.pyi +0 -179
- jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +0 -285
- jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +0 -49
- jaclang/vendor/mypy/typeshed/stdlib/importlib/readers.pyi +0 -68
- jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/__init__.pyi +0 -46
- jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/abc.pyi +0 -12
- jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/readers.pyi +0 -14
- jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/simple.pyi +0 -56
- jaclang/vendor/mypy/typeshed/stdlib/importlib/simple.pyi +0 -11
- jaclang/vendor/mypy/typeshed/stdlib/importlib/util.pyi +0 -43
- jaclang/vendor/mypy/typeshed/stdlib/inspect.pyi +0 -632
- jaclang/vendor/mypy/typeshed/stdlib/io.pyi +0 -238
- jaclang/vendor/mypy/typeshed/stdlib/ipaddress.pyi +0 -208
- jaclang/vendor/mypy/typeshed/stdlib/itertools.pyi +0 -273
- jaclang/vendor/mypy/typeshed/stdlib/json/__init__.pyi +0 -61
- jaclang/vendor/mypy/typeshed/stdlib/json/decoder.pyi +0 -32
- jaclang/vendor/mypy/typeshed/stdlib/json/encoder.pyi +0 -40
- jaclang/vendor/mypy/typeshed/stdlib/json/tool.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/keyword.pyi +0 -21
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +0 -28
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +0 -42
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +0 -10
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +0 -14
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +0 -13
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +0 -15
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +0 -21
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +0 -6
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +0 -11
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +0 -7
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +0 -7
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +0 -10
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +0 -19
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +0 -12
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +0 -12
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +0 -7
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +0 -17
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +0 -12
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +0 -15
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +0 -12
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/main.pyi +0 -42
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +0 -27
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +0 -24
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +0 -7
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +0 -30
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +0 -50
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +0 -67
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +0 -96
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pygram.pyi +0 -114
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pytree.pyi +0 -117
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/refactor.pyi +0 -82
- jaclang/vendor/mypy/typeshed/stdlib/linecache.pyi +0 -23
- jaclang/vendor/mypy/typeshed/stdlib/locale.pyi +0 -152
- jaclang/vendor/mypy/typeshed/stdlib/logging/__init__.pyi +0 -658
- jaclang/vendor/mypy/typeshed/stdlib/logging/config.pyi +0 -134
- jaclang/vendor/mypy/typeshed/stdlib/logging/handlers.pyi +0 -275
- jaclang/vendor/mypy/typeshed/stdlib/lzma.pyi +0 -197
- jaclang/vendor/mypy/typeshed/stdlib/mailbox.pyi +0 -256
- jaclang/vendor/mypy/typeshed/stdlib/mailcap.pyi +0 -11
- jaclang/vendor/mypy/typeshed/stdlib/marshal.pyi +0 -33
- jaclang/vendor/mypy/typeshed/stdlib/math.pyi +0 -125
- jaclang/vendor/mypy/typeshed/stdlib/mimetypes.pyi +0 -46
- jaclang/vendor/mypy/typeshed/stdlib/mmap.pyi +0 -113
- jaclang/vendor/mypy/typeshed/stdlib/modulefinder.pyi +0 -66
- jaclang/vendor/mypy/typeshed/stdlib/msilib/__init__.pyi +0 -177
- jaclang/vendor/mypy/typeshed/stdlib/msilib/schema.pyi +0 -94
- jaclang/vendor/mypy/typeshed/stdlib/msilib/sequence.pyi +0 -13
- jaclang/vendor/mypy/typeshed/stdlib/msilib/text.pyi +0 -7
- jaclang/vendor/mypy/typeshed/stdlib/msvcrt.pyi +0 -32
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/__init__.pyi +0 -90
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/connection.pyi +0 -75
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/context.pyi +0 -189
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +0 -77
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +0 -39
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +0 -31
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/heap.pyi +0 -36
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/managers.pyi +0 -212
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/pool.pyi +0 -103
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +0 -23
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +0 -30
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/process.pyi +0 -39
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/queues.pyi +0 -41
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/reduction.pyi +0 -90
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +0 -18
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +0 -40
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +0 -107
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/spawn.pyi +0 -32
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +0 -54
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/util.pyi +0 -98
- jaclang/vendor/mypy/typeshed/stdlib/netrc.pyi +0 -23
- jaclang/vendor/mypy/typeshed/stdlib/nis.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/nntplib.pyi +0 -125
- jaclang/vendor/mypy/typeshed/stdlib/nt.pyi +0 -111
- jaclang/vendor/mypy/typeshed/stdlib/ntpath.pyi +0 -119
- jaclang/vendor/mypy/typeshed/stdlib/nturl2path.pyi +0 -2
- jaclang/vendor/mypy/typeshed/stdlib/numbers.pyi +0 -209
- jaclang/vendor/mypy/typeshed/stdlib/opcode.pyi +0 -59
- jaclang/vendor/mypy/typeshed/stdlib/operator.pyi +0 -110
- jaclang/vendor/mypy/typeshed/stdlib/optparse.pyi +0 -255
- jaclang/vendor/mypy/typeshed/stdlib/os/__init__.pyi +0 -1157
- jaclang/vendor/mypy/typeshed/stdlib/os/path.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/ossaudiodev.pyi +0 -131
- jaclang/vendor/mypy/typeshed/stdlib/parser.pyi +0 -24
- jaclang/vendor/mypy/typeshed/stdlib/pathlib.pyi +0 -232
- jaclang/vendor/mypy/typeshed/stdlib/pdb.pyi +0 -181
- jaclang/vendor/mypy/typeshed/stdlib/pickle.pyi +0 -271
- jaclang/vendor/mypy/typeshed/stdlib/pickletools.pyi +0 -167
- jaclang/vendor/mypy/typeshed/stdlib/pipes.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/pkgutil.pyi +0 -53
- jaclang/vendor/mypy/typeshed/stdlib/platform.pyi +0 -42
- jaclang/vendor/mypy/typeshed/stdlib/plistlib.pyi +0 -113
- jaclang/vendor/mypy/typeshed/stdlib/poplib.pyi +0 -71
- jaclang/vendor/mypy/typeshed/stdlib/posix.pyi +0 -361
- jaclang/vendor/mypy/typeshed/stdlib/posixpath.pyi +0 -161
- jaclang/vendor/mypy/typeshed/stdlib/pprint.pyi +0 -112
- jaclang/vendor/mypy/typeshed/stdlib/profile.pyi +0 -31
- jaclang/vendor/mypy/typeshed/stdlib/pstats.pyi +0 -80
- jaclang/vendor/mypy/typeshed/stdlib/pty.pyi +0 -19
- jaclang/vendor/mypy/typeshed/stdlib/pwd.pyi +0 -28
- jaclang/vendor/mypy/typeshed/stdlib/py_compile.pyi +0 -34
- jaclang/vendor/mypy/typeshed/stdlib/pyclbr.pyi +0 -74
- jaclang/vendor/mypy/typeshed/stdlib/pydoc.pyi +0 -261
- jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/topics.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/pyexpat/__init__.pyi +0 -85
- jaclang/vendor/mypy/typeshed/stdlib/pyexpat/errors.pyi +0 -49
- jaclang/vendor/mypy/typeshed/stdlib/pyexpat/model.pyi +0 -11
- jaclang/vendor/mypy/typeshed/stdlib/queue.pyi +0 -66
- jaclang/vendor/mypy/typeshed/stdlib/quopri.pyi +0 -11
- jaclang/vendor/mypy/typeshed/stdlib/random.pyi +0 -138
- jaclang/vendor/mypy/typeshed/stdlib/re.pyi +0 -290
- jaclang/vendor/mypy/typeshed/stdlib/readline.pyi +0 -36
- jaclang/vendor/mypy/typeshed/stdlib/reprlib.pyi +0 -65
- jaclang/vendor/mypy/typeshed/stdlib/resource.pyi +0 -94
- jaclang/vendor/mypy/typeshed/stdlib/rlcompleter.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/runpy.pyi +0 -24
- jaclang/vendor/mypy/typeshed/stdlib/sched.pyi +0 -42
- jaclang/vendor/mypy/typeshed/stdlib/secrets.pyi +0 -15
- jaclang/vendor/mypy/typeshed/stdlib/select.pyi +0 -155
- jaclang/vendor/mypy/typeshed/stdlib/selectors.pyi +0 -67
- jaclang/vendor/mypy/typeshed/stdlib/shelve.pyi +0 -46
- jaclang/vendor/mypy/typeshed/stdlib/shlex.pyi +0 -63
- jaclang/vendor/mypy/typeshed/stdlib/shutil.pyi +0 -185
- jaclang/vendor/mypy/typeshed/stdlib/signal.pyi +0 -188
- jaclang/vendor/mypy/typeshed/stdlib/site.pyi +0 -27
- jaclang/vendor/mypy/typeshed/stdlib/smtpd.pyi +0 -91
- jaclang/vendor/mypy/typeshed/stdlib/smtplib.pyi +0 -204
- jaclang/vendor/mypy/typeshed/stdlib/sndhdr.pyi +0 -14
- jaclang/vendor/mypy/typeshed/stdlib/socket.pyi +0 -825
- jaclang/vendor/mypy/typeshed/stdlib/socketserver.pyi +0 -168
- jaclang/vendor/mypy/typeshed/stdlib/spwd.pyi +0 -41
- jaclang/vendor/mypy/typeshed/stdlib/sqlite3/__init__.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +0 -551
- jaclang/vendor/mypy/typeshed/stdlib/sre_compile.pyi +0 -11
- jaclang/vendor/mypy/typeshed/stdlib/sre_constants.pyi +0 -130
- jaclang/vendor/mypy/typeshed/stdlib/sre_parse.pyi +0 -104
- jaclang/vendor/mypy/typeshed/stdlib/ssl.pyi +0 -537
- jaclang/vendor/mypy/typeshed/stdlib/stat.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/statistics.pyi +0 -132
- jaclang/vendor/mypy/typeshed/stdlib/string.pyi +0 -83
- jaclang/vendor/mypy/typeshed/stdlib/stringprep.pyi +0 -27
- jaclang/vendor/mypy/typeshed/stdlib/struct.pyi +0 -26
- jaclang/vendor/mypy/typeshed/stdlib/subprocess.pyi +0 -2615
- jaclang/vendor/mypy/typeshed/stdlib/sunau.pyi +0 -86
- jaclang/vendor/mypy/typeshed/stdlib/symbol.pyi +0 -93
- jaclang/vendor/mypy/typeshed/stdlib/symtable.pyi +0 -58
- jaclang/vendor/mypy/typeshed/stdlib/sys/__init__.pyi +0 -373
- jaclang/vendor/mypy/typeshed/stdlib/sys/_monitoring.pyi +0 -52
- jaclang/vendor/mypy/typeshed/stdlib/sysconfig.pyi +0 -48
- jaclang/vendor/mypy/typeshed/stdlib/syslog.pyi +0 -46
- jaclang/vendor/mypy/typeshed/stdlib/tabnanny.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/tarfile.pyi +0 -441
- jaclang/vendor/mypy/typeshed/stdlib/telnetlib.pyi +0 -122
- jaclang/vendor/mypy/typeshed/stdlib/tempfile.pyi +0 -477
- jaclang/vendor/mypy/typeshed/stdlib/termios.pyi +0 -267
- jaclang/vendor/mypy/typeshed/stdlib/textwrap.pyi +0 -103
- jaclang/vendor/mypy/typeshed/stdlib/this.pyi +0 -2
- jaclang/vendor/mypy/typeshed/stdlib/threading.pyi +0 -187
- jaclang/vendor/mypy/typeshed/stdlib/time.pyi +0 -108
- jaclang/vendor/mypy/typeshed/stdlib/timeit.pyi +0 -32
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/__init__.pyi +0 -3654
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/colorchooser.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/commondialog.pyi +0 -14
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/constants.pyi +0 -80
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/dialog.pyi +0 -16
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/dnd.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/filedialog.pyi +0 -151
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/font.pyi +0 -116
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/messagebox.pyi +0 -44
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +0 -9
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/simpledialog.pyi +0 -54
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/tix.pyi +0 -299
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/ttk.pyi +0 -1204
- jaclang/vendor/mypy/typeshed/stdlib/token.pyi +0 -159
- jaclang/vendor/mypy/typeshed/stdlib/tokenize.pyi +0 -177
- jaclang/vendor/mypy/typeshed/stdlib/tomllib.pyi +0 -10
- jaclang/vendor/mypy/typeshed/stdlib/trace.pyi +0 -79
- jaclang/vendor/mypy/typeshed/stdlib/traceback.pyi +0 -262
- jaclang/vendor/mypy/typeshed/stdlib/tracemalloc.pyi +0 -124
- jaclang/vendor/mypy/typeshed/stdlib/tty.pyi +0 -30
- jaclang/vendor/mypy/typeshed/stdlib/turtle.pyi +0 -713
- jaclang/vendor/mypy/typeshed/stdlib/types.pyi +0 -614
- jaclang/vendor/mypy/typeshed/stdlib/typing.pyi +0 -976
- jaclang/vendor/mypy/typeshed/stdlib/typing_extensions.pyi +0 -509
- jaclang/vendor/mypy/typeshed/stdlib/unicodedata.pyi +0 -73
- jaclang/vendor/mypy/typeshed/stdlib/unittest/__init__.pyi +0 -67
- jaclang/vendor/mypy/typeshed/stdlib/unittest/_log.pyi +0 -27
- jaclang/vendor/mypy/typeshed/stdlib/unittest/async_case.pyi +0 -21
- jaclang/vendor/mypy/typeshed/stdlib/unittest/case.pyi +0 -342
- jaclang/vendor/mypy/typeshed/stdlib/unittest/loader.pyi +0 -51
- jaclang/vendor/mypy/typeshed/stdlib/unittest/main.pyi +0 -69
- jaclang/vendor/mypy/typeshed/stdlib/unittest/mock.pyi +0 -430
- jaclang/vendor/mypy/typeshed/stdlib/unittest/result.pyi +0 -47
- jaclang/vendor/mypy/typeshed/stdlib/unittest/runner.pyi +0 -72
- jaclang/vendor/mypy/typeshed/stdlib/unittest/signals.pyi +0 -15
- jaclang/vendor/mypy/typeshed/stdlib/unittest/suite.pyi +0 -22
- jaclang/vendor/mypy/typeshed/stdlib/unittest/util.pyi +0 -23
- jaclang/vendor/mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/urllib/error.pyi +0 -23
- jaclang/vendor/mypy/typeshed/stdlib/urllib/parse.pyi +0 -210
- jaclang/vendor/mypy/typeshed/stdlib/urllib/request.pyi +0 -400
- jaclang/vendor/mypy/typeshed/stdlib/urllib/response.pyi +0 -43
- jaclang/vendor/mypy/typeshed/stdlib/urllib/robotparser.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/uu.pyi +0 -13
- jaclang/vendor/mypy/typeshed/stdlib/uuid.pyi +0 -100
- jaclang/vendor/mypy/typeshed/stdlib/warnings.pyi +0 -112
- jaclang/vendor/mypy/typeshed/stdlib/wave.pyi +0 -85
- jaclang/vendor/mypy/typeshed/stdlib/weakref.pyi +0 -149
- jaclang/vendor/mypy/typeshed/stdlib/webbrowser.pyi +0 -74
- jaclang/vendor/mypy/typeshed/stdlib/winreg.pyi +0 -132
- jaclang/vendor/mypy/typeshed/stdlib/winsound.pyi +0 -28
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/handlers.pyi +0 -91
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/headers.pyi +0 -26
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/simple_server.pyi +0 -37
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/types.pyi +0 -32
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/util.pyi +0 -24
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/validate.pyi +0 -50
- jaclang/vendor/mypy/typeshed/stdlib/xdrlib.pyi +0 -57
- jaclang/vendor/mypy/typeshed/stdlib/xml/__init__.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +0 -19
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/__init__.pyi +0 -69
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/domreg.pyi +0 -8
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +0 -100
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minicompat.pyi +0 -22
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minidom.pyi +0 -404
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/pulldom.pyi +0 -94
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +0 -108
- jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +0 -28
- jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +0 -34
- jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +0 -327
- jaclang/vendor/mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/__init__.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +0 -1
- jaclang/vendor/mypy/typeshed/stdlib/xml/sax/__init__.pyi +0 -25
- jaclang/vendor/mypy/typeshed/stdlib/xml/sax/_exceptions.pyi +0 -19
- jaclang/vendor/mypy/typeshed/stdlib/xml/sax/handler.pyi +0 -55
- jaclang/vendor/mypy/typeshed/stdlib/xml/sax/saxutils.pyi +0 -60
- jaclang/vendor/mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +0 -87
- jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/client.pyi +0 -296
- jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/server.pyi +0 -143
- jaclang/vendor/mypy/typeshed/stdlib/xxlimited.pyi +0 -22
- jaclang/vendor/mypy/typeshed/stdlib/zipapp.pyi +0 -20
- jaclang/vendor/mypy/typeshed/stdlib/zipfile/__init__.pyi +0 -306
- jaclang/vendor/mypy/typeshed/stdlib/zipfile/_path.pyi +0 -95
- jaclang/vendor/mypy/typeshed/stdlib/zipimport.pyi +0 -32
- jaclang/vendor/mypy/typeshed/stdlib/zlib.pyi +0 -56
- jaclang/vendor/mypy/typeshed/stdlib/zoneinfo/__init__.pyi +0 -38
- jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +0 -218
- jaclang/vendor/mypy/typestate.py +0 -323
- jaclang/vendor/mypy/typetraverser.py +0 -148
- jaclang/vendor/mypy/typevars.py +0 -93
- jaclang/vendor/mypy/typevartuples.py +0 -32
- jaclang/vendor/mypy/util.py +0 -869
- jaclang/vendor/mypy/version.py +0 -1
- jaclang/vendor/mypy/visitor.py +0 -621
- jaclang/vendor/mypy/xml/mypy-html.css +0 -104
- jaclang/vendor/mypy/xml/mypy-html.xslt +0 -81
- jaclang/vendor/mypy/xml/mypy-txt.xslt +0 -100
- jaclang/vendor/mypy/xml/mypy.xsd +0 -50
- jaclang/vendor/mypy-1.10.0.dist-info/LICENSE +0 -229
- jaclang/vendor/mypy-1.10.0.dist-info/METADATA +0 -48
- jaclang/vendor/mypy-1.10.0.dist-info/RECORD +0 -1241
- jaclang/vendor/mypy-1.10.0.dist-info/WHEEL +0 -6
- jaclang/vendor/mypy-1.10.0.dist-info/entry_points.txt +0 -6
- jaclang/vendor/mypy-1.10.0.dist-info/top_level.txt +0 -3
- jaclang/vendor/mypy_extensions-1.0.0.dist-info/LICENSE +0 -27
- jaclang/vendor/mypy_extensions-1.0.0.dist-info/METADATA +0 -29
- jaclang/vendor/mypy_extensions-1.0.0.dist-info/RECORD +0 -6
- jaclang/vendor/mypy_extensions-1.0.0.dist-info/top_level.txt +0 -1
- jaclang/vendor/mypy_extensions.py +0 -213
- jaclang/vendor/mypyc/README.md +0 -133
- jaclang/vendor/mypyc/__init__.py +0 -0
- jaclang/vendor/mypyc/__main__.py +0 -57
- jaclang/vendor/mypyc/analysis/__init__.py +0 -0
- jaclang/vendor/mypyc/analysis/attrdefined.py +0 -436
- jaclang/vendor/mypyc/analysis/blockfreq.py +0 -32
- jaclang/vendor/mypyc/analysis/dataflow.py +0 -628
- jaclang/vendor/mypyc/analysis/ircheck.py +0 -433
- jaclang/vendor/mypyc/analysis/selfleaks.py +0 -211
- jaclang/vendor/mypyc/build.py +0 -616
- jaclang/vendor/mypyc/codegen/__init__.py +0 -0
- jaclang/vendor/mypyc/codegen/cstring.py +0 -54
- jaclang/vendor/mypyc/codegen/emit.py +0 -1193
- jaclang/vendor/mypyc/codegen/emitclass.py +0 -1060
- jaclang/vendor/mypyc/codegen/emitfunc.py +0 -852
- jaclang/vendor/mypyc/codegen/emitmodule.py +0 -1136
- jaclang/vendor/mypyc/codegen/emitwrapper.py +0 -979
- jaclang/vendor/mypyc/codegen/literals.py +0 -302
- jaclang/vendor/mypyc/common.py +0 -136
- jaclang/vendor/mypyc/crash.py +0 -31
- jaclang/vendor/mypyc/doc/Makefile +0 -20
- jaclang/vendor/mypyc/doc/bool_operations.rst +0 -27
- jaclang/vendor/mypyc/doc/compilation_units.rst +0 -20
- jaclang/vendor/mypyc/doc/conf.py +0 -59
- jaclang/vendor/mypyc/doc/cpython-timings.md +0 -25
- jaclang/vendor/mypyc/doc/dev-intro.md +0 -548
- jaclang/vendor/mypyc/doc/dict_operations.rst +0 -59
- jaclang/vendor/mypyc/doc/differences_from_python.rst +0 -332
- jaclang/vendor/mypyc/doc/float_operations.rst +0 -50
- jaclang/vendor/mypyc/doc/future.md +0 -42
- jaclang/vendor/mypyc/doc/getting_started.rst +0 -240
- jaclang/vendor/mypyc/doc/index.rst +0 -61
- jaclang/vendor/mypyc/doc/int_operations.rst +0 -162
- jaclang/vendor/mypyc/doc/introduction.rst +0 -150
- jaclang/vendor/mypyc/doc/list_operations.rst +0 -65
- jaclang/vendor/mypyc/doc/make.bat +0 -35
- jaclang/vendor/mypyc/doc/native_classes.rst +0 -206
- jaclang/vendor/mypyc/doc/native_operations.rst +0 -55
- jaclang/vendor/mypyc/doc/performance_tips_and_tricks.rst +0 -244
- jaclang/vendor/mypyc/doc/set_operations.rst +0 -47
- jaclang/vendor/mypyc/doc/str_operations.rst +0 -35
- jaclang/vendor/mypyc/doc/tuple_operations.rst +0 -33
- jaclang/vendor/mypyc/doc/using_type_annotations.rst +0 -398
- jaclang/vendor/mypyc/errors.py +0 -29
- jaclang/vendor/mypyc/external/googletest/LICENSE +0 -28
- jaclang/vendor/mypyc/external/googletest/README.md +0 -280
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-death-test.h +0 -294
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-message.h +0 -250
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h +0 -1444
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h.pump +0 -510
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-printers.h +0 -993
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-spi.h +0 -232
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-test-part.h +0 -179
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-typed-test.h +0 -263
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest.h +0 -2236
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_pred_impl.h +0 -358
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_prod.h +0 -58
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-port.h +0 -69
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-printers.h +0 -42
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest.h +0 -41
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-death-test-internal.h +0 -319
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-filepath.h +0 -206
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-internal.h +0 -1238
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-linked_ptr.h +0 -243
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h +0 -5146
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -286
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util.h +0 -731
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port-arch.h +0 -93
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port.h +0 -2560
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-string.h +0 -167
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h +0 -1020
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h.pump +0 -347
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h +0 -3331
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h.pump +0 -297
- jaclang/vendor/mypyc/external/googletest/make/Makefile +0 -61
- jaclang/vendor/mypyc/external/googletest/src/gtest-all.cc +0 -48
- jaclang/vendor/mypyc/external/googletest/src/gtest-death-test.cc +0 -1342
- jaclang/vendor/mypyc/external/googletest/src/gtest-filepath.cc +0 -387
- jaclang/vendor/mypyc/external/googletest/src/gtest-internal-inl.h +0 -1183
- jaclang/vendor/mypyc/external/googletest/src/gtest-port.cc +0 -1259
- jaclang/vendor/mypyc/external/googletest/src/gtest-printers.cc +0 -373
- jaclang/vendor/mypyc/external/googletest/src/gtest-test-part.cc +0 -110
- jaclang/vendor/mypyc/external/googletest/src/gtest-typed-test.cc +0 -118
- jaclang/vendor/mypyc/external/googletest/src/gtest.cc +0 -5388
- jaclang/vendor/mypyc/external/googletest/src/gtest_main.cc +0 -38
- jaclang/vendor/mypyc/ir/__init__.py +0 -0
- jaclang/vendor/mypyc/ir/class_ir.py +0 -499
- jaclang/vendor/mypyc/ir/func_ir.py +0 -370
- jaclang/vendor/mypyc/ir/module_ir.py +0 -88
- jaclang/vendor/mypyc/ir/ops.py +0 -1727
- jaclang/vendor/mypyc/ir/pprint.py +0 -516
- jaclang/vendor/mypyc/ir/rtypes.py +0 -1038
- jaclang/vendor/mypyc/irbuild/__init__.py +0 -0
- jaclang/vendor/mypyc/irbuild/ast_helpers.py +0 -123
- jaclang/vendor/mypyc/irbuild/builder.py +0 -1394
- jaclang/vendor/mypyc/irbuild/callable_class.py +0 -173
- jaclang/vendor/mypyc/irbuild/classdef.py +0 -850
- jaclang/vendor/mypyc/irbuild/constant_fold.py +0 -95
- jaclang/vendor/mypyc/irbuild/context.py +0 -186
- jaclang/vendor/mypyc/irbuild/env_class.py +0 -223
- jaclang/vendor/mypyc/irbuild/expression.py +0 -1070
- jaclang/vendor/mypyc/irbuild/for_helpers.py +0 -1075
- jaclang/vendor/mypyc/irbuild/format_str_tokenizer.py +0 -250
- jaclang/vendor/mypyc/irbuild/function.py +0 -1088
- jaclang/vendor/mypyc/irbuild/generator.py +0 -346
- jaclang/vendor/mypyc/irbuild/ll_builder.py +0 -2389
- jaclang/vendor/mypyc/irbuild/main.py +0 -153
- jaclang/vendor/mypyc/irbuild/mapper.py +0 -221
- jaclang/vendor/mypyc/irbuild/match.py +0 -355
- jaclang/vendor/mypyc/irbuild/nonlocalcontrol.py +0 -197
- jaclang/vendor/mypyc/irbuild/prebuildvisitor.py +0 -203
- jaclang/vendor/mypyc/irbuild/prepare.py +0 -609
- jaclang/vendor/mypyc/irbuild/specialize.py +0 -822
- jaclang/vendor/mypyc/irbuild/statement.py +0 -1017
- jaclang/vendor/mypyc/irbuild/targets.py +0 -57
- jaclang/vendor/mypyc/irbuild/util.py +0 -189
- jaclang/vendor/mypyc/irbuild/visitor.py +0 -401
- jaclang/vendor/mypyc/irbuild/vtable.py +0 -82
- jaclang/vendor/mypyc/lib-rt/CPy.h +0 -638
- jaclang/vendor/mypyc/lib-rt/bytes_ops.c +0 -143
- jaclang/vendor/mypyc/lib-rt/dict_ops.c +0 -446
- jaclang/vendor/mypyc/lib-rt/exc_ops.c +0 -259
- jaclang/vendor/mypyc/lib-rt/float_ops.c +0 -192
- jaclang/vendor/mypyc/lib-rt/generic_ops.c +0 -64
- jaclang/vendor/mypyc/lib-rt/getargs.c +0 -450
- jaclang/vendor/mypyc/lib-rt/getargsfast.c +0 -569
- jaclang/vendor/mypyc/lib-rt/init.c +0 -13
- jaclang/vendor/mypyc/lib-rt/int_ops.c +0 -803
- jaclang/vendor/mypyc/lib-rt/list_ops.c +0 -335
- jaclang/vendor/mypyc/lib-rt/misc_ops.c +0 -942
- jaclang/vendor/mypyc/lib-rt/module_shim.tmpl +0 -18
- jaclang/vendor/mypyc/lib-rt/mypyc_util.h +0 -118
- jaclang/vendor/mypyc/lib-rt/pythoncapi_compat.h +0 -497
- jaclang/vendor/mypyc/lib-rt/pythonsupport.h +0 -533
- jaclang/vendor/mypyc/lib-rt/set_ops.c +0 -17
- jaclang/vendor/mypyc/lib-rt/setup.py +0 -70
- jaclang/vendor/mypyc/lib-rt/str_ops.c +0 -241
- jaclang/vendor/mypyc/lib-rt/test_capi.cc +0 -585
- jaclang/vendor/mypyc/lib-rt/tuple_ops.c +0 -61
- jaclang/vendor/mypyc/lower/__init__.py +0 -0
- jaclang/vendor/mypyc/lower/int_ops.py +0 -113
- jaclang/vendor/mypyc/lower/list_ops.py +0 -45
- jaclang/vendor/mypyc/lower/misc_ops.py +0 -12
- jaclang/vendor/mypyc/lower/registry.py +0 -26
- jaclang/vendor/mypyc/namegen.py +0 -115
- jaclang/vendor/mypyc/options.py +0 -32
- jaclang/vendor/mypyc/primitives/__init__.py +0 -0
- jaclang/vendor/mypyc/primitives/bytes_ops.py +0 -101
- jaclang/vendor/mypyc/primitives/dict_ops.py +0 -325
- jaclang/vendor/mypyc/primitives/exc_ops.py +0 -101
- jaclang/vendor/mypyc/primitives/float_ops.py +0 -168
- jaclang/vendor/mypyc/primitives/generic_ops.py +0 -384
- jaclang/vendor/mypyc/primitives/int_ops.py +0 -303
- jaclang/vendor/mypyc/primitives/list_ops.py +0 -310
- jaclang/vendor/mypyc/primitives/misc_ops.py +0 -267
- jaclang/vendor/mypyc/primitives/registry.py +0 -360
- jaclang/vendor/mypyc/primitives/set_ops.py +0 -121
- jaclang/vendor/mypyc/primitives/str_ops.py +0 -229
- jaclang/vendor/mypyc/primitives/tuple_ops.py +0 -83
- jaclang/vendor/mypyc/rt_subtype.py +0 -77
- jaclang/vendor/mypyc/sametype.py +0 -83
- jaclang/vendor/mypyc/subtype.py +0 -88
- jaclang/vendor/mypyc/test/__init__.py +0 -0
- jaclang/vendor/mypyc/test/config.py +0 -13
- jaclang/vendor/mypyc/test/test_alwaysdefined.py +0 -46
- jaclang/vendor/mypyc/test/test_analysis.py +0 -77
- jaclang/vendor/mypyc/test/test_cheader.py +0 -53
- jaclang/vendor/mypyc/test/test_commandline.py +0 -82
- jaclang/vendor/mypyc/test/test_emit.py +0 -69
- jaclang/vendor/mypyc/test/test_emitclass.py +0 -35
- jaclang/vendor/mypyc/test/test_emitfunc.py +0 -928
- jaclang/vendor/mypyc/test/test_emitwrapper.py +0 -60
- jaclang/vendor/mypyc/test/test_exceptions.py +0 -56
- jaclang/vendor/mypyc/test/test_external.py +0 -49
- jaclang/vendor/mypyc/test/test_irbuild.py +0 -87
- jaclang/vendor/mypyc/test/test_ircheck.py +0 -199
- jaclang/vendor/mypyc/test/test_literals.py +0 -90
- jaclang/vendor/mypyc/test/test_lowering.py +0 -56
- jaclang/vendor/mypyc/test/test_namegen.py +0 -48
- jaclang/vendor/mypyc/test/test_optimizations.py +0 -68
- jaclang/vendor/mypyc/test/test_pprint.py +0 -42
- jaclang/vendor/mypyc/test/test_rarray.py +0 -48
- jaclang/vendor/mypyc/test/test_refcount.py +0 -59
- jaclang/vendor/mypyc/test/test_run.py +0 -426
- jaclang/vendor/mypyc/test/test_serialization.py +0 -108
- jaclang/vendor/mypyc/test/test_struct.py +0 -112
- jaclang/vendor/mypyc/test/test_tuplename.py +0 -33
- jaclang/vendor/mypyc/test/test_typeops.py +0 -97
- jaclang/vendor/mypyc/test/testutil.py +0 -283
- jaclang/vendor/mypyc/test-data/alwaysdefined.test +0 -732
- jaclang/vendor/mypyc/test-data/analysis.test +0 -470
- jaclang/vendor/mypyc/test-data/commandline.test +0 -245
- jaclang/vendor/mypyc/test-data/driver/driver.py +0 -48
- jaclang/vendor/mypyc/test-data/exceptions-freq.test +0 -125
- jaclang/vendor/mypyc/test-data/exceptions.test +0 -699
- jaclang/vendor/mypyc/test-data/fixtures/ir.py +0 -373
- jaclang/vendor/mypyc/test-data/fixtures/testutil.py +0 -103
- jaclang/vendor/mypyc/test-data/fixtures/typing-full.pyi +0 -169
- jaclang/vendor/mypyc/test-data/irbuild-any.test +0 -236
- jaclang/vendor/mypyc/test-data/irbuild-basic.test +0 -3399
- jaclang/vendor/mypyc/test-data/irbuild-bool.test +0 -424
- jaclang/vendor/mypyc/test-data/irbuild-bytes.test +0 -181
- jaclang/vendor/mypyc/test-data/irbuild-classes.test +0 -1302
- jaclang/vendor/mypyc/test-data/irbuild-constant-fold.test +0 -480
- jaclang/vendor/mypyc/test-data/irbuild-dict.test +0 -584
- jaclang/vendor/mypyc/test-data/irbuild-dunders.test +0 -215
- jaclang/vendor/mypyc/test-data/irbuild-float.test +0 -497
- jaclang/vendor/mypyc/test-data/irbuild-generics.test +0 -150
- jaclang/vendor/mypyc/test-data/irbuild-glue-methods.test +0 -437
- jaclang/vendor/mypyc/test-data/irbuild-i16.test +0 -526
- jaclang/vendor/mypyc/test-data/irbuild-i32.test +0 -598
- jaclang/vendor/mypyc/test-data/irbuild-i64.test +0 -2144
- jaclang/vendor/mypyc/test-data/irbuild-int.test +0 -194
- jaclang/vendor/mypyc/test-data/irbuild-isinstance.test +0 -109
- jaclang/vendor/mypyc/test-data/irbuild-lists.test +0 -513
- jaclang/vendor/mypyc/test-data/irbuild-match.test +0 -1717
- jaclang/vendor/mypyc/test-data/irbuild-math.test +0 -64
- jaclang/vendor/mypyc/test-data/irbuild-nested.test +0 -807
- jaclang/vendor/mypyc/test-data/irbuild-optional.test +0 -536
- jaclang/vendor/mypyc/test-data/irbuild-set.test +0 -806
- jaclang/vendor/mypyc/test-data/irbuild-singledispatch.test +0 -257
- jaclang/vendor/mypyc/test-data/irbuild-statements.test +0 -1060
- jaclang/vendor/mypyc/test-data/irbuild-str.test +0 -312
- jaclang/vendor/mypyc/test-data/irbuild-strip-asserts.test +0 -12
- jaclang/vendor/mypyc/test-data/irbuild-try.test +0 -523
- jaclang/vendor/mypyc/test-data/irbuild-tuple.test +0 -386
- jaclang/vendor/mypyc/test-data/irbuild-u8.test +0 -543
- jaclang/vendor/mypyc/test-data/irbuild-unreachable.test +0 -241
- jaclang/vendor/mypyc/test-data/irbuild-vectorcall.test +0 -153
- jaclang/vendor/mypyc/test-data/lowering-int.test +0 -377
- jaclang/vendor/mypyc/test-data/lowering-list.test +0 -33
- jaclang/vendor/mypyc/test-data/opt-copy-propagation.test +0 -400
- jaclang/vendor/mypyc/test-data/opt-flag-elimination.test +0 -296
- jaclang/vendor/mypyc/test-data/refcount.test +0 -1482
- jaclang/vendor/mypyc/test-data/run-async.test +0 -173
- jaclang/vendor/mypyc/test-data/run-attrs.test +0 -318
- jaclang/vendor/mypyc/test-data/run-bench.test +0 -196
- jaclang/vendor/mypyc/test-data/run-bools.test +0 -229
- jaclang/vendor/mypyc/test-data/run-bytes.test +0 -302
- jaclang/vendor/mypyc/test-data/run-classes.test +0 -2505
- jaclang/vendor/mypyc/test-data/run-dicts.test +0 -334
- jaclang/vendor/mypyc/test-data/run-dunders.test +0 -945
- jaclang/vendor/mypyc/test-data/run-exceptions.test +0 -448
- jaclang/vendor/mypyc/test-data/run-floats.test +0 -516
- jaclang/vendor/mypyc/test-data/run-functions.test +0 -1310
- jaclang/vendor/mypyc/test-data/run-generators.test +0 -682
- jaclang/vendor/mypyc/test-data/run-i16.test +0 -338
- jaclang/vendor/mypyc/test-data/run-i32.test +0 -336
- jaclang/vendor/mypyc/test-data/run-i64.test +0 -1519
- jaclang/vendor/mypyc/test-data/run-imports.test +0 -265
- jaclang/vendor/mypyc/test-data/run-integers.test +0 -540
- jaclang/vendor/mypyc/test-data/run-lists.test +0 -411
- jaclang/vendor/mypyc/test-data/run-loops.test +0 -485
- jaclang/vendor/mypyc/test-data/run-match.test +0 -283
- jaclang/vendor/mypyc/test-data/run-math.test +0 -106
- jaclang/vendor/mypyc/test-data/run-misc.test +0 -1170
- jaclang/vendor/mypyc/test-data/run-multimodule.test +0 -887
- jaclang/vendor/mypyc/test-data/run-mypy-sim.test +0 -138
- jaclang/vendor/mypyc/test-data/run-primitives.test +0 -375
- jaclang/vendor/mypyc/test-data/run-python37.test +0 -159
- jaclang/vendor/mypyc/test-data/run-python38.test +0 -88
- jaclang/vendor/mypyc/test-data/run-sets.test +0 -150
- jaclang/vendor/mypyc/test-data/run-singledispatch.test +0 -698
- jaclang/vendor/mypyc/test-data/run-strings.test +0 -641
- jaclang/vendor/mypyc/test-data/run-traits.test +0 -411
- jaclang/vendor/mypyc/test-data/run-tuples.test +0 -258
- jaclang/vendor/mypyc/test-data/run-u8.test +0 -303
- jaclang/vendor/mypyc/transform/__init__.py +0 -0
- jaclang/vendor/mypyc/transform/copy_propagation.py +0 -94
- jaclang/vendor/mypyc/transform/exceptions.py +0 -182
- jaclang/vendor/mypyc/transform/flag_elimination.py +0 -108
- jaclang/vendor/mypyc/transform/ir_transform.py +0 -368
- jaclang/vendor/mypyc/transform/lower.py +0 -33
- jaclang/vendor/mypyc/transform/refcount.py +0 -294
- jaclang/vendor/mypyc/transform/uninit.py +0 -190
- jaclang/vendor/typing_extensions-4.12.2.dist-info/LICENSE +0 -279
- jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA +0 -67
- jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD +0 -5
- jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL +0 -4
- jaclang/vendor/typing_extensions.py +0 -3641
- jaclang-0.7.34.dist-info/RECORD +0 -1563
- /jaclang/{vendor/mypy/dmypy → compiler/larkparse}/__init__.py +0 -0
- /jaclang/{tests → compiler/passes/main/tests}/fixtures/access_checker.jac +0 -0
- /jaclang/{vendor/mypy/plugins/__init__.py → langserve/tests/fixtures/deep_check_crash.jac} +0 -0
- /jaclang/{vendor/mypy/server/__init__.py → langserve/tests/server_test/code_test.py} +0 -0
- /jaclang/{plugin → runtimelib}/tests/__init__.py +0 -0
- /jaclang/{plugin → runtimelib}/tests/fixtures/traversing_save.jac +0 -0
- /jaclang/{vendor/mypy/test → tests}/__init__.py +0 -0
- /jaclang/{vendor/mypy/test/meta → tests/fixtures}/__init__.py +0 -0
- /jaclang/tests/fixtures/{architype_def_bug.jac → archetype_def_bug.jac} +0 -0
- /jaclang/vendor/{mypy/typeshed/stdlib/concurrent/__init__.pyi → attrs-25.3.0.dist-info/REQUESTED} +0 -0
- /jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/licenses/LICENSE +0 -0
- /jaclang/vendor/{mypy/typeshed/stdlib/distutils/command/__init__.pyi → cattrs-24.1.3.dist-info/REQUESTED} +0 -0
- /jaclang/vendor/{cattrs-23.2.3.dist-info → cattrs-24.1.3.dist-info}/licenses/LICENSE +0 -0
- /jaclang/vendor/{mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi → lark-1.2.2.dist-info/REQUESTED} +0 -0
- /jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/entry_points.txt +0 -0
- /jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/top_level.txt +0 -0
- /jaclang/vendor/{mypy/typeshed/stdlib/email/mime/__init__.pyi → lsprotocol-2023.0.1.dist-info/REQUESTED} +0 -0
- /jaclang/vendor/lsprotocol-2023.0.1.dist-info/{LICENSE → licenses/LICENSE} +0 -0
- /jaclang/vendor/{mypy/typeshed/stdlib/lib2to3/__init__.pyi → pluggy-1.5.0.dist-info/REQUESTED} +0 -0
- /jaclang/vendor/pluggy-1.5.0.dist-info/{LICENSE → licenses/LICENSE} +0 -0
- /jaclang/vendor/{mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi → pygls-1.3.1.dist-info/REQUESTED} +0 -0
- {jaclang-0.7.34.dist-info → jaclang-0.8.0.dist-info}/entry_points.txt +0 -0
|
@@ -1,1394 +0,0 @@
|
|
|
1
|
-
"""Builder class used to transform a mypy AST to the IR form.
|
|
2
|
-
|
|
3
|
-
The IRBuilder class maintains transformation state and provides access
|
|
4
|
-
to various helpers used to implement the transform.
|
|
5
|
-
|
|
6
|
-
The top-level transform control logic is in mypyc.irbuild.main.
|
|
7
|
-
|
|
8
|
-
mypyc.irbuild.visitor.IRBuilderVisitor is used to dispatch based on mypy
|
|
9
|
-
AST node type to code that actually does the bulk of the work. For
|
|
10
|
-
example, expressions are transformed in mypyc.irbuild.expression and
|
|
11
|
-
functions are transformed in mypyc.irbuild.function.
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
from __future__ import annotations
|
|
15
|
-
|
|
16
|
-
from contextlib import contextmanager
|
|
17
|
-
from typing import Any, Callable, Final, Iterator, Sequence, Union
|
|
18
|
-
from typing_extensions import overload
|
|
19
|
-
|
|
20
|
-
from mypy.build import Graph
|
|
21
|
-
from mypy.maptype import map_instance_to_supertype
|
|
22
|
-
from mypy.nodes import (
|
|
23
|
-
ARG_NAMED,
|
|
24
|
-
ARG_POS,
|
|
25
|
-
GDEF,
|
|
26
|
-
LDEF,
|
|
27
|
-
ArgKind,
|
|
28
|
-
CallExpr,
|
|
29
|
-
Decorator,
|
|
30
|
-
Expression,
|
|
31
|
-
FuncDef,
|
|
32
|
-
IndexExpr,
|
|
33
|
-
IntExpr,
|
|
34
|
-
Lvalue,
|
|
35
|
-
MemberExpr,
|
|
36
|
-
MypyFile,
|
|
37
|
-
NameExpr,
|
|
38
|
-
OpExpr,
|
|
39
|
-
OverloadedFuncDef,
|
|
40
|
-
RefExpr,
|
|
41
|
-
StarExpr,
|
|
42
|
-
Statement,
|
|
43
|
-
SymbolNode,
|
|
44
|
-
TupleExpr,
|
|
45
|
-
TypeAlias,
|
|
46
|
-
TypeInfo,
|
|
47
|
-
UnaryExpr,
|
|
48
|
-
Var,
|
|
49
|
-
)
|
|
50
|
-
from mypy.types import (
|
|
51
|
-
AnyType,
|
|
52
|
-
DeletedType,
|
|
53
|
-
Instance,
|
|
54
|
-
ProperType,
|
|
55
|
-
TupleType,
|
|
56
|
-
Type,
|
|
57
|
-
TypedDictType,
|
|
58
|
-
TypeOfAny,
|
|
59
|
-
UninhabitedType,
|
|
60
|
-
UnionType,
|
|
61
|
-
get_proper_type,
|
|
62
|
-
)
|
|
63
|
-
from mypy.util import module_prefix, split_target
|
|
64
|
-
from mypy.visitor import ExpressionVisitor, StatementVisitor
|
|
65
|
-
from mypyc.common import BITMAP_BITS, SELF_NAME, TEMP_ATTR_NAME
|
|
66
|
-
from mypyc.crash import catch_errors
|
|
67
|
-
from mypyc.errors import Errors
|
|
68
|
-
from mypyc.ir.class_ir import ClassIR, NonExtClassInfo
|
|
69
|
-
from mypyc.ir.func_ir import INVALID_FUNC_DEF, FuncDecl, FuncIR, FuncSignature, RuntimeArg
|
|
70
|
-
from mypyc.ir.ops import (
|
|
71
|
-
NAMESPACE_MODULE,
|
|
72
|
-
Assign,
|
|
73
|
-
BasicBlock,
|
|
74
|
-
Branch,
|
|
75
|
-
ComparisonOp,
|
|
76
|
-
GetAttr,
|
|
77
|
-
InitStatic,
|
|
78
|
-
Integer,
|
|
79
|
-
IntOp,
|
|
80
|
-
LoadStatic,
|
|
81
|
-
Op,
|
|
82
|
-
RaiseStandardError,
|
|
83
|
-
Register,
|
|
84
|
-
SetAttr,
|
|
85
|
-
TupleGet,
|
|
86
|
-
Unreachable,
|
|
87
|
-
Value,
|
|
88
|
-
)
|
|
89
|
-
from mypyc.ir.rtypes import (
|
|
90
|
-
RInstance,
|
|
91
|
-
RTuple,
|
|
92
|
-
RType,
|
|
93
|
-
RUnion,
|
|
94
|
-
bitmap_rprimitive,
|
|
95
|
-
c_pyssize_t_rprimitive,
|
|
96
|
-
dict_rprimitive,
|
|
97
|
-
int_rprimitive,
|
|
98
|
-
is_float_rprimitive,
|
|
99
|
-
is_list_rprimitive,
|
|
100
|
-
is_none_rprimitive,
|
|
101
|
-
is_object_rprimitive,
|
|
102
|
-
is_tagged,
|
|
103
|
-
is_tuple_rprimitive,
|
|
104
|
-
none_rprimitive,
|
|
105
|
-
object_rprimitive,
|
|
106
|
-
str_rprimitive,
|
|
107
|
-
)
|
|
108
|
-
from mypyc.irbuild.context import FuncInfo, ImplicitClass
|
|
109
|
-
from mypyc.irbuild.ll_builder import LowLevelIRBuilder
|
|
110
|
-
from mypyc.irbuild.mapper import Mapper
|
|
111
|
-
from mypyc.irbuild.nonlocalcontrol import (
|
|
112
|
-
BaseNonlocalControl,
|
|
113
|
-
GeneratorNonlocalControl,
|
|
114
|
-
LoopNonlocalControl,
|
|
115
|
-
NonlocalControl,
|
|
116
|
-
)
|
|
117
|
-
from mypyc.irbuild.prebuildvisitor import PreBuildVisitor
|
|
118
|
-
from mypyc.irbuild.prepare import RegisterImplInfo
|
|
119
|
-
from mypyc.irbuild.targets import (
|
|
120
|
-
AssignmentTarget,
|
|
121
|
-
AssignmentTargetAttr,
|
|
122
|
-
AssignmentTargetIndex,
|
|
123
|
-
AssignmentTargetRegister,
|
|
124
|
-
AssignmentTargetTuple,
|
|
125
|
-
)
|
|
126
|
-
from mypyc.irbuild.util import bytes_from_str, is_constant
|
|
127
|
-
from mypyc.options import CompilerOptions
|
|
128
|
-
from mypyc.primitives.dict_ops import dict_get_item_op, dict_set_item_op
|
|
129
|
-
from mypyc.primitives.generic_ops import iter_op, next_op, py_setattr_op
|
|
130
|
-
from mypyc.primitives.list_ops import list_get_item_unsafe_op, list_pop_last, to_list
|
|
131
|
-
from mypyc.primitives.misc_ops import check_unpack_count_op, get_module_dict_op, import_op
|
|
132
|
-
from mypyc.primitives.registry import CFunctionDescription, function_ops
|
|
133
|
-
|
|
134
|
-
# These int binary operations can borrow their operands safely, since the
|
|
135
|
-
# primitives take this into consideration.
|
|
136
|
-
int_borrow_friendly_op: Final = {"+", "-", "==", "!=", "<", "<=", ">", ">="}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
class IRVisitor(ExpressionVisitor[Value], StatementVisitor[None]):
|
|
140
|
-
pass
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
class UnsupportedException(Exception):
|
|
144
|
-
pass
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
SymbolTarget = Union[AssignmentTargetRegister, AssignmentTargetAttr]
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
class IRBuilder:
|
|
151
|
-
def __init__(
|
|
152
|
-
self,
|
|
153
|
-
current_module: str,
|
|
154
|
-
types: dict[Expression, Type],
|
|
155
|
-
graph: Graph,
|
|
156
|
-
errors: Errors,
|
|
157
|
-
mapper: Mapper,
|
|
158
|
-
pbv: PreBuildVisitor,
|
|
159
|
-
visitor: IRVisitor,
|
|
160
|
-
options: CompilerOptions,
|
|
161
|
-
singledispatch_impls: dict[FuncDef, list[RegisterImplInfo]],
|
|
162
|
-
) -> None:
|
|
163
|
-
self.builder = LowLevelIRBuilder(errors, options)
|
|
164
|
-
self.builders = [self.builder]
|
|
165
|
-
self.symtables: list[dict[SymbolNode, SymbolTarget]] = [{}]
|
|
166
|
-
self.runtime_args: list[list[RuntimeArg]] = [[]]
|
|
167
|
-
self.function_name_stack: list[str] = []
|
|
168
|
-
self.class_ir_stack: list[ClassIR] = []
|
|
169
|
-
# Keep track of whether the next statement in a block is reachable
|
|
170
|
-
# or not, separately for each block nesting level
|
|
171
|
-
self.block_reachable_stack: list[bool] = [True]
|
|
172
|
-
|
|
173
|
-
self.current_module = current_module
|
|
174
|
-
self.mapper = mapper
|
|
175
|
-
self.types = types
|
|
176
|
-
self.graph = graph
|
|
177
|
-
self.ret_types: list[RType] = []
|
|
178
|
-
self.functions: list[FuncIR] = []
|
|
179
|
-
self.function_names: set[tuple[str | None, str]] = set()
|
|
180
|
-
self.classes: list[ClassIR] = []
|
|
181
|
-
self.final_names: list[tuple[str, RType]] = []
|
|
182
|
-
self.callable_class_names: set[str] = set()
|
|
183
|
-
self.options = options
|
|
184
|
-
|
|
185
|
-
# These variables keep track of the number of lambdas, implicit indices, and implicit
|
|
186
|
-
# iterators instantiated so we avoid name conflicts. The indices and iterators are
|
|
187
|
-
# instantiated from for-loops.
|
|
188
|
-
self.lambda_counter = 0
|
|
189
|
-
self.temp_counter = 0
|
|
190
|
-
|
|
191
|
-
# These variables are populated from the first-pass PreBuildVisitor.
|
|
192
|
-
self.free_variables = pbv.free_variables
|
|
193
|
-
self.prop_setters = pbv.prop_setters
|
|
194
|
-
self.encapsulating_funcs = pbv.encapsulating_funcs
|
|
195
|
-
self.nested_fitems = pbv.nested_funcs.keys()
|
|
196
|
-
self.fdefs_to_decorators = pbv.funcs_to_decorators
|
|
197
|
-
self.module_import_groups = pbv.module_import_groups
|
|
198
|
-
|
|
199
|
-
self.singledispatch_impls = singledispatch_impls
|
|
200
|
-
|
|
201
|
-
self.visitor = visitor
|
|
202
|
-
|
|
203
|
-
# This list operates similarly to a function call stack for nested functions. Whenever a
|
|
204
|
-
# function definition begins to be generated, a FuncInfo instance is added to the stack,
|
|
205
|
-
# and information about that function (e.g. whether it is nested, its environment class to
|
|
206
|
-
# be generated) is stored in that FuncInfo instance. When the function is done being
|
|
207
|
-
# generated, its corresponding FuncInfo is popped off the stack.
|
|
208
|
-
self.fn_info = FuncInfo(INVALID_FUNC_DEF, "", "")
|
|
209
|
-
self.fn_infos: list[FuncInfo] = [self.fn_info]
|
|
210
|
-
|
|
211
|
-
# This list operates as a stack of constructs that modify the
|
|
212
|
-
# behavior of nonlocal control flow constructs.
|
|
213
|
-
self.nonlocal_control: list[NonlocalControl] = []
|
|
214
|
-
|
|
215
|
-
self.errors = errors
|
|
216
|
-
# Notionally a list of all of the modules imported by the
|
|
217
|
-
# module being compiled, but stored as an OrderedDict so we
|
|
218
|
-
# can also do quick lookups.
|
|
219
|
-
self.imports: dict[str, None] = {}
|
|
220
|
-
|
|
221
|
-
self.can_borrow = False
|
|
222
|
-
|
|
223
|
-
# High-level control
|
|
224
|
-
|
|
225
|
-
def set_module(self, module_name: str, module_path: str) -> None:
|
|
226
|
-
"""Set the name and path of the current module.
|
|
227
|
-
|
|
228
|
-
This must be called before transforming any AST nodes.
|
|
229
|
-
"""
|
|
230
|
-
self.module_name = module_name
|
|
231
|
-
self.module_path = module_path
|
|
232
|
-
self.builder.set_module(module_name, module_path)
|
|
233
|
-
|
|
234
|
-
@overload
|
|
235
|
-
def accept(self, node: Expression, *, can_borrow: bool = False) -> Value: ...
|
|
236
|
-
|
|
237
|
-
@overload
|
|
238
|
-
def accept(self, node: Statement) -> None: ...
|
|
239
|
-
|
|
240
|
-
def accept(self, node: Statement | Expression, *, can_borrow: bool = False) -> Value | None:
|
|
241
|
-
"""Transform an expression or a statement.
|
|
242
|
-
|
|
243
|
-
If can_borrow is true, prefer to generate a borrowed reference.
|
|
244
|
-
Borrowed references are faster since they don't require reference count
|
|
245
|
-
manipulation, but they are only safe to use in specific contexts.
|
|
246
|
-
"""
|
|
247
|
-
with self.catch_errors(node.line):
|
|
248
|
-
if isinstance(node, Expression):
|
|
249
|
-
old_can_borrow = self.can_borrow
|
|
250
|
-
self.can_borrow = can_borrow
|
|
251
|
-
try:
|
|
252
|
-
res = node.accept(self.visitor)
|
|
253
|
-
res = self.coerce(res, self.node_type(node), node.line)
|
|
254
|
-
# If we hit an error during compilation, we want to
|
|
255
|
-
# keep trying, so we can produce more error
|
|
256
|
-
# messages. Generate a temp of the right type to keep
|
|
257
|
-
# from causing more downstream trouble.
|
|
258
|
-
except UnsupportedException:
|
|
259
|
-
res = Register(self.node_type(node))
|
|
260
|
-
self.can_borrow = old_can_borrow
|
|
261
|
-
if not can_borrow:
|
|
262
|
-
self.flush_keep_alives()
|
|
263
|
-
return res
|
|
264
|
-
else:
|
|
265
|
-
try:
|
|
266
|
-
node.accept(self.visitor)
|
|
267
|
-
except UnsupportedException:
|
|
268
|
-
pass
|
|
269
|
-
return None
|
|
270
|
-
|
|
271
|
-
def flush_keep_alives(self) -> None:
|
|
272
|
-
self.builder.flush_keep_alives()
|
|
273
|
-
|
|
274
|
-
# Pass through methods for the most common low-level builder ops, for convenience.
|
|
275
|
-
|
|
276
|
-
def add(self, op: Op) -> Value:
|
|
277
|
-
return self.builder.add(op)
|
|
278
|
-
|
|
279
|
-
def goto(self, target: BasicBlock) -> None:
|
|
280
|
-
self.builder.goto(target)
|
|
281
|
-
|
|
282
|
-
def activate_block(self, block: BasicBlock) -> None:
|
|
283
|
-
self.builder.activate_block(block)
|
|
284
|
-
|
|
285
|
-
def goto_and_activate(self, block: BasicBlock) -> None:
|
|
286
|
-
self.builder.goto_and_activate(block)
|
|
287
|
-
|
|
288
|
-
def self(self) -> Register:
|
|
289
|
-
return self.builder.self()
|
|
290
|
-
|
|
291
|
-
def py_get_attr(self, obj: Value, attr: str, line: int) -> Value:
|
|
292
|
-
return self.builder.py_get_attr(obj, attr, line)
|
|
293
|
-
|
|
294
|
-
def load_str(self, value: str) -> Value:
|
|
295
|
-
return self.builder.load_str(value)
|
|
296
|
-
|
|
297
|
-
def load_bytes_from_str_literal(self, value: str) -> Value:
|
|
298
|
-
"""Load bytes object from a string literal.
|
|
299
|
-
|
|
300
|
-
The literal characters of BytesExpr (the characters inside b'')
|
|
301
|
-
are stored in BytesExpr.value, whose type is 'str' not 'bytes'.
|
|
302
|
-
Thus we perform a special conversion here.
|
|
303
|
-
"""
|
|
304
|
-
return self.builder.load_bytes(bytes_from_str(value))
|
|
305
|
-
|
|
306
|
-
def load_int(self, value: int) -> Value:
|
|
307
|
-
return self.builder.load_int(value)
|
|
308
|
-
|
|
309
|
-
def load_float(self, value: float) -> Value:
|
|
310
|
-
return self.builder.load_float(value)
|
|
311
|
-
|
|
312
|
-
def unary_op(self, lreg: Value, expr_op: str, line: int) -> Value:
|
|
313
|
-
return self.builder.unary_op(lreg, expr_op, line)
|
|
314
|
-
|
|
315
|
-
def binary_op(self, lreg: Value, rreg: Value, expr_op: str, line: int) -> Value:
|
|
316
|
-
return self.builder.binary_op(lreg, rreg, expr_op, line)
|
|
317
|
-
|
|
318
|
-
def coerce(self, src: Value, target_type: RType, line: int, force: bool = False) -> Value:
|
|
319
|
-
return self.builder.coerce(src, target_type, line, force, can_borrow=self.can_borrow)
|
|
320
|
-
|
|
321
|
-
def none_object(self) -> Value:
|
|
322
|
-
return self.builder.none_object()
|
|
323
|
-
|
|
324
|
-
def none(self) -> Value:
|
|
325
|
-
return self.builder.none()
|
|
326
|
-
|
|
327
|
-
def true(self) -> Value:
|
|
328
|
-
return self.builder.true()
|
|
329
|
-
|
|
330
|
-
def false(self) -> Value:
|
|
331
|
-
return self.builder.false()
|
|
332
|
-
|
|
333
|
-
def new_list_op(self, values: list[Value], line: int) -> Value:
|
|
334
|
-
return self.builder.new_list_op(values, line)
|
|
335
|
-
|
|
336
|
-
def new_set_op(self, values: list[Value], line: int) -> Value:
|
|
337
|
-
return self.builder.new_set_op(values, line)
|
|
338
|
-
|
|
339
|
-
def translate_is_op(self, lreg: Value, rreg: Value, expr_op: str, line: int) -> Value:
|
|
340
|
-
return self.builder.translate_is_op(lreg, rreg, expr_op, line)
|
|
341
|
-
|
|
342
|
-
def py_call(
|
|
343
|
-
self,
|
|
344
|
-
function: Value,
|
|
345
|
-
arg_values: list[Value],
|
|
346
|
-
line: int,
|
|
347
|
-
arg_kinds: list[ArgKind] | None = None,
|
|
348
|
-
arg_names: Sequence[str | None] | None = None,
|
|
349
|
-
) -> Value:
|
|
350
|
-
return self.builder.py_call(function, arg_values, line, arg_kinds, arg_names)
|
|
351
|
-
|
|
352
|
-
def add_bool_branch(self, value: Value, true: BasicBlock, false: BasicBlock) -> None:
|
|
353
|
-
self.builder.add_bool_branch(value, true, false)
|
|
354
|
-
|
|
355
|
-
def load_native_type_object(self, fullname: str) -> Value:
|
|
356
|
-
return self.builder.load_native_type_object(fullname)
|
|
357
|
-
|
|
358
|
-
def gen_method_call(
|
|
359
|
-
self,
|
|
360
|
-
base: Value,
|
|
361
|
-
name: str,
|
|
362
|
-
arg_values: list[Value],
|
|
363
|
-
result_type: RType | None,
|
|
364
|
-
line: int,
|
|
365
|
-
arg_kinds: list[ArgKind] | None = None,
|
|
366
|
-
arg_names: list[str | None] | None = None,
|
|
367
|
-
) -> Value:
|
|
368
|
-
return self.builder.gen_method_call(
|
|
369
|
-
base, name, arg_values, result_type, line, arg_kinds, arg_names, self.can_borrow
|
|
370
|
-
)
|
|
371
|
-
|
|
372
|
-
def load_module(self, name: str) -> Value:
|
|
373
|
-
return self.builder.load_module(name)
|
|
374
|
-
|
|
375
|
-
def call_c(self, desc: CFunctionDescription, args: list[Value], line: int) -> Value:
|
|
376
|
-
return self.builder.call_c(desc, args, line)
|
|
377
|
-
|
|
378
|
-
def int_op(self, type: RType, lhs: Value, rhs: Value, op: int, line: int) -> Value:
|
|
379
|
-
return self.builder.int_op(type, lhs, rhs, op, line)
|
|
380
|
-
|
|
381
|
-
def compare_tuples(self, lhs: Value, rhs: Value, op: str, line: int) -> Value:
|
|
382
|
-
return self.builder.compare_tuples(lhs, rhs, op, line)
|
|
383
|
-
|
|
384
|
-
def builtin_len(self, val: Value, line: int) -> Value:
|
|
385
|
-
return self.builder.builtin_len(val, line)
|
|
386
|
-
|
|
387
|
-
def new_tuple(self, items: list[Value], line: int) -> Value:
|
|
388
|
-
return self.builder.new_tuple(items, line)
|
|
389
|
-
|
|
390
|
-
# Helpers for IR building
|
|
391
|
-
|
|
392
|
-
def add_to_non_ext_dict(
|
|
393
|
-
self, non_ext: NonExtClassInfo, key: str, val: Value, line: int
|
|
394
|
-
) -> None:
|
|
395
|
-
# Add an attribute entry into the class dict of a non-extension class.
|
|
396
|
-
key_unicode = self.load_str(key)
|
|
397
|
-
self.call_c(dict_set_item_op, [non_ext.dict, key_unicode, val], line)
|
|
398
|
-
|
|
399
|
-
def gen_import(self, id: str, line: int) -> None:
|
|
400
|
-
self.imports[id] = None
|
|
401
|
-
|
|
402
|
-
needs_import, out = BasicBlock(), BasicBlock()
|
|
403
|
-
self.check_if_module_loaded(id, line, needs_import, out)
|
|
404
|
-
|
|
405
|
-
self.activate_block(needs_import)
|
|
406
|
-
value = self.call_c(import_op, [self.load_str(id)], line)
|
|
407
|
-
self.add(InitStatic(value, id, namespace=NAMESPACE_MODULE))
|
|
408
|
-
self.goto_and_activate(out)
|
|
409
|
-
|
|
410
|
-
def check_if_module_loaded(
|
|
411
|
-
self, id: str, line: int, needs_import: BasicBlock, out: BasicBlock
|
|
412
|
-
) -> None:
|
|
413
|
-
"""Generate code that checks if the module `id` has been loaded yet.
|
|
414
|
-
|
|
415
|
-
Arguments:
|
|
416
|
-
id: name of module to check if imported
|
|
417
|
-
line: line number that the import occurs on
|
|
418
|
-
needs_import: the BasicBlock that is run if the module has not been loaded yet
|
|
419
|
-
out: the BasicBlock that is run if the module has already been loaded"""
|
|
420
|
-
first_load = self.load_module(id)
|
|
421
|
-
comparison = self.translate_is_op(first_load, self.none_object(), "is not", line)
|
|
422
|
-
self.add_bool_branch(comparison, out, needs_import)
|
|
423
|
-
|
|
424
|
-
def get_module(self, module: str, line: int) -> Value:
|
|
425
|
-
# Python 3.7 has a nice 'PyImport_GetModule' function that we can't use :(
|
|
426
|
-
mod_dict = self.call_c(get_module_dict_op, [], line)
|
|
427
|
-
# Get module object from modules dict.
|
|
428
|
-
return self.call_c(dict_get_item_op, [mod_dict, self.load_str(module)], line)
|
|
429
|
-
|
|
430
|
-
def get_module_attr(self, module: str, attr: str, line: int) -> Value:
|
|
431
|
-
"""Look up an attribute of a module without storing it in the local namespace.
|
|
432
|
-
|
|
433
|
-
For example, get_module_attr('typing', 'TypedDict', line) results in
|
|
434
|
-
the value of 'typing.TypedDict'.
|
|
435
|
-
|
|
436
|
-
Import the module if needed.
|
|
437
|
-
"""
|
|
438
|
-
self.gen_import(module, line)
|
|
439
|
-
module_obj = self.get_module(module, line)
|
|
440
|
-
return self.py_get_attr(module_obj, attr, line)
|
|
441
|
-
|
|
442
|
-
def assign_if_null(self, target: Register, get_val: Callable[[], Value], line: int) -> None:
|
|
443
|
-
"""If target is NULL, assign value produced by get_val to it."""
|
|
444
|
-
error_block, body_block = BasicBlock(), BasicBlock()
|
|
445
|
-
self.add(Branch(target, error_block, body_block, Branch.IS_ERROR))
|
|
446
|
-
self.activate_block(error_block)
|
|
447
|
-
self.add(Assign(target, self.coerce(get_val(), target.type, line)))
|
|
448
|
-
self.goto(body_block)
|
|
449
|
-
self.activate_block(body_block)
|
|
450
|
-
|
|
451
|
-
def assign_if_bitmap_unset(
|
|
452
|
-
self, target: Register, get_val: Callable[[], Value], index: int, line: int
|
|
453
|
-
) -> None:
|
|
454
|
-
error_block, body_block = BasicBlock(), BasicBlock()
|
|
455
|
-
o = self.int_op(
|
|
456
|
-
bitmap_rprimitive,
|
|
457
|
-
self.builder.args[-1 - index // BITMAP_BITS],
|
|
458
|
-
Integer(1 << (index & (BITMAP_BITS - 1)), bitmap_rprimitive),
|
|
459
|
-
IntOp.AND,
|
|
460
|
-
line,
|
|
461
|
-
)
|
|
462
|
-
b = self.add(ComparisonOp(o, Integer(0, bitmap_rprimitive), ComparisonOp.EQ))
|
|
463
|
-
self.add(Branch(b, error_block, body_block, Branch.BOOL))
|
|
464
|
-
self.activate_block(error_block)
|
|
465
|
-
self.add(Assign(target, self.coerce(get_val(), target.type, line)))
|
|
466
|
-
self.goto(body_block)
|
|
467
|
-
self.activate_block(body_block)
|
|
468
|
-
|
|
469
|
-
def maybe_add_implicit_return(self) -> None:
|
|
470
|
-
if is_none_rprimitive(self.ret_types[-1]) or is_object_rprimitive(self.ret_types[-1]):
|
|
471
|
-
self.add_implicit_return()
|
|
472
|
-
else:
|
|
473
|
-
self.add_implicit_unreachable()
|
|
474
|
-
|
|
475
|
-
def add_implicit_return(self) -> None:
|
|
476
|
-
block = self.builder.blocks[-1]
|
|
477
|
-
if not block.terminated:
|
|
478
|
-
retval = self.coerce(self.builder.none(), self.ret_types[-1], -1)
|
|
479
|
-
self.nonlocal_control[-1].gen_return(self, retval, self.fn_info.fitem.line)
|
|
480
|
-
|
|
481
|
-
def add_implicit_unreachable(self) -> None:
|
|
482
|
-
block = self.builder.blocks[-1]
|
|
483
|
-
if not block.terminated:
|
|
484
|
-
self.add(Unreachable())
|
|
485
|
-
|
|
486
|
-
def disallow_class_assignments(self, lvalues: list[Lvalue], line: int) -> None:
|
|
487
|
-
# Some best-effort attempts to disallow assigning to class
|
|
488
|
-
# variables that aren't marked ClassVar, since we blatantly
|
|
489
|
-
# miscompile the interaction between instance and class
|
|
490
|
-
# variables.
|
|
491
|
-
for lvalue in lvalues:
|
|
492
|
-
if (
|
|
493
|
-
isinstance(lvalue, MemberExpr)
|
|
494
|
-
and isinstance(lvalue.expr, RefExpr)
|
|
495
|
-
and isinstance(lvalue.expr.node, TypeInfo)
|
|
496
|
-
):
|
|
497
|
-
var = lvalue.expr.node[lvalue.name].node
|
|
498
|
-
if isinstance(var, Var) and not var.is_classvar:
|
|
499
|
-
self.error("Only class variables defined as ClassVar can be assigned to", line)
|
|
500
|
-
|
|
501
|
-
def non_function_scope(self) -> bool:
|
|
502
|
-
# Currently the stack always has at least two items: dummy and top-level.
|
|
503
|
-
return len(self.fn_infos) <= 2
|
|
504
|
-
|
|
505
|
-
def top_level_fn_info(self) -> FuncInfo | None:
|
|
506
|
-
if self.non_function_scope():
|
|
507
|
-
return None
|
|
508
|
-
return self.fn_infos[2]
|
|
509
|
-
|
|
510
|
-
def init_final_static(
|
|
511
|
-
self,
|
|
512
|
-
lvalue: Lvalue,
|
|
513
|
-
rvalue_reg: Value,
|
|
514
|
-
class_name: str | None = None,
|
|
515
|
-
*,
|
|
516
|
-
type_override: RType | None = None,
|
|
517
|
-
) -> None:
|
|
518
|
-
assert isinstance(lvalue, NameExpr)
|
|
519
|
-
assert isinstance(lvalue.node, Var)
|
|
520
|
-
if lvalue.node.final_value is None:
|
|
521
|
-
if class_name is None:
|
|
522
|
-
name = lvalue.name
|
|
523
|
-
else:
|
|
524
|
-
name = f"{class_name}.{lvalue.name}"
|
|
525
|
-
assert name is not None, "Full name not set for variable"
|
|
526
|
-
coerced = self.coerce(rvalue_reg, type_override or self.node_type(lvalue), lvalue.line)
|
|
527
|
-
self.final_names.append((name, coerced.type))
|
|
528
|
-
self.add(InitStatic(coerced, name, self.module_name))
|
|
529
|
-
|
|
530
|
-
def load_final_static(
|
|
531
|
-
self, fullname: str, typ: RType, line: int, error_name: str | None = None
|
|
532
|
-
) -> Value:
|
|
533
|
-
split_name = split_target(self.graph, fullname)
|
|
534
|
-
assert split_name is not None
|
|
535
|
-
module, name = split_name
|
|
536
|
-
return self.builder.load_static_checked(
|
|
537
|
-
typ,
|
|
538
|
-
name,
|
|
539
|
-
module,
|
|
540
|
-
line=line,
|
|
541
|
-
error_msg=f'value for final name "{error_name}" was not set',
|
|
542
|
-
)
|
|
543
|
-
|
|
544
|
-
def load_literal_value(self, val: int | str | bytes | float | complex | bool) -> Value:
|
|
545
|
-
"""Load value of a final name, class-level attribute, or constant folded expression."""
|
|
546
|
-
if isinstance(val, bool):
|
|
547
|
-
if val:
|
|
548
|
-
return self.true()
|
|
549
|
-
else:
|
|
550
|
-
return self.false()
|
|
551
|
-
elif isinstance(val, int):
|
|
552
|
-
return self.builder.load_int(val)
|
|
553
|
-
elif isinstance(val, float):
|
|
554
|
-
return self.builder.load_float(val)
|
|
555
|
-
elif isinstance(val, str):
|
|
556
|
-
return self.builder.load_str(val)
|
|
557
|
-
elif isinstance(val, bytes):
|
|
558
|
-
return self.builder.load_bytes(val)
|
|
559
|
-
elif isinstance(val, complex):
|
|
560
|
-
return self.builder.load_complex(val)
|
|
561
|
-
else:
|
|
562
|
-
assert False, "Unsupported literal value"
|
|
563
|
-
|
|
564
|
-
def get_assignment_target(
|
|
565
|
-
self, lvalue: Lvalue, line: int = -1, *, for_read: bool = False
|
|
566
|
-
) -> AssignmentTarget:
|
|
567
|
-
if line == -1:
|
|
568
|
-
line = lvalue.line
|
|
569
|
-
if isinstance(lvalue, NameExpr):
|
|
570
|
-
# If we are visiting a decorator, then the SymbolNode we really want to be looking at
|
|
571
|
-
# is the function that is decorated, not the entire Decorator node itself.
|
|
572
|
-
symbol = lvalue.node
|
|
573
|
-
if isinstance(symbol, Decorator):
|
|
574
|
-
symbol = symbol.func
|
|
575
|
-
if symbol is None:
|
|
576
|
-
# New semantic analyzer doesn't create ad-hoc Vars for special forms.
|
|
577
|
-
assert lvalue.is_special_form
|
|
578
|
-
symbol = Var(lvalue.name)
|
|
579
|
-
if not for_read and isinstance(symbol, Var) and symbol.is_cls:
|
|
580
|
-
self.error("Cannot assign to the first argument of classmethod", line)
|
|
581
|
-
if lvalue.kind == LDEF:
|
|
582
|
-
if symbol not in self.symtables[-1]:
|
|
583
|
-
if isinstance(symbol, Var) and not isinstance(symbol.type, DeletedType):
|
|
584
|
-
reg_type = self.type_to_rtype(symbol.type)
|
|
585
|
-
else:
|
|
586
|
-
reg_type = self.node_type(lvalue)
|
|
587
|
-
# If the function is a generator function, then first define a new variable
|
|
588
|
-
# in the current function's environment class. Next, define a target that
|
|
589
|
-
# refers to the newly defined variable in that environment class. Add the
|
|
590
|
-
# target to the table containing class environment variables, as well as the
|
|
591
|
-
# current environment.
|
|
592
|
-
if self.fn_info.is_generator:
|
|
593
|
-
return self.add_var_to_env_class(
|
|
594
|
-
symbol, reg_type, self.fn_info.generator_class, reassign=False
|
|
595
|
-
)
|
|
596
|
-
|
|
597
|
-
# Otherwise define a new local variable.
|
|
598
|
-
return self.add_local_reg(symbol, reg_type)
|
|
599
|
-
else:
|
|
600
|
-
# Assign to a previously defined variable.
|
|
601
|
-
return self.lookup(symbol)
|
|
602
|
-
elif lvalue.kind == GDEF:
|
|
603
|
-
globals_dict = self.load_globals_dict()
|
|
604
|
-
name = self.load_str(lvalue.name)
|
|
605
|
-
return AssignmentTargetIndex(globals_dict, name)
|
|
606
|
-
else:
|
|
607
|
-
assert False, lvalue.kind
|
|
608
|
-
elif isinstance(lvalue, IndexExpr):
|
|
609
|
-
# Indexed assignment x[y] = e
|
|
610
|
-
base = self.accept(lvalue.base)
|
|
611
|
-
index = self.accept(lvalue.index)
|
|
612
|
-
return AssignmentTargetIndex(base, index)
|
|
613
|
-
elif isinstance(lvalue, MemberExpr):
|
|
614
|
-
# Attribute assignment x.y = e
|
|
615
|
-
can_borrow = self.is_native_attr_ref(lvalue)
|
|
616
|
-
obj = self.accept(lvalue.expr, can_borrow=can_borrow)
|
|
617
|
-
return AssignmentTargetAttr(obj, lvalue.name, can_borrow=can_borrow)
|
|
618
|
-
elif isinstance(lvalue, TupleExpr):
|
|
619
|
-
# Multiple assignment a, ..., b = e
|
|
620
|
-
star_idx: int | None = None
|
|
621
|
-
lvalues = []
|
|
622
|
-
for idx, item in enumerate(lvalue.items):
|
|
623
|
-
targ = self.get_assignment_target(item)
|
|
624
|
-
lvalues.append(targ)
|
|
625
|
-
if isinstance(item, StarExpr):
|
|
626
|
-
if star_idx is not None:
|
|
627
|
-
self.error("Two starred expressions in assignment", line)
|
|
628
|
-
star_idx = idx
|
|
629
|
-
|
|
630
|
-
return AssignmentTargetTuple(lvalues, star_idx)
|
|
631
|
-
|
|
632
|
-
elif isinstance(lvalue, StarExpr):
|
|
633
|
-
return self.get_assignment_target(lvalue.expr)
|
|
634
|
-
|
|
635
|
-
assert False, "Unsupported lvalue: %r" % lvalue
|
|
636
|
-
|
|
637
|
-
def read(
|
|
638
|
-
self, target: Value | AssignmentTarget, line: int = -1, can_borrow: bool = False
|
|
639
|
-
) -> Value:
|
|
640
|
-
if isinstance(target, Value):
|
|
641
|
-
return target
|
|
642
|
-
if isinstance(target, AssignmentTargetRegister):
|
|
643
|
-
return target.register
|
|
644
|
-
if isinstance(target, AssignmentTargetIndex):
|
|
645
|
-
reg = self.gen_method_call(
|
|
646
|
-
target.base, "__getitem__", [target.index], target.type, line
|
|
647
|
-
)
|
|
648
|
-
if reg is not None:
|
|
649
|
-
return reg
|
|
650
|
-
assert False, target.base.type
|
|
651
|
-
if isinstance(target, AssignmentTargetAttr):
|
|
652
|
-
if isinstance(target.obj.type, RInstance) and target.obj.type.class_ir.is_ext_class:
|
|
653
|
-
borrow = can_borrow and target.can_borrow
|
|
654
|
-
return self.add(GetAttr(target.obj, target.attr, line, borrow=borrow))
|
|
655
|
-
else:
|
|
656
|
-
return self.py_get_attr(target.obj, target.attr, line)
|
|
657
|
-
|
|
658
|
-
assert False, "Unsupported lvalue: %r" % target
|
|
659
|
-
|
|
660
|
-
def assign(self, target: Register | AssignmentTarget, rvalue_reg: Value, line: int) -> None:
|
|
661
|
-
if isinstance(target, Register):
|
|
662
|
-
self.add(Assign(target, self.coerce_rvalue(rvalue_reg, target.type, line)))
|
|
663
|
-
elif isinstance(target, AssignmentTargetRegister):
|
|
664
|
-
rvalue_reg = self.coerce_rvalue(rvalue_reg, target.type, line)
|
|
665
|
-
self.add(Assign(target.register, rvalue_reg))
|
|
666
|
-
elif isinstance(target, AssignmentTargetAttr):
|
|
667
|
-
if isinstance(target.obj_type, RInstance):
|
|
668
|
-
rvalue_reg = self.coerce_rvalue(rvalue_reg, target.type, line)
|
|
669
|
-
self.add(SetAttr(target.obj, target.attr, rvalue_reg, line))
|
|
670
|
-
else:
|
|
671
|
-
key = self.load_str(target.attr)
|
|
672
|
-
boxed_reg = self.builder.box(rvalue_reg)
|
|
673
|
-
self.call_c(py_setattr_op, [target.obj, key, boxed_reg], line)
|
|
674
|
-
elif isinstance(target, AssignmentTargetIndex):
|
|
675
|
-
target_reg2 = self.gen_method_call(
|
|
676
|
-
target.base, "__setitem__", [target.index, rvalue_reg], None, line
|
|
677
|
-
)
|
|
678
|
-
assert target_reg2 is not None, target.base.type
|
|
679
|
-
elif isinstance(target, AssignmentTargetTuple):
|
|
680
|
-
if isinstance(rvalue_reg.type, RTuple) and target.star_idx is None:
|
|
681
|
-
rtypes = rvalue_reg.type.types
|
|
682
|
-
assert len(rtypes) == len(target.items)
|
|
683
|
-
for i in range(len(rtypes)):
|
|
684
|
-
item_value = self.add(TupleGet(rvalue_reg, i, line))
|
|
685
|
-
self.assign(target.items[i], item_value, line)
|
|
686
|
-
elif (
|
|
687
|
-
is_list_rprimitive(rvalue_reg.type) or is_tuple_rprimitive(rvalue_reg.type)
|
|
688
|
-
) and target.star_idx is None:
|
|
689
|
-
self.process_sequence_assignment(target, rvalue_reg, line)
|
|
690
|
-
else:
|
|
691
|
-
self.process_iterator_tuple_assignment(target, rvalue_reg, line)
|
|
692
|
-
else:
|
|
693
|
-
assert False, "Unsupported assignment target"
|
|
694
|
-
|
|
695
|
-
def coerce_rvalue(self, rvalue: Value, rtype: RType, line: int) -> Value:
|
|
696
|
-
if is_float_rprimitive(rtype) and is_tagged(rvalue.type):
|
|
697
|
-
typename = rvalue.type.short_name()
|
|
698
|
-
if typename == "short_int":
|
|
699
|
-
typename = "int"
|
|
700
|
-
self.error(
|
|
701
|
-
"Incompatible value representations in assignment "
|
|
702
|
-
+ f'(expression has type "{typename}", variable has type "float")',
|
|
703
|
-
line,
|
|
704
|
-
)
|
|
705
|
-
return self.coerce(rvalue, rtype, line)
|
|
706
|
-
|
|
707
|
-
def process_sequence_assignment(
|
|
708
|
-
self, target: AssignmentTargetTuple, rvalue: Value, line: int
|
|
709
|
-
) -> None:
|
|
710
|
-
"""Process assignment like 'x, y = s', where s is a variable-length list or tuple."""
|
|
711
|
-
# Check the length of sequence.
|
|
712
|
-
expected_len = Integer(len(target.items), c_pyssize_t_rprimitive)
|
|
713
|
-
self.builder.call_c(check_unpack_count_op, [rvalue, expected_len], line)
|
|
714
|
-
|
|
715
|
-
# Read sequence items.
|
|
716
|
-
values = []
|
|
717
|
-
for i in range(len(target.items)):
|
|
718
|
-
item = target.items[i]
|
|
719
|
-
index = self.builder.load_int(i)
|
|
720
|
-
if is_list_rprimitive(rvalue.type):
|
|
721
|
-
item_value = self.call_c(list_get_item_unsafe_op, [rvalue, index], line)
|
|
722
|
-
else:
|
|
723
|
-
item_value = self.builder.gen_method_call(
|
|
724
|
-
rvalue, "__getitem__", [index], item.type, line
|
|
725
|
-
)
|
|
726
|
-
values.append(item_value)
|
|
727
|
-
|
|
728
|
-
# Assign sequence items to the target lvalues.
|
|
729
|
-
for lvalue, value in zip(target.items, values):
|
|
730
|
-
self.assign(lvalue, value, line)
|
|
731
|
-
|
|
732
|
-
def process_iterator_tuple_assignment_helper(
|
|
733
|
-
self, litem: AssignmentTarget, ritem: Value, line: int
|
|
734
|
-
) -> None:
|
|
735
|
-
error_block, ok_block = BasicBlock(), BasicBlock()
|
|
736
|
-
self.add(Branch(ritem, error_block, ok_block, Branch.IS_ERROR))
|
|
737
|
-
|
|
738
|
-
self.activate_block(error_block)
|
|
739
|
-
self.add(
|
|
740
|
-
RaiseStandardError(RaiseStandardError.VALUE_ERROR, "not enough values to unpack", line)
|
|
741
|
-
)
|
|
742
|
-
self.add(Unreachable())
|
|
743
|
-
|
|
744
|
-
self.activate_block(ok_block)
|
|
745
|
-
self.assign(litem, ritem, line)
|
|
746
|
-
|
|
747
|
-
def process_iterator_tuple_assignment(
|
|
748
|
-
self, target: AssignmentTargetTuple, rvalue_reg: Value, line: int
|
|
749
|
-
) -> None:
|
|
750
|
-
iterator = self.call_c(iter_op, [rvalue_reg], line)
|
|
751
|
-
|
|
752
|
-
# This may be the whole lvalue list if there is no starred value
|
|
753
|
-
split_idx = target.star_idx if target.star_idx is not None else len(target.items)
|
|
754
|
-
|
|
755
|
-
# Assign values before the first starred value
|
|
756
|
-
for litem in target.items[:split_idx]:
|
|
757
|
-
ritem = self.call_c(next_op, [iterator], line)
|
|
758
|
-
error_block, ok_block = BasicBlock(), BasicBlock()
|
|
759
|
-
self.add(Branch(ritem, error_block, ok_block, Branch.IS_ERROR))
|
|
760
|
-
|
|
761
|
-
self.activate_block(error_block)
|
|
762
|
-
self.add(
|
|
763
|
-
RaiseStandardError(
|
|
764
|
-
RaiseStandardError.VALUE_ERROR, "not enough values to unpack", line
|
|
765
|
-
)
|
|
766
|
-
)
|
|
767
|
-
self.add(Unreachable())
|
|
768
|
-
|
|
769
|
-
self.activate_block(ok_block)
|
|
770
|
-
|
|
771
|
-
self.assign(litem, ritem, line)
|
|
772
|
-
|
|
773
|
-
# Assign the starred value and all values after it
|
|
774
|
-
if target.star_idx is not None:
|
|
775
|
-
post_star_vals = target.items[split_idx + 1 :]
|
|
776
|
-
iter_list = self.call_c(to_list, [iterator], line)
|
|
777
|
-
iter_list_len = self.builtin_len(iter_list, line)
|
|
778
|
-
post_star_len = Integer(len(post_star_vals))
|
|
779
|
-
condition = self.binary_op(post_star_len, iter_list_len, "<=", line)
|
|
780
|
-
|
|
781
|
-
error_block, ok_block = BasicBlock(), BasicBlock()
|
|
782
|
-
self.add(Branch(condition, ok_block, error_block, Branch.BOOL))
|
|
783
|
-
|
|
784
|
-
self.activate_block(error_block)
|
|
785
|
-
self.add(
|
|
786
|
-
RaiseStandardError(
|
|
787
|
-
RaiseStandardError.VALUE_ERROR, "not enough values to unpack", line
|
|
788
|
-
)
|
|
789
|
-
)
|
|
790
|
-
self.add(Unreachable())
|
|
791
|
-
|
|
792
|
-
self.activate_block(ok_block)
|
|
793
|
-
|
|
794
|
-
for litem in reversed(post_star_vals):
|
|
795
|
-
ritem = self.call_c(list_pop_last, [iter_list], line)
|
|
796
|
-
self.assign(litem, ritem, line)
|
|
797
|
-
|
|
798
|
-
# Assign the starred value
|
|
799
|
-
self.assign(target.items[target.star_idx], iter_list, line)
|
|
800
|
-
|
|
801
|
-
# There is no starred value, so check if there are extra values in rhs that
|
|
802
|
-
# have not been assigned.
|
|
803
|
-
else:
|
|
804
|
-
extra = self.call_c(next_op, [iterator], line)
|
|
805
|
-
error_block, ok_block = BasicBlock(), BasicBlock()
|
|
806
|
-
self.add(Branch(extra, ok_block, error_block, Branch.IS_ERROR))
|
|
807
|
-
|
|
808
|
-
self.activate_block(error_block)
|
|
809
|
-
self.add(
|
|
810
|
-
RaiseStandardError(
|
|
811
|
-
RaiseStandardError.VALUE_ERROR, "too many values to unpack", line
|
|
812
|
-
)
|
|
813
|
-
)
|
|
814
|
-
self.add(Unreachable())
|
|
815
|
-
|
|
816
|
-
self.activate_block(ok_block)
|
|
817
|
-
|
|
818
|
-
def push_loop_stack(self, continue_block: BasicBlock, break_block: BasicBlock) -> None:
|
|
819
|
-
self.nonlocal_control.append(
|
|
820
|
-
LoopNonlocalControl(self.nonlocal_control[-1], continue_block, break_block)
|
|
821
|
-
)
|
|
822
|
-
|
|
823
|
-
def pop_loop_stack(self) -> None:
|
|
824
|
-
self.nonlocal_control.pop()
|
|
825
|
-
|
|
826
|
-
def make_spill_target(self, type: RType) -> AssignmentTarget:
|
|
827
|
-
"""Moves a given Value instance into the generator class' environment class."""
|
|
828
|
-
name = f"{TEMP_ATTR_NAME}{self.temp_counter}"
|
|
829
|
-
self.temp_counter += 1
|
|
830
|
-
target = self.add_var_to_env_class(Var(name), type, self.fn_info.generator_class)
|
|
831
|
-
return target
|
|
832
|
-
|
|
833
|
-
def spill(self, value: Value) -> AssignmentTarget:
|
|
834
|
-
"""Moves a given Value instance into the generator class' environment class."""
|
|
835
|
-
target = self.make_spill_target(value.type)
|
|
836
|
-
# Shouldn't be able to fail, so -1 for line
|
|
837
|
-
self.assign(target, value, -1)
|
|
838
|
-
return target
|
|
839
|
-
|
|
840
|
-
def maybe_spill(self, value: Value) -> Value | AssignmentTarget:
|
|
841
|
-
"""
|
|
842
|
-
Moves a given Value instance into the environment class for generator functions. For
|
|
843
|
-
non-generator functions, leaves the Value instance as it is.
|
|
844
|
-
|
|
845
|
-
Returns an AssignmentTarget associated with the Value for generator functions and the
|
|
846
|
-
original Value itself for non-generator functions.
|
|
847
|
-
"""
|
|
848
|
-
if self.fn_info.is_generator:
|
|
849
|
-
return self.spill(value)
|
|
850
|
-
return value
|
|
851
|
-
|
|
852
|
-
def maybe_spill_assignable(self, value: Value) -> Register | AssignmentTarget:
|
|
853
|
-
"""
|
|
854
|
-
Moves a given Value instance into the environment class for generator functions. For
|
|
855
|
-
non-generator functions, allocate a temporary Register.
|
|
856
|
-
|
|
857
|
-
Returns an AssignmentTarget associated with the Value for generator functions and an
|
|
858
|
-
assignable Register for non-generator functions.
|
|
859
|
-
"""
|
|
860
|
-
if self.fn_info.is_generator:
|
|
861
|
-
return self.spill(value)
|
|
862
|
-
|
|
863
|
-
if isinstance(value, Register):
|
|
864
|
-
return value
|
|
865
|
-
|
|
866
|
-
# Allocate a temporary register for the assignable value.
|
|
867
|
-
reg = Register(value.type)
|
|
868
|
-
self.assign(reg, value, -1)
|
|
869
|
-
return reg
|
|
870
|
-
|
|
871
|
-
def extract_int(self, e: Expression) -> int | None:
|
|
872
|
-
if isinstance(e, IntExpr):
|
|
873
|
-
return e.value
|
|
874
|
-
elif isinstance(e, UnaryExpr) and e.op == "-" and isinstance(e.expr, IntExpr):
|
|
875
|
-
return -e.expr.value
|
|
876
|
-
else:
|
|
877
|
-
return None
|
|
878
|
-
|
|
879
|
-
def get_sequence_type(self, expr: Expression) -> RType:
|
|
880
|
-
return self.get_sequence_type_from_type(self.types[expr])
|
|
881
|
-
|
|
882
|
-
def get_sequence_type_from_type(self, target_type: Type) -> RType:
|
|
883
|
-
target_type = get_proper_type(target_type)
|
|
884
|
-
if isinstance(target_type, UnionType):
|
|
885
|
-
return RUnion.make_simplified_union(
|
|
886
|
-
[self.get_sequence_type_from_type(item) for item in target_type.items]
|
|
887
|
-
)
|
|
888
|
-
assert isinstance(target_type, Instance), target_type
|
|
889
|
-
if target_type.type.fullname == "builtins.str":
|
|
890
|
-
return str_rprimitive
|
|
891
|
-
else:
|
|
892
|
-
return self.type_to_rtype(target_type.args[0])
|
|
893
|
-
|
|
894
|
-
def get_dict_base_type(self, expr: Expression) -> list[Instance]:
|
|
895
|
-
"""Find dict type of a dict-like expression.
|
|
896
|
-
|
|
897
|
-
This is useful for dict subclasses like SymbolTable.
|
|
898
|
-
"""
|
|
899
|
-
target_type = get_proper_type(self.types[expr])
|
|
900
|
-
if isinstance(target_type, UnionType):
|
|
901
|
-
types = [get_proper_type(item) for item in target_type.items]
|
|
902
|
-
else:
|
|
903
|
-
types = [target_type]
|
|
904
|
-
|
|
905
|
-
dict_types = []
|
|
906
|
-
for t in types:
|
|
907
|
-
if isinstance(t, TypedDictType):
|
|
908
|
-
t = t.fallback
|
|
909
|
-
dict_base = next(base for base in t.type.mro if base.fullname == "typing.Mapping")
|
|
910
|
-
else:
|
|
911
|
-
assert isinstance(t, Instance), t
|
|
912
|
-
dict_base = next(base for base in t.type.mro if base.fullname == "builtins.dict")
|
|
913
|
-
dict_types.append(map_instance_to_supertype(t, dict_base))
|
|
914
|
-
return dict_types
|
|
915
|
-
|
|
916
|
-
def get_dict_key_type(self, expr: Expression) -> RType:
|
|
917
|
-
dict_base_types = self.get_dict_base_type(expr)
|
|
918
|
-
if len(dict_base_types) == 1:
|
|
919
|
-
return self.type_to_rtype(dict_base_types[0].args[0])
|
|
920
|
-
else:
|
|
921
|
-
rtypes = [self.type_to_rtype(t.args[0]) for t in dict_base_types]
|
|
922
|
-
return RUnion.make_simplified_union(rtypes)
|
|
923
|
-
|
|
924
|
-
def get_dict_value_type(self, expr: Expression) -> RType:
|
|
925
|
-
dict_base_types = self.get_dict_base_type(expr)
|
|
926
|
-
if len(dict_base_types) == 1:
|
|
927
|
-
return self.type_to_rtype(dict_base_types[0].args[1])
|
|
928
|
-
else:
|
|
929
|
-
rtypes = [self.type_to_rtype(t.args[1]) for t in dict_base_types]
|
|
930
|
-
return RUnion.make_simplified_union(rtypes)
|
|
931
|
-
|
|
932
|
-
def get_dict_item_type(self, expr: Expression) -> RType:
|
|
933
|
-
key_type = self.get_dict_key_type(expr)
|
|
934
|
-
value_type = self.get_dict_value_type(expr)
|
|
935
|
-
return RTuple([key_type, value_type])
|
|
936
|
-
|
|
937
|
-
def _analyze_iterable_item_type(self, expr: Expression) -> Type:
|
|
938
|
-
"""Return the item type given by 'expr' in an iterable context."""
|
|
939
|
-
# This logic is copied from mypy's TypeChecker.analyze_iterable_item_type.
|
|
940
|
-
if expr not in self.types:
|
|
941
|
-
# Mypy thinks this is unreachable.
|
|
942
|
-
iterable: ProperType = AnyType(TypeOfAny.from_error)
|
|
943
|
-
else:
|
|
944
|
-
iterable = get_proper_type(self.types[expr])
|
|
945
|
-
echk = self.graph[self.module_name].type_checker().expr_checker
|
|
946
|
-
iterator = echk.check_method_call_by_name("__iter__", iterable, [], [], expr)[0]
|
|
947
|
-
|
|
948
|
-
from mypy.join import join_types
|
|
949
|
-
|
|
950
|
-
if isinstance(iterable, TupleType):
|
|
951
|
-
joined: Type = UninhabitedType()
|
|
952
|
-
for item in iterable.items:
|
|
953
|
-
joined = join_types(joined, item)
|
|
954
|
-
return joined
|
|
955
|
-
else:
|
|
956
|
-
# Non-tuple iterable.
|
|
957
|
-
return echk.check_method_call_by_name("__next__", iterator, [], [], expr)[0]
|
|
958
|
-
|
|
959
|
-
def is_native_module(self, module: str) -> bool:
|
|
960
|
-
"""Is the given module one compiled by mypyc?"""
|
|
961
|
-
return module in self.mapper.group_map
|
|
962
|
-
|
|
963
|
-
def is_native_ref_expr(self, expr: RefExpr) -> bool:
|
|
964
|
-
if expr.node is None:
|
|
965
|
-
return False
|
|
966
|
-
if "." in expr.node.fullname:
|
|
967
|
-
return self.is_native_module(expr.node.fullname.rpartition(".")[0])
|
|
968
|
-
return True
|
|
969
|
-
|
|
970
|
-
def is_native_module_ref_expr(self, expr: RefExpr) -> bool:
|
|
971
|
-
return self.is_native_ref_expr(expr) and expr.kind == GDEF
|
|
972
|
-
|
|
973
|
-
def is_synthetic_type(self, typ: TypeInfo) -> bool:
|
|
974
|
-
"""Is a type something other than just a class we've created?"""
|
|
975
|
-
return typ.is_named_tuple or typ.is_newtype or typ.typeddict_type is not None
|
|
976
|
-
|
|
977
|
-
def get_final_ref(self, expr: MemberExpr) -> tuple[str, Var, bool] | None:
|
|
978
|
-
"""Check if `expr` is a final attribute.
|
|
979
|
-
|
|
980
|
-
This needs to be done differently for class and module attributes to
|
|
981
|
-
correctly determine fully qualified name. Return a tuple that consists of
|
|
982
|
-
the qualified name, the corresponding Var node, and a flag indicating whether
|
|
983
|
-
the final name was defined in a compiled module. Return None if `expr` does not
|
|
984
|
-
refer to a final attribute.
|
|
985
|
-
"""
|
|
986
|
-
final_var = None
|
|
987
|
-
if isinstance(expr.expr, RefExpr) and isinstance(expr.expr.node, TypeInfo):
|
|
988
|
-
# a class attribute
|
|
989
|
-
sym = expr.expr.node.get(expr.name)
|
|
990
|
-
if sym and isinstance(sym.node, Var):
|
|
991
|
-
# Enum attribute are treated as final since they are added to the global cache
|
|
992
|
-
expr_fullname = expr.expr.node.bases[0].type.fullname
|
|
993
|
-
is_final = sym.node.is_final or expr_fullname == "enum.Enum"
|
|
994
|
-
if is_final:
|
|
995
|
-
final_var = sym.node
|
|
996
|
-
fullname = f"{sym.node.info.fullname}.{final_var.name}"
|
|
997
|
-
native = self.is_native_module(expr.expr.node.module_name)
|
|
998
|
-
elif self.is_module_member_expr(expr):
|
|
999
|
-
# a module attribute
|
|
1000
|
-
if isinstance(expr.node, Var) and expr.node.is_final:
|
|
1001
|
-
final_var = expr.node
|
|
1002
|
-
fullname = expr.node.fullname
|
|
1003
|
-
native = self.is_native_ref_expr(expr)
|
|
1004
|
-
if final_var is not None:
|
|
1005
|
-
return fullname, final_var, native
|
|
1006
|
-
return None
|
|
1007
|
-
|
|
1008
|
-
def emit_load_final(
|
|
1009
|
-
self, final_var: Var, fullname: str, name: str, native: bool, typ: Type, line: int
|
|
1010
|
-
) -> Value | None:
|
|
1011
|
-
"""Emit code for loading value of a final name (if possible).
|
|
1012
|
-
|
|
1013
|
-
Args:
|
|
1014
|
-
final_var: Var corresponding to the final name
|
|
1015
|
-
fullname: its qualified name
|
|
1016
|
-
name: shorter name to show in errors
|
|
1017
|
-
native: whether the name was defined in a compiled module
|
|
1018
|
-
typ: its type
|
|
1019
|
-
line: line number where loading occurs
|
|
1020
|
-
"""
|
|
1021
|
-
if final_var.final_value is not None: # this is safe even for non-native names
|
|
1022
|
-
return self.load_literal_value(final_var.final_value)
|
|
1023
|
-
elif native and module_prefix(self.graph, fullname):
|
|
1024
|
-
return self.load_final_static(fullname, self.mapper.type_to_rtype(typ), line, name)
|
|
1025
|
-
else:
|
|
1026
|
-
return None
|
|
1027
|
-
|
|
1028
|
-
def is_module_member_expr(self, expr: MemberExpr) -> bool:
|
|
1029
|
-
return isinstance(expr.expr, RefExpr) and isinstance(expr.expr.node, MypyFile)
|
|
1030
|
-
|
|
1031
|
-
def call_refexpr_with_args(
|
|
1032
|
-
self, expr: CallExpr, callee: RefExpr, arg_values: list[Value]
|
|
1033
|
-
) -> Value:
|
|
1034
|
-
# Handle data-driven special-cased primitive call ops.
|
|
1035
|
-
if callee.fullname and expr.arg_kinds == [ARG_POS] * len(arg_values):
|
|
1036
|
-
fullname = get_call_target_fullname(callee)
|
|
1037
|
-
call_c_ops_candidates = function_ops.get(fullname, [])
|
|
1038
|
-
target = self.builder.matching_call_c(
|
|
1039
|
-
call_c_ops_candidates, arg_values, expr.line, self.node_type(expr)
|
|
1040
|
-
)
|
|
1041
|
-
if target:
|
|
1042
|
-
return target
|
|
1043
|
-
|
|
1044
|
-
# Standard native call if signature and fullname are good and all arguments are positional
|
|
1045
|
-
# or named.
|
|
1046
|
-
callee_node = callee.node
|
|
1047
|
-
if isinstance(callee_node, OverloadedFuncDef):
|
|
1048
|
-
callee_node = callee_node.impl
|
|
1049
|
-
# TODO: use native calls for any decorated functions which have all their decorators
|
|
1050
|
-
# removed, not just singledispatch functions (which we don't do now just in case those
|
|
1051
|
-
# decorated functions are callable classes or cannot be called without the python API for
|
|
1052
|
-
# some other reason)
|
|
1053
|
-
if (
|
|
1054
|
-
isinstance(callee_node, Decorator)
|
|
1055
|
-
and callee_node.func not in self.fdefs_to_decorators
|
|
1056
|
-
and callee_node.func in self.singledispatch_impls
|
|
1057
|
-
):
|
|
1058
|
-
callee_node = callee_node.func
|
|
1059
|
-
if (
|
|
1060
|
-
callee_node is not None
|
|
1061
|
-
and callee.fullname
|
|
1062
|
-
and callee_node in self.mapper.func_to_decl
|
|
1063
|
-
and all(kind in (ARG_POS, ARG_NAMED) for kind in expr.arg_kinds)
|
|
1064
|
-
):
|
|
1065
|
-
decl = self.mapper.func_to_decl[callee_node]
|
|
1066
|
-
return self.builder.call(decl, arg_values, expr.arg_kinds, expr.arg_names, expr.line)
|
|
1067
|
-
|
|
1068
|
-
# Fall back to a Python call
|
|
1069
|
-
function = self.accept(callee)
|
|
1070
|
-
return self.py_call(
|
|
1071
|
-
function, arg_values, expr.line, arg_kinds=expr.arg_kinds, arg_names=expr.arg_names
|
|
1072
|
-
)
|
|
1073
|
-
|
|
1074
|
-
def shortcircuit_expr(self, expr: OpExpr) -> Value:
|
|
1075
|
-
return self.builder.shortcircuit_helper(
|
|
1076
|
-
expr.op,
|
|
1077
|
-
self.node_type(expr),
|
|
1078
|
-
lambda: self.accept(expr.left),
|
|
1079
|
-
lambda: self.accept(expr.right),
|
|
1080
|
-
expr.line,
|
|
1081
|
-
)
|
|
1082
|
-
|
|
1083
|
-
# Basic helpers
|
|
1084
|
-
|
|
1085
|
-
def flatten_classes(self, arg: RefExpr | TupleExpr) -> list[ClassIR] | None:
|
|
1086
|
-
"""Flatten classes in isinstance(obj, (A, (B, C))).
|
|
1087
|
-
|
|
1088
|
-
If at least one item is not a reference to a native class, return None.
|
|
1089
|
-
"""
|
|
1090
|
-
if isinstance(arg, RefExpr):
|
|
1091
|
-
if isinstance(arg.node, TypeInfo) and self.is_native_module_ref_expr(arg):
|
|
1092
|
-
ir = self.mapper.type_to_ir.get(arg.node)
|
|
1093
|
-
if ir:
|
|
1094
|
-
return [ir]
|
|
1095
|
-
return None
|
|
1096
|
-
else:
|
|
1097
|
-
res: list[ClassIR] = []
|
|
1098
|
-
for item in arg.items:
|
|
1099
|
-
if isinstance(item, (RefExpr, TupleExpr)):
|
|
1100
|
-
item_part = self.flatten_classes(item)
|
|
1101
|
-
if item_part is None:
|
|
1102
|
-
return None
|
|
1103
|
-
res.extend(item_part)
|
|
1104
|
-
else:
|
|
1105
|
-
return None
|
|
1106
|
-
return res
|
|
1107
|
-
|
|
1108
|
-
def enter(self, fn_info: FuncInfo | str = "") -> None:
|
|
1109
|
-
if isinstance(fn_info, str):
|
|
1110
|
-
fn_info = FuncInfo(name=fn_info)
|
|
1111
|
-
self.builder = LowLevelIRBuilder(self.errors, self.options)
|
|
1112
|
-
self.builder.set_module(self.module_name, self.module_path)
|
|
1113
|
-
self.builders.append(self.builder)
|
|
1114
|
-
self.symtables.append({})
|
|
1115
|
-
self.runtime_args.append([])
|
|
1116
|
-
self.fn_info = fn_info
|
|
1117
|
-
self.fn_infos.append(self.fn_info)
|
|
1118
|
-
self.ret_types.append(none_rprimitive)
|
|
1119
|
-
if fn_info.is_generator:
|
|
1120
|
-
self.nonlocal_control.append(GeneratorNonlocalControl())
|
|
1121
|
-
else:
|
|
1122
|
-
self.nonlocal_control.append(BaseNonlocalControl())
|
|
1123
|
-
self.activate_block(BasicBlock())
|
|
1124
|
-
|
|
1125
|
-
def leave(self) -> tuple[list[Register], list[RuntimeArg], list[BasicBlock], RType, FuncInfo]:
|
|
1126
|
-
builder = self.builders.pop()
|
|
1127
|
-
self.symtables.pop()
|
|
1128
|
-
runtime_args = self.runtime_args.pop()
|
|
1129
|
-
ret_type = self.ret_types.pop()
|
|
1130
|
-
fn_info = self.fn_infos.pop()
|
|
1131
|
-
self.nonlocal_control.pop()
|
|
1132
|
-
self.builder = self.builders[-1]
|
|
1133
|
-
self.fn_info = self.fn_infos[-1]
|
|
1134
|
-
return builder.args, runtime_args, builder.blocks, ret_type, fn_info
|
|
1135
|
-
|
|
1136
|
-
@contextmanager
|
|
1137
|
-
def enter_method(
|
|
1138
|
-
self,
|
|
1139
|
-
class_ir: ClassIR,
|
|
1140
|
-
name: str,
|
|
1141
|
-
ret_type: RType,
|
|
1142
|
-
fn_info: FuncInfo | str = "",
|
|
1143
|
-
self_type: RType | None = None,
|
|
1144
|
-
) -> Iterator[None]:
|
|
1145
|
-
"""Generate IR for a method.
|
|
1146
|
-
|
|
1147
|
-
If the method takes arguments, you should immediately afterwards call
|
|
1148
|
-
add_argument() for each non-self argument (self is created implicitly).
|
|
1149
|
-
|
|
1150
|
-
Args:
|
|
1151
|
-
class_ir: Add method to this class
|
|
1152
|
-
name: Short name of the method
|
|
1153
|
-
ret_type: Return type of the method
|
|
1154
|
-
fn_info: Optionally, additional information about the method
|
|
1155
|
-
self_type: If not None, override default type of the implicit 'self'
|
|
1156
|
-
argument (by default, derive type from class_ir)
|
|
1157
|
-
"""
|
|
1158
|
-
self.enter(fn_info)
|
|
1159
|
-
self.function_name_stack.append(name)
|
|
1160
|
-
self.class_ir_stack.append(class_ir)
|
|
1161
|
-
self.ret_types[-1] = ret_type
|
|
1162
|
-
if self_type is None:
|
|
1163
|
-
self_type = RInstance(class_ir)
|
|
1164
|
-
self.add_argument(SELF_NAME, self_type)
|
|
1165
|
-
try:
|
|
1166
|
-
yield
|
|
1167
|
-
finally:
|
|
1168
|
-
arg_regs, args, blocks, ret_type, fn_info = self.leave()
|
|
1169
|
-
sig = FuncSignature(args, ret_type)
|
|
1170
|
-
name = self.function_name_stack.pop()
|
|
1171
|
-
class_ir = self.class_ir_stack.pop()
|
|
1172
|
-
decl = FuncDecl(name, class_ir.name, self.module_name, sig)
|
|
1173
|
-
ir = FuncIR(decl, arg_regs, blocks)
|
|
1174
|
-
class_ir.methods[name] = ir
|
|
1175
|
-
class_ir.method_decls[name] = ir.decl
|
|
1176
|
-
self.functions.append(ir)
|
|
1177
|
-
|
|
1178
|
-
def add_argument(self, var: str | Var, typ: RType, kind: ArgKind = ARG_POS) -> Register:
|
|
1179
|
-
"""Declare an argument in the current function.
|
|
1180
|
-
|
|
1181
|
-
You should use this instead of directly calling add_local() in new code.
|
|
1182
|
-
"""
|
|
1183
|
-
if isinstance(var, str):
|
|
1184
|
-
var = Var(var)
|
|
1185
|
-
reg = self.add_local(var, typ, is_arg=True)
|
|
1186
|
-
self.runtime_args[-1].append(RuntimeArg(var.name, typ, kind))
|
|
1187
|
-
return reg
|
|
1188
|
-
|
|
1189
|
-
def lookup(self, symbol: SymbolNode) -> SymbolTarget:
|
|
1190
|
-
return self.symtables[-1][symbol]
|
|
1191
|
-
|
|
1192
|
-
def add_local(self, symbol: SymbolNode, typ: RType, is_arg: bool = False) -> Register:
|
|
1193
|
-
"""Add register that represents a symbol to the symbol table.
|
|
1194
|
-
|
|
1195
|
-
Args:
|
|
1196
|
-
is_arg: is this a function argument
|
|
1197
|
-
"""
|
|
1198
|
-
assert isinstance(symbol, SymbolNode)
|
|
1199
|
-
reg = Register(
|
|
1200
|
-
typ, remangle_redefinition_name(symbol.name), is_arg=is_arg, line=symbol.line
|
|
1201
|
-
)
|
|
1202
|
-
self.symtables[-1][symbol] = AssignmentTargetRegister(reg)
|
|
1203
|
-
if is_arg:
|
|
1204
|
-
self.builder.args.append(reg)
|
|
1205
|
-
return reg
|
|
1206
|
-
|
|
1207
|
-
def add_local_reg(
|
|
1208
|
-
self, symbol: SymbolNode, typ: RType, is_arg: bool = False
|
|
1209
|
-
) -> AssignmentTargetRegister:
|
|
1210
|
-
"""Like add_local, but return an assignment target instead of value."""
|
|
1211
|
-
self.add_local(symbol, typ, is_arg)
|
|
1212
|
-
target = self.symtables[-1][symbol]
|
|
1213
|
-
assert isinstance(target, AssignmentTargetRegister)
|
|
1214
|
-
return target
|
|
1215
|
-
|
|
1216
|
-
def add_self_to_env(self, cls: ClassIR) -> AssignmentTargetRegister:
|
|
1217
|
-
"""Low-level function that adds a 'self' argument.
|
|
1218
|
-
|
|
1219
|
-
This is only useful if using enter() instead of enter_method().
|
|
1220
|
-
"""
|
|
1221
|
-
return self.add_local_reg(Var(SELF_NAME), RInstance(cls), is_arg=True)
|
|
1222
|
-
|
|
1223
|
-
def add_target(self, symbol: SymbolNode, target: SymbolTarget) -> SymbolTarget:
|
|
1224
|
-
self.symtables[-1][symbol] = target
|
|
1225
|
-
return target
|
|
1226
|
-
|
|
1227
|
-
def type_to_rtype(self, typ: Type | None) -> RType:
|
|
1228
|
-
return self.mapper.type_to_rtype(typ)
|
|
1229
|
-
|
|
1230
|
-
def node_type(self, node: Expression) -> RType:
|
|
1231
|
-
if isinstance(node, IntExpr):
|
|
1232
|
-
# TODO: Don't special case IntExpr
|
|
1233
|
-
return int_rprimitive
|
|
1234
|
-
if node not in self.types:
|
|
1235
|
-
return object_rprimitive
|
|
1236
|
-
mypy_type = self.types[node]
|
|
1237
|
-
return self.type_to_rtype(mypy_type)
|
|
1238
|
-
|
|
1239
|
-
def add_var_to_env_class(
|
|
1240
|
-
self, var: SymbolNode, rtype: RType, base: FuncInfo | ImplicitClass, reassign: bool = False
|
|
1241
|
-
) -> AssignmentTarget:
|
|
1242
|
-
# First, define the variable name as an attribute of the environment class, and then
|
|
1243
|
-
# construct a target for that attribute.
|
|
1244
|
-
name = remangle_redefinition_name(var.name)
|
|
1245
|
-
self.fn_info.env_class.attributes[name] = rtype
|
|
1246
|
-
attr_target = AssignmentTargetAttr(base.curr_env_reg, name)
|
|
1247
|
-
|
|
1248
|
-
if reassign:
|
|
1249
|
-
# Read the local definition of the variable, and set the corresponding attribute of
|
|
1250
|
-
# the environment class' variable to be that value.
|
|
1251
|
-
reg = self.read(self.lookup(var), self.fn_info.fitem.line)
|
|
1252
|
-
self.add(SetAttr(base.curr_env_reg, name, reg, self.fn_info.fitem.line))
|
|
1253
|
-
|
|
1254
|
-
# Override the local definition of the variable to instead point at the variable in
|
|
1255
|
-
# the environment class.
|
|
1256
|
-
return self.add_target(var, attr_target)
|
|
1257
|
-
|
|
1258
|
-
def is_builtin_ref_expr(self, expr: RefExpr) -> bool:
|
|
1259
|
-
assert expr.node, "RefExpr not resolved"
|
|
1260
|
-
return "." in expr.node.fullname and expr.node.fullname.split(".")[0] == "builtins"
|
|
1261
|
-
|
|
1262
|
-
def load_global(self, expr: NameExpr) -> Value:
|
|
1263
|
-
"""Loads a Python-level global.
|
|
1264
|
-
|
|
1265
|
-
This takes a NameExpr and uses its name as a key to retrieve the corresponding PyObject *
|
|
1266
|
-
from the _globals dictionary in the C-generated code.
|
|
1267
|
-
"""
|
|
1268
|
-
# If the global is from 'builtins', turn it into a module attr load instead
|
|
1269
|
-
if self.is_builtin_ref_expr(expr):
|
|
1270
|
-
assert expr.node, "RefExpr not resolved"
|
|
1271
|
-
return self.load_module_attr_by_fullname(expr.node.fullname, expr.line)
|
|
1272
|
-
if (
|
|
1273
|
-
self.is_native_module_ref_expr(expr)
|
|
1274
|
-
and isinstance(expr.node, TypeInfo)
|
|
1275
|
-
and not self.is_synthetic_type(expr.node)
|
|
1276
|
-
):
|
|
1277
|
-
assert expr.fullname
|
|
1278
|
-
return self.load_native_type_object(expr.fullname)
|
|
1279
|
-
return self.load_global_str(expr.name, expr.line)
|
|
1280
|
-
|
|
1281
|
-
def load_global_str(self, name: str, line: int) -> Value:
|
|
1282
|
-
_globals = self.load_globals_dict()
|
|
1283
|
-
reg = self.load_str(name)
|
|
1284
|
-
return self.call_c(dict_get_item_op, [_globals, reg], line)
|
|
1285
|
-
|
|
1286
|
-
def load_globals_dict(self) -> Value:
|
|
1287
|
-
return self.add(LoadStatic(dict_rprimitive, "globals", self.module_name))
|
|
1288
|
-
|
|
1289
|
-
def load_module_attr_by_fullname(self, fullname: str, line: int) -> Value:
|
|
1290
|
-
module, _, name = fullname.rpartition(".")
|
|
1291
|
-
left = self.load_module(module)
|
|
1292
|
-
return self.py_get_attr(left, name, line)
|
|
1293
|
-
|
|
1294
|
-
def is_native_attr_ref(self, expr: MemberExpr) -> bool:
|
|
1295
|
-
"""Is expr a direct reference to a native (struct) attribute of an instance?"""
|
|
1296
|
-
obj_rtype = self.node_type(expr.expr)
|
|
1297
|
-
return (
|
|
1298
|
-
isinstance(obj_rtype, RInstance)
|
|
1299
|
-
and obj_rtype.class_ir.is_ext_class
|
|
1300
|
-
and obj_rtype.class_ir.has_attr(expr.name)
|
|
1301
|
-
and not obj_rtype.class_ir.get_method(expr.name)
|
|
1302
|
-
)
|
|
1303
|
-
|
|
1304
|
-
def mark_block_unreachable(self) -> None:
|
|
1305
|
-
"""Mark statements in the innermost block being processed as unreachable.
|
|
1306
|
-
|
|
1307
|
-
This should be called after a statement that unconditionally leaves the
|
|
1308
|
-
block, such as 'break' or 'return'.
|
|
1309
|
-
"""
|
|
1310
|
-
self.block_reachable_stack[-1] = False
|
|
1311
|
-
|
|
1312
|
-
# Lacks a good type because there wasn't a reasonable type in 3.5 :(
|
|
1313
|
-
def catch_errors(self, line: int) -> Any:
|
|
1314
|
-
return catch_errors(self.module_path, line)
|
|
1315
|
-
|
|
1316
|
-
def warning(self, msg: str, line: int) -> None:
|
|
1317
|
-
self.errors.warning(msg, self.module_path, line)
|
|
1318
|
-
|
|
1319
|
-
def error(self, msg: str, line: int) -> None:
|
|
1320
|
-
self.errors.error(msg, self.module_path, line)
|
|
1321
|
-
|
|
1322
|
-
def note(self, msg: str, line: int) -> None:
|
|
1323
|
-
self.errors.note(msg, self.module_path, line)
|
|
1324
|
-
|
|
1325
|
-
def add_function(self, func_ir: FuncIR, line: int) -> None:
|
|
1326
|
-
name = (func_ir.class_name, func_ir.name)
|
|
1327
|
-
if name in self.function_names:
|
|
1328
|
-
self.error(f'Duplicate definition of "{name[1]}" not supported by mypyc', line)
|
|
1329
|
-
return
|
|
1330
|
-
self.function_names.add(name)
|
|
1331
|
-
self.functions.append(func_ir)
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
def gen_arg_defaults(builder: IRBuilder) -> None:
|
|
1335
|
-
"""Generate blocks for arguments that have default values.
|
|
1336
|
-
|
|
1337
|
-
If the passed value is an error value, then assign the default
|
|
1338
|
-
value to the argument.
|
|
1339
|
-
"""
|
|
1340
|
-
fitem = builder.fn_info.fitem
|
|
1341
|
-
nb = 0
|
|
1342
|
-
for arg in fitem.arguments:
|
|
1343
|
-
if arg.initializer:
|
|
1344
|
-
target = builder.lookup(arg.variable)
|
|
1345
|
-
|
|
1346
|
-
def get_default() -> Value:
|
|
1347
|
-
assert arg.initializer is not None
|
|
1348
|
-
|
|
1349
|
-
# If it is constant, don't bother storing it
|
|
1350
|
-
if is_constant(arg.initializer):
|
|
1351
|
-
return builder.accept(arg.initializer)
|
|
1352
|
-
|
|
1353
|
-
# Because gen_arg_defaults runs before calculate_arg_defaults, we
|
|
1354
|
-
# add the static/attribute to final_names/the class here.
|
|
1355
|
-
elif not builder.fn_info.is_nested:
|
|
1356
|
-
name = fitem.fullname + "." + arg.variable.name
|
|
1357
|
-
builder.final_names.append((name, target.type))
|
|
1358
|
-
return builder.add(LoadStatic(target.type, name, builder.module_name))
|
|
1359
|
-
else:
|
|
1360
|
-
name = arg.variable.name
|
|
1361
|
-
builder.fn_info.callable_class.ir.attributes[name] = target.type
|
|
1362
|
-
return builder.add(
|
|
1363
|
-
GetAttr(builder.fn_info.callable_class.self_reg, name, arg.line)
|
|
1364
|
-
)
|
|
1365
|
-
|
|
1366
|
-
assert isinstance(target, AssignmentTargetRegister)
|
|
1367
|
-
reg = target.register
|
|
1368
|
-
if not reg.type.error_overlap:
|
|
1369
|
-
builder.assign_if_null(target.register, get_default, arg.initializer.line)
|
|
1370
|
-
else:
|
|
1371
|
-
builder.assign_if_bitmap_unset(
|
|
1372
|
-
target.register, get_default, nb, arg.initializer.line
|
|
1373
|
-
)
|
|
1374
|
-
nb += 1
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
def remangle_redefinition_name(name: str) -> str:
|
|
1378
|
-
"""Remangle names produced by mypy when allow-redefinition is used and a name
|
|
1379
|
-
is used with multiple types within a single block.
|
|
1380
|
-
|
|
1381
|
-
We only need to do this for locals, because the name is used as the name of the register;
|
|
1382
|
-
for globals, the name itself is stored in a register for the purpose of doing dict
|
|
1383
|
-
lookups.
|
|
1384
|
-
"""
|
|
1385
|
-
return name.replace("'", "__redef__")
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
def get_call_target_fullname(ref: RefExpr) -> str:
|
|
1389
|
-
if isinstance(ref.node, TypeAlias):
|
|
1390
|
-
# Resolve simple type aliases. In calls they evaluate to the type they point to.
|
|
1391
|
-
target = get_proper_type(ref.node.target)
|
|
1392
|
-
if isinstance(target, Instance):
|
|
1393
|
-
return target.type.fullname
|
|
1394
|
-
return ref.fullname
|