jaclang 0.7.34__py3-none-any.whl → 0.8.1__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 +316 -217
- 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 +65 -106
- jaclang/compiler/larkparse/jac_parser.py +3444 -0
- jaclang/compiler/parser.py +1137 -1517
- 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 +159 -114
- jaclang/compiler/passes/main/def_use_pass.py +66 -274
- jaclang/compiler/passes/main/import_pass.py +178 -363
- jaclang/compiler/passes/main/inheritance_pass.py +109 -107
- jaclang/compiler/passes/main/pyast_gen_pass.py +1242 -1735
- jaclang/compiler/passes/main/pyast_load_pass.py +579 -819
- jaclang/compiler/passes/main/pybc_gen_pass.py +38 -35
- jaclang/compiler/passes/main/pyjac_ast_link_pass.py +50 -163
- jaclang/compiler/passes/main/sym_tab_build_pass.py +114 -1203
- 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 +19 -0
- jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/main.jac +7 -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 +101 -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 +1287 -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 +200 -0
- jaclang/compiler/tests/fixtures/codegentext.jac +31 -0
- jaclang/compiler/tests/fixtures/fam.jac +12 -12
- jaclang/compiler/tests/fixtures/hello_world.jac +1 -1
- jaclang/compiler/tests/fixtures/pkg_import_lib/__init__.jac +1 -0
- jaclang/compiler/tests/fixtures/pkg_import_lib/sub/__init__.jac +1 -0
- jaclang/compiler/tests/fixtures/pkg_import_lib/sub/helper.jac +3 -0
- jaclang/compiler/tests/fixtures/pkg_import_lib/tools.jac +3 -0
- jaclang/compiler/tests/fixtures/pkg_import_lib_py/__init__.py +11 -0
- jaclang/compiler/tests/fixtures/pkg_import_lib_py/sub/__init__.py +7 -0
- jaclang/compiler/tests/fixtures/pkg_import_lib_py/sub/helper.jac +3 -0
- jaclang/compiler/tests/fixtures/pkg_import_lib_py/tools.jac +3 -0
- jaclang/compiler/tests/fixtures/pkg_import_main.jac +10 -0
- jaclang/compiler/tests/fixtures/pkg_import_main_py.jac +11 -0
- jaclang/compiler/tests/fixtures/staticcheck.jac +2 -2
- jaclang/compiler/tests/test_importer.py +41 -16
- jaclang/compiler/tests/test_parser.py +39 -17
- jaclang/compiler/{absyntree.py → unitree.py} +1521 -1261
- jaclang/langserve/engine.jac +498 -0
- jaclang/langserve/sem_manager.jac +309 -0
- jaclang/langserve/server.jac +186 -0
- 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 +261 -0
- jaclang/langserve/tests/server_test/utils.py +118 -0
- jaclang/langserve/tests/session.jac +294 -0
- jaclang/langserve/tests/test_sem_tokens.py +4 -4
- jaclang/langserve/tests/test_server.py +53 -30
- jaclang/langserve/utils.jac +459 -0
- jaclang/runtimelib/{architype.py → archetype.py} +86 -62
- jaclang/runtimelib/builtin.py +95 -0
- jaclang/runtimelib/constructs.py +11 -13
- jaclang/runtimelib/importer.py +83 -53
- jaclang/runtimelib/machine.py +1592 -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/{plugin → runtimelib}/tests/fixtures/traversing_save.jac +7 -5
- jaclang/runtimelib/tests/test_features.py +72 -0
- jaclang/{plugin → runtimelib}/tests/test_jaseci.py +6 -5
- jaclang/runtimelib/utils.py +34 -66
- 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/backward_edge_visit.jac +31 -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_printgraph.jac +85 -0
- jaclang/tests/fixtures/builtin_printgraph_json.jac +21 -0
- jaclang/tests/fixtures/builtin_printgraph_mermaid.jac +16 -0
- jaclang/tests/fixtures/byllmissue.jac +1 -1
- jaclang/tests/fixtures/chandra_bugs.jac +1 -1
- jaclang/tests/fixtures/chandra_bugs2.jac +21 -14
- 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_ability.jac +49 -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 +6 -6
- 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/here_usage_error.jac +21 -0
- jaclang/tests/fixtures/here_visitor_usage.jac +21 -0
- 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 +54 -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/visit_traversal.jac +47 -0
- 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 +127 -227
- jaclang/tests/test_language.py +542 -474
- 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 +24 -31
- jaclang/utils/lang_tools.py +84 -75
- jaclang/utils/module_resolver.py +69 -0
- jaclang/utils/test.py +8 -5
- jaclang/utils/tests/test_lang_tools.py +40 -14
- jaclang/utils/treeprinter.py +178 -42
- 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.1.dist-info}/METADATA +2 -1
- jaclang-0.8.1.dist-info/RECORD +568 -0
- {jaclang-0.7.34.dist-info → jaclang-0.8.1.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/engine.py +0 -541
- jaclang/langserve/sem_manager.py +0 -379
- jaclang/langserve/server.py +0 -176
- jaclang/langserve/tests/session.py +0 -255
- 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/builtin_dotgen.jac +0 -42
- 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/langserve/{__init__.py → __init__.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/{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.1.dist-info}/entry_points.txt +0 -0
jaclang/vendor/mypyc/ir/ops.py
DELETED
|
@@ -1,1727 +0,0 @@
|
|
|
1
|
-
"""Low-level opcodes for compiler intermediate representation (IR).
|
|
2
|
-
|
|
3
|
-
Opcodes operate on abstract values (Value) in a register machine. Each
|
|
4
|
-
value has a type (RType). A value can hold various things, such as:
|
|
5
|
-
|
|
6
|
-
- local variables (Register)
|
|
7
|
-
- intermediate values of expressions (RegisterOp subclasses)
|
|
8
|
-
- condition flags (true/false)
|
|
9
|
-
- literals (integer literals, True, False, etc.)
|
|
10
|
-
"""
|
|
11
|
-
|
|
12
|
-
from __future__ import annotations
|
|
13
|
-
|
|
14
|
-
from abc import abstractmethod
|
|
15
|
-
from typing import TYPE_CHECKING, Final, Generic, List, NamedTuple, Sequence, TypeVar, Union
|
|
16
|
-
|
|
17
|
-
from mypy_extensions import trait
|
|
18
|
-
|
|
19
|
-
from mypyc.ir.rtypes import (
|
|
20
|
-
RArray,
|
|
21
|
-
RInstance,
|
|
22
|
-
RTuple,
|
|
23
|
-
RType,
|
|
24
|
-
RVoid,
|
|
25
|
-
bit_rprimitive,
|
|
26
|
-
bool_rprimitive,
|
|
27
|
-
float_rprimitive,
|
|
28
|
-
int_rprimitive,
|
|
29
|
-
is_bit_rprimitive,
|
|
30
|
-
is_bool_rprimitive,
|
|
31
|
-
is_int_rprimitive,
|
|
32
|
-
is_none_rprimitive,
|
|
33
|
-
is_pointer_rprimitive,
|
|
34
|
-
is_short_int_rprimitive,
|
|
35
|
-
object_rprimitive,
|
|
36
|
-
pointer_rprimitive,
|
|
37
|
-
short_int_rprimitive,
|
|
38
|
-
void_rtype,
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
if TYPE_CHECKING:
|
|
42
|
-
from mypyc.codegen.literals import LiteralValue
|
|
43
|
-
from mypyc.ir.class_ir import ClassIR
|
|
44
|
-
from mypyc.ir.func_ir import FuncDecl, FuncIR
|
|
45
|
-
|
|
46
|
-
T = TypeVar("T")
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
class BasicBlock:
|
|
50
|
-
"""IR basic block.
|
|
51
|
-
|
|
52
|
-
Contains a sequence of Ops and ends with a ControlOp (Goto,
|
|
53
|
-
Branch, Return or Unreachable). Only the last op can be a
|
|
54
|
-
ControlOp.
|
|
55
|
-
|
|
56
|
-
All generated Ops live in basic blocks. Basic blocks determine the
|
|
57
|
-
order of evaluation and control flow within a function. A basic
|
|
58
|
-
block is always associated with a single function/method (FuncIR).
|
|
59
|
-
|
|
60
|
-
When building the IR, ops that raise exceptions can be included in
|
|
61
|
-
the middle of a basic block, but the exceptions aren't checked.
|
|
62
|
-
Afterwards we perform a transform that inserts explicit checks for
|
|
63
|
-
all error conditions and splits basic blocks accordingly to preserve
|
|
64
|
-
the invariant that a jump, branch or return can only ever appear
|
|
65
|
-
as the final op in a block. Manually inserting error checking ops
|
|
66
|
-
would be boring and error-prone.
|
|
67
|
-
|
|
68
|
-
BasicBlocks have an error_handler attribute that determines where
|
|
69
|
-
to jump if an error occurs. If none is specified, an error will
|
|
70
|
-
propagate up out of the function. This is compiled away by the
|
|
71
|
-
`exceptions` module.
|
|
72
|
-
|
|
73
|
-
Block labels are used for pretty printing and emitting C code, and
|
|
74
|
-
get filled in by those passes.
|
|
75
|
-
|
|
76
|
-
Ops that may terminate the program aren't treated as exits.
|
|
77
|
-
"""
|
|
78
|
-
|
|
79
|
-
def __init__(self, label: int = -1) -> None:
|
|
80
|
-
self.label = label
|
|
81
|
-
self.ops: list[Op] = []
|
|
82
|
-
self.error_handler: BasicBlock | None = None
|
|
83
|
-
self.referenced = False
|
|
84
|
-
|
|
85
|
-
@property
|
|
86
|
-
def terminated(self) -> bool:
|
|
87
|
-
"""Does the block end with a jump, branch or return?
|
|
88
|
-
|
|
89
|
-
This should always be true after the basic block has been fully built, but
|
|
90
|
-
this is false during construction.
|
|
91
|
-
"""
|
|
92
|
-
return bool(self.ops) and isinstance(self.ops[-1], ControlOp)
|
|
93
|
-
|
|
94
|
-
@property
|
|
95
|
-
def terminator(self) -> ControlOp:
|
|
96
|
-
"""The terminator operation of the block."""
|
|
97
|
-
assert bool(self.ops) and isinstance(self.ops[-1], ControlOp)
|
|
98
|
-
return self.ops[-1]
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
# Never generates an exception
|
|
102
|
-
ERR_NEVER: Final = 0
|
|
103
|
-
# Generates magic value (c_error_value) based on target RType on exception
|
|
104
|
-
ERR_MAGIC: Final = 1
|
|
105
|
-
# Generates false (bool) on exception
|
|
106
|
-
ERR_FALSE: Final = 2
|
|
107
|
-
# Always fails
|
|
108
|
-
ERR_ALWAYS: Final = 3
|
|
109
|
-
# Like ERR_MAGIC, but the magic return overlaps with a possible return value, and
|
|
110
|
-
# an extra PyErr_Occurred() check is also required
|
|
111
|
-
ERR_MAGIC_OVERLAPPING: Final = 4
|
|
112
|
-
|
|
113
|
-
# Hack: using this line number for an op will suppress it in tracebacks
|
|
114
|
-
NO_TRACEBACK_LINE_NO = -10000
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
class Value:
|
|
118
|
-
"""Abstract base class for all IR values.
|
|
119
|
-
|
|
120
|
-
These include references to registers, literals, and all
|
|
121
|
-
operations (Ops), such as assignments, calls and branches.
|
|
122
|
-
|
|
123
|
-
Values are often used as inputs of Ops. Register can be used as an
|
|
124
|
-
assignment target.
|
|
125
|
-
|
|
126
|
-
A Value is part of the IR being compiled if it's included in a BasicBlock
|
|
127
|
-
that is reachable from a FuncIR (i.e., is part of a function).
|
|
128
|
-
|
|
129
|
-
See also: Op is a subclass of Value that is the base class of all
|
|
130
|
-
operations.
|
|
131
|
-
"""
|
|
132
|
-
|
|
133
|
-
# Source line number (-1 for no/unknown line)
|
|
134
|
-
line = -1
|
|
135
|
-
# Type of the value or the result of the operation
|
|
136
|
-
type: RType = void_rtype
|
|
137
|
-
is_borrowed = False
|
|
138
|
-
|
|
139
|
-
@property
|
|
140
|
-
def is_void(self) -> bool:
|
|
141
|
-
return isinstance(self.type, RVoid)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
class Register(Value):
|
|
145
|
-
"""A Register holds a value of a specific type, and it can be read and mutated.
|
|
146
|
-
|
|
147
|
-
A Register is always local to a function. Each local variable maps
|
|
148
|
-
to a Register, and they are also used for some (but not all)
|
|
149
|
-
temporary values.
|
|
150
|
-
|
|
151
|
-
Note that the term 'register' is overloaded and is sometimes used
|
|
152
|
-
to refer to arbitrary Values (for example, in RegisterOp).
|
|
153
|
-
"""
|
|
154
|
-
|
|
155
|
-
def __init__(self, type: RType, name: str = "", is_arg: bool = False, line: int = -1) -> None:
|
|
156
|
-
self.type = type
|
|
157
|
-
self.name = name
|
|
158
|
-
self.is_arg = is_arg
|
|
159
|
-
self.is_borrowed = is_arg
|
|
160
|
-
self.line = line
|
|
161
|
-
|
|
162
|
-
@property
|
|
163
|
-
def is_void(self) -> bool:
|
|
164
|
-
return False
|
|
165
|
-
|
|
166
|
-
def __repr__(self) -> str:
|
|
167
|
-
return f"<Register {self.name!r} at {hex(id(self))}>"
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
class Integer(Value):
|
|
171
|
-
"""Short integer literal.
|
|
172
|
-
|
|
173
|
-
Integer literals are treated as constant values and are generally
|
|
174
|
-
not included in data flow analyses and such, unlike Register and
|
|
175
|
-
Op subclasses.
|
|
176
|
-
|
|
177
|
-
Integer can represent multiple types:
|
|
178
|
-
|
|
179
|
-
* Short tagged integers (short_int_primitive type; the tag bit is clear)
|
|
180
|
-
* Ordinary fixed-width integers (e.g., int32_rprimitive)
|
|
181
|
-
* Values of other unboxed primitive types that are represented as integers
|
|
182
|
-
(none_rprimitive, bool_rprimitive)
|
|
183
|
-
* Null pointers (value 0) of various types, including object_rprimitive
|
|
184
|
-
"""
|
|
185
|
-
|
|
186
|
-
def __init__(self, value: int, rtype: RType = short_int_rprimitive, line: int = -1) -> None:
|
|
187
|
-
if is_short_int_rprimitive(rtype) or is_int_rprimitive(rtype):
|
|
188
|
-
self.value = value * 2
|
|
189
|
-
else:
|
|
190
|
-
self.value = value
|
|
191
|
-
self.type = rtype
|
|
192
|
-
self.line = line
|
|
193
|
-
|
|
194
|
-
def numeric_value(self) -> int:
|
|
195
|
-
if is_short_int_rprimitive(self.type) or is_int_rprimitive(self.type):
|
|
196
|
-
return self.value // 2
|
|
197
|
-
return self.value
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
class Float(Value):
|
|
201
|
-
"""Float literal.
|
|
202
|
-
|
|
203
|
-
Floating point literals are treated as constant values and are generally
|
|
204
|
-
not included in data flow analyses and such, unlike Register and
|
|
205
|
-
Op subclasses.
|
|
206
|
-
"""
|
|
207
|
-
|
|
208
|
-
def __init__(self, value: float, line: int = -1) -> None:
|
|
209
|
-
self.value = value
|
|
210
|
-
self.type = float_rprimitive
|
|
211
|
-
self.line = line
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
class Op(Value):
|
|
215
|
-
"""Abstract base class for all IR operations.
|
|
216
|
-
|
|
217
|
-
Each operation must be stored in a BasicBlock (in 'ops') to be
|
|
218
|
-
active in the IR. This is different from non-Op values, including
|
|
219
|
-
Register and Integer, where a reference from an active Op is
|
|
220
|
-
sufficient to be considered active.
|
|
221
|
-
|
|
222
|
-
In well-formed IR an active Op has no references to inactive ops
|
|
223
|
-
or ops used in another function.
|
|
224
|
-
"""
|
|
225
|
-
|
|
226
|
-
def __init__(self, line: int) -> None:
|
|
227
|
-
self.line = line
|
|
228
|
-
|
|
229
|
-
def can_raise(self) -> bool:
|
|
230
|
-
# Override this is if Op may raise an exception. Note that currently the fact that
|
|
231
|
-
# only RegisterOps may raise an exception in hard coded in some places.
|
|
232
|
-
return False
|
|
233
|
-
|
|
234
|
-
@abstractmethod
|
|
235
|
-
def sources(self) -> list[Value]:
|
|
236
|
-
"""All the values the op may read."""
|
|
237
|
-
|
|
238
|
-
def stolen(self) -> list[Value]:
|
|
239
|
-
"""Return arguments that have a reference count stolen by this op"""
|
|
240
|
-
return []
|
|
241
|
-
|
|
242
|
-
def unique_sources(self) -> list[Value]:
|
|
243
|
-
result: list[Value] = []
|
|
244
|
-
for reg in self.sources():
|
|
245
|
-
if reg not in result:
|
|
246
|
-
result.append(reg)
|
|
247
|
-
return result
|
|
248
|
-
|
|
249
|
-
@abstractmethod
|
|
250
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
251
|
-
pass
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
class BaseAssign(Op):
|
|
255
|
-
"""Base class for ops that assign to a register."""
|
|
256
|
-
|
|
257
|
-
def __init__(self, dest: Register, line: int = -1) -> None:
|
|
258
|
-
super().__init__(line)
|
|
259
|
-
self.dest = dest
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
class Assign(BaseAssign):
|
|
263
|
-
"""Assign a value to a Register (dest = src)."""
|
|
264
|
-
|
|
265
|
-
error_kind = ERR_NEVER
|
|
266
|
-
|
|
267
|
-
def __init__(self, dest: Register, src: Value, line: int = -1) -> None:
|
|
268
|
-
super().__init__(dest, line)
|
|
269
|
-
self.src = src
|
|
270
|
-
|
|
271
|
-
def sources(self) -> list[Value]:
|
|
272
|
-
return [self.src]
|
|
273
|
-
|
|
274
|
-
def stolen(self) -> list[Value]:
|
|
275
|
-
return [self.src]
|
|
276
|
-
|
|
277
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
278
|
-
return visitor.visit_assign(self)
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
class AssignMulti(BaseAssign):
|
|
282
|
-
"""Assign multiple values to a Register (dest = src1, src2, ...).
|
|
283
|
-
|
|
284
|
-
This is used to initialize RArray values. It's provided to avoid
|
|
285
|
-
very verbose IR for common vectorcall operations.
|
|
286
|
-
|
|
287
|
-
Note that this interacts atypically with reference counting. We
|
|
288
|
-
assume that each RArray register is initialized exactly once
|
|
289
|
-
with this op.
|
|
290
|
-
"""
|
|
291
|
-
|
|
292
|
-
error_kind = ERR_NEVER
|
|
293
|
-
|
|
294
|
-
def __init__(self, dest: Register, src: list[Value], line: int = -1) -> None:
|
|
295
|
-
super().__init__(dest, line)
|
|
296
|
-
assert src
|
|
297
|
-
assert isinstance(dest.type, RArray)
|
|
298
|
-
assert dest.type.length == len(src)
|
|
299
|
-
self.src = src
|
|
300
|
-
|
|
301
|
-
def sources(self) -> list[Value]:
|
|
302
|
-
return self.src.copy()
|
|
303
|
-
|
|
304
|
-
def stolen(self) -> list[Value]:
|
|
305
|
-
return []
|
|
306
|
-
|
|
307
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
308
|
-
return visitor.visit_assign_multi(self)
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
class ControlOp(Op):
|
|
312
|
-
"""Control flow operation."""
|
|
313
|
-
|
|
314
|
-
def targets(self) -> Sequence[BasicBlock]:
|
|
315
|
-
"""Get all basic block targets of the control operation."""
|
|
316
|
-
return ()
|
|
317
|
-
|
|
318
|
-
def set_target(self, i: int, new: BasicBlock) -> None:
|
|
319
|
-
"""Update a basic block target."""
|
|
320
|
-
raise AssertionError(f"Invalid set_target({self}, {i})")
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
class Goto(ControlOp):
|
|
324
|
-
"""Unconditional jump."""
|
|
325
|
-
|
|
326
|
-
error_kind = ERR_NEVER
|
|
327
|
-
|
|
328
|
-
def __init__(self, label: BasicBlock, line: int = -1) -> None:
|
|
329
|
-
super().__init__(line)
|
|
330
|
-
self.label = label
|
|
331
|
-
|
|
332
|
-
def targets(self) -> Sequence[BasicBlock]:
|
|
333
|
-
return (self.label,)
|
|
334
|
-
|
|
335
|
-
def set_target(self, i: int, new: BasicBlock) -> None:
|
|
336
|
-
assert i == 0
|
|
337
|
-
self.label = new
|
|
338
|
-
|
|
339
|
-
def __repr__(self) -> str:
|
|
340
|
-
return "<Goto %s>" % self.label.label
|
|
341
|
-
|
|
342
|
-
def sources(self) -> list[Value]:
|
|
343
|
-
return []
|
|
344
|
-
|
|
345
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
346
|
-
return visitor.visit_goto(self)
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
class Branch(ControlOp):
|
|
350
|
-
"""Branch based on a value.
|
|
351
|
-
|
|
352
|
-
If op is BOOL, branch based on a bit/bool value:
|
|
353
|
-
if [not] r1 goto L1 else goto L2
|
|
354
|
-
|
|
355
|
-
If op is IS_ERROR, branch based on whether there is an error value:
|
|
356
|
-
if [not] is_error(r1) goto L1 else goto L2
|
|
357
|
-
"""
|
|
358
|
-
|
|
359
|
-
# Branch ops never raise an exception.
|
|
360
|
-
error_kind = ERR_NEVER
|
|
361
|
-
|
|
362
|
-
BOOL: Final = 100
|
|
363
|
-
IS_ERROR: Final = 101
|
|
364
|
-
|
|
365
|
-
def __init__(
|
|
366
|
-
self,
|
|
367
|
-
value: Value,
|
|
368
|
-
true_label: BasicBlock,
|
|
369
|
-
false_label: BasicBlock,
|
|
370
|
-
op: int,
|
|
371
|
-
line: int = -1,
|
|
372
|
-
*,
|
|
373
|
-
rare: bool = False,
|
|
374
|
-
) -> None:
|
|
375
|
-
super().__init__(line)
|
|
376
|
-
# Target value being checked
|
|
377
|
-
self.value = value
|
|
378
|
-
# Branch here if the condition is true
|
|
379
|
-
self.true = true_label
|
|
380
|
-
# Branch here if the condition is false
|
|
381
|
-
self.false = false_label
|
|
382
|
-
# Branch.BOOL (boolean check) or Branch.IS_ERROR (error value check)
|
|
383
|
-
self.op = op
|
|
384
|
-
# If True, the condition is negated
|
|
385
|
-
self.negated = False
|
|
386
|
-
# If not None, the true label should generate a traceback entry (func name, line number)
|
|
387
|
-
self.traceback_entry: tuple[str, int] | None = None
|
|
388
|
-
# If True, we expect to usually take the false branch (for optimization purposes);
|
|
389
|
-
# this is implicitly treated as true if there is a traceback entry
|
|
390
|
-
self.rare = rare
|
|
391
|
-
|
|
392
|
-
def targets(self) -> Sequence[BasicBlock]:
|
|
393
|
-
return (self.true, self.false)
|
|
394
|
-
|
|
395
|
-
def set_target(self, i: int, new: BasicBlock) -> None:
|
|
396
|
-
assert i == 0 or i == 1
|
|
397
|
-
if i == 0:
|
|
398
|
-
self.true = new
|
|
399
|
-
else:
|
|
400
|
-
self.false = new
|
|
401
|
-
|
|
402
|
-
def sources(self) -> list[Value]:
|
|
403
|
-
return [self.value]
|
|
404
|
-
|
|
405
|
-
def invert(self) -> None:
|
|
406
|
-
self.negated = not self.negated
|
|
407
|
-
|
|
408
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
409
|
-
return visitor.visit_branch(self)
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
class Return(ControlOp):
|
|
413
|
-
"""Return a value from a function."""
|
|
414
|
-
|
|
415
|
-
error_kind = ERR_NEVER
|
|
416
|
-
|
|
417
|
-
def __init__(self, value: Value, line: int = -1) -> None:
|
|
418
|
-
super().__init__(line)
|
|
419
|
-
self.value = value
|
|
420
|
-
|
|
421
|
-
def sources(self) -> list[Value]:
|
|
422
|
-
return [self.value]
|
|
423
|
-
|
|
424
|
-
def stolen(self) -> list[Value]:
|
|
425
|
-
return [self.value]
|
|
426
|
-
|
|
427
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
428
|
-
return visitor.visit_return(self)
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
class Unreachable(ControlOp):
|
|
432
|
-
"""Mark the end of basic block as unreachable.
|
|
433
|
-
|
|
434
|
-
This is sometimes necessary when the end of a basic block is never
|
|
435
|
-
reached. This can also be explicitly added to the end of non-None
|
|
436
|
-
returning functions (in None-returning function we can just return
|
|
437
|
-
None).
|
|
438
|
-
|
|
439
|
-
Mypy statically guarantees that the end of the function is not
|
|
440
|
-
unreachable if there is not a return statement.
|
|
441
|
-
|
|
442
|
-
This prevents the block formatter from being confused due to lack
|
|
443
|
-
of a leave and also leaves a nifty note in the IR. It is not
|
|
444
|
-
generally processed by visitors.
|
|
445
|
-
"""
|
|
446
|
-
|
|
447
|
-
error_kind = ERR_NEVER
|
|
448
|
-
|
|
449
|
-
def __init__(self, line: int = -1) -> None:
|
|
450
|
-
super().__init__(line)
|
|
451
|
-
|
|
452
|
-
def sources(self) -> list[Value]:
|
|
453
|
-
return []
|
|
454
|
-
|
|
455
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
456
|
-
return visitor.visit_unreachable(self)
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
class RegisterOp(Op):
|
|
460
|
-
"""Abstract base class for operations that can be written as r1 = f(r2, ..., rn).
|
|
461
|
-
|
|
462
|
-
Takes some values, performs an operation, and generates an output
|
|
463
|
-
(unless the 'type' attribute is void_rtype, which is the default).
|
|
464
|
-
Other ops can refer to the result of the Op by referring to the Op
|
|
465
|
-
instance. This doesn't do any explicit control flow, but can raise an
|
|
466
|
-
error.
|
|
467
|
-
|
|
468
|
-
Note that the operands can be arbitrary Values, not just Register
|
|
469
|
-
instances, even though the naming may suggest otherwise.
|
|
470
|
-
"""
|
|
471
|
-
|
|
472
|
-
error_kind = -1 # Can this raise exception and how is it signalled; one of ERR_*
|
|
473
|
-
|
|
474
|
-
_type: RType | None = None
|
|
475
|
-
|
|
476
|
-
def __init__(self, line: int) -> None:
|
|
477
|
-
super().__init__(line)
|
|
478
|
-
assert self.error_kind != -1, "error_kind not defined"
|
|
479
|
-
|
|
480
|
-
def can_raise(self) -> bool:
|
|
481
|
-
return self.error_kind != ERR_NEVER
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
class IncRef(RegisterOp):
|
|
485
|
-
"""Increase reference count (inc_ref src)."""
|
|
486
|
-
|
|
487
|
-
error_kind = ERR_NEVER
|
|
488
|
-
|
|
489
|
-
def __init__(self, src: Value, line: int = -1) -> None:
|
|
490
|
-
assert src.type.is_refcounted
|
|
491
|
-
super().__init__(line)
|
|
492
|
-
self.src = src
|
|
493
|
-
|
|
494
|
-
def sources(self) -> list[Value]:
|
|
495
|
-
return [self.src]
|
|
496
|
-
|
|
497
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
498
|
-
return visitor.visit_inc_ref(self)
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
class DecRef(RegisterOp):
|
|
502
|
-
"""Decrease reference count and free object if zero (dec_ref src).
|
|
503
|
-
|
|
504
|
-
The is_xdec flag says to use an XDECREF, which checks if the
|
|
505
|
-
pointer is NULL first.
|
|
506
|
-
"""
|
|
507
|
-
|
|
508
|
-
error_kind = ERR_NEVER
|
|
509
|
-
|
|
510
|
-
def __init__(self, src: Value, is_xdec: bool = False, line: int = -1) -> None:
|
|
511
|
-
assert src.type.is_refcounted
|
|
512
|
-
super().__init__(line)
|
|
513
|
-
self.src = src
|
|
514
|
-
self.is_xdec = is_xdec
|
|
515
|
-
|
|
516
|
-
def __repr__(self) -> str:
|
|
517
|
-
return "<{}DecRef {!r}>".format("X" if self.is_xdec else "", self.src)
|
|
518
|
-
|
|
519
|
-
def sources(self) -> list[Value]:
|
|
520
|
-
return [self.src]
|
|
521
|
-
|
|
522
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
523
|
-
return visitor.visit_dec_ref(self)
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
class Call(RegisterOp):
|
|
527
|
-
"""Native call f(arg, ...).
|
|
528
|
-
|
|
529
|
-
The call target can be a module-level function or a class.
|
|
530
|
-
"""
|
|
531
|
-
|
|
532
|
-
def __init__(self, fn: FuncDecl, args: Sequence[Value], line: int) -> None:
|
|
533
|
-
self.fn = fn
|
|
534
|
-
self.args = list(args)
|
|
535
|
-
assert len(self.args) == len(fn.sig.args)
|
|
536
|
-
self.type = fn.sig.ret_type
|
|
537
|
-
ret_type = fn.sig.ret_type
|
|
538
|
-
if not ret_type.error_overlap:
|
|
539
|
-
self.error_kind = ERR_MAGIC
|
|
540
|
-
else:
|
|
541
|
-
self.error_kind = ERR_MAGIC_OVERLAPPING
|
|
542
|
-
super().__init__(line)
|
|
543
|
-
|
|
544
|
-
def sources(self) -> list[Value]:
|
|
545
|
-
return list(self.args.copy())
|
|
546
|
-
|
|
547
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
548
|
-
return visitor.visit_call(self)
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
class MethodCall(RegisterOp):
|
|
552
|
-
"""Native method call obj.method(arg, ...)"""
|
|
553
|
-
|
|
554
|
-
def __init__(self, obj: Value, method: str, args: list[Value], line: int = -1) -> None:
|
|
555
|
-
self.obj = obj
|
|
556
|
-
self.method = method
|
|
557
|
-
self.args = args
|
|
558
|
-
assert isinstance(obj.type, RInstance), "Methods can only be called on instances"
|
|
559
|
-
self.receiver_type = obj.type
|
|
560
|
-
method_ir = self.receiver_type.class_ir.method_sig(method)
|
|
561
|
-
assert method_ir is not None, "{} doesn't have method {}".format(
|
|
562
|
-
self.receiver_type.name, method
|
|
563
|
-
)
|
|
564
|
-
ret_type = method_ir.ret_type
|
|
565
|
-
self.type = ret_type
|
|
566
|
-
if not ret_type.error_overlap:
|
|
567
|
-
self.error_kind = ERR_MAGIC
|
|
568
|
-
else:
|
|
569
|
-
self.error_kind = ERR_MAGIC_OVERLAPPING
|
|
570
|
-
super().__init__(line)
|
|
571
|
-
|
|
572
|
-
def sources(self) -> list[Value]:
|
|
573
|
-
return self.args.copy() + [self.obj]
|
|
574
|
-
|
|
575
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
576
|
-
return visitor.visit_method_call(self)
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
class PrimitiveDescription:
|
|
580
|
-
"""Description of a primitive op.
|
|
581
|
-
|
|
582
|
-
Primitives get lowered into lower-level ops before code generation.
|
|
583
|
-
|
|
584
|
-
If c_function_name is provided, a primitive will be lowered into a CallC op.
|
|
585
|
-
Otherwise custom logic will need to be implemented to transform the
|
|
586
|
-
primitive into lower-level ops.
|
|
587
|
-
"""
|
|
588
|
-
|
|
589
|
-
def __init__(
|
|
590
|
-
self,
|
|
591
|
-
name: str,
|
|
592
|
-
arg_types: list[RType],
|
|
593
|
-
return_type: RType, # TODO: What about generic?
|
|
594
|
-
var_arg_type: RType | None,
|
|
595
|
-
truncated_type: RType | None,
|
|
596
|
-
c_function_name: str | None,
|
|
597
|
-
error_kind: int,
|
|
598
|
-
steals: StealsDescription,
|
|
599
|
-
is_borrowed: bool,
|
|
600
|
-
ordering: list[int] | None,
|
|
601
|
-
extra_int_constants: list[tuple[int, RType]],
|
|
602
|
-
priority: int,
|
|
603
|
-
) -> None:
|
|
604
|
-
# Each primitive much have a distinct name, but otherwise they are arbitrary.
|
|
605
|
-
self.name: Final = name
|
|
606
|
-
self.arg_types: Final = arg_types
|
|
607
|
-
self.return_type: Final = return_type
|
|
608
|
-
self.var_arg_type: Final = var_arg_type
|
|
609
|
-
self.truncated_type: Final = truncated_type
|
|
610
|
-
# If non-None, this will map to a call of a C helper function; if None,
|
|
611
|
-
# there must be a custom handler function that gets invoked during the lowering
|
|
612
|
-
# pass to generate low-level IR for the primitive (in the mypyc.lower package)
|
|
613
|
-
self.c_function_name: Final = c_function_name
|
|
614
|
-
self.error_kind: Final = error_kind
|
|
615
|
-
self.steals: Final = steals
|
|
616
|
-
self.is_borrowed: Final = is_borrowed
|
|
617
|
-
self.ordering: Final = ordering
|
|
618
|
-
self.extra_int_constants: Final = extra_int_constants
|
|
619
|
-
self.priority: Final = priority
|
|
620
|
-
|
|
621
|
-
def __repr__(self) -> str:
|
|
622
|
-
return f"<PrimitiveDescription {self.name}>"
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
class PrimitiveOp(RegisterOp):
|
|
626
|
-
"""A higher-level primitive operation.
|
|
627
|
-
|
|
628
|
-
Some of these have special compiler support. These will be lowered
|
|
629
|
-
(transformed) into lower-level IR ops before code generation, and after
|
|
630
|
-
reference counting op insertion. Others will be transformed into CallC
|
|
631
|
-
ops.
|
|
632
|
-
|
|
633
|
-
Tagged integer equality is a typical primitive op with non-trivial
|
|
634
|
-
lowering. It gets transformed into a tag check, followed by different
|
|
635
|
-
code paths for short and long representations.
|
|
636
|
-
"""
|
|
637
|
-
|
|
638
|
-
def __init__(self, args: list[Value], desc: PrimitiveDescription, line: int = -1) -> None:
|
|
639
|
-
self.args = args
|
|
640
|
-
self.type = desc.return_type
|
|
641
|
-
self.error_kind = desc.error_kind
|
|
642
|
-
self.desc = desc
|
|
643
|
-
|
|
644
|
-
def sources(self) -> list[Value]:
|
|
645
|
-
return self.args
|
|
646
|
-
|
|
647
|
-
def stolen(self) -> list[Value]:
|
|
648
|
-
steals = self.desc.steals
|
|
649
|
-
if isinstance(steals, list):
|
|
650
|
-
assert len(steals) == len(self.args)
|
|
651
|
-
return [arg for arg, steal in zip(self.args, steals) if steal]
|
|
652
|
-
else:
|
|
653
|
-
return [] if not steals else self.sources()
|
|
654
|
-
|
|
655
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
656
|
-
return visitor.visit_primitive_op(self)
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
class LoadErrorValue(RegisterOp):
|
|
660
|
-
"""Load an error value.
|
|
661
|
-
|
|
662
|
-
Each type has one reserved value that signals an error (exception). This
|
|
663
|
-
loads the error value for a specific type.
|
|
664
|
-
"""
|
|
665
|
-
|
|
666
|
-
error_kind = ERR_NEVER
|
|
667
|
-
|
|
668
|
-
def __init__(
|
|
669
|
-
self, rtype: RType, line: int = -1, is_borrowed: bool = False, undefines: bool = False
|
|
670
|
-
) -> None:
|
|
671
|
-
super().__init__(line)
|
|
672
|
-
self.type = rtype
|
|
673
|
-
self.is_borrowed = is_borrowed
|
|
674
|
-
# Undefines is true if this should viewed by the definedness
|
|
675
|
-
# analysis pass as making the register it is assigned to
|
|
676
|
-
# undefined (and thus checks should be added on uses).
|
|
677
|
-
self.undefines = undefines
|
|
678
|
-
|
|
679
|
-
def sources(self) -> list[Value]:
|
|
680
|
-
return []
|
|
681
|
-
|
|
682
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
683
|
-
return visitor.visit_load_error_value(self)
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
class LoadLiteral(RegisterOp):
|
|
687
|
-
"""Load a Python literal object (dest = 'foo' / b'foo' / ...).
|
|
688
|
-
|
|
689
|
-
This is used to load a static PyObject * value corresponding to
|
|
690
|
-
a literal of one of the supported types.
|
|
691
|
-
|
|
692
|
-
Tuple / frozenset literals must contain only valid literal values as items.
|
|
693
|
-
|
|
694
|
-
NOTE: You can use this to load boxed (Python) int objects. Use
|
|
695
|
-
Integer to load unboxed, tagged integers or fixed-width,
|
|
696
|
-
low-level integers.
|
|
697
|
-
|
|
698
|
-
For int literals, both int_rprimitive (CPyTagged) and
|
|
699
|
-
object_primitive (PyObject *) are supported as rtype. However,
|
|
700
|
-
when using int_rprimitive, the value must *not* be small enough
|
|
701
|
-
to fit in an unboxed integer.
|
|
702
|
-
"""
|
|
703
|
-
|
|
704
|
-
error_kind = ERR_NEVER
|
|
705
|
-
is_borrowed = True
|
|
706
|
-
|
|
707
|
-
def __init__(self, value: LiteralValue, rtype: RType) -> None:
|
|
708
|
-
self.value = value
|
|
709
|
-
self.type = rtype
|
|
710
|
-
|
|
711
|
-
def sources(self) -> list[Value]:
|
|
712
|
-
return []
|
|
713
|
-
|
|
714
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
715
|
-
return visitor.visit_load_literal(self)
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
class GetAttr(RegisterOp):
|
|
719
|
-
"""obj.attr (for a native object)"""
|
|
720
|
-
|
|
721
|
-
error_kind = ERR_MAGIC
|
|
722
|
-
|
|
723
|
-
def __init__(self, obj: Value, attr: str, line: int, *, borrow: bool = False) -> None:
|
|
724
|
-
super().__init__(line)
|
|
725
|
-
self.obj = obj
|
|
726
|
-
self.attr = attr
|
|
727
|
-
assert isinstance(obj.type, RInstance), "Attribute access not supported: %s" % obj.type
|
|
728
|
-
self.class_type = obj.type
|
|
729
|
-
attr_type = obj.type.attr_type(attr)
|
|
730
|
-
self.type = attr_type
|
|
731
|
-
if attr_type.error_overlap:
|
|
732
|
-
self.error_kind = ERR_MAGIC_OVERLAPPING
|
|
733
|
-
self.is_borrowed = borrow and attr_type.is_refcounted
|
|
734
|
-
|
|
735
|
-
def sources(self) -> list[Value]:
|
|
736
|
-
return [self.obj]
|
|
737
|
-
|
|
738
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
739
|
-
return visitor.visit_get_attr(self)
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
class SetAttr(RegisterOp):
|
|
743
|
-
"""obj.attr = src (for a native object)
|
|
744
|
-
|
|
745
|
-
Steals the reference to src.
|
|
746
|
-
"""
|
|
747
|
-
|
|
748
|
-
error_kind = ERR_FALSE
|
|
749
|
-
|
|
750
|
-
def __init__(self, obj: Value, attr: str, src: Value, line: int) -> None:
|
|
751
|
-
super().__init__(line)
|
|
752
|
-
self.obj = obj
|
|
753
|
-
self.attr = attr
|
|
754
|
-
self.src = src
|
|
755
|
-
assert isinstance(obj.type, RInstance), "Attribute access not supported: %s" % obj.type
|
|
756
|
-
self.class_type = obj.type
|
|
757
|
-
self.type = bool_rprimitive
|
|
758
|
-
# If True, we can safely assume that the attribute is previously undefined
|
|
759
|
-
# and we don't use a setter
|
|
760
|
-
self.is_init = False
|
|
761
|
-
|
|
762
|
-
def mark_as_initializer(self) -> None:
|
|
763
|
-
self.is_init = True
|
|
764
|
-
self.error_kind = ERR_NEVER
|
|
765
|
-
self.type = void_rtype
|
|
766
|
-
|
|
767
|
-
def sources(self) -> list[Value]:
|
|
768
|
-
return [self.obj, self.src]
|
|
769
|
-
|
|
770
|
-
def stolen(self) -> list[Value]:
|
|
771
|
-
return [self.src]
|
|
772
|
-
|
|
773
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
774
|
-
return visitor.visit_set_attr(self)
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
# Default name space for statics, variables
|
|
778
|
-
NAMESPACE_STATIC: Final = "static"
|
|
779
|
-
|
|
780
|
-
# Static namespace for pointers to native type objects
|
|
781
|
-
NAMESPACE_TYPE: Final = "type"
|
|
782
|
-
|
|
783
|
-
# Namespace for modules
|
|
784
|
-
NAMESPACE_MODULE: Final = "module"
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
class LoadStatic(RegisterOp):
|
|
788
|
-
"""Load a static name (name :: static).
|
|
789
|
-
|
|
790
|
-
Load a C static variable/pointer. The namespace for statics is shared
|
|
791
|
-
for the entire compilation group. You can optionally provide a module
|
|
792
|
-
name and a sub-namespace identifier for additional namespacing to avoid
|
|
793
|
-
name conflicts. The static namespace does not overlap with other C names,
|
|
794
|
-
since the final C name will get a prefix, so conflicts only must be
|
|
795
|
-
avoided with other statics.
|
|
796
|
-
"""
|
|
797
|
-
|
|
798
|
-
error_kind = ERR_NEVER
|
|
799
|
-
is_borrowed = True
|
|
800
|
-
|
|
801
|
-
def __init__(
|
|
802
|
-
self,
|
|
803
|
-
type: RType,
|
|
804
|
-
identifier: str,
|
|
805
|
-
module_name: str | None = None,
|
|
806
|
-
namespace: str = NAMESPACE_STATIC,
|
|
807
|
-
line: int = -1,
|
|
808
|
-
ann: object = None,
|
|
809
|
-
) -> None:
|
|
810
|
-
super().__init__(line)
|
|
811
|
-
self.identifier = identifier
|
|
812
|
-
self.module_name = module_name
|
|
813
|
-
self.namespace = namespace
|
|
814
|
-
self.type = type
|
|
815
|
-
self.ann = ann # An object to pretty print with the load
|
|
816
|
-
|
|
817
|
-
def sources(self) -> list[Value]:
|
|
818
|
-
return []
|
|
819
|
-
|
|
820
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
821
|
-
return visitor.visit_load_static(self)
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
class InitStatic(RegisterOp):
|
|
825
|
-
"""static = value :: static
|
|
826
|
-
|
|
827
|
-
Initialize a C static variable/pointer. See everything in LoadStatic.
|
|
828
|
-
"""
|
|
829
|
-
|
|
830
|
-
error_kind = ERR_NEVER
|
|
831
|
-
|
|
832
|
-
def __init__(
|
|
833
|
-
self,
|
|
834
|
-
value: Value,
|
|
835
|
-
identifier: str,
|
|
836
|
-
module_name: str | None = None,
|
|
837
|
-
namespace: str = NAMESPACE_STATIC,
|
|
838
|
-
line: int = -1,
|
|
839
|
-
) -> None:
|
|
840
|
-
super().__init__(line)
|
|
841
|
-
self.identifier = identifier
|
|
842
|
-
self.module_name = module_name
|
|
843
|
-
self.namespace = namespace
|
|
844
|
-
self.value = value
|
|
845
|
-
|
|
846
|
-
def sources(self) -> list[Value]:
|
|
847
|
-
return [self.value]
|
|
848
|
-
|
|
849
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
850
|
-
return visitor.visit_init_static(self)
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
class TupleSet(RegisterOp):
|
|
854
|
-
"""dest = (reg, ...) (for fixed-length tuple)"""
|
|
855
|
-
|
|
856
|
-
error_kind = ERR_NEVER
|
|
857
|
-
|
|
858
|
-
def __init__(self, items: list[Value], line: int) -> None:
|
|
859
|
-
super().__init__(line)
|
|
860
|
-
self.items = items
|
|
861
|
-
# Don't keep track of the fact that an int is short after it
|
|
862
|
-
# is put into a tuple, since we don't properly implement
|
|
863
|
-
# runtime subtyping for tuples.
|
|
864
|
-
self.tuple_type = RTuple(
|
|
865
|
-
[
|
|
866
|
-
arg.type if not is_short_int_rprimitive(arg.type) else int_rprimitive
|
|
867
|
-
for arg in items
|
|
868
|
-
]
|
|
869
|
-
)
|
|
870
|
-
self.type = self.tuple_type
|
|
871
|
-
|
|
872
|
-
def sources(self) -> list[Value]:
|
|
873
|
-
return self.items.copy()
|
|
874
|
-
|
|
875
|
-
def stolen(self) -> list[Value]:
|
|
876
|
-
return self.items.copy()
|
|
877
|
-
|
|
878
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
879
|
-
return visitor.visit_tuple_set(self)
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
class TupleGet(RegisterOp):
|
|
883
|
-
"""Get item of a fixed-length tuple (src[index])."""
|
|
884
|
-
|
|
885
|
-
error_kind = ERR_NEVER
|
|
886
|
-
|
|
887
|
-
def __init__(self, src: Value, index: int, line: int = -1, *, borrow: bool = False) -> None:
|
|
888
|
-
super().__init__(line)
|
|
889
|
-
self.src = src
|
|
890
|
-
self.index = index
|
|
891
|
-
assert isinstance(src.type, RTuple), "TupleGet only operates on tuples"
|
|
892
|
-
assert index >= 0
|
|
893
|
-
self.type = src.type.types[index]
|
|
894
|
-
self.is_borrowed = borrow
|
|
895
|
-
|
|
896
|
-
def sources(self) -> list[Value]:
|
|
897
|
-
return [self.src]
|
|
898
|
-
|
|
899
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
900
|
-
return visitor.visit_tuple_get(self)
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
class Cast(RegisterOp):
|
|
904
|
-
"""cast(type, src)
|
|
905
|
-
|
|
906
|
-
Perform a runtime type check (no representation or value conversion).
|
|
907
|
-
|
|
908
|
-
DO NOT increment reference counts.
|
|
909
|
-
"""
|
|
910
|
-
|
|
911
|
-
error_kind = ERR_MAGIC
|
|
912
|
-
|
|
913
|
-
def __init__(self, src: Value, typ: RType, line: int, *, borrow: bool = False) -> None:
|
|
914
|
-
super().__init__(line)
|
|
915
|
-
self.src = src
|
|
916
|
-
self.type = typ
|
|
917
|
-
self.is_borrowed = borrow
|
|
918
|
-
|
|
919
|
-
def sources(self) -> list[Value]:
|
|
920
|
-
return [self.src]
|
|
921
|
-
|
|
922
|
-
def stolen(self) -> list[Value]:
|
|
923
|
-
if self.is_borrowed:
|
|
924
|
-
return []
|
|
925
|
-
return [self.src]
|
|
926
|
-
|
|
927
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
928
|
-
return visitor.visit_cast(self)
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
class Box(RegisterOp):
|
|
932
|
-
"""box(type, src)
|
|
933
|
-
|
|
934
|
-
This converts from a potentially unboxed representation to a straight Python object.
|
|
935
|
-
Only supported for types with an unboxed representation.
|
|
936
|
-
"""
|
|
937
|
-
|
|
938
|
-
error_kind = ERR_NEVER
|
|
939
|
-
|
|
940
|
-
def __init__(self, src: Value, line: int = -1) -> None:
|
|
941
|
-
super().__init__(line)
|
|
942
|
-
self.src = src
|
|
943
|
-
self.type = object_rprimitive
|
|
944
|
-
# When we box None and bool values, we produce a borrowed result
|
|
945
|
-
if (
|
|
946
|
-
is_none_rprimitive(self.src.type)
|
|
947
|
-
or is_bool_rprimitive(self.src.type)
|
|
948
|
-
or is_bit_rprimitive(self.src.type)
|
|
949
|
-
):
|
|
950
|
-
self.is_borrowed = True
|
|
951
|
-
|
|
952
|
-
def sources(self) -> list[Value]:
|
|
953
|
-
return [self.src]
|
|
954
|
-
|
|
955
|
-
def stolen(self) -> list[Value]:
|
|
956
|
-
return [self.src]
|
|
957
|
-
|
|
958
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
959
|
-
return visitor.visit_box(self)
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
class Unbox(RegisterOp):
|
|
963
|
-
"""unbox(type, src)
|
|
964
|
-
|
|
965
|
-
This is similar to a cast, but it also changes to a (potentially) unboxed runtime
|
|
966
|
-
representation. Only supported for types with an unboxed representation.
|
|
967
|
-
"""
|
|
968
|
-
|
|
969
|
-
def __init__(self, src: Value, typ: RType, line: int) -> None:
|
|
970
|
-
self.src = src
|
|
971
|
-
self.type = typ
|
|
972
|
-
if not typ.error_overlap:
|
|
973
|
-
self.error_kind = ERR_MAGIC
|
|
974
|
-
else:
|
|
975
|
-
self.error_kind = ERR_MAGIC_OVERLAPPING
|
|
976
|
-
super().__init__(line)
|
|
977
|
-
|
|
978
|
-
def sources(self) -> list[Value]:
|
|
979
|
-
return [self.src]
|
|
980
|
-
|
|
981
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
982
|
-
return visitor.visit_unbox(self)
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
class RaiseStandardError(RegisterOp):
|
|
986
|
-
"""Raise built-in exception with an optional error string.
|
|
987
|
-
|
|
988
|
-
We have a separate opcode for this for convenience and to
|
|
989
|
-
generate smaller, more idiomatic C code.
|
|
990
|
-
"""
|
|
991
|
-
|
|
992
|
-
# TODO: Make it more explicit at IR level that this always raises
|
|
993
|
-
|
|
994
|
-
error_kind = ERR_FALSE
|
|
995
|
-
|
|
996
|
-
VALUE_ERROR: Final = "ValueError"
|
|
997
|
-
ASSERTION_ERROR: Final = "AssertionError"
|
|
998
|
-
STOP_ITERATION: Final = "StopIteration"
|
|
999
|
-
UNBOUND_LOCAL_ERROR: Final = "UnboundLocalError"
|
|
1000
|
-
RUNTIME_ERROR: Final = "RuntimeError"
|
|
1001
|
-
NAME_ERROR: Final = "NameError"
|
|
1002
|
-
ZERO_DIVISION_ERROR: Final = "ZeroDivisionError"
|
|
1003
|
-
|
|
1004
|
-
def __init__(self, class_name: str, value: str | Value | None, line: int) -> None:
|
|
1005
|
-
super().__init__(line)
|
|
1006
|
-
self.class_name = class_name
|
|
1007
|
-
self.value = value
|
|
1008
|
-
self.type = bool_rprimitive
|
|
1009
|
-
|
|
1010
|
-
def sources(self) -> list[Value]:
|
|
1011
|
-
return []
|
|
1012
|
-
|
|
1013
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1014
|
-
return visitor.visit_raise_standard_error(self)
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
# True steals all arguments, False steals none, a list steals those in matching positions
|
|
1018
|
-
StealsDescription = Union[bool, List[bool]]
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
class CallC(RegisterOp):
|
|
1022
|
-
"""result = function(arg0, arg1, ...)
|
|
1023
|
-
|
|
1024
|
-
Call a C function that is not a compiled/native function (for
|
|
1025
|
-
example, a Python C API function). Use Call to call native
|
|
1026
|
-
functions.
|
|
1027
|
-
"""
|
|
1028
|
-
|
|
1029
|
-
def __init__(
|
|
1030
|
-
self,
|
|
1031
|
-
function_name: str,
|
|
1032
|
-
args: list[Value],
|
|
1033
|
-
ret_type: RType,
|
|
1034
|
-
steals: StealsDescription,
|
|
1035
|
-
is_borrowed: bool,
|
|
1036
|
-
error_kind: int,
|
|
1037
|
-
line: int,
|
|
1038
|
-
var_arg_idx: int = -1,
|
|
1039
|
-
) -> None:
|
|
1040
|
-
self.error_kind = error_kind
|
|
1041
|
-
super().__init__(line)
|
|
1042
|
-
self.function_name = function_name
|
|
1043
|
-
self.args = args
|
|
1044
|
-
self.type = ret_type
|
|
1045
|
-
self.steals = steals
|
|
1046
|
-
self.is_borrowed = is_borrowed
|
|
1047
|
-
# The position of the first variable argument in args (if >= 0)
|
|
1048
|
-
self.var_arg_idx = var_arg_idx
|
|
1049
|
-
|
|
1050
|
-
def sources(self) -> list[Value]:
|
|
1051
|
-
return self.args
|
|
1052
|
-
|
|
1053
|
-
def stolen(self) -> list[Value]:
|
|
1054
|
-
if isinstance(self.steals, list):
|
|
1055
|
-
assert len(self.steals) == len(self.args)
|
|
1056
|
-
return [arg for arg, steal in zip(self.args, self.steals) if steal]
|
|
1057
|
-
else:
|
|
1058
|
-
return [] if not self.steals else self.sources()
|
|
1059
|
-
|
|
1060
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1061
|
-
return visitor.visit_call_c(self)
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
class Truncate(RegisterOp):
|
|
1065
|
-
"""result = truncate src from src_type to dst_type
|
|
1066
|
-
|
|
1067
|
-
Truncate a value from type with more bits to type with less bits.
|
|
1068
|
-
|
|
1069
|
-
dst_type and src_type can be native integer types, bools or tagged
|
|
1070
|
-
integers. Tagged integers should have the tag bit unset.
|
|
1071
|
-
"""
|
|
1072
|
-
|
|
1073
|
-
error_kind = ERR_NEVER
|
|
1074
|
-
|
|
1075
|
-
def __init__(self, src: Value, dst_type: RType, line: int = -1) -> None:
|
|
1076
|
-
super().__init__(line)
|
|
1077
|
-
self.src = src
|
|
1078
|
-
self.type = dst_type
|
|
1079
|
-
self.src_type = src.type
|
|
1080
|
-
|
|
1081
|
-
def sources(self) -> list[Value]:
|
|
1082
|
-
return [self.src]
|
|
1083
|
-
|
|
1084
|
-
def stolen(self) -> list[Value]:
|
|
1085
|
-
return []
|
|
1086
|
-
|
|
1087
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1088
|
-
return visitor.visit_truncate(self)
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
class Extend(RegisterOp):
|
|
1092
|
-
"""result = extend src from src_type to dst_type
|
|
1093
|
-
|
|
1094
|
-
Extend a value from a type with fewer bits to a type with more bits.
|
|
1095
|
-
|
|
1096
|
-
dst_type and src_type can be native integer types, bools or tagged
|
|
1097
|
-
integers. Tagged integers should have the tag bit unset.
|
|
1098
|
-
|
|
1099
|
-
If 'signed' is true, perform sign extension. Otherwise, the result will be
|
|
1100
|
-
zero extended.
|
|
1101
|
-
"""
|
|
1102
|
-
|
|
1103
|
-
error_kind = ERR_NEVER
|
|
1104
|
-
|
|
1105
|
-
def __init__(self, src: Value, dst_type: RType, signed: bool, line: int = -1) -> None:
|
|
1106
|
-
super().__init__(line)
|
|
1107
|
-
self.src = src
|
|
1108
|
-
self.type = dst_type
|
|
1109
|
-
self.src_type = src.type
|
|
1110
|
-
self.signed = signed
|
|
1111
|
-
|
|
1112
|
-
def sources(self) -> list[Value]:
|
|
1113
|
-
return [self.src]
|
|
1114
|
-
|
|
1115
|
-
def stolen(self) -> list[Value]:
|
|
1116
|
-
return []
|
|
1117
|
-
|
|
1118
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1119
|
-
return visitor.visit_extend(self)
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
class LoadGlobal(RegisterOp):
|
|
1123
|
-
"""Load a low-level global variable/pointer.
|
|
1124
|
-
|
|
1125
|
-
Note that can't be used to directly load Python module-level
|
|
1126
|
-
global variable, since they are stored in a globals dictionary
|
|
1127
|
-
and accessed using dictionary operations.
|
|
1128
|
-
"""
|
|
1129
|
-
|
|
1130
|
-
error_kind = ERR_NEVER
|
|
1131
|
-
is_borrowed = True
|
|
1132
|
-
|
|
1133
|
-
def __init__(self, type: RType, identifier: str, line: int = -1, ann: object = None) -> None:
|
|
1134
|
-
super().__init__(line)
|
|
1135
|
-
self.identifier = identifier
|
|
1136
|
-
self.type = type
|
|
1137
|
-
self.ann = ann # An object to pretty print with the load
|
|
1138
|
-
|
|
1139
|
-
def sources(self) -> list[Value]:
|
|
1140
|
-
return []
|
|
1141
|
-
|
|
1142
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1143
|
-
return visitor.visit_load_global(self)
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
class IntOp(RegisterOp):
|
|
1147
|
-
"""Binary arithmetic or bitwise op on integer operands (e.g., r1 = r2 + r3).
|
|
1148
|
-
|
|
1149
|
-
These ops are low-level and are similar to the corresponding C
|
|
1150
|
-
operations.
|
|
1151
|
-
|
|
1152
|
-
The left and right values must have low-level integer types with
|
|
1153
|
-
compatible representations. Fixed-width integers, short_int_rprimitive,
|
|
1154
|
-
bool_rprimitive and bit_rprimitive are supported.
|
|
1155
|
-
|
|
1156
|
-
For tagged (arbitrary-precision) integer ops look at mypyc.primitives.int_ops.
|
|
1157
|
-
"""
|
|
1158
|
-
|
|
1159
|
-
error_kind = ERR_NEVER
|
|
1160
|
-
|
|
1161
|
-
# Arithmetic ops
|
|
1162
|
-
ADD: Final = 0
|
|
1163
|
-
SUB: Final = 1
|
|
1164
|
-
MUL: Final = 2
|
|
1165
|
-
DIV: Final = 3
|
|
1166
|
-
MOD: Final = 4
|
|
1167
|
-
|
|
1168
|
-
# Bitwise ops
|
|
1169
|
-
AND: Final = 200
|
|
1170
|
-
OR: Final = 201
|
|
1171
|
-
XOR: Final = 202
|
|
1172
|
-
LEFT_SHIFT: Final = 203
|
|
1173
|
-
RIGHT_SHIFT: Final = 204
|
|
1174
|
-
|
|
1175
|
-
op_str: Final = {
|
|
1176
|
-
ADD: "+",
|
|
1177
|
-
SUB: "-",
|
|
1178
|
-
MUL: "*",
|
|
1179
|
-
DIV: "/",
|
|
1180
|
-
MOD: "%",
|
|
1181
|
-
AND: "&",
|
|
1182
|
-
OR: "|",
|
|
1183
|
-
XOR: "^",
|
|
1184
|
-
LEFT_SHIFT: "<<",
|
|
1185
|
-
RIGHT_SHIFT: ">>",
|
|
1186
|
-
}
|
|
1187
|
-
|
|
1188
|
-
def __init__(self, type: RType, lhs: Value, rhs: Value, op: int, line: int = -1) -> None:
|
|
1189
|
-
super().__init__(line)
|
|
1190
|
-
self.type = type
|
|
1191
|
-
self.lhs = lhs
|
|
1192
|
-
self.rhs = rhs
|
|
1193
|
-
self.op = op
|
|
1194
|
-
|
|
1195
|
-
def sources(self) -> list[Value]:
|
|
1196
|
-
return [self.lhs, self.rhs]
|
|
1197
|
-
|
|
1198
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1199
|
-
return visitor.visit_int_op(self)
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
# We can't have this in the IntOp class body, because of
|
|
1203
|
-
# https://github.com/mypyc/mypyc/issues/932.
|
|
1204
|
-
int_op_to_id: Final = {op: op_id for op_id, op in IntOp.op_str.items()}
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
class ComparisonOp(RegisterOp):
|
|
1208
|
-
"""Low-level comparison op for integers and pointers.
|
|
1209
|
-
|
|
1210
|
-
Both unsigned and signed comparisons are supported. Supports
|
|
1211
|
-
comparisons between fixed-width integer types and pointer types.
|
|
1212
|
-
The operands should have matching sizes.
|
|
1213
|
-
|
|
1214
|
-
The result is always a bit (representing a boolean).
|
|
1215
|
-
|
|
1216
|
-
Python semantics, such as calling __eq__, are not supported.
|
|
1217
|
-
"""
|
|
1218
|
-
|
|
1219
|
-
# Must be ERR_NEVER or ERR_FALSE. ERR_FALSE means that a false result
|
|
1220
|
-
# indicates that an exception has been raised and should be propagated.
|
|
1221
|
-
error_kind = ERR_NEVER
|
|
1222
|
-
|
|
1223
|
-
# S for signed and U for unsigned
|
|
1224
|
-
EQ: Final = 100
|
|
1225
|
-
NEQ: Final = 101
|
|
1226
|
-
SLT: Final = 102
|
|
1227
|
-
SGT: Final = 103
|
|
1228
|
-
SLE: Final = 104
|
|
1229
|
-
SGE: Final = 105
|
|
1230
|
-
ULT: Final = 106
|
|
1231
|
-
UGT: Final = 107
|
|
1232
|
-
ULE: Final = 108
|
|
1233
|
-
UGE: Final = 109
|
|
1234
|
-
|
|
1235
|
-
op_str: Final = {
|
|
1236
|
-
EQ: "==",
|
|
1237
|
-
NEQ: "!=",
|
|
1238
|
-
SLT: "<",
|
|
1239
|
-
SGT: ">",
|
|
1240
|
-
SLE: "<=",
|
|
1241
|
-
SGE: ">=",
|
|
1242
|
-
ULT: "<",
|
|
1243
|
-
UGT: ">",
|
|
1244
|
-
ULE: "<=",
|
|
1245
|
-
UGE: ">=",
|
|
1246
|
-
}
|
|
1247
|
-
|
|
1248
|
-
signed_ops: Final = {"==": EQ, "!=": NEQ, "<": SLT, ">": SGT, "<=": SLE, ">=": SGE}
|
|
1249
|
-
unsigned_ops: Final = {"==": EQ, "!=": NEQ, "<": ULT, ">": UGT, "<=": ULE, ">=": UGE}
|
|
1250
|
-
|
|
1251
|
-
def __init__(self, lhs: Value, rhs: Value, op: int, line: int = -1) -> None:
|
|
1252
|
-
super().__init__(line)
|
|
1253
|
-
self.type = bit_rprimitive
|
|
1254
|
-
self.lhs = lhs
|
|
1255
|
-
self.rhs = rhs
|
|
1256
|
-
self.op = op
|
|
1257
|
-
|
|
1258
|
-
def sources(self) -> list[Value]:
|
|
1259
|
-
return [self.lhs, self.rhs]
|
|
1260
|
-
|
|
1261
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1262
|
-
return visitor.visit_comparison_op(self)
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
class FloatOp(RegisterOp):
|
|
1266
|
-
"""Binary float arithmetic op (e.g., r1 = r2 + r3).
|
|
1267
|
-
|
|
1268
|
-
These ops are low-level and are similar to the corresponding C
|
|
1269
|
-
operations (and somewhat different from Python operations).
|
|
1270
|
-
|
|
1271
|
-
The left and right values must be floats.
|
|
1272
|
-
"""
|
|
1273
|
-
|
|
1274
|
-
error_kind = ERR_NEVER
|
|
1275
|
-
|
|
1276
|
-
ADD: Final = 0
|
|
1277
|
-
SUB: Final = 1
|
|
1278
|
-
MUL: Final = 2
|
|
1279
|
-
DIV: Final = 3
|
|
1280
|
-
MOD: Final = 4
|
|
1281
|
-
|
|
1282
|
-
op_str: Final = {ADD: "+", SUB: "-", MUL: "*", DIV: "/", MOD: "%"}
|
|
1283
|
-
|
|
1284
|
-
def __init__(self, lhs: Value, rhs: Value, op: int, line: int = -1) -> None:
|
|
1285
|
-
super().__init__(line)
|
|
1286
|
-
self.type = float_rprimitive
|
|
1287
|
-
self.lhs = lhs
|
|
1288
|
-
self.rhs = rhs
|
|
1289
|
-
self.op = op
|
|
1290
|
-
|
|
1291
|
-
def sources(self) -> list[Value]:
|
|
1292
|
-
return [self.lhs, self.rhs]
|
|
1293
|
-
|
|
1294
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1295
|
-
return visitor.visit_float_op(self)
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
# We can't have this in the FloatOp class body, because of
|
|
1299
|
-
# https://github.com/mypyc/mypyc/issues/932.
|
|
1300
|
-
float_op_to_id: Final = {op: op_id for op_id, op in FloatOp.op_str.items()}
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
class FloatNeg(RegisterOp):
|
|
1304
|
-
"""Float negation op (r1 = -r2)."""
|
|
1305
|
-
|
|
1306
|
-
error_kind = ERR_NEVER
|
|
1307
|
-
|
|
1308
|
-
def __init__(self, src: Value, line: int = -1) -> None:
|
|
1309
|
-
super().__init__(line)
|
|
1310
|
-
self.type = float_rprimitive
|
|
1311
|
-
self.src = src
|
|
1312
|
-
|
|
1313
|
-
def sources(self) -> list[Value]:
|
|
1314
|
-
return [self.src]
|
|
1315
|
-
|
|
1316
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1317
|
-
return visitor.visit_float_neg(self)
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
class FloatComparisonOp(RegisterOp):
|
|
1321
|
-
"""Low-level comparison op for floats."""
|
|
1322
|
-
|
|
1323
|
-
error_kind = ERR_NEVER
|
|
1324
|
-
|
|
1325
|
-
EQ: Final = 200
|
|
1326
|
-
NEQ: Final = 201
|
|
1327
|
-
LT: Final = 202
|
|
1328
|
-
GT: Final = 203
|
|
1329
|
-
LE: Final = 204
|
|
1330
|
-
GE: Final = 205
|
|
1331
|
-
|
|
1332
|
-
op_str: Final = {EQ: "==", NEQ: "!=", LT: "<", GT: ">", LE: "<=", GE: ">="}
|
|
1333
|
-
|
|
1334
|
-
def __init__(self, lhs: Value, rhs: Value, op: int, line: int = -1) -> None:
|
|
1335
|
-
super().__init__(line)
|
|
1336
|
-
self.type = bit_rprimitive
|
|
1337
|
-
self.lhs = lhs
|
|
1338
|
-
self.rhs = rhs
|
|
1339
|
-
self.op = op
|
|
1340
|
-
|
|
1341
|
-
def sources(self) -> list[Value]:
|
|
1342
|
-
return [self.lhs, self.rhs]
|
|
1343
|
-
|
|
1344
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1345
|
-
return visitor.visit_float_comparison_op(self)
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
# We can't have this in the FloatOp class body, because of
|
|
1349
|
-
# https://github.com/mypyc/mypyc/issues/932.
|
|
1350
|
-
float_comparison_op_to_id: Final = {op: op_id for op_id, op in FloatComparisonOp.op_str.items()}
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
class LoadMem(RegisterOp):
|
|
1354
|
-
"""Read a memory location: result = *(type *)src.
|
|
1355
|
-
|
|
1356
|
-
Attributes:
|
|
1357
|
-
type: Type of the read value
|
|
1358
|
-
src: Pointer to memory to read
|
|
1359
|
-
"""
|
|
1360
|
-
|
|
1361
|
-
error_kind = ERR_NEVER
|
|
1362
|
-
|
|
1363
|
-
def __init__(self, type: RType, src: Value, line: int = -1) -> None:
|
|
1364
|
-
super().__init__(line)
|
|
1365
|
-
self.type = type
|
|
1366
|
-
# TODO: for now we enforce that the src memory address should be Py_ssize_t
|
|
1367
|
-
# later we should also support same width unsigned int
|
|
1368
|
-
assert is_pointer_rprimitive(src.type)
|
|
1369
|
-
self.src = src
|
|
1370
|
-
self.is_borrowed = True
|
|
1371
|
-
|
|
1372
|
-
def sources(self) -> list[Value]:
|
|
1373
|
-
return [self.src]
|
|
1374
|
-
|
|
1375
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1376
|
-
return visitor.visit_load_mem(self)
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
class SetMem(Op):
|
|
1380
|
-
"""Write to a memory location: *(type *)dest = src
|
|
1381
|
-
|
|
1382
|
-
Attributes:
|
|
1383
|
-
type: Type of the written value
|
|
1384
|
-
dest: Pointer to memory to write
|
|
1385
|
-
src: Source value
|
|
1386
|
-
"""
|
|
1387
|
-
|
|
1388
|
-
error_kind = ERR_NEVER
|
|
1389
|
-
|
|
1390
|
-
def __init__(self, type: RType, dest: Value, src: Value, line: int = -1) -> None:
|
|
1391
|
-
super().__init__(line)
|
|
1392
|
-
self.type = void_rtype
|
|
1393
|
-
self.dest_type = type
|
|
1394
|
-
self.src = src
|
|
1395
|
-
self.dest = dest
|
|
1396
|
-
|
|
1397
|
-
def sources(self) -> list[Value]:
|
|
1398
|
-
return [self.src, self.dest]
|
|
1399
|
-
|
|
1400
|
-
def stolen(self) -> list[Value]:
|
|
1401
|
-
return [self.src]
|
|
1402
|
-
|
|
1403
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1404
|
-
return visitor.visit_set_mem(self)
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
class GetElementPtr(RegisterOp):
|
|
1408
|
-
"""Get the address of a struct element.
|
|
1409
|
-
|
|
1410
|
-
Note that you may need to use KeepAlive to avoid the struct
|
|
1411
|
-
being freed, if it's reference counted, such as PyObject *.
|
|
1412
|
-
"""
|
|
1413
|
-
|
|
1414
|
-
error_kind = ERR_NEVER
|
|
1415
|
-
|
|
1416
|
-
def __init__(self, src: Value, src_type: RType, field: str, line: int = -1) -> None:
|
|
1417
|
-
super().__init__(line)
|
|
1418
|
-
self.type = pointer_rprimitive
|
|
1419
|
-
self.src = src
|
|
1420
|
-
self.src_type = src_type
|
|
1421
|
-
self.field = field
|
|
1422
|
-
|
|
1423
|
-
def sources(self) -> list[Value]:
|
|
1424
|
-
return [self.src]
|
|
1425
|
-
|
|
1426
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1427
|
-
return visitor.visit_get_element_ptr(self)
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
class LoadAddress(RegisterOp):
|
|
1431
|
-
"""Get the address of a value: result = (type)&src
|
|
1432
|
-
|
|
1433
|
-
Attributes:
|
|
1434
|
-
type: Type of the loaded address(e.g. ptr/object_ptr)
|
|
1435
|
-
src: Source value (str for globals like 'PyList_Type',
|
|
1436
|
-
Register for temporary values or locals, LoadStatic
|
|
1437
|
-
for statics.)
|
|
1438
|
-
"""
|
|
1439
|
-
|
|
1440
|
-
error_kind = ERR_NEVER
|
|
1441
|
-
is_borrowed = True
|
|
1442
|
-
|
|
1443
|
-
def __init__(self, type: RType, src: str | Register | LoadStatic, line: int = -1) -> None:
|
|
1444
|
-
super().__init__(line)
|
|
1445
|
-
self.type = type
|
|
1446
|
-
self.src = src
|
|
1447
|
-
|
|
1448
|
-
def sources(self) -> list[Value]:
|
|
1449
|
-
if isinstance(self.src, Register):
|
|
1450
|
-
return [self.src]
|
|
1451
|
-
else:
|
|
1452
|
-
return []
|
|
1453
|
-
|
|
1454
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1455
|
-
return visitor.visit_load_address(self)
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
class KeepAlive(RegisterOp):
|
|
1459
|
-
"""A no-op operation that ensures source values aren't freed.
|
|
1460
|
-
|
|
1461
|
-
This is sometimes useful to avoid decref when a reference is still
|
|
1462
|
-
being held but not seen by the compiler.
|
|
1463
|
-
|
|
1464
|
-
A typical use case is like this (C-like pseudocode):
|
|
1465
|
-
|
|
1466
|
-
ptr = &x.item
|
|
1467
|
-
r = *ptr
|
|
1468
|
-
keep_alive x # x must not be freed here
|
|
1469
|
-
# x may be freed here
|
|
1470
|
-
|
|
1471
|
-
If we didn't have "keep_alive x", x could be freed immediately
|
|
1472
|
-
after taking the address of 'item', resulting in a read after free
|
|
1473
|
-
on the second line.
|
|
1474
|
-
|
|
1475
|
-
If 'steal' is true, the value is considered to be stolen at
|
|
1476
|
-
this op, i.e. it won't be decref'd. You need to ensure that
|
|
1477
|
-
the value is freed otherwise, perhaps by using borrowing
|
|
1478
|
-
followed by Unborrow.
|
|
1479
|
-
|
|
1480
|
-
Be careful with steal=True -- this can cause memory leaks.
|
|
1481
|
-
"""
|
|
1482
|
-
|
|
1483
|
-
error_kind = ERR_NEVER
|
|
1484
|
-
|
|
1485
|
-
def __init__(self, src: list[Value], *, steal: bool = False) -> None:
|
|
1486
|
-
assert src
|
|
1487
|
-
self.src = src
|
|
1488
|
-
self.steal = steal
|
|
1489
|
-
|
|
1490
|
-
def sources(self) -> list[Value]:
|
|
1491
|
-
return self.src.copy()
|
|
1492
|
-
|
|
1493
|
-
def stolen(self) -> list[Value]:
|
|
1494
|
-
if self.steal:
|
|
1495
|
-
return self.src.copy()
|
|
1496
|
-
return []
|
|
1497
|
-
|
|
1498
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1499
|
-
return visitor.visit_keep_alive(self)
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
class Unborrow(RegisterOp):
|
|
1503
|
-
"""A no-op op to create a regular reference from a borrowed one.
|
|
1504
|
-
|
|
1505
|
-
Borrowed references can only be used temporarily and the reference
|
|
1506
|
-
counts won't be managed. This value will be refcounted normally.
|
|
1507
|
-
|
|
1508
|
-
This is mainly useful if you split an aggregate value, such as
|
|
1509
|
-
a tuple, into components using borrowed values (to avoid increfs),
|
|
1510
|
-
and want to treat the components as sharing the original managed
|
|
1511
|
-
reference. You'll also need to use KeepAlive with steal=True to
|
|
1512
|
-
"consume" the original tuple reference:
|
|
1513
|
-
|
|
1514
|
-
# t is a 2-tuple
|
|
1515
|
-
r0 = borrow t[0]
|
|
1516
|
-
r1 = borrow t[1]
|
|
1517
|
-
r2 = unborrow r0
|
|
1518
|
-
r3 = unborrow r1
|
|
1519
|
-
# now (r2, r3) represent the tuple as separate items, and the
|
|
1520
|
-
# original tuple can be considered dead and available to be
|
|
1521
|
-
# stolen
|
|
1522
|
-
keep_alive steal t
|
|
1523
|
-
|
|
1524
|
-
Be careful with this -- this can easily cause double freeing.
|
|
1525
|
-
"""
|
|
1526
|
-
|
|
1527
|
-
error_kind = ERR_NEVER
|
|
1528
|
-
|
|
1529
|
-
def __init__(self, src: Value, line: int = -1) -> None:
|
|
1530
|
-
super().__init__(line)
|
|
1531
|
-
assert src.is_borrowed
|
|
1532
|
-
self.src = src
|
|
1533
|
-
self.type = src.type
|
|
1534
|
-
|
|
1535
|
-
def sources(self) -> list[Value]:
|
|
1536
|
-
return [self.src]
|
|
1537
|
-
|
|
1538
|
-
def stolen(self) -> list[Value]:
|
|
1539
|
-
return []
|
|
1540
|
-
|
|
1541
|
-
def accept(self, visitor: OpVisitor[T]) -> T:
|
|
1542
|
-
return visitor.visit_unborrow(self)
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
@trait
|
|
1546
|
-
class OpVisitor(Generic[T]):
|
|
1547
|
-
"""Generic visitor over ops (uses the visitor design pattern)."""
|
|
1548
|
-
|
|
1549
|
-
@abstractmethod
|
|
1550
|
-
def visit_goto(self, op: Goto) -> T:
|
|
1551
|
-
raise NotImplementedError
|
|
1552
|
-
|
|
1553
|
-
@abstractmethod
|
|
1554
|
-
def visit_branch(self, op: Branch) -> T:
|
|
1555
|
-
raise NotImplementedError
|
|
1556
|
-
|
|
1557
|
-
@abstractmethod
|
|
1558
|
-
def visit_return(self, op: Return) -> T:
|
|
1559
|
-
raise NotImplementedError
|
|
1560
|
-
|
|
1561
|
-
@abstractmethod
|
|
1562
|
-
def visit_unreachable(self, op: Unreachable) -> T:
|
|
1563
|
-
raise NotImplementedError
|
|
1564
|
-
|
|
1565
|
-
@abstractmethod
|
|
1566
|
-
def visit_assign(self, op: Assign) -> T:
|
|
1567
|
-
raise NotImplementedError
|
|
1568
|
-
|
|
1569
|
-
@abstractmethod
|
|
1570
|
-
def visit_assign_multi(self, op: AssignMulti) -> T:
|
|
1571
|
-
raise NotImplementedError
|
|
1572
|
-
|
|
1573
|
-
@abstractmethod
|
|
1574
|
-
def visit_load_error_value(self, op: LoadErrorValue) -> T:
|
|
1575
|
-
raise NotImplementedError
|
|
1576
|
-
|
|
1577
|
-
@abstractmethod
|
|
1578
|
-
def visit_load_literal(self, op: LoadLiteral) -> T:
|
|
1579
|
-
raise NotImplementedError
|
|
1580
|
-
|
|
1581
|
-
@abstractmethod
|
|
1582
|
-
def visit_get_attr(self, op: GetAttr) -> T:
|
|
1583
|
-
raise NotImplementedError
|
|
1584
|
-
|
|
1585
|
-
@abstractmethod
|
|
1586
|
-
def visit_set_attr(self, op: SetAttr) -> T:
|
|
1587
|
-
raise NotImplementedError
|
|
1588
|
-
|
|
1589
|
-
@abstractmethod
|
|
1590
|
-
def visit_load_static(self, op: LoadStatic) -> T:
|
|
1591
|
-
raise NotImplementedError
|
|
1592
|
-
|
|
1593
|
-
@abstractmethod
|
|
1594
|
-
def visit_init_static(self, op: InitStatic) -> T:
|
|
1595
|
-
raise NotImplementedError
|
|
1596
|
-
|
|
1597
|
-
@abstractmethod
|
|
1598
|
-
def visit_tuple_get(self, op: TupleGet) -> T:
|
|
1599
|
-
raise NotImplementedError
|
|
1600
|
-
|
|
1601
|
-
@abstractmethod
|
|
1602
|
-
def visit_tuple_set(self, op: TupleSet) -> T:
|
|
1603
|
-
raise NotImplementedError
|
|
1604
|
-
|
|
1605
|
-
def visit_inc_ref(self, op: IncRef) -> T:
|
|
1606
|
-
raise NotImplementedError
|
|
1607
|
-
|
|
1608
|
-
def visit_dec_ref(self, op: DecRef) -> T:
|
|
1609
|
-
raise NotImplementedError
|
|
1610
|
-
|
|
1611
|
-
@abstractmethod
|
|
1612
|
-
def visit_call(self, op: Call) -> T:
|
|
1613
|
-
raise NotImplementedError
|
|
1614
|
-
|
|
1615
|
-
@abstractmethod
|
|
1616
|
-
def visit_method_call(self, op: MethodCall) -> T:
|
|
1617
|
-
raise NotImplementedError
|
|
1618
|
-
|
|
1619
|
-
@abstractmethod
|
|
1620
|
-
def visit_cast(self, op: Cast) -> T:
|
|
1621
|
-
raise NotImplementedError
|
|
1622
|
-
|
|
1623
|
-
@abstractmethod
|
|
1624
|
-
def visit_box(self, op: Box) -> T:
|
|
1625
|
-
raise NotImplementedError
|
|
1626
|
-
|
|
1627
|
-
@abstractmethod
|
|
1628
|
-
def visit_unbox(self, op: Unbox) -> T:
|
|
1629
|
-
raise NotImplementedError
|
|
1630
|
-
|
|
1631
|
-
@abstractmethod
|
|
1632
|
-
def visit_raise_standard_error(self, op: RaiseStandardError) -> T:
|
|
1633
|
-
raise NotImplementedError
|
|
1634
|
-
|
|
1635
|
-
@abstractmethod
|
|
1636
|
-
def visit_call_c(self, op: CallC) -> T:
|
|
1637
|
-
raise NotImplementedError
|
|
1638
|
-
|
|
1639
|
-
@abstractmethod
|
|
1640
|
-
def visit_primitive_op(self, op: PrimitiveOp) -> T:
|
|
1641
|
-
raise NotImplementedError
|
|
1642
|
-
|
|
1643
|
-
@abstractmethod
|
|
1644
|
-
def visit_truncate(self, op: Truncate) -> T:
|
|
1645
|
-
raise NotImplementedError
|
|
1646
|
-
|
|
1647
|
-
@abstractmethod
|
|
1648
|
-
def visit_extend(self, op: Extend) -> T:
|
|
1649
|
-
raise NotImplementedError
|
|
1650
|
-
|
|
1651
|
-
@abstractmethod
|
|
1652
|
-
def visit_load_global(self, op: LoadGlobal) -> T:
|
|
1653
|
-
raise NotImplementedError
|
|
1654
|
-
|
|
1655
|
-
@abstractmethod
|
|
1656
|
-
def visit_int_op(self, op: IntOp) -> T:
|
|
1657
|
-
raise NotImplementedError
|
|
1658
|
-
|
|
1659
|
-
@abstractmethod
|
|
1660
|
-
def visit_comparison_op(self, op: ComparisonOp) -> T:
|
|
1661
|
-
raise NotImplementedError
|
|
1662
|
-
|
|
1663
|
-
@abstractmethod
|
|
1664
|
-
def visit_float_op(self, op: FloatOp) -> T:
|
|
1665
|
-
raise NotImplementedError
|
|
1666
|
-
|
|
1667
|
-
@abstractmethod
|
|
1668
|
-
def visit_float_neg(self, op: FloatNeg) -> T:
|
|
1669
|
-
raise NotImplementedError
|
|
1670
|
-
|
|
1671
|
-
@abstractmethod
|
|
1672
|
-
def visit_float_comparison_op(self, op: FloatComparisonOp) -> T:
|
|
1673
|
-
raise NotImplementedError
|
|
1674
|
-
|
|
1675
|
-
@abstractmethod
|
|
1676
|
-
def visit_load_mem(self, op: LoadMem) -> T:
|
|
1677
|
-
raise NotImplementedError
|
|
1678
|
-
|
|
1679
|
-
@abstractmethod
|
|
1680
|
-
def visit_set_mem(self, op: SetMem) -> T:
|
|
1681
|
-
raise NotImplementedError
|
|
1682
|
-
|
|
1683
|
-
@abstractmethod
|
|
1684
|
-
def visit_get_element_ptr(self, op: GetElementPtr) -> T:
|
|
1685
|
-
raise NotImplementedError
|
|
1686
|
-
|
|
1687
|
-
@abstractmethod
|
|
1688
|
-
def visit_load_address(self, op: LoadAddress) -> T:
|
|
1689
|
-
raise NotImplementedError
|
|
1690
|
-
|
|
1691
|
-
@abstractmethod
|
|
1692
|
-
def visit_keep_alive(self, op: KeepAlive) -> T:
|
|
1693
|
-
raise NotImplementedError
|
|
1694
|
-
|
|
1695
|
-
@abstractmethod
|
|
1696
|
-
def visit_unborrow(self, op: Unborrow) -> T:
|
|
1697
|
-
raise NotImplementedError
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
# TODO: Should the following definition live somewhere else?
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
# We do a three-pass deserialization scheme in order to resolve name
|
|
1704
|
-
# references.
|
|
1705
|
-
# 1. Create an empty ClassIR for each class in an SCC.
|
|
1706
|
-
# 2. Deserialize all of the functions, which can contain references
|
|
1707
|
-
# to ClassIRs in their types
|
|
1708
|
-
# 3. Deserialize all of the classes, which contain lots of references
|
|
1709
|
-
# to the functions they contain. (And to other classes.)
|
|
1710
|
-
#
|
|
1711
|
-
# Note that this approach differs from how we deserialize ASTs in mypy itself,
|
|
1712
|
-
# where everything is deserialized in one pass then a second pass cleans up
|
|
1713
|
-
# 'cross_refs'. We don't follow that approach here because it seems to be more
|
|
1714
|
-
# code for not a lot of gain since it is easy in mypyc to identify all the objects
|
|
1715
|
-
# we might need to reference.
|
|
1716
|
-
#
|
|
1717
|
-
# Because of these references, we need to maintain maps from class
|
|
1718
|
-
# names to ClassIRs and func IDs to FuncIRs.
|
|
1719
|
-
#
|
|
1720
|
-
# These are tracked in a DeserMaps which is passed to every
|
|
1721
|
-
# deserialization function.
|
|
1722
|
-
#
|
|
1723
|
-
# (Serialization and deserialization *will* be used for incremental
|
|
1724
|
-
# compilation but so far it is not hooked up to anything.)
|
|
1725
|
-
class DeserMaps(NamedTuple):
|
|
1726
|
-
classes: dict[str, ClassIR]
|
|
1727
|
-
functions: dict[str, FuncIR]
|