jaclang 0.6.1__py3-none-any.whl → 0.6.5__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.

Files changed (1331) hide show
  1. jaclang/__init__.py +1 -9
  2. jaclang/cli/.gitignore +3 -0
  3. jaclang/cli/cli.md +190 -0
  4. jaclang/cli/cli.py +25 -4
  5. jaclang/compiler/.gitignore +1 -0
  6. jaclang/compiler/__init__.py +1 -0
  7. jaclang/compiler/absyntree.py +7 -7
  8. jaclang/compiler/compile.py +4 -4
  9. jaclang/compiler/jac.lark +1 -0
  10. jaclang/compiler/parser.py +15 -2
  11. jaclang/compiler/passes/main/def_impl_match_pass.py +4 -0
  12. jaclang/compiler/passes/main/fuse_typeinfo_pass.py +10 -1
  13. jaclang/compiler/passes/main/import_pass.py +47 -33
  14. jaclang/compiler/passes/main/pyast_load_pass.py +33 -6
  15. jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl/getme.impl.jac +3 -0
  16. jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl.jac +3 -0
  17. jaclang/compiler/passes/main/tests/fixtures/autoimpl.jac +9 -0
  18. jaclang/compiler/passes/main/tests/fixtures/autoimpl.something.else.impl.jac +3 -0
  19. jaclang/compiler/passes/main/tests/fixtures/base.jac +13 -0
  20. jaclang/compiler/passes/main/tests/fixtures/base2.jac +14 -0
  21. jaclang/compiler/passes/main/tests/fixtures/blip.jac +2 -0
  22. jaclang/compiler/passes/main/tests/fixtures/codegentext.jac +31 -0
  23. jaclang/compiler/passes/main/tests/fixtures/decls.jac +10 -0
  24. jaclang/compiler/passes/main/tests/fixtures/defs_and_uses.jac +44 -0
  25. jaclang/compiler/passes/main/tests/fixtures/fstrings.jac +4 -0
  26. jaclang/compiler/passes/main/tests/fixtures/func.jac +18 -0
  27. jaclang/compiler/passes/main/tests/fixtures/func2.jac +8 -0
  28. jaclang/compiler/passes/main/tests/fixtures/game1.jac +15 -0
  29. jaclang/compiler/passes/main/tests/fixtures/impl/defs1.jac +8 -0
  30. jaclang/compiler/passes/main/tests/fixtures/impl/defs2.jac +8 -0
  31. jaclang/compiler/passes/main/tests/fixtures/impl/imps.jac +11 -0
  32. jaclang/compiler/passes/main/tests/fixtures/multi_def_err.jac +7 -0
  33. jaclang/compiler/passes/main/tests/fixtures/registry.jac +36 -0
  34. jaclang/compiler/passes/main/tests/fixtures/type_info.jac +31 -0
  35. jaclang/compiler/passes/main/tests/test_type_check_pass.py +15 -0
  36. jaclang/compiler/passes/tool/tests/fixtures/corelib.jac +480 -0
  37. jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac +480 -0
  38. jaclang/compiler/passes/tool/tests/fixtures/genai/essay_review.jac +36 -0
  39. jaclang/compiler/passes/tool/tests/fixtures/genai/expert_answer.jac +17 -0
  40. jaclang/compiler/passes/tool/tests/fixtures/genai/joke_gen.jac +32 -0
  41. jaclang/compiler/passes/tool/tests/fixtures/genai/odd_word_out.jac +27 -0
  42. jaclang/compiler/passes/tool/tests/fixtures/genai/personality_finder.jac +35 -0
  43. jaclang/compiler/passes/tool/tests/fixtures/genai/text_to_type.jac +25 -0
  44. jaclang/compiler/passes/tool/tests/fixtures/genai/translator.jac +13 -0
  45. jaclang/compiler/passes/tool/tests/fixtures/genai/wikipedia.jac +63 -0
  46. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.dot +39 -0
  47. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.jac +7 -0
  48. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.txt +20 -0
  49. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/ability_impl_long_comprehension.jac +15 -0
  50. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/call_with_many_parameters.jac +24 -0
  51. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/entry_main.jac +4 -0
  52. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/long_line_nested_dict_access.jac +10 -0
  53. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/multiline_fstrings.jac +16 -0
  54. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/nested_dict.jac +15 -0
  55. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/nested_loop_and_incrementer.jac +13 -0
  56. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/simple_walker.jac +25 -0
  57. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/try_block_and_walker_spawn_and_fstrings.jac +26 -0
  58. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/tuple_iteration_and_not_negation.jac +20 -0
  59. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/type_annotation.jac +3 -0
  60. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_decl_only.jac +12 -0
  61. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_default_values_types_and_docstrings.jac +18 -0
  62. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_inline_ability_impl.jac +8 -0
  63. jaclang/compiler/passes/tool/tests/fixtures/simple_walk.jac +47 -0
  64. jaclang/compiler/passes/tool/tests/fixtures/simple_walk_fmt.jac +47 -0
  65. jaclang/compiler/passes/utils/mypy_ast_build.py +8 -0
  66. jaclang/compiler/tests/fixtures/fam.jac +67 -0
  67. jaclang/compiler/tests/fixtures/hello_world.jac +5 -0
  68. jaclang/compiler/tests/fixtures/kwesc.jac +5 -0
  69. jaclang/compiler/tests/fixtures/mod_doc_test.jac +1 -0
  70. jaclang/compiler/tests/fixtures/staticcheck.jac +20 -0
  71. jaclang/compiler/tests/fixtures/stuff.jac +6 -0
  72. jaclang/langserve/__init__.py +1 -0
  73. jaclang/langserve/server.py +108 -0
  74. jaclang/langserve/tests/__init__.py +1 -0
  75. jaclang/langserve/tests/defaults.py +226 -0
  76. jaclang/langserve/tests/fixtures/hello.jac +1 -0
  77. jaclang/langserve/tests/pylsp_jsonrpc/__init__.py +2 -0
  78. jaclang/langserve/tests/pylsp_jsonrpc/dispatchers.py +37 -0
  79. jaclang/langserve/tests/pylsp_jsonrpc/endpoint.py +294 -0
  80. jaclang/langserve/tests/pylsp_jsonrpc/exceptions.py +114 -0
  81. jaclang/langserve/tests/pylsp_jsonrpc/streams.py +113 -0
  82. jaclang/langserve/tests/session.py +255 -0
  83. jaclang/langserve/tests/test_server.py +36 -0
  84. jaclang/langserve/utils.py +53 -0
  85. jaclang/plugin/tests/fixtures/impl_match.jac +9 -0
  86. jaclang/plugin/tests/fixtures/impl_match_impl.jac +3 -0
  87. jaclang/plugin/tests/fixtures/simple_node_connection.jac +55 -0
  88. jaclang/plugin/tests/fixtures/simple_persistent.jac +41 -0
  89. jaclang/settings.py +5 -0
  90. jaclang/tests/fixtures/abc.jac +73 -0
  91. jaclang/tests/fixtures/access_checker.jac +19 -0
  92. jaclang/tests/fixtures/access_modifier.jac +49 -0
  93. jaclang/tests/fixtures/aott_raise.jac +25 -0
  94. jaclang/tests/fixtures/arithmetic_bug.jac +13 -0
  95. jaclang/tests/fixtures/assign_compr.jac +15 -0
  96. jaclang/tests/fixtures/assign_compr_dup.jac +15 -0
  97. jaclang/tests/fixtures/builtin_dotgen.jac +41 -0
  98. jaclang/tests/fixtures/chandra_bugs.jac +11 -0
  99. jaclang/tests/fixtures/chandra_bugs2.jac +26 -0
  100. jaclang/tests/fixtures/circle_pysolo.py +91 -0
  101. jaclang/tests/fixtures/deep/deeper/deep_outer_import.jac +9 -0
  102. jaclang/tests/fixtures/deep/deeper/deep_outer_import2.jac +9 -0
  103. jaclang/tests/fixtures/deep/deeper/snd_lev.jac +6 -0
  104. jaclang/tests/fixtures/deep/mycode.jac +4 -0
  105. jaclang/tests/fixtures/deep/one_lev.jac +6 -0
  106. jaclang/tests/fixtures/deep/one_lev_dup.jac +6 -0
  107. jaclang/tests/fixtures/deep/one_lev_dup_py.py +6 -0
  108. jaclang/tests/fixtures/deep_convert.jac +5 -0
  109. jaclang/tests/fixtures/deep_convo.py +6 -0
  110. jaclang/tests/fixtures/deep_import.jac +7 -0
  111. jaclang/tests/fixtures/deferred_field.jac +13 -0
  112. jaclang/tests/fixtures/disconn.jac +29 -0
  113. jaclang/tests/fixtures/edge_node_walk.jac +46 -0
  114. jaclang/tests/fixtures/edge_ops.jac +45 -0
  115. jaclang/tests/fixtures/edges_walk.jac +38 -0
  116. jaclang/tests/fixtures/enum_inside_archtype.jac +20 -0
  117. jaclang/tests/fixtures/err.jac +5 -0
  118. jaclang/tests/fixtures/err2.jac +5 -0
  119. jaclang/tests/fixtures/game1.jac +15 -0
  120. jaclang/tests/fixtures/gendot_bubble_sort.jac +77 -0
  121. jaclang/tests/fixtures/guess_game.jac +47 -0
  122. jaclang/tests/fixtures/has_goodness.jac +15 -0
  123. jaclang/tests/fixtures/hashcheck.jac +12 -0
  124. jaclang/tests/fixtures/hashcheck_dup.jac +12 -0
  125. jaclang/tests/fixtures/hello.jac +5 -0
  126. jaclang/tests/fixtures/hello_nc.jac +5 -0
  127. jaclang/tests/fixtures/ignore.jac +43 -0
  128. jaclang/tests/fixtures/ignore_dup.jac +43 -0
  129. jaclang/tests/fixtures/impl_grab.impl.jac +4 -0
  130. jaclang/tests/fixtures/impl_grab.jac +2 -0
  131. jaclang/tests/fixtures/inherit_check.jac +33 -0
  132. jaclang/tests/fixtures/jacsamp.jac +6 -0
  133. jaclang/tests/fixtures/jp_importer.jac +17 -0
  134. jaclang/tests/fixtures/lambda.jac +6 -0
  135. jaclang/tests/fixtures/maxfail_run_test.jac +5 -0
  136. jaclang/tests/fixtures/mtest.impl.jac +6 -0
  137. jaclang/tests/fixtures/mtest.jac +6 -0
  138. jaclang/tests/fixtures/needs_import.jac +18 -0
  139. jaclang/tests/fixtures/needs_import_1.jac +6 -0
  140. jaclang/tests/fixtures/needs_import_2.jac +6 -0
  141. jaclang/tests/fixtures/needs_import_3.jac +6 -0
  142. jaclang/tests/fixtures/needs_import_dup.jac +18 -0
  143. jaclang/tests/fixtures/package_import.jac +6 -0
  144. jaclang/tests/fixtures/pyfunc.py +11 -0
  145. jaclang/tests/fixtures/pyfunc_1.py +311 -0
  146. jaclang/tests/fixtures/pyfunc_2.py +279 -0
  147. jaclang/tests/fixtures/pyfunc_3.py +310 -0
  148. jaclang/tests/fixtures/random_check.jac +62 -0
  149. jaclang/tests/fixtures/raw_byte_string.jac +18 -0
  150. jaclang/tests/fixtures/registry.jac +37 -0
  151. jaclang/tests/fixtures/run_test.jac +5 -0
  152. jaclang/tests/fixtures/semstr.jac +33 -0
  153. jaclang/tests/fixtures/simple_archs.jac +26 -0
  154. jaclang/tests/fixtures/slice_vals.jac +7 -0
  155. jaclang/tests/fixtures/sub_abil_sep.jac +15 -0
  156. jaclang/tests/fixtures/sub_abil_sep_multilev.jac +17 -0
  157. jaclang/tests/fixtures/try_finally.jac +34 -0
  158. jaclang/tests/fixtures/tupleunpack.jac +6 -0
  159. jaclang/tests/fixtures/tuplytuples.jac +8 -0
  160. jaclang/tests/fixtures/type_info.jac +15 -0
  161. jaclang/tests/fixtures/with_context.jac +30 -0
  162. jaclang/tests/fixtures/with_llm_function.jac +33 -0
  163. jaclang/tests/fixtures/with_llm_lower.jac +45 -0
  164. jaclang/tests/fixtures/with_llm_method.jac +51 -0
  165. jaclang/tests/fixtures/with_llm_type.jac +52 -0
  166. jaclang/tests/test_cli.py +239 -0
  167. jaclang/tests/test_language.py +831 -0
  168. jaclang/tests/test_man_code.py +148 -0
  169. jaclang/tests/test_reference.py +95 -0
  170. jaclang/tests/test_settings.py +46 -0
  171. jaclang/utils/helpers.py +11 -0
  172. jaclang/utils/tests/test_lang_tools.py +17 -0
  173. jaclang/utils/treeprinter.py +12 -4
  174. jaclang/vendor/__init__.py +12 -1
  175. jaclang/vendor/attr/__init__.py +134 -0
  176. jaclang/vendor/attr/__init__.pyi +555 -0
  177. jaclang/vendor/attr/_cmp.py +150 -0
  178. jaclang/vendor/attr/_cmp.pyi +13 -0
  179. jaclang/vendor/attr/_compat.py +87 -0
  180. jaclang/vendor/attr/_config.py +31 -0
  181. jaclang/vendor/attr/_funcs.py +483 -0
  182. jaclang/vendor/attr/_make.py +3119 -0
  183. jaclang/vendor/attr/_next_gen.py +229 -0
  184. jaclang/vendor/attr/_typing_compat.pyi +15 -0
  185. jaclang/vendor/attr/_version_info.py +86 -0
  186. jaclang/vendor/attr/_version_info.pyi +9 -0
  187. jaclang/vendor/attr/converters.py +144 -0
  188. jaclang/vendor/attr/converters.pyi +13 -0
  189. jaclang/vendor/attr/exceptions.py +95 -0
  190. jaclang/vendor/attr/exceptions.pyi +17 -0
  191. jaclang/vendor/attr/filters.py +66 -0
  192. jaclang/vendor/attr/filters.pyi +6 -0
  193. jaclang/vendor/attr/setters.py +73 -0
  194. jaclang/vendor/attr/setters.pyi +19 -0
  195. jaclang/vendor/attr/validators.py +681 -0
  196. jaclang/vendor/attr/validators.pyi +88 -0
  197. jaclang/vendor/attrs/__init__.py +65 -0
  198. jaclang/vendor/attrs/__init__.pyi +67 -0
  199. jaclang/vendor/attrs/converters.py +3 -0
  200. jaclang/vendor/attrs/exceptions.py +3 -0
  201. jaclang/vendor/attrs/filters.py +3 -0
  202. jaclang/vendor/attrs/py.typed +0 -0
  203. jaclang/vendor/attrs/setters.py +3 -0
  204. jaclang/vendor/attrs/validators.py +3 -0
  205. jaclang/vendor/attrs-23.2.0.dist-info/METADATA +202 -0
  206. jaclang/vendor/attrs-23.2.0.dist-info/RECORD +35 -0
  207. jaclang/vendor/attrs-23.2.0.dist-info/WHEEL +4 -0
  208. jaclang/vendor/attrs-23.2.0.dist-info/licenses/LICENSE +21 -0
  209. jaclang/vendor/cattr/__init__.py +25 -0
  210. jaclang/vendor/cattr/converters.py +8 -0
  211. jaclang/vendor/cattr/disambiguators.py +3 -0
  212. jaclang/vendor/cattr/dispatch.py +3 -0
  213. jaclang/vendor/cattr/errors.py +15 -0
  214. jaclang/vendor/cattr/gen.py +21 -0
  215. jaclang/vendor/cattr/preconf/__init__.py +3 -0
  216. jaclang/vendor/cattr/preconf/bson.py +4 -0
  217. jaclang/vendor/cattr/preconf/json.py +4 -0
  218. jaclang/vendor/cattr/preconf/msgpack.py +4 -0
  219. jaclang/vendor/cattr/preconf/orjson.py +4 -0
  220. jaclang/vendor/cattr/preconf/pyyaml.py +4 -0
  221. jaclang/vendor/cattr/preconf/tomlkit.py +4 -0
  222. jaclang/vendor/cattr/preconf/ujson.py +4 -0
  223. jaclang/vendor/cattr/py.typed +0 -0
  224. jaclang/vendor/cattrs/__init__.py +55 -0
  225. jaclang/vendor/cattrs/_compat.py +465 -0
  226. jaclang/vendor/cattrs/_generics.py +22 -0
  227. jaclang/vendor/cattrs/converters.py +1101 -0
  228. jaclang/vendor/cattrs/disambiguators.py +132 -0
  229. jaclang/vendor/cattrs/dispatch.py +164 -0
  230. jaclang/vendor/cattrs/errors.py +129 -0
  231. jaclang/vendor/cattrs/fns.py +17 -0
  232. jaclang/vendor/cattrs/gen/__init__.py +890 -0
  233. jaclang/vendor/cattrs/gen/_consts.py +19 -0
  234. jaclang/vendor/cattrs/gen/_generics.py +43 -0
  235. jaclang/vendor/cattrs/gen/_lc.py +28 -0
  236. jaclang/vendor/cattrs/gen/_shared.py +51 -0
  237. jaclang/vendor/cattrs/gen/typeddicts.py +624 -0
  238. jaclang/vendor/cattrs/preconf/__init__.py +7 -0
  239. jaclang/vendor/cattrs/preconf/bson.py +107 -0
  240. jaclang/vendor/cattrs/preconf/cbor2.py +47 -0
  241. jaclang/vendor/cattrs/preconf/json.py +52 -0
  242. jaclang/vendor/cattrs/preconf/msgpack.py +51 -0
  243. jaclang/vendor/cattrs/preconf/orjson.py +82 -0
  244. jaclang/vendor/cattrs/preconf/pyyaml.py +60 -0
  245. jaclang/vendor/cattrs/preconf/tomlkit.py +85 -0
  246. jaclang/vendor/cattrs/preconf/ujson.py +52 -0
  247. jaclang/vendor/cattrs/py.typed +0 -0
  248. jaclang/vendor/cattrs/strategies/__init__.py +11 -0
  249. jaclang/vendor/cattrs/strategies/_class_methods.py +64 -0
  250. jaclang/vendor/cattrs/strategies/_subclasses.py +224 -0
  251. jaclang/vendor/cattrs/strategies/_unions.py +235 -0
  252. jaclang/vendor/cattrs/v.py +111 -0
  253. jaclang/vendor/cattrs-23.2.3.dist-info/METADATA +221 -0
  254. jaclang/vendor/cattrs-23.2.3.dist-info/RECORD +48 -0
  255. jaclang/vendor/cattrs-23.2.3.dist-info/WHEEL +4 -0
  256. jaclang/vendor/cattrs-23.2.3.dist-info/licenses/LICENSE +11 -0
  257. jaclang/vendor/lark/__init__.py +38 -38
  258. jaclang/vendor/lark/__pyinstaller/__init__.py +6 -7
  259. jaclang/vendor/lark/__pyinstaller/hook-lark.py +14 -14
  260. jaclang/vendor/lark/ast_utils.py +59 -70
  261. jaclang/vendor/lark/common.py +89 -113
  262. jaclang/vendor/lark/exceptions.py +292 -352
  263. jaclang/vendor/lark/grammar.py +130 -158
  264. jaclang/vendor/lark/grammars/common.lark +59 -59
  265. jaclang/vendor/lark/grammars/lark.lark +62 -62
  266. jaclang/vendor/lark/grammars/python.lark +302 -302
  267. jaclang/vendor/lark/grammars/unicode.lark +7 -7
  268. jaclang/vendor/lark/indenter.py +112 -118
  269. jaclang/vendor/lark/lark.py +661 -800
  270. jaclang/vendor/lark/lexer.py +678 -829
  271. jaclang/vendor/lark/load_grammar.py +1428 -1673
  272. jaclang/vendor/lark/parse_tree_builder.py +391 -466
  273. jaclang/vendor/lark/parser_frontends.py +257 -305
  274. jaclang/vendor/lark/parsers/cyk.py +340 -391
  275. jaclang/vendor/lark/parsers/earley.py +308 -385
  276. jaclang/vendor/lark/parsers/earley_common.py +42 -59
  277. jaclang/vendor/lark/parsers/earley_forest.py +810 -923
  278. jaclang/vendor/lark/parsers/grammar_analysis.py +203 -239
  279. jaclang/vendor/lark/parsers/lalr_analysis.py +332 -378
  280. jaclang/vendor/lark/parsers/lalr_interactive_parser.py +157 -171
  281. jaclang/vendor/lark/parsers/lalr_parser.py +122 -145
  282. jaclang/vendor/lark/parsers/lalr_parser_state.py +110 -141
  283. jaclang/vendor/lark/parsers/xearley.py +165 -209
  284. jaclang/vendor/lark/reconstruct.py +107 -131
  285. jaclang/vendor/lark/tools/__init__.py +71 -93
  286. jaclang/vendor/lark/tools/nearley.py +202 -240
  287. jaclang/vendor/lark/tools/serialize.py +32 -35
  288. jaclang/vendor/lark/tools/standalone.py +196 -225
  289. jaclang/vendor/lark/tree.py +272 -302
  290. jaclang/vendor/lark/tree_matcher.py +186 -194
  291. jaclang/vendor/lark/tree_templates.py +18 -26
  292. jaclang/vendor/lark/utils.py +361 -393
  293. jaclang/vendor/lark/visitors.py +593 -645
  294. jaclang/vendor/lark-1.1.9.dist-info/LICENSE +18 -0
  295. jaclang/vendor/lark-1.1.9.dist-info/METADATA +47 -0
  296. jaclang/vendor/lark-1.1.9.dist-info/RECORD +46 -0
  297. jaclang/vendor/lark-1.1.9.dist-info/WHEEL +5 -0
  298. jaclang/vendor/lark-1.1.9.dist-info/entry_points.txt +2 -0
  299. jaclang/vendor/lark-1.1.9.dist-info/top_level.txt +1 -0
  300. jaclang/vendor/lsprotocol/__init__.py +2 -0
  301. jaclang/vendor/lsprotocol/_hooks.py +1237 -0
  302. jaclang/vendor/lsprotocol/converters.py +17 -0
  303. jaclang/vendor/lsprotocol/py.typed +0 -0
  304. jaclang/vendor/lsprotocol/types.py +12898 -0
  305. jaclang/vendor/lsprotocol/validators.py +47 -0
  306. jaclang/vendor/lsprotocol-2023.0.1.dist-info/LICENSE +21 -0
  307. jaclang/vendor/lsprotocol-2023.0.1.dist-info/METADATA +65 -0
  308. jaclang/vendor/lsprotocol-2023.0.1.dist-info/RECORD +10 -0
  309. jaclang/vendor/lsprotocol-2023.0.1.dist-info/WHEEL +4 -0
  310. jaclang/vendor/mypy/api.py +1 -3
  311. jaclang/vendor/mypy/applytype.py +24 -24
  312. jaclang/vendor/mypy/argmap.py +5 -9
  313. jaclang/vendor/mypy/binder.py +11 -42
  314. jaclang/vendor/mypy/build.py +78 -260
  315. jaclang/vendor/mypy/checker.py +394 -930
  316. jaclang/vendor/mypy/checkexpr.py +210 -640
  317. jaclang/vendor/mypy/checkmember.py +44 -94
  318. jaclang/vendor/mypy/checkpattern.py +32 -104
  319. jaclang/vendor/mypy/checkstrformat.py +38 -131
  320. jaclang/vendor/mypy/config_parser.py +8 -31
  321. jaclang/vendor/mypy/constant_fold.py +1 -3
  322. jaclang/vendor/mypy/constraints.py +94 -253
  323. jaclang/vendor/mypy/copytype.py +3 -13
  324. jaclang/vendor/mypy/defaults.py +2 -4
  325. jaclang/vendor/mypy/dmypy/client.py +30 -102
  326. jaclang/vendor/mypy/dmypy_server.py +31 -118
  327. jaclang/vendor/mypy/erasetype.py +6 -18
  328. jaclang/vendor/mypy/errorcodes.py +26 -64
  329. jaclang/vendor/mypy/errors.py +23 -117
  330. jaclang/vendor/mypy/evalexpr.py +1 -3
  331. jaclang/vendor/mypy/expandtype.py +37 -40
  332. jaclang/vendor/mypy/exprtotype.py +14 -27
  333. jaclang/vendor/mypy/fastparse.py +66 -215
  334. jaclang/vendor/mypy/find_sources.py +4 -14
  335. jaclang/vendor/mypy/fixup.py +5 -10
  336. jaclang/vendor/mypy/indirection.py +1 -3
  337. jaclang/vendor/mypy/infer.py +2 -6
  338. jaclang/vendor/mypy/inspections.py +3 -13
  339. jaclang/vendor/mypy/ipc.py +7 -28
  340. jaclang/vendor/mypy/join.py +20 -39
  341. jaclang/vendor/mypy/literals.py +2 -10
  342. jaclang/vendor/mypy/main.py +39 -138
  343. jaclang/vendor/mypy/maptype.py +2 -6
  344. jaclang/vendor/mypy/meet.py +23 -77
  345. jaclang/vendor/mypy/message_registry.py +33 -88
  346. jaclang/vendor/mypy/messages.py +146 -447
  347. jaclang/vendor/mypy/metastore.py +2 -6
  348. jaclang/vendor/mypy/modulefinder.py +29 -76
  349. jaclang/vendor/mypy/moduleinspect.py +5 -17
  350. jaclang/vendor/mypy/mro.py +1 -3
  351. jaclang/vendor/mypy/nodes.py +35 -119
  352. jaclang/vendor/mypy/operators.py +2 -11
  353. jaclang/vendor/mypy/options.py +3 -9
  354. jaclang/vendor/mypy/parse.py +1 -3
  355. jaclang/vendor/mypy/plugin.py +25 -75
  356. jaclang/vendor/mypy/plugins/attrs.py +53 -119
  357. jaclang/vendor/mypy/plugins/common.py +9 -29
  358. jaclang/vendor/mypy/plugins/ctypes.py +5 -15
  359. jaclang/vendor/mypy/plugins/dataclasses.py +42 -107
  360. jaclang/vendor/mypy/plugins/default.py +26 -45
  361. jaclang/vendor/mypy/plugins/enums.py +4 -17
  362. jaclang/vendor/mypy/plugins/functools.py +2 -11
  363. jaclang/vendor/mypy/plugins/proper_plugin.py +2 -6
  364. jaclang/vendor/mypy/plugins/singledispatch.py +7 -33
  365. jaclang/vendor/mypy/reachability.py +2 -8
  366. jaclang/vendor/mypy/refinfo.py +1 -3
  367. jaclang/vendor/mypy/report.py +23 -52
  368. jaclang/vendor/mypy/semanal.py +385 -693
  369. jaclang/vendor/mypy/semanal_classprop.py +9 -34
  370. jaclang/vendor/mypy/semanal_enum.py +7 -19
  371. jaclang/vendor/mypy/semanal_infer.py +1 -3
  372. jaclang/vendor/mypy/semanal_main.py +5 -25
  373. jaclang/vendor/mypy/semanal_namedtuple.py +17 -56
  374. jaclang/vendor/mypy/semanal_newtype.py +8 -27
  375. jaclang/vendor/mypy/semanal_pass1.py +2 -6
  376. jaclang/vendor/mypy/semanal_shared.py +9 -27
  377. jaclang/vendor/mypy/semanal_typeargs.py +12 -41
  378. jaclang/vendor/mypy/semanal_typeddict.py +18 -59
  379. jaclang/vendor/mypy/server/astdiff.py +9 -34
  380. jaclang/vendor/mypy/server/astmerge.py +2 -6
  381. jaclang/vendor/mypy/server/deps.py +22 -71
  382. jaclang/vendor/mypy/server/mergecheck.py +1 -3
  383. jaclang/vendor/mypy/server/objgraph.py +2 -8
  384. jaclang/vendor/mypy/server/update.py +18 -54
  385. jaclang/vendor/mypy/solve.py +4 -17
  386. jaclang/vendor/mypy/split_namespace.py +1 -3
  387. jaclang/vendor/mypy/stats.py +6 -24
  388. jaclang/vendor/mypy/strconv.py +8 -31
  389. jaclang/vendor/mypy/stubdoc.py +8 -38
  390. jaclang/vendor/mypy/stubgen.py +79 -144
  391. jaclang/vendor/mypy/stubgenc.py +22 -69
  392. jaclang/vendor/mypy/stubtest.py +62 -167
  393. jaclang/vendor/mypy/stubutil.py +45 -61
  394. jaclang/vendor/mypy/subtypes.py +57 -133
  395. jaclang/vendor/mypy/suggestions.py +19 -53
  396. jaclang/vendor/mypy/test/data.py +13 -40
  397. jaclang/vendor/mypy/test/helpers.py +18 -43
  398. jaclang/vendor/mypy/test/meta/_pytest.py +2 -13
  399. jaclang/vendor/mypy/test/meta/test_parse_data.py +5 -9
  400. jaclang/vendor/mypy/test/meta/test_update_data.py +1 -3
  401. jaclang/vendor/mypy/test/test_find_sources.py +14 -32
  402. jaclang/vendor/mypy/test/test_ref_info.py +3 -9
  403. jaclang/vendor/mypy/test/testargs.py +1 -4
  404. jaclang/vendor/mypy/test/testcheck.py +14 -47
  405. jaclang/vendor/mypy/test/testcmdline.py +3 -14
  406. jaclang/vendor/mypy/test/testconstraints.py +8 -26
  407. jaclang/vendor/mypy/test/testdaemon.py +2 -9
  408. jaclang/vendor/mypy/test/testdeps.py +4 -12
  409. jaclang/vendor/mypy/test/testdiff.py +2 -6
  410. jaclang/vendor/mypy/test/testerrorstream.py +1 -3
  411. jaclang/vendor/mypy/test/testfinegrained.py +18 -56
  412. jaclang/vendor/mypy/test/testgraph.py +3 -18
  413. jaclang/vendor/mypy/test/testinfer.py +13 -55
  414. jaclang/vendor/mypy/test/testipc.py +3 -9
  415. jaclang/vendor/mypy/test/testmerge.py +5 -17
  416. jaclang/vendor/mypy/test/testmodulefinder.py +8 -30
  417. jaclang/vendor/mypy/test/testmypyc.py +1 -3
  418. jaclang/vendor/mypy/test/testparse.py +1 -3
  419. jaclang/vendor/mypy/test/testpep561.py +4 -13
  420. jaclang/vendor/mypy/test/testpythoneval.py +2 -6
  421. jaclang/vendor/mypy/test/testreports.py +1 -2
  422. jaclang/vendor/mypy/test/testsemanal.py +3 -10
  423. jaclang/vendor/mypy/test/testsolve.py +5 -15
  424. jaclang/vendor/mypy/test/teststubgen.py +69 -210
  425. jaclang/vendor/mypy/test/teststubtest.py +123 -163
  426. jaclang/vendor/mypy/test/testsubtypes.py +14 -34
  427. jaclang/vendor/mypy/test/testtransform.py +2 -8
  428. jaclang/vendor/mypy/test/testtypegen.py +2 -8
  429. jaclang/vendor/mypy/test/testtypes.py +77 -253
  430. jaclang/vendor/mypy/test/testutil.py +1 -3
  431. jaclang/vendor/mypy/test/typefixture.py +11 -38
  432. jaclang/vendor/mypy/test/update_data.py +4 -15
  433. jaclang/vendor/mypy/test/visitors.py +1 -9
  434. jaclang/vendor/mypy/treetransform.py +8 -25
  435. jaclang/vendor/mypy/tvar_scope.py +23 -3
  436. jaclang/vendor/mypy/type_visitor.py +3 -10
  437. jaclang/vendor/mypy/typeanal.py +183 -309
  438. jaclang/vendor/mypy/typeops.py +27 -73
  439. jaclang/vendor/mypy/types.py +77 -185
  440. jaclang/vendor/mypy/types_utils.py +7 -20
  441. jaclang/vendor/mypy/typeshed/LICENSE +237 -0
  442. jaclang/vendor/mypy/typeshed/stdlib/VERSIONS +309 -0
  443. jaclang/vendor/mypy/typeshed/stdlib/__future__.pyi +36 -0
  444. jaclang/vendor/mypy/typeshed/stdlib/__main__.pyi +3 -0
  445. jaclang/vendor/mypy/typeshed/stdlib/_ast.pyi +591 -0
  446. jaclang/vendor/mypy/typeshed/stdlib/_bisect.pyi +84 -0
  447. jaclang/vendor/mypy/typeshed/stdlib/_bootlocale.pyi +1 -0
  448. jaclang/vendor/mypy/typeshed/stdlib/_codecs.pyi +133 -0
  449. jaclang/vendor/mypy/typeshed/stdlib/_collections_abc.pyi +94 -0
  450. jaclang/vendor/mypy/typeshed/stdlib/_compat_pickle.pyi +8 -0
  451. jaclang/vendor/mypy/typeshed/stdlib/_compression.pyi +25 -0
  452. jaclang/vendor/mypy/typeshed/stdlib/_csv.pyi +90 -0
  453. jaclang/vendor/mypy/typeshed/stdlib/_ctypes.pyi +207 -0
  454. jaclang/vendor/mypy/typeshed/stdlib/_curses.pyi +566 -0
  455. jaclang/vendor/mypy/typeshed/stdlib/_decimal.pyi +281 -0
  456. jaclang/vendor/mypy/typeshed/stdlib/_dummy_thread.pyi +33 -0
  457. jaclang/vendor/mypy/typeshed/stdlib/_dummy_threading.pyi +164 -0
  458. jaclang/vendor/mypy/typeshed/stdlib/_heapq.pyi +11 -0
  459. jaclang/vendor/mypy/typeshed/stdlib/_imp.pyi +28 -0
  460. jaclang/vendor/mypy/typeshed/stdlib/_json.pyi +49 -0
  461. jaclang/vendor/mypy/typeshed/stdlib/_locale.pyi +100 -0
  462. jaclang/vendor/mypy/typeshed/stdlib/_lsprof.pyi +35 -0
  463. jaclang/vendor/mypy/typeshed/stdlib/_markupbase.pyi +16 -0
  464. jaclang/vendor/mypy/typeshed/stdlib/_msi.pyi +92 -0
  465. jaclang/vendor/mypy/typeshed/stdlib/_operator.pyi +147 -0
  466. jaclang/vendor/mypy/typeshed/stdlib/_osx_support.pyi +34 -0
  467. jaclang/vendor/mypy/typeshed/stdlib/_posixsubprocess.pyi +33 -0
  468. jaclang/vendor/mypy/typeshed/stdlib/_py_abc.pyi +14 -0
  469. jaclang/vendor/mypy/typeshed/stdlib/_pydecimal.pyi +43 -0
  470. jaclang/vendor/mypy/typeshed/stdlib/_random.pyi +12 -0
  471. jaclang/vendor/mypy/typeshed/stdlib/_sitebuiltins.pyi +16 -0
  472. jaclang/vendor/mypy/typeshed/stdlib/_socket.pyi +803 -0
  473. jaclang/vendor/mypy/typeshed/stdlib/_stat.pyi +103 -0
  474. jaclang/vendor/mypy/typeshed/stdlib/_thread.pyi +59 -0
  475. jaclang/vendor/mypy/typeshed/stdlib/_threading_local.pyi +17 -0
  476. jaclang/vendor/mypy/typeshed/stdlib/_tkinter.pyi +121 -0
  477. jaclang/vendor/mypy/typeshed/stdlib/_tracemalloc.pyi +17 -0
  478. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/__init__.pyi +347 -0
  479. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/dbapi.pyi +37 -0
  480. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/wsgi.pyi +44 -0
  481. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/xml.pyi +9 -0
  482. jaclang/vendor/mypy/typeshed/stdlib/_warnings.pyi +55 -0
  483. jaclang/vendor/mypy/typeshed/stdlib/_weakref.pyi +41 -0
  484. jaclang/vendor/mypy/typeshed/stdlib/_weakrefset.pyi +51 -0
  485. jaclang/vendor/mypy/typeshed/stdlib/_winapi.pyi +255 -0
  486. jaclang/vendor/mypy/typeshed/stdlib/abc.pyi +51 -0
  487. jaclang/vendor/mypy/typeshed/stdlib/aifc.pyi +91 -0
  488. jaclang/vendor/mypy/typeshed/stdlib/antigravity.pyi +3 -0
  489. jaclang/vendor/mypy/typeshed/stdlib/argparse.pyi +595 -0
  490. jaclang/vendor/mypy/typeshed/stdlib/array.pyi +92 -0
  491. jaclang/vendor/mypy/typeshed/stdlib/ast.pyi +277 -0
  492. jaclang/vendor/mypy/typeshed/stdlib/asynchat.pyi +21 -0
  493. jaclang/vendor/mypy/typeshed/stdlib/asyncio/__init__.pyi +41 -0
  494. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_events.pyi +440 -0
  495. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_futures.pyi +19 -0
  496. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +63 -0
  497. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_tasks.pyi +9 -0
  498. jaclang/vendor/mypy/typeshed/stdlib/asyncio/constants.pyi +20 -0
  499. jaclang/vendor/mypy/typeshed/stdlib/asyncio/coroutines.pyi +26 -0
  500. jaclang/vendor/mypy/typeshed/stdlib/asyncio/events.pyi +580 -0
  501. jaclang/vendor/mypy/typeshed/stdlib/asyncio/exceptions.pyi +43 -0
  502. jaclang/vendor/mypy/typeshed/stdlib/asyncio/format_helpers.pyi +20 -0
  503. jaclang/vendor/mypy/typeshed/stdlib/asyncio/futures.pyi +57 -0
  504. jaclang/vendor/mypy/typeshed/stdlib/asyncio/locks.pyi +121 -0
  505. jaclang/vendor/mypy/typeshed/stdlib/asyncio/log.pyi +3 -0
  506. jaclang/vendor/mypy/typeshed/stdlib/asyncio/mixins.pyi +9 -0
  507. jaclang/vendor/mypy/typeshed/stdlib/asyncio/proactor_events.pyi +64 -0
  508. jaclang/vendor/mypy/typeshed/stdlib/asyncio/protocols.pyi +34 -0
  509. jaclang/vendor/mypy/typeshed/stdlib/asyncio/queues.pyi +47 -0
  510. jaclang/vendor/mypy/typeshed/stdlib/asyncio/runners.pyi +32 -0
  511. jaclang/vendor/mypy/typeshed/stdlib/asyncio/selector_events.pyi +8 -0
  512. jaclang/vendor/mypy/typeshed/stdlib/asyncio/sslproto.pyi +165 -0
  513. jaclang/vendor/mypy/typeshed/stdlib/asyncio/staggered.pyi +10 -0
  514. jaclang/vendor/mypy/typeshed/stdlib/asyncio/streams.pyi +153 -0
  515. jaclang/vendor/mypy/typeshed/stdlib/asyncio/subprocess.pyi +229 -0
  516. jaclang/vendor/mypy/typeshed/stdlib/asyncio/taskgroups.pyi +25 -0
  517. jaclang/vendor/mypy/typeshed/stdlib/asyncio/tasks.pyi +497 -0
  518. jaclang/vendor/mypy/typeshed/stdlib/asyncio/threads.pyi +9 -0
  519. jaclang/vendor/mypy/typeshed/stdlib/asyncio/timeouts.pyi +19 -0
  520. jaclang/vendor/mypy/typeshed/stdlib/asyncio/transports.pyi +47 -0
  521. jaclang/vendor/mypy/typeshed/stdlib/asyncio/trsock.pyi +94 -0
  522. jaclang/vendor/mypy/typeshed/stdlib/asyncio/unix_events.pyi +196 -0
  523. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_events.pyi +85 -0
  524. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_utils.pyi +49 -0
  525. jaclang/vendor/mypy/typeshed/stdlib/asyncore.pyi +90 -0
  526. jaclang/vendor/mypy/typeshed/stdlib/atexit.pyi +12 -0
  527. jaclang/vendor/mypy/typeshed/stdlib/audioop.pyi +43 -0
  528. jaclang/vendor/mypy/typeshed/stdlib/base64.pyi +59 -0
  529. jaclang/vendor/mypy/typeshed/stdlib/bdb.pyi +102 -0
  530. jaclang/vendor/mypy/typeshed/stdlib/binascii.pyi +36 -0
  531. jaclang/vendor/mypy/typeshed/stdlib/binhex.pyi +45 -0
  532. jaclang/vendor/mypy/typeshed/stdlib/bisect.pyi +4 -0
  533. jaclang/vendor/mypy/typeshed/stdlib/builtins.pyi +1936 -0
  534. jaclang/vendor/mypy/typeshed/stdlib/bz2.pyi +146 -0
  535. jaclang/vendor/mypy/typeshed/stdlib/cProfile.pyi +31 -0
  536. jaclang/vendor/mypy/typeshed/stdlib/calendar.pyi +208 -0
  537. jaclang/vendor/mypy/typeshed/stdlib/cgi.pyi +118 -0
  538. jaclang/vendor/mypy/typeshed/stdlib/cgitb.pyi +32 -0
  539. jaclang/vendor/mypy/typeshed/stdlib/chunk.pyi +20 -0
  540. jaclang/vendor/mypy/typeshed/stdlib/cmath.pyi +36 -0
  541. jaclang/vendor/mypy/typeshed/stdlib/cmd.pyi +45 -0
  542. jaclang/vendor/mypy/typeshed/stdlib/code.pyi +33 -0
  543. jaclang/vendor/mypy/typeshed/stdlib/codecs.pyi +285 -0
  544. jaclang/vendor/mypy/typeshed/stdlib/codeop.pyi +13 -0
  545. jaclang/vendor/mypy/typeshed/stdlib/collections/__init__.pyi +485 -0
  546. jaclang/vendor/mypy/typeshed/stdlib/collections/abc.pyi +2 -0
  547. jaclang/vendor/mypy/typeshed/stdlib/colorsys.pyi +13 -0
  548. jaclang/vendor/mypy/typeshed/stdlib/compileall.pyi +111 -0
  549. jaclang/vendor/mypy/typeshed/stdlib/concurrent/__init__.pyi +0 -0
  550. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +32 -0
  551. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/_base.pyi +126 -0
  552. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/process.pyi +233 -0
  553. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/thread.pyi +80 -0
  554. jaclang/vendor/mypy/typeshed/stdlib/configparser.pyi +313 -0
  555. jaclang/vendor/mypy/typeshed/stdlib/contextlib.pyi +208 -0
  556. jaclang/vendor/mypy/typeshed/stdlib/contextvars.pyi +63 -0
  557. jaclang/vendor/mypy/typeshed/stdlib/copy.pyi +16 -0
  558. jaclang/vendor/mypy/typeshed/stdlib/copyreg.pyi +21 -0
  559. jaclang/vendor/mypy/typeshed/stdlib/crypt.pyi +12 -0
  560. jaclang/vendor/mypy/typeshed/stdlib/csv.pyi +147 -0
  561. jaclang/vendor/mypy/typeshed/stdlib/ctypes/__init__.pyi +187 -0
  562. jaclang/vendor/mypy/typeshed/stdlib/ctypes/_endian.pyi +19 -0
  563. jaclang/vendor/mypy/typeshed/stdlib/ctypes/util.pyi +6 -0
  564. jaclang/vendor/mypy/typeshed/stdlib/ctypes/wintypes.pyi +298 -0
  565. jaclang/vendor/mypy/typeshed/stdlib/curses/__init__.pyi +22 -0
  566. jaclang/vendor/mypy/typeshed/stdlib/curses/ascii.pyi +62 -0
  567. jaclang/vendor/mypy/typeshed/stdlib/curses/has_key.pyi +1 -0
  568. jaclang/vendor/mypy/typeshed/stdlib/curses/panel.pyi +22 -0
  569. jaclang/vendor/mypy/typeshed/stdlib/curses/textpad.pyi +11 -0
  570. jaclang/vendor/mypy/typeshed/stdlib/dataclasses.pyi +315 -0
  571. jaclang/vendor/mypy/typeshed/stdlib/datetime.pyi +295 -0
  572. jaclang/vendor/mypy/typeshed/stdlib/dbm/__init__.pyi +95 -0
  573. jaclang/vendor/mypy/typeshed/stdlib/dbm/dumb.pyi +31 -0
  574. jaclang/vendor/mypy/typeshed/stdlib/dbm/gnu.pyi +41 -0
  575. jaclang/vendor/mypy/typeshed/stdlib/dbm/ndbm.pyi +37 -0
  576. jaclang/vendor/mypy/typeshed/stdlib/decimal.pyi +2 -0
  577. jaclang/vendor/mypy/typeshed/stdlib/difflib.pyi +140 -0
  578. jaclang/vendor/mypy/typeshed/stdlib/dis.pyi +144 -0
  579. jaclang/vendor/mypy/typeshed/stdlib/distutils/__init__.pyi +5 -0
  580. jaclang/vendor/mypy/typeshed/stdlib/distutils/archive_util.pyi +20 -0
  581. jaclang/vendor/mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +3 -0
  582. jaclang/vendor/mypy/typeshed/stdlib/distutils/ccompiler.pyi +152 -0
  583. jaclang/vendor/mypy/typeshed/stdlib/distutils/cmd.pyi +66 -0
  584. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/__init__.pyi +0 -0
  585. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist.pyi +25 -0
  586. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +21 -0
  587. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +45 -0
  588. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi +0 -0
  589. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +52 -0
  590. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +16 -0
  591. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build.pyi +31 -0
  592. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_clib.pyi +27 -0
  593. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_ext.pyi +50 -0
  594. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_py.pyi +44 -0
  595. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +24 -0
  596. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/check.pyi +39 -0
  597. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/clean.pyi +17 -0
  598. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/config.pyi +83 -0
  599. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install.pyi +63 -0
  600. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_data.pyi +19 -0
  601. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +18 -0
  602. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_headers.pyi +16 -0
  603. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_lib.pyi +25 -0
  604. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +18 -0
  605. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/register.pyi +18 -0
  606. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/sdist.pyi +42 -0
  607. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/upload.pyi +17 -0
  608. jaclang/vendor/mypy/typeshed/stdlib/distutils/config.pyi +17 -0
  609. jaclang/vendor/mypy/typeshed/stdlib/distutils/core.pyi +57 -0
  610. jaclang/vendor/mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +20 -0
  611. jaclang/vendor/mypy/typeshed/stdlib/distutils/debug.pyi +1 -0
  612. jaclang/vendor/mypy/typeshed/stdlib/distutils/dep_util.pyi +3 -0
  613. jaclang/vendor/mypy/typeshed/stdlib/distutils/dir_util.pyi +13 -0
  614. jaclang/vendor/mypy/typeshed/stdlib/distutils/dist.pyi +146 -0
  615. jaclang/vendor/mypy/typeshed/stdlib/distutils/errors.pyi +19 -0
  616. jaclang/vendor/mypy/typeshed/stdlib/distutils/extension.pyi +36 -0
  617. jaclang/vendor/mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +34 -0
  618. jaclang/vendor/mypy/typeshed/stdlib/distutils/file_util.pyi +14 -0
  619. jaclang/vendor/mypy/typeshed/stdlib/distutils/filelist.pyi +50 -0
  620. jaclang/vendor/mypy/typeshed/stdlib/distutils/log.pyi +25 -0
  621. jaclang/vendor/mypy/typeshed/stdlib/distutils/msvccompiler.pyi +3 -0
  622. jaclang/vendor/mypy/typeshed/stdlib/distutils/spawn.pyi +2 -0
  623. jaclang/vendor/mypy/typeshed/stdlib/distutils/sysconfig.pyi +31 -0
  624. jaclang/vendor/mypy/typeshed/stdlib/distutils/text_file.pyi +21 -0
  625. jaclang/vendor/mypy/typeshed/stdlib/distutils/unixccompiler.pyi +3 -0
  626. jaclang/vendor/mypy/typeshed/stdlib/distutils/util.pyi +46 -0
  627. jaclang/vendor/mypy/typeshed/stdlib/distutils/version.pyi +36 -0
  628. jaclang/vendor/mypy/typeshed/stdlib/doctest.pyi +248 -0
  629. jaclang/vendor/mypy/typeshed/stdlib/dummy_threading.pyi +2 -0
  630. jaclang/vendor/mypy/typeshed/stdlib/email/__init__.pyi +29 -0
  631. jaclang/vendor/mypy/typeshed/stdlib/email/_header_value_parser.pyi +392 -0
  632. jaclang/vendor/mypy/typeshed/stdlib/email/_policybase.pyi +51 -0
  633. jaclang/vendor/mypy/typeshed/stdlib/email/base64mime.pyi +13 -0
  634. jaclang/vendor/mypy/typeshed/stdlib/email/charset.pyi +34 -0
  635. jaclang/vendor/mypy/typeshed/stdlib/email/contentmanager.pyi +11 -0
  636. jaclang/vendor/mypy/typeshed/stdlib/email/encoders.pyi +8 -0
  637. jaclang/vendor/mypy/typeshed/stdlib/email/errors.pyi +39 -0
  638. jaclang/vendor/mypy/typeshed/stdlib/email/feedparser.pyi +23 -0
  639. jaclang/vendor/mypy/typeshed/stdlib/email/generator.pyi +40 -0
  640. jaclang/vendor/mypy/typeshed/stdlib/email/header.pyi +31 -0
  641. jaclang/vendor/mypy/typeshed/stdlib/email/headerregistry.pyi +178 -0
  642. jaclang/vendor/mypy/typeshed/stdlib/email/iterators.pyi +12 -0
  643. jaclang/vendor/mypy/typeshed/stdlib/email/message.pyi +165 -0
  644. jaclang/vendor/mypy/typeshed/stdlib/email/mime/__init__.pyi +0 -0
  645. jaclang/vendor/mypy/typeshed/stdlib/email/mime/application.pyi +17 -0
  646. jaclang/vendor/mypy/typeshed/stdlib/email/mime/audio.pyi +17 -0
  647. jaclang/vendor/mypy/typeshed/stdlib/email/mime/base.pyi +8 -0
  648. jaclang/vendor/mypy/typeshed/stdlib/email/mime/image.pyi +17 -0
  649. jaclang/vendor/mypy/typeshed/stdlib/email/mime/message.pyi +8 -0
  650. jaclang/vendor/mypy/typeshed/stdlib/email/mime/multipart.pyi +18 -0
  651. jaclang/vendor/mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +5 -0
  652. jaclang/vendor/mypy/typeshed/stdlib/email/mime/text.pyi +9 -0
  653. jaclang/vendor/mypy/typeshed/stdlib/email/parser.pyi +26 -0
  654. jaclang/vendor/mypy/typeshed/stdlib/email/policy.pyi +38 -0
  655. jaclang/vendor/mypy/typeshed/stdlib/email/quoprimime.pyi +28 -0
  656. jaclang/vendor/mypy/typeshed/stdlib/email/utils.pyi +70 -0
  657. jaclang/vendor/mypy/typeshed/stdlib/encodings/__init__.pyi +10 -0
  658. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8.pyi +21 -0
  659. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +22 -0
  660. jaclang/vendor/mypy/typeshed/stdlib/ensurepip/__init__.pyi +12 -0
  661. jaclang/vendor/mypy/typeshed/stdlib/enum.pyi +320 -0
  662. jaclang/vendor/mypy/typeshed/stdlib/errno.pyi +222 -0
  663. jaclang/vendor/mypy/typeshed/stdlib/faulthandler.pyi +13 -0
  664. jaclang/vendor/mypy/typeshed/stdlib/fcntl.pyi +127 -0
  665. jaclang/vendor/mypy/typeshed/stdlib/filecmp.pyi +57 -0
  666. jaclang/vendor/mypy/typeshed/stdlib/fileinput.pyi +213 -0
  667. jaclang/vendor/mypy/typeshed/stdlib/fnmatch.pyi +9 -0
  668. jaclang/vendor/mypy/typeshed/stdlib/formatter.pyi +88 -0
  669. jaclang/vendor/mypy/typeshed/stdlib/fractions.pyi +150 -0
  670. jaclang/vendor/mypy/typeshed/stdlib/ftplib.pyi +178 -0
  671. jaclang/vendor/mypy/typeshed/stdlib/functools.pyi +213 -0
  672. jaclang/vendor/mypy/typeshed/stdlib/gc.pyi +37 -0
  673. jaclang/vendor/mypy/typeshed/stdlib/genericpath.pyi +52 -0
  674. jaclang/vendor/mypy/typeshed/stdlib/getopt.pyi +11 -0
  675. jaclang/vendor/mypy/typeshed/stdlib/getpass.pyi +8 -0
  676. jaclang/vendor/mypy/typeshed/stdlib/gettext.pyi +169 -0
  677. jaclang/vendor/mypy/typeshed/stdlib/glob.pyi +42 -0
  678. jaclang/vendor/mypy/typeshed/stdlib/graphlib.pyi +28 -0
  679. jaclang/vendor/mypy/typeshed/stdlib/grp.pyi +22 -0
  680. jaclang/vendor/mypy/typeshed/stdlib/gzip.pyi +160 -0
  681. jaclang/vendor/mypy/typeshed/stdlib/hashlib.pyi +167 -0
  682. jaclang/vendor/mypy/typeshed/stdlib/heapq.pyi +17 -0
  683. jaclang/vendor/mypy/typeshed/stdlib/hmac.pyi +38 -0
  684. jaclang/vendor/mypy/typeshed/stdlib/html/__init__.pyi +6 -0
  685. jaclang/vendor/mypy/typeshed/stdlib/html/entities.pyi +6 -0
  686. jaclang/vendor/mypy/typeshed/stdlib/html/parser.pyi +34 -0
  687. jaclang/vendor/mypy/typeshed/stdlib/http/__init__.pyi +105 -0
  688. jaclang/vendor/mypy/typeshed/stdlib/http/client.pyi +259 -0
  689. jaclang/vendor/mypy/typeshed/stdlib/http/cookiejar.pyi +159 -0
  690. jaclang/vendor/mypy/typeshed/stdlib/http/cookies.pyi +60 -0
  691. jaclang/vendor/mypy/typeshed/stdlib/http/server.pyi +83 -0
  692. jaclang/vendor/mypy/typeshed/stdlib/imaplib.pyi +168 -0
  693. jaclang/vendor/mypy/typeshed/stdlib/imghdr.pyi +17 -0
  694. jaclang/vendor/mypy/typeshed/stdlib/imp.pyi +62 -0
  695. jaclang/vendor/mypy/typeshed/stdlib/importlib/__init__.pyi +24 -0
  696. jaclang/vendor/mypy/typeshed/stdlib/importlib/_abc.pyi +15 -0
  697. jaclang/vendor/mypy/typeshed/stdlib/importlib/abc.pyi +172 -0
  698. jaclang/vendor/mypy/typeshed/stdlib/importlib/machinery.pyi +179 -0
  699. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +285 -0
  700. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +49 -0
  701. jaclang/vendor/mypy/typeshed/stdlib/importlib/readers.pyi +68 -0
  702. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/__init__.pyi +46 -0
  703. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/abc.pyi +12 -0
  704. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/readers.pyi +14 -0
  705. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/simple.pyi +56 -0
  706. jaclang/vendor/mypy/typeshed/stdlib/importlib/simple.pyi +11 -0
  707. jaclang/vendor/mypy/typeshed/stdlib/importlib/util.pyi +43 -0
  708. jaclang/vendor/mypy/typeshed/stdlib/inspect.pyi +632 -0
  709. jaclang/vendor/mypy/typeshed/stdlib/io.pyi +238 -0
  710. jaclang/vendor/mypy/typeshed/stdlib/ipaddress.pyi +208 -0
  711. jaclang/vendor/mypy/typeshed/stdlib/itertools.pyi +273 -0
  712. jaclang/vendor/mypy/typeshed/stdlib/json/__init__.pyi +61 -0
  713. jaclang/vendor/mypy/typeshed/stdlib/json/decoder.pyi +32 -0
  714. jaclang/vendor/mypy/typeshed/stdlib/json/encoder.pyi +40 -0
  715. jaclang/vendor/mypy/typeshed/stdlib/json/tool.pyi +1 -0
  716. jaclang/vendor/mypy/typeshed/stdlib/keyword.pyi +21 -0
  717. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/__init__.pyi +0 -0
  718. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +28 -0
  719. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +42 -0
  720. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi +0 -0
  721. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +8 -0
  722. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +10 -0
  723. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +8 -0
  724. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +8 -0
  725. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +16 -0
  726. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +14 -0
  727. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +8 -0
  728. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +8 -0
  729. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +13 -0
  730. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +9 -0
  731. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +8 -0
  732. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +8 -0
  733. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +8 -0
  734. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +8 -0
  735. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +15 -0
  736. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +16 -0
  737. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +21 -0
  738. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +6 -0
  739. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +11 -0
  740. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +9 -0
  741. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +8 -0
  742. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +9 -0
  743. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +7 -0
  744. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +7 -0
  745. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +9 -0
  746. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +17 -0
  747. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +10 -0
  748. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +8 -0
  749. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +19 -0
  750. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +8 -0
  751. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +8 -0
  752. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +12 -0
  753. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +8 -0
  754. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +12 -0
  755. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +8 -0
  756. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +8 -0
  757. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +8 -0
  758. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +9 -0
  759. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +17 -0
  760. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +8 -0
  761. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +7 -0
  762. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +8 -0
  763. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +9 -0
  764. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +8 -0
  765. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +17 -0
  766. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +8 -0
  767. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +12 -0
  768. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +15 -0
  769. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +12 -0
  770. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +20 -0
  771. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +8 -0
  772. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +9 -0
  773. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/main.pyi +42 -0
  774. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +9 -0
  775. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +27 -0
  776. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +24 -0
  777. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +7 -0
  778. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +30 -0
  779. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +50 -0
  780. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +67 -0
  781. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +96 -0
  782. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pygram.pyi +114 -0
  783. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pytree.pyi +117 -0
  784. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/refactor.pyi +82 -0
  785. jaclang/vendor/mypy/typeshed/stdlib/linecache.pyi +23 -0
  786. jaclang/vendor/mypy/typeshed/stdlib/locale.pyi +152 -0
  787. jaclang/vendor/mypy/typeshed/stdlib/logging/__init__.pyi +658 -0
  788. jaclang/vendor/mypy/typeshed/stdlib/logging/config.pyi +134 -0
  789. jaclang/vendor/mypy/typeshed/stdlib/logging/handlers.pyi +275 -0
  790. jaclang/vendor/mypy/typeshed/stdlib/lzma.pyi +197 -0
  791. jaclang/vendor/mypy/typeshed/stdlib/mailbox.pyi +256 -0
  792. jaclang/vendor/mypy/typeshed/stdlib/mailcap.pyi +11 -0
  793. jaclang/vendor/mypy/typeshed/stdlib/marshal.pyi +33 -0
  794. jaclang/vendor/mypy/typeshed/stdlib/math.pyi +125 -0
  795. jaclang/vendor/mypy/typeshed/stdlib/mimetypes.pyi +46 -0
  796. jaclang/vendor/mypy/typeshed/stdlib/mmap.pyi +113 -0
  797. jaclang/vendor/mypy/typeshed/stdlib/modulefinder.pyi +66 -0
  798. jaclang/vendor/mypy/typeshed/stdlib/msilib/__init__.pyi +177 -0
  799. jaclang/vendor/mypy/typeshed/stdlib/msilib/schema.pyi +94 -0
  800. jaclang/vendor/mypy/typeshed/stdlib/msilib/sequence.pyi +13 -0
  801. jaclang/vendor/mypy/typeshed/stdlib/msilib/text.pyi +7 -0
  802. jaclang/vendor/mypy/typeshed/stdlib/msvcrt.pyi +32 -0
  803. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/__init__.pyi +90 -0
  804. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/connection.pyi +75 -0
  805. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/context.pyi +189 -0
  806. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +77 -0
  807. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +39 -0
  808. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +31 -0
  809. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/heap.pyi +36 -0
  810. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/managers.pyi +212 -0
  811. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/pool.pyi +103 -0
  812. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +23 -0
  813. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +16 -0
  814. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +20 -0
  815. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +30 -0
  816. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/process.pyi +39 -0
  817. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/queues.pyi +41 -0
  818. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/reduction.pyi +90 -0
  819. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +20 -0
  820. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +18 -0
  821. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +40 -0
  822. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +107 -0
  823. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/spawn.pyi +32 -0
  824. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +54 -0
  825. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/util.pyi +98 -0
  826. jaclang/vendor/mypy/typeshed/stdlib/netrc.pyi +23 -0
  827. jaclang/vendor/mypy/typeshed/stdlib/nis.pyi +9 -0
  828. jaclang/vendor/mypy/typeshed/stdlib/nntplib.pyi +125 -0
  829. jaclang/vendor/mypy/typeshed/stdlib/nt.pyi +111 -0
  830. jaclang/vendor/mypy/typeshed/stdlib/ntpath.pyi +119 -0
  831. jaclang/vendor/mypy/typeshed/stdlib/nturl2path.pyi +2 -0
  832. jaclang/vendor/mypy/typeshed/stdlib/numbers.pyi +209 -0
  833. jaclang/vendor/mypy/typeshed/stdlib/opcode.pyi +59 -0
  834. jaclang/vendor/mypy/typeshed/stdlib/operator.pyi +110 -0
  835. jaclang/vendor/mypy/typeshed/stdlib/optparse.pyi +255 -0
  836. jaclang/vendor/mypy/typeshed/stdlib/os/__init__.pyi +1157 -0
  837. jaclang/vendor/mypy/typeshed/stdlib/os/path.pyi +8 -0
  838. jaclang/vendor/mypy/typeshed/stdlib/ossaudiodev.pyi +131 -0
  839. jaclang/vendor/mypy/typeshed/stdlib/parser.pyi +24 -0
  840. jaclang/vendor/mypy/typeshed/stdlib/pathlib.pyi +232 -0
  841. jaclang/vendor/mypy/typeshed/stdlib/pdb.pyi +181 -0
  842. jaclang/vendor/mypy/typeshed/stdlib/pickle.pyi +271 -0
  843. jaclang/vendor/mypy/typeshed/stdlib/pickletools.pyi +167 -0
  844. jaclang/vendor/mypy/typeshed/stdlib/pipes.pyi +16 -0
  845. jaclang/vendor/mypy/typeshed/stdlib/pkgutil.pyi +53 -0
  846. jaclang/vendor/mypy/typeshed/stdlib/platform.pyi +42 -0
  847. jaclang/vendor/mypy/typeshed/stdlib/plistlib.pyi +113 -0
  848. jaclang/vendor/mypy/typeshed/stdlib/poplib.pyi +71 -0
  849. jaclang/vendor/mypy/typeshed/stdlib/posix.pyi +361 -0
  850. jaclang/vendor/mypy/typeshed/stdlib/posixpath.pyi +161 -0
  851. jaclang/vendor/mypy/typeshed/stdlib/pprint.pyi +112 -0
  852. jaclang/vendor/mypy/typeshed/stdlib/profile.pyi +31 -0
  853. jaclang/vendor/mypy/typeshed/stdlib/pstats.pyi +80 -0
  854. jaclang/vendor/mypy/typeshed/stdlib/pty.pyi +19 -0
  855. jaclang/vendor/mypy/typeshed/stdlib/pwd.pyi +28 -0
  856. jaclang/vendor/mypy/typeshed/stdlib/py_compile.pyi +34 -0
  857. jaclang/vendor/mypy/typeshed/stdlib/pyclbr.pyi +74 -0
  858. jaclang/vendor/mypy/typeshed/stdlib/pydoc.pyi +261 -0
  859. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
  860. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/topics.pyi +1 -0
  861. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/__init__.pyi +85 -0
  862. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/errors.pyi +49 -0
  863. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/model.pyi +11 -0
  864. jaclang/vendor/mypy/typeshed/stdlib/queue.pyi +66 -0
  865. jaclang/vendor/mypy/typeshed/stdlib/quopri.pyi +11 -0
  866. jaclang/vendor/mypy/typeshed/stdlib/random.pyi +138 -0
  867. jaclang/vendor/mypy/typeshed/stdlib/re.pyi +290 -0
  868. jaclang/vendor/mypy/typeshed/stdlib/readline.pyi +36 -0
  869. jaclang/vendor/mypy/typeshed/stdlib/reprlib.pyi +65 -0
  870. jaclang/vendor/mypy/typeshed/stdlib/resource.pyi +94 -0
  871. jaclang/vendor/mypy/typeshed/stdlib/rlcompleter.pyi +9 -0
  872. jaclang/vendor/mypy/typeshed/stdlib/runpy.pyi +24 -0
  873. jaclang/vendor/mypy/typeshed/stdlib/sched.pyi +42 -0
  874. jaclang/vendor/mypy/typeshed/stdlib/secrets.pyi +15 -0
  875. jaclang/vendor/mypy/typeshed/stdlib/select.pyi +155 -0
  876. jaclang/vendor/mypy/typeshed/stdlib/selectors.pyi +67 -0
  877. jaclang/vendor/mypy/typeshed/stdlib/shelve.pyi +46 -0
  878. jaclang/vendor/mypy/typeshed/stdlib/shlex.pyi +63 -0
  879. jaclang/vendor/mypy/typeshed/stdlib/shutil.pyi +185 -0
  880. jaclang/vendor/mypy/typeshed/stdlib/signal.pyi +188 -0
  881. jaclang/vendor/mypy/typeshed/stdlib/site.pyi +27 -0
  882. jaclang/vendor/mypy/typeshed/stdlib/smtpd.pyi +91 -0
  883. jaclang/vendor/mypy/typeshed/stdlib/smtplib.pyi +204 -0
  884. jaclang/vendor/mypy/typeshed/stdlib/sndhdr.pyi +14 -0
  885. jaclang/vendor/mypy/typeshed/stdlib/socket.pyi +825 -0
  886. jaclang/vendor/mypy/typeshed/stdlib/socketserver.pyi +168 -0
  887. jaclang/vendor/mypy/typeshed/stdlib/spwd.pyi +41 -0
  888. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/__init__.pyi +1 -0
  889. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +551 -0
  890. jaclang/vendor/mypy/typeshed/stdlib/sre_compile.pyi +11 -0
  891. jaclang/vendor/mypy/typeshed/stdlib/sre_constants.pyi +130 -0
  892. jaclang/vendor/mypy/typeshed/stdlib/sre_parse.pyi +104 -0
  893. jaclang/vendor/mypy/typeshed/stdlib/ssl.pyi +537 -0
  894. jaclang/vendor/mypy/typeshed/stdlib/stat.pyi +1 -0
  895. jaclang/vendor/mypy/typeshed/stdlib/statistics.pyi +132 -0
  896. jaclang/vendor/mypy/typeshed/stdlib/string.pyi +83 -0
  897. jaclang/vendor/mypy/typeshed/stdlib/stringprep.pyi +27 -0
  898. jaclang/vendor/mypy/typeshed/stdlib/struct.pyi +26 -0
  899. jaclang/vendor/mypy/typeshed/stdlib/subprocess.pyi +2615 -0
  900. jaclang/vendor/mypy/typeshed/stdlib/sunau.pyi +86 -0
  901. jaclang/vendor/mypy/typeshed/stdlib/symbol.pyi +93 -0
  902. jaclang/vendor/mypy/typeshed/stdlib/symtable.pyi +58 -0
  903. jaclang/vendor/mypy/typeshed/stdlib/sys/__init__.pyi +373 -0
  904. jaclang/vendor/mypy/typeshed/stdlib/sys/_monitoring.pyi +52 -0
  905. jaclang/vendor/mypy/typeshed/stdlib/sysconfig.pyi +48 -0
  906. jaclang/vendor/mypy/typeshed/stdlib/syslog.pyi +46 -0
  907. jaclang/vendor/mypy/typeshed/stdlib/tabnanny.pyi +16 -0
  908. jaclang/vendor/mypy/typeshed/stdlib/tarfile.pyi +441 -0
  909. jaclang/vendor/mypy/typeshed/stdlib/telnetlib.pyi +122 -0
  910. jaclang/vendor/mypy/typeshed/stdlib/tempfile.pyi +477 -0
  911. jaclang/vendor/mypy/typeshed/stdlib/termios.pyi +267 -0
  912. jaclang/vendor/mypy/typeshed/stdlib/textwrap.pyi +103 -0
  913. jaclang/vendor/mypy/typeshed/stdlib/this.pyi +2 -0
  914. jaclang/vendor/mypy/typeshed/stdlib/threading.pyi +187 -0
  915. jaclang/vendor/mypy/typeshed/stdlib/time.pyi +108 -0
  916. jaclang/vendor/mypy/typeshed/stdlib/timeit.pyi +32 -0
  917. jaclang/vendor/mypy/typeshed/stdlib/tkinter/__init__.pyi +3654 -0
  918. jaclang/vendor/mypy/typeshed/stdlib/tkinter/colorchooser.pyi +20 -0
  919. jaclang/vendor/mypy/typeshed/stdlib/tkinter/commondialog.pyi +14 -0
  920. jaclang/vendor/mypy/typeshed/stdlib/tkinter/constants.pyi +80 -0
  921. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dialog.pyi +16 -0
  922. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dnd.pyi +20 -0
  923. jaclang/vendor/mypy/typeshed/stdlib/tkinter/filedialog.pyi +151 -0
  924. jaclang/vendor/mypy/typeshed/stdlib/tkinter/font.pyi +116 -0
  925. jaclang/vendor/mypy/typeshed/stdlib/tkinter/messagebox.pyi +44 -0
  926. jaclang/vendor/mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +9 -0
  927. jaclang/vendor/mypy/typeshed/stdlib/tkinter/simpledialog.pyi +54 -0
  928. jaclang/vendor/mypy/typeshed/stdlib/tkinter/tix.pyi +299 -0
  929. jaclang/vendor/mypy/typeshed/stdlib/tkinter/ttk.pyi +1204 -0
  930. jaclang/vendor/mypy/typeshed/stdlib/token.pyi +159 -0
  931. jaclang/vendor/mypy/typeshed/stdlib/tokenize.pyi +177 -0
  932. jaclang/vendor/mypy/typeshed/stdlib/tomllib.pyi +10 -0
  933. jaclang/vendor/mypy/typeshed/stdlib/trace.pyi +79 -0
  934. jaclang/vendor/mypy/typeshed/stdlib/traceback.pyi +262 -0
  935. jaclang/vendor/mypy/typeshed/stdlib/tracemalloc.pyi +124 -0
  936. jaclang/vendor/mypy/typeshed/stdlib/tty.pyi +30 -0
  937. jaclang/vendor/mypy/typeshed/stdlib/turtle.pyi +713 -0
  938. jaclang/vendor/mypy/typeshed/stdlib/types.pyi +614 -0
  939. jaclang/vendor/mypy/typeshed/stdlib/typing.pyi +976 -0
  940. jaclang/vendor/mypy/typeshed/stdlib/typing_extensions.pyi +509 -0
  941. jaclang/vendor/mypy/typeshed/stdlib/unicodedata.pyi +73 -0
  942. jaclang/vendor/mypy/typeshed/stdlib/unittest/__init__.pyi +67 -0
  943. jaclang/vendor/mypy/typeshed/stdlib/unittest/_log.pyi +27 -0
  944. jaclang/vendor/mypy/typeshed/stdlib/unittest/async_case.pyi +21 -0
  945. jaclang/vendor/mypy/typeshed/stdlib/unittest/case.pyi +342 -0
  946. jaclang/vendor/mypy/typeshed/stdlib/unittest/loader.pyi +51 -0
  947. jaclang/vendor/mypy/typeshed/stdlib/unittest/main.pyi +69 -0
  948. jaclang/vendor/mypy/typeshed/stdlib/unittest/mock.pyi +430 -0
  949. jaclang/vendor/mypy/typeshed/stdlib/unittest/result.pyi +47 -0
  950. jaclang/vendor/mypy/typeshed/stdlib/unittest/runner.pyi +72 -0
  951. jaclang/vendor/mypy/typeshed/stdlib/unittest/signals.pyi +15 -0
  952. jaclang/vendor/mypy/typeshed/stdlib/unittest/suite.pyi +22 -0
  953. jaclang/vendor/mypy/typeshed/stdlib/unittest/util.pyi +23 -0
  954. jaclang/vendor/mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
  955. jaclang/vendor/mypy/typeshed/stdlib/urllib/error.pyi +23 -0
  956. jaclang/vendor/mypy/typeshed/stdlib/urllib/parse.pyi +210 -0
  957. jaclang/vendor/mypy/typeshed/stdlib/urllib/request.pyi +400 -0
  958. jaclang/vendor/mypy/typeshed/stdlib/urllib/response.pyi +43 -0
  959. jaclang/vendor/mypy/typeshed/stdlib/urllib/robotparser.pyi +20 -0
  960. jaclang/vendor/mypy/typeshed/stdlib/uu.pyi +13 -0
  961. jaclang/vendor/mypy/typeshed/stdlib/uuid.pyi +100 -0
  962. jaclang/vendor/mypy/typeshed/stdlib/warnings.pyi +112 -0
  963. jaclang/vendor/mypy/typeshed/stdlib/wave.pyi +85 -0
  964. jaclang/vendor/mypy/typeshed/stdlib/weakref.pyi +149 -0
  965. jaclang/vendor/mypy/typeshed/stdlib/webbrowser.pyi +74 -0
  966. jaclang/vendor/mypy/typeshed/stdlib/winreg.pyi +132 -0
  967. jaclang/vendor/mypy/typeshed/stdlib/winsound.pyi +28 -0
  968. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
  969. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/handlers.pyi +91 -0
  970. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/headers.pyi +26 -0
  971. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/simple_server.pyi +37 -0
  972. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/types.pyi +32 -0
  973. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/util.pyi +24 -0
  974. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/validate.pyi +50 -0
  975. jaclang/vendor/mypy/typeshed/stdlib/xdrlib.pyi +57 -0
  976. jaclang/vendor/mypy/typeshed/stdlib/xml/__init__.pyi +1 -0
  977. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +19 -0
  978. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/__init__.pyi +69 -0
  979. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/domreg.pyi +8 -0
  980. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +100 -0
  981. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minicompat.pyi +22 -0
  982. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minidom.pyi +404 -0
  983. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/pulldom.pyi +94 -0
  984. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +108 -0
  985. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +28 -0
  986. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +34 -0
  987. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +327 -0
  988. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
  989. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +1 -0
  990. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/__init__.pyi +1 -0
  991. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +1 -0
  992. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +1 -0
  993. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +1 -0
  994. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/__init__.pyi +25 -0
  995. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/_exceptions.pyi +19 -0
  996. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/handler.pyi +55 -0
  997. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/saxutils.pyi +60 -0
  998. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +87 -0
  999. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
  1000. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/client.pyi +296 -0
  1001. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/server.pyi +143 -0
  1002. jaclang/vendor/mypy/typeshed/stdlib/xxlimited.pyi +22 -0
  1003. jaclang/vendor/mypy/typeshed/stdlib/zipapp.pyi +20 -0
  1004. jaclang/vendor/mypy/typeshed/stdlib/zipfile/__init__.pyi +306 -0
  1005. jaclang/vendor/mypy/typeshed/stdlib/zipfile/_path.pyi +95 -0
  1006. jaclang/vendor/mypy/typeshed/stdlib/zipimport.pyi +32 -0
  1007. jaclang/vendor/mypy/typeshed/stdlib/zlib.pyi +56 -0
  1008. jaclang/vendor/mypy/typeshed/stdlib/zoneinfo/__init__.pyi +38 -0
  1009. jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +218 -0
  1010. jaclang/vendor/mypy/typestate.py +5 -15
  1011. jaclang/vendor/mypy/typetraverser.py +9 -3
  1012. jaclang/vendor/mypy/typevars.py +2 -8
  1013. jaclang/vendor/mypy/util.py +14 -45
  1014. jaclang/vendor/mypy/version.py +1 -19
  1015. jaclang/vendor/mypy/visitor.py +3 -9
  1016. jaclang/vendor/mypy/xml/mypy-html.css +104 -0
  1017. jaclang/vendor/mypy/xml/mypy-html.xslt +81 -0
  1018. jaclang/vendor/mypy/xml/mypy-txt.xslt +100 -0
  1019. jaclang/vendor/mypy/xml/mypy.xsd +50 -0
  1020. jaclang/vendor/mypy-1.10.0.dist-info/LICENSE +229 -0
  1021. jaclang/vendor/mypy-1.10.0.dist-info/METADATA +48 -0
  1022. jaclang/vendor/mypy-1.10.0.dist-info/RECORD +1241 -0
  1023. jaclang/vendor/mypy-1.10.0.dist-info/WHEEL +6 -0
  1024. jaclang/vendor/mypy-1.10.0.dist-info/entry_points.txt +6 -0
  1025. jaclang/vendor/mypy-1.10.0.dist-info/top_level.txt +3 -0
  1026. jaclang/vendor/mypy_extensions-1.0.0.dist-info/LICENSE +27 -0
  1027. jaclang/vendor/mypy_extensions-1.0.0.dist-info/METADATA +29 -0
  1028. jaclang/vendor/mypy_extensions-1.0.0.dist-info/RECORD +6 -0
  1029. jaclang/vendor/mypy_extensions-1.0.0.dist-info/WHEEL +5 -0
  1030. jaclang/vendor/mypy_extensions-1.0.0.dist-info/top_level.txt +1 -0
  1031. jaclang/vendor/mypy_extensions.py +21 -40
  1032. jaclang/vendor/mypyc/README.md +133 -0
  1033. jaclang/vendor/mypyc/__main__.py +1 -3
  1034. jaclang/vendor/mypyc/analysis/attrdefined.py +6 -22
  1035. jaclang/vendor/mypyc/analysis/dataflow.py +5 -3
  1036. jaclang/vendor/mypyc/analysis/ircheck.py +13 -26
  1037. jaclang/vendor/mypyc/analysis/selfleaks.py +4 -0
  1038. jaclang/vendor/mypyc/build.py +6 -19
  1039. jaclang/vendor/mypyc/codegen/emit.py +20 -73
  1040. jaclang/vendor/mypyc/codegen/emitclass.py +22 -72
  1041. jaclang/vendor/mypyc/codegen/emitfunc.py +20 -62
  1042. jaclang/vendor/mypyc/codegen/emitmodule.py +50 -117
  1043. jaclang/vendor/mypyc/codegen/emitwrapper.py +22 -78
  1044. jaclang/vendor/mypyc/codegen/literals.py +1 -3
  1045. jaclang/vendor/mypyc/common.py +1 -3
  1046. jaclang/vendor/mypyc/doc/Makefile +20 -0
  1047. jaclang/vendor/mypyc/doc/bool_operations.rst +27 -0
  1048. jaclang/vendor/mypyc/doc/compilation_units.rst +20 -0
  1049. jaclang/vendor/mypyc/doc/conf.py +59 -0
  1050. jaclang/vendor/mypyc/doc/cpython-timings.md +25 -0
  1051. jaclang/vendor/mypyc/doc/dev-intro.md +548 -0
  1052. jaclang/vendor/mypyc/doc/dict_operations.rst +59 -0
  1053. jaclang/vendor/mypyc/doc/differences_from_python.rst +332 -0
  1054. jaclang/vendor/mypyc/doc/float_operations.rst +50 -0
  1055. jaclang/vendor/mypyc/doc/future.md +42 -0
  1056. jaclang/vendor/mypyc/doc/getting_started.rst +240 -0
  1057. jaclang/vendor/mypyc/doc/index.rst +61 -0
  1058. jaclang/vendor/mypyc/doc/int_operations.rst +162 -0
  1059. jaclang/vendor/mypyc/doc/introduction.rst +150 -0
  1060. jaclang/vendor/mypyc/doc/list_operations.rst +65 -0
  1061. jaclang/vendor/mypyc/doc/make.bat +35 -0
  1062. jaclang/vendor/mypyc/doc/native_classes.rst +206 -0
  1063. jaclang/vendor/mypyc/doc/native_operations.rst +55 -0
  1064. jaclang/vendor/mypyc/doc/performance_tips_and_tricks.rst +244 -0
  1065. jaclang/vendor/mypyc/doc/set_operations.rst +47 -0
  1066. jaclang/vendor/mypyc/doc/str_operations.rst +35 -0
  1067. jaclang/vendor/mypyc/doc/tuple_operations.rst +33 -0
  1068. jaclang/vendor/mypyc/doc/using_type_annotations.rst +398 -0
  1069. jaclang/vendor/mypyc/external/googletest/LICENSE +28 -0
  1070. jaclang/vendor/mypyc/external/googletest/README.md +280 -0
  1071. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-death-test.h +294 -0
  1072. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-message.h +250 -0
  1073. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h +1444 -0
  1074. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h.pump +510 -0
  1075. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-printers.h +993 -0
  1076. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-spi.h +232 -0
  1077. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-test-part.h +179 -0
  1078. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-typed-test.h +263 -0
  1079. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest.h +2236 -0
  1080. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_pred_impl.h +358 -0
  1081. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_prod.h +58 -0
  1082. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-port.h +69 -0
  1083. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  1084. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest.h +41 -0
  1085. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-death-test-internal.h +319 -0
  1086. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-filepath.h +206 -0
  1087. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-internal.h +1238 -0
  1088. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-linked_ptr.h +243 -0
  1089. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h +5146 -0
  1090. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +286 -0
  1091. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util.h +731 -0
  1092. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port-arch.h +93 -0
  1093. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port.h +2560 -0
  1094. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-string.h +167 -0
  1095. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h +1020 -0
  1096. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h.pump +347 -0
  1097. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h +3331 -0
  1098. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h.pump +297 -0
  1099. jaclang/vendor/mypyc/external/googletest/make/Makefile +61 -0
  1100. jaclang/vendor/mypyc/external/googletest/src/gtest-all.cc +48 -0
  1101. jaclang/vendor/mypyc/external/googletest/src/gtest-death-test.cc +1342 -0
  1102. jaclang/vendor/mypyc/external/googletest/src/gtest-filepath.cc +387 -0
  1103. jaclang/vendor/mypyc/external/googletest/src/gtest-internal-inl.h +1183 -0
  1104. jaclang/vendor/mypyc/external/googletest/src/gtest-port.cc +1259 -0
  1105. jaclang/vendor/mypyc/external/googletest/src/gtest-printers.cc +373 -0
  1106. jaclang/vendor/mypyc/external/googletest/src/gtest-test-part.cc +110 -0
  1107. jaclang/vendor/mypyc/external/googletest/src/gtest-typed-test.cc +118 -0
  1108. jaclang/vendor/mypyc/external/googletest/src/gtest.cc +5388 -0
  1109. jaclang/vendor/mypyc/external/googletest/src/gtest_main.cc +38 -0
  1110. jaclang/vendor/mypyc/ir/class_ir.py +8 -24
  1111. jaclang/vendor/mypyc/ir/func_ir.py +3 -16
  1112. jaclang/vendor/mypyc/ir/module_ir.py +2 -6
  1113. jaclang/vendor/mypyc/ir/ops.py +103 -66
  1114. jaclang/vendor/mypyc/ir/pprint.py +35 -55
  1115. jaclang/vendor/mypyc/ir/rtypes.py +16 -48
  1116. jaclang/vendor/mypyc/irbuild/ast_helpers.py +4 -1
  1117. jaclang/vendor/mypyc/irbuild/builder.py +46 -148
  1118. jaclang/vendor/mypyc/irbuild/callable_class.py +5 -19
  1119. jaclang/vendor/mypyc/irbuild/classdef.py +27 -83
  1120. jaclang/vendor/mypyc/irbuild/env_class.py +3 -9
  1121. jaclang/vendor/mypyc/irbuild/expression.py +42 -100
  1122. jaclang/vendor/mypyc/irbuild/for_helpers.py +56 -105
  1123. jaclang/vendor/mypyc/irbuild/format_str_tokenizer.py +1 -4
  1124. jaclang/vendor/mypyc/irbuild/function.py +40 -132
  1125. jaclang/vendor/mypyc/irbuild/generator.py +14 -49
  1126. jaclang/vendor/mypyc/irbuild/ll_builder.py +197 -426
  1127. jaclang/vendor/mypyc/irbuild/mapper.py +2 -13
  1128. jaclang/vendor/mypyc/irbuild/match.py +11 -36
  1129. jaclang/vendor/mypyc/irbuild/nonlocalcontrol.py +2 -7
  1130. jaclang/vendor/mypyc/irbuild/prebuildvisitor.py +1 -4
  1131. jaclang/vendor/mypyc/irbuild/prepare.py +25 -83
  1132. jaclang/vendor/mypyc/irbuild/specialize.py +22 -72
  1133. jaclang/vendor/mypyc/irbuild/statement.py +30 -96
  1134. jaclang/vendor/mypyc/irbuild/targets.py +1 -3
  1135. jaclang/vendor/mypyc/irbuild/util.py +2 -8
  1136. jaclang/vendor/mypyc/irbuild/vtable.py +1 -3
  1137. jaclang/vendor/mypyc/lib-rt/CPy.h +638 -0
  1138. jaclang/vendor/mypyc/lib-rt/bytes_ops.c +143 -0
  1139. jaclang/vendor/mypyc/lib-rt/dict_ops.c +446 -0
  1140. jaclang/vendor/mypyc/lib-rt/exc_ops.c +259 -0
  1141. jaclang/vendor/mypyc/lib-rt/float_ops.c +192 -0
  1142. jaclang/vendor/mypyc/lib-rt/generic_ops.c +64 -0
  1143. jaclang/vendor/mypyc/lib-rt/getargs.c +450 -0
  1144. jaclang/vendor/mypyc/lib-rt/getargsfast.c +569 -0
  1145. jaclang/vendor/mypyc/lib-rt/init.c +13 -0
  1146. jaclang/vendor/mypyc/lib-rt/int_ops.c +803 -0
  1147. jaclang/vendor/mypyc/lib-rt/list_ops.c +335 -0
  1148. jaclang/vendor/mypyc/lib-rt/misc_ops.c +942 -0
  1149. jaclang/vendor/mypyc/lib-rt/module_shim.tmpl +18 -0
  1150. jaclang/vendor/mypyc/lib-rt/mypyc_util.h +118 -0
  1151. jaclang/vendor/mypyc/lib-rt/pythoncapi_compat.h +497 -0
  1152. jaclang/vendor/mypyc/lib-rt/pythonsupport.h +533 -0
  1153. jaclang/vendor/mypyc/lib-rt/set_ops.c +17 -0
  1154. jaclang/vendor/mypyc/lib-rt/setup.py +70 -0
  1155. jaclang/vendor/mypyc/lib-rt/str_ops.c +241 -0
  1156. jaclang/vendor/mypyc/lib-rt/test_capi.cc +585 -0
  1157. jaclang/vendor/mypyc/lib-rt/tuple_ops.c +61 -0
  1158. jaclang/vendor/mypyc/lower/__init__.py +0 -0
  1159. jaclang/vendor/mypyc/lower/int_ops.py +113 -0
  1160. jaclang/vendor/mypyc/lower/list_ops.py +45 -0
  1161. jaclang/vendor/mypyc/lower/misc_ops.py +12 -0
  1162. jaclang/vendor/mypyc/lower/registry.py +26 -0
  1163. jaclang/vendor/mypyc/options.py +1 -3
  1164. jaclang/vendor/mypyc/primitives/dict_ops.py +1 -4
  1165. jaclang/vendor/mypyc/primitives/exc_ops.py +3 -12
  1166. jaclang/vendor/mypyc/primitives/int_ops.py +22 -32
  1167. jaclang/vendor/mypyc/primitives/list_ops.py +10 -0
  1168. jaclang/vendor/mypyc/primitives/misc_ops.py +28 -22
  1169. jaclang/vendor/mypyc/primitives/registry.py +56 -19
  1170. jaclang/vendor/mypyc/primitives/set_ops.py +1 -3
  1171. jaclang/vendor/mypyc/rt_subtype.py +1 -2
  1172. jaclang/vendor/mypyc/sametype.py +2 -5
  1173. jaclang/vendor/mypyc/subtype.py +3 -12
  1174. jaclang/vendor/mypyc/test/test_alwaysdefined.py +2 -6
  1175. jaclang/vendor/mypyc/test/test_analysis.py +8 -24
  1176. jaclang/vendor/mypyc/test/test_cheader.py +12 -4
  1177. jaclang/vendor/mypyc/test/test_emit.py +4 -14
  1178. jaclang/vendor/mypyc/test/test_emitclass.py +1 -8
  1179. jaclang/vendor/mypyc/test/test_emitfunc.py +30 -77
  1180. jaclang/vendor/mypyc/test/test_emitwrapper.py +1 -3
  1181. jaclang/vendor/mypyc/test/test_exceptions.py +4 -12
  1182. jaclang/vendor/mypyc/test/test_external.py +1 -5
  1183. jaclang/vendor/mypyc/test/test_irbuild.py +2 -6
  1184. jaclang/vendor/mypyc/test/test_ircheck.py +6 -17
  1185. jaclang/vendor/mypyc/test/test_literals.py +1 -4
  1186. jaclang/vendor/mypyc/test/test_lowering.py +56 -0
  1187. jaclang/vendor/mypyc/test/test_namegen.py +1 -4
  1188. jaclang/vendor/mypyc/test/test_optimizations.py +68 -0
  1189. jaclang/vendor/mypyc/test/test_refcount.py +3 -9
  1190. jaclang/vendor/mypyc/test/test_run.py +12 -38
  1191. jaclang/vendor/mypyc/test/test_serialization.py +1 -3
  1192. jaclang/vendor/mypyc/test/test_struct.py +3 -11
  1193. jaclang/vendor/mypyc/test/test_tuplename.py +4 -13
  1194. jaclang/vendor/mypyc/test/test_typeops.py +1 -4
  1195. jaclang/vendor/mypyc/test/testutil.py +2 -6
  1196. jaclang/vendor/mypyc/test-data/alwaysdefined.test +732 -0
  1197. jaclang/vendor/mypyc/test-data/analysis.test +470 -0
  1198. jaclang/vendor/mypyc/test-data/commandline.test +245 -0
  1199. jaclang/vendor/mypyc/test-data/driver/driver.py +48 -0
  1200. jaclang/vendor/mypyc/test-data/exceptions-freq.test +125 -0
  1201. jaclang/vendor/mypyc/test-data/exceptions.test +699 -0
  1202. jaclang/vendor/mypyc/test-data/fixtures/ir.py +373 -0
  1203. jaclang/vendor/mypyc/test-data/fixtures/testutil.py +103 -0
  1204. jaclang/vendor/mypyc/test-data/fixtures/typing-full.pyi +169 -0
  1205. jaclang/vendor/mypyc/test-data/irbuild-any.test +236 -0
  1206. jaclang/vendor/mypyc/test-data/irbuild-basic.test +3399 -0
  1207. jaclang/vendor/mypyc/test-data/irbuild-bool.test +424 -0
  1208. jaclang/vendor/mypyc/test-data/irbuild-bytes.test +181 -0
  1209. jaclang/vendor/mypyc/test-data/irbuild-classes.test +1302 -0
  1210. jaclang/vendor/mypyc/test-data/irbuild-constant-fold.test +480 -0
  1211. jaclang/vendor/mypyc/test-data/irbuild-dict.test +584 -0
  1212. jaclang/vendor/mypyc/test-data/irbuild-dunders.test +215 -0
  1213. jaclang/vendor/mypyc/test-data/irbuild-float.test +497 -0
  1214. jaclang/vendor/mypyc/test-data/irbuild-generics.test +150 -0
  1215. jaclang/vendor/mypyc/test-data/irbuild-glue-methods.test +437 -0
  1216. jaclang/vendor/mypyc/test-data/irbuild-i16.test +526 -0
  1217. jaclang/vendor/mypyc/test-data/irbuild-i32.test +598 -0
  1218. jaclang/vendor/mypyc/test-data/irbuild-i64.test +2144 -0
  1219. jaclang/vendor/mypyc/test-data/irbuild-int.test +194 -0
  1220. jaclang/vendor/mypyc/test-data/irbuild-isinstance.test +109 -0
  1221. jaclang/vendor/mypyc/test-data/irbuild-lists.test +513 -0
  1222. jaclang/vendor/mypyc/test-data/irbuild-match.test +1717 -0
  1223. jaclang/vendor/mypyc/test-data/irbuild-math.test +64 -0
  1224. jaclang/vendor/mypyc/test-data/irbuild-nested.test +807 -0
  1225. jaclang/vendor/mypyc/test-data/irbuild-optional.test +536 -0
  1226. jaclang/vendor/mypyc/test-data/irbuild-set.test +806 -0
  1227. jaclang/vendor/mypyc/test-data/irbuild-singledispatch.test +257 -0
  1228. jaclang/vendor/mypyc/test-data/irbuild-statements.test +1060 -0
  1229. jaclang/vendor/mypyc/test-data/irbuild-str.test +312 -0
  1230. jaclang/vendor/mypyc/test-data/irbuild-strip-asserts.test +12 -0
  1231. jaclang/vendor/mypyc/test-data/irbuild-try.test +523 -0
  1232. jaclang/vendor/mypyc/test-data/irbuild-tuple.test +386 -0
  1233. jaclang/vendor/mypyc/test-data/irbuild-u8.test +543 -0
  1234. jaclang/vendor/mypyc/test-data/irbuild-unreachable.test +241 -0
  1235. jaclang/vendor/mypyc/test-data/irbuild-vectorcall.test +153 -0
  1236. jaclang/vendor/mypyc/test-data/lowering-int.test +377 -0
  1237. jaclang/vendor/mypyc/test-data/lowering-list.test +33 -0
  1238. jaclang/vendor/mypyc/test-data/opt-copy-propagation.test +400 -0
  1239. jaclang/vendor/mypyc/test-data/opt-flag-elimination.test +296 -0
  1240. jaclang/vendor/mypyc/test-data/refcount.test +1482 -0
  1241. jaclang/vendor/mypyc/test-data/run-async.test +173 -0
  1242. jaclang/vendor/mypyc/test-data/run-attrs.test +318 -0
  1243. jaclang/vendor/mypyc/test-data/run-bench.test +196 -0
  1244. jaclang/vendor/mypyc/test-data/run-bools.test +229 -0
  1245. jaclang/vendor/mypyc/test-data/run-bytes.test +302 -0
  1246. jaclang/vendor/mypyc/test-data/run-classes.test +2505 -0
  1247. jaclang/vendor/mypyc/test-data/run-dicts.test +334 -0
  1248. jaclang/vendor/mypyc/test-data/run-dunders.test +945 -0
  1249. jaclang/vendor/mypyc/test-data/run-exceptions.test +448 -0
  1250. jaclang/vendor/mypyc/test-data/run-floats.test +516 -0
  1251. jaclang/vendor/mypyc/test-data/run-functions.test +1310 -0
  1252. jaclang/vendor/mypyc/test-data/run-generators.test +682 -0
  1253. jaclang/vendor/mypyc/test-data/run-i16.test +338 -0
  1254. jaclang/vendor/mypyc/test-data/run-i32.test +336 -0
  1255. jaclang/vendor/mypyc/test-data/run-i64.test +1519 -0
  1256. jaclang/vendor/mypyc/test-data/run-imports.test +265 -0
  1257. jaclang/vendor/mypyc/test-data/run-integers.test +540 -0
  1258. jaclang/vendor/mypyc/test-data/run-lists.test +411 -0
  1259. jaclang/vendor/mypyc/test-data/run-loops.test +485 -0
  1260. jaclang/vendor/mypyc/test-data/run-match.test +283 -0
  1261. jaclang/vendor/mypyc/test-data/run-math.test +106 -0
  1262. jaclang/vendor/mypyc/test-data/run-misc.test +1170 -0
  1263. jaclang/vendor/mypyc/test-data/run-multimodule.test +887 -0
  1264. jaclang/vendor/mypyc/test-data/run-mypy-sim.test +138 -0
  1265. jaclang/vendor/mypyc/test-data/run-primitives.test +375 -0
  1266. jaclang/vendor/mypyc/test-data/run-python37.test +159 -0
  1267. jaclang/vendor/mypyc/test-data/run-python38.test +88 -0
  1268. jaclang/vendor/mypyc/test-data/run-sets.test +150 -0
  1269. jaclang/vendor/mypyc/test-data/run-singledispatch.test +698 -0
  1270. jaclang/vendor/mypyc/test-data/run-strings.test +641 -0
  1271. jaclang/vendor/mypyc/test-data/run-traits.test +411 -0
  1272. jaclang/vendor/mypyc/test-data/run-tuples.test +258 -0
  1273. jaclang/vendor/mypyc/test-data/run-u8.test +303 -0
  1274. jaclang/vendor/mypyc/transform/copy_propagation.py +94 -0
  1275. jaclang/vendor/mypyc/transform/exceptions.py +1 -5
  1276. jaclang/vendor/mypyc/transform/flag_elimination.py +108 -0
  1277. jaclang/vendor/mypyc/transform/ir_transform.py +368 -0
  1278. jaclang/vendor/mypyc/transform/lower.py +33 -0
  1279. jaclang/vendor/mypyc/transform/refcount.py +7 -30
  1280. jaclang/vendor/mypyc/transform/uninit.py +4 -15
  1281. jaclang/vendor/pluggy/__init__.py +15 -11
  1282. jaclang/vendor/pluggy/_callers.py +34 -5
  1283. jaclang/vendor/pluggy/_hooks.py +35 -7
  1284. jaclang/vendor/pluggy/_manager.py +26 -3
  1285. jaclang/vendor/pluggy/_result.py +0 -15
  1286. jaclang/vendor/pluggy/_version.py +16 -0
  1287. jaclang/vendor/pluggy/_warnings.py +27 -0
  1288. jaclang/vendor/pluggy-1.5.0.dist-info/LICENSE +21 -0
  1289. jaclang/vendor/pluggy-1.5.0.dist-info/METADATA +155 -0
  1290. jaclang/vendor/pluggy-1.5.0.dist-info/RECORD +14 -0
  1291. jaclang/vendor/pluggy-1.5.0.dist-info/top_level.txt +1 -0
  1292. jaclang/vendor/pygls/__init__.py +25 -0
  1293. jaclang/vendor/pygls/capabilities.py +460 -0
  1294. jaclang/vendor/pygls/client.py +176 -0
  1295. jaclang/vendor/pygls/constants.py +26 -0
  1296. jaclang/vendor/pygls/exceptions.py +215 -0
  1297. jaclang/vendor/pygls/feature_manager.py +244 -0
  1298. jaclang/vendor/pygls/lsp/__init__.py +139 -0
  1299. jaclang/vendor/pygls/lsp/client.py +1961 -0
  1300. jaclang/vendor/pygls/progress.py +79 -0
  1301. jaclang/vendor/pygls/protocol/__init__.py +78 -0
  1302. jaclang/vendor/pygls/protocol/json_rpc.py +560 -0
  1303. jaclang/vendor/pygls/protocol/language_server.py +569 -0
  1304. jaclang/vendor/pygls/protocol/lsp_meta.py +51 -0
  1305. jaclang/vendor/pygls/py.typed +2 -0
  1306. jaclang/vendor/pygls/server.py +616 -0
  1307. jaclang/vendor/pygls/uris.py +184 -0
  1308. jaclang/vendor/pygls/workspace/__init__.py +97 -0
  1309. jaclang/vendor/pygls/workspace/position_codec.py +206 -0
  1310. jaclang/vendor/pygls/workspace/text_document.py +238 -0
  1311. jaclang/vendor/pygls/workspace/workspace.py +323 -0
  1312. jaclang/vendor/pygls-1.3.1.dist-info/LICENSE.txt +201 -0
  1313. jaclang/vendor/pygls-1.3.1.dist-info/METADATA +105 -0
  1314. jaclang/vendor/pygls-1.3.1.dist-info/RECORD +24 -0
  1315. jaclang/vendor/pygls-1.3.1.dist-info/WHEEL +4 -0
  1316. jaclang/vendor/typing_extensions-4.12.2.dist-info/LICENSE +279 -0
  1317. jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA +67 -0
  1318. jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD +5 -0
  1319. jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL +4 -0
  1320. jaclang/vendor/typing_extensions.py +1209 -641
  1321. jaclang-0.6.5.dist-info/METADATA +106 -0
  1322. jaclang-0.6.5.dist-info/RECORD +1476 -0
  1323. jaclang-0.6.5.dist-info/WHEEL +4 -0
  1324. jaclang-0.6.5.dist-info/entry_points.txt +3 -0
  1325. jaclang/compiler/generated/jac_parser.py +0 -4069
  1326. jaclang-0.6.1.dist-info/METADATA +0 -17
  1327. jaclang-0.6.1.dist-info/RECORD +0 -430
  1328. jaclang-0.6.1.dist-info/entry_points.txt +0 -2
  1329. jaclang-0.6.1.dist-info/top_level.txt +0 -1
  1330. /jaclang/{compiler/generated/__init__.py → vendor/attr/py.typed} +0 -0
  1331. {jaclang-0.6.1.dist-info → jaclang/vendor/pluggy-1.5.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,1519 @@
1
+ [case testI64BasicOps]
2
+ from typing import List, Any, Tuple, Union
3
+
4
+ from mypy_extensions import i64, i32, i16
5
+
6
+ from testutil import assertRaises
7
+
8
+ def inc(n: i64) -> i64:
9
+ return n + 1
10
+
11
+ def test_inc() -> None:
12
+ # Use int() to avoid constant folding
13
+ n = 1 + int()
14
+ m = 2 + int()
15
+ assert inc(n) == m
16
+
17
+ def min_ll(x: i64, y: i64) -> i64:
18
+ if x < y:
19
+ return x
20
+ else:
21
+ return y
22
+
23
+ def test_min() -> None:
24
+ assert min_ll(1 + int(), 2) == 1
25
+ assert min_ll(2 + int(), 1) == 1
26
+ assert min_ll(1 + int(), 1) == 1
27
+ assert min_ll(-2 + int(), 1) == -2
28
+ assert min_ll(1 + int(), -2) == -2
29
+
30
+ def eq(x: i64, y: i64) -> bool:
31
+ return x == y
32
+
33
+ def test_eq() -> None:
34
+ assert eq(int(), int())
35
+ assert eq(5 + int(), 5 + int())
36
+ assert eq(-5 + int(), -5 + int())
37
+ assert not eq(int(), 1 + int())
38
+ assert not eq(5 + int(), 6 + int())
39
+ assert not eq(-5 + int(), -6 + int())
40
+ assert not eq(-5 + int(), 5 + int())
41
+
42
+ def test_comparisons() -> None:
43
+ one: i64 = 1 + int()
44
+ one2: i64 = 1 + int()
45
+ two: i64 = 2 + int()
46
+ assert one < two
47
+ assert not (one < one2)
48
+ assert not (two < one)
49
+ assert two > one
50
+ assert not (one > one2)
51
+ assert not (one > two)
52
+ assert one <= two
53
+ assert one <= one2
54
+ assert not (two <= one)
55
+ assert two >= one
56
+ assert one >= one2
57
+ assert not (one >= two)
58
+ assert one == one2
59
+ assert not (one == two)
60
+ assert one != two
61
+ assert not (one != one2)
62
+
63
+ def is_true(x: i64) -> bool:
64
+ if x:
65
+ return True
66
+ else:
67
+ return False
68
+
69
+ def is_true2(x: i64) -> bool:
70
+ return bool(x)
71
+
72
+ def is_false(x: i64) -> bool:
73
+ if not x:
74
+ return True
75
+ else:
76
+ return False
77
+
78
+ def test_i64_as_bool() -> None:
79
+ assert not is_true(0)
80
+ assert not is_true2(0)
81
+ assert is_false(0)
82
+ for x in 1, 55, -1, -7, 1 << 40, -(1 << 50):
83
+ assert is_true(x)
84
+ assert is_true2(x)
85
+ assert not is_false(x)
86
+
87
+ def bool_as_i64(b: bool) -> i64:
88
+ return b
89
+
90
+ def test_bool_as_i64() -> None:
91
+ assert bool_as_i64(False) == 0
92
+ assert bool_as_i64(True) == 1
93
+
94
+ def div_by_3(x: i64) -> i64:
95
+ return x // 3
96
+
97
+ def div_by_neg_3(x: i64) -> i64:
98
+ return x // -3
99
+
100
+ def div(x: i64, y: i64) -> i64:
101
+ return x // y
102
+
103
+ def test_divide_by_constant() -> None:
104
+ for i in range(-1000, 1000):
105
+ assert div_by_3(i) == i // 3
106
+ for i in range(-2**63, -2**63 + 1000):
107
+ assert div_by_3(i) == i // 3
108
+ for i in range(2**63 - 1000, 2**63):
109
+ assert div_by_3(i) == i // 3
110
+
111
+ def test_divide_by_negative_constant() -> None:
112
+ for i in range(-1000, 1000):
113
+ assert div_by_neg_3(i) == i // -3
114
+ for i in range(-2**63, -2**63 + 1000):
115
+ assert div_by_neg_3(i) == i // -3
116
+ for i in range(2**63 - 1000, 2**63):
117
+ assert div_by_neg_3(i) == i // -3
118
+
119
+ def test_divide_by_variable() -> None:
120
+ values = (list(range(-50, 50)) +
121
+ list(range(-2**63, -2**63 + 10)) +
122
+ list(range(2**63 - 10, 2**63)))
123
+ for x in values:
124
+ for y in values:
125
+ if y != 0:
126
+ if x // y == 2**63:
127
+ with assertRaises(OverflowError, "integer division overflow"):
128
+ div(x, y)
129
+ else:
130
+ assert div(x, y) == x // y
131
+ else:
132
+ with assertRaises(ZeroDivisionError, "integer division or modulo by zero"):
133
+ div(x, y)
134
+
135
+ def mod_by_7(x: i64) -> i64:
136
+ return x % 7
137
+
138
+ def mod_by_neg_7(x: i64) -> i64:
139
+ return x // -7
140
+
141
+ def mod(x: i64, y: i64) -> i64:
142
+ return x % y
143
+
144
+ def test_mod_by_constant() -> None:
145
+ for i in range(-1000, 1000):
146
+ assert mod_by_7(i) == i % 7
147
+ for i in range(-2**63, -2**63 + 1000):
148
+ assert mod_by_7(i) == i % 7
149
+ for i in range(2**63 - 1000, 2**63):
150
+ assert mod_by_7(i) == i % 7
151
+
152
+ def test_mod_by_negative_constant() -> None:
153
+ for i in range(-1000, 1000):
154
+ assert mod_by_neg_7(i) == i // -7
155
+ for i in range(-2**63, -2**63 + 1000):
156
+ assert mod_by_neg_7(i) == i // -7
157
+ for i in range(2**63 - 1000, 2**63):
158
+ assert mod_by_neg_7(i) == i // -7
159
+
160
+ def test_mod_by_variable() -> None:
161
+ values = (list(range(-50, 50)) +
162
+ list(range(-2**63, -2**63 + 10)) +
163
+ list(range(2**63 - 10, 2**63)))
164
+ for x in values:
165
+ for y in values:
166
+ if y != 0:
167
+ assert mod(x, y) == x % y
168
+ else:
169
+ with assertRaises(ZeroDivisionError, "integer division or modulo by zero"):
170
+ mod(x, y)
171
+
172
+ def get_item(a: List[i64], n: i64) -> i64:
173
+ return a[n]
174
+
175
+ def test_get_list_item() -> None:
176
+ a = [1, 6, -2]
177
+ assert get_item(a, 0) == 1
178
+ assert get_item(a, 1) == 6
179
+ assert get_item(a, 2) == -2
180
+ assert get_item(a, -1) == -2
181
+ assert get_item(a, -2) == 6
182
+ assert get_item(a, -3) == 1
183
+ with assertRaises(IndexError, "list index out of range"):
184
+ get_item(a, 3)
185
+ with assertRaises(IndexError, "list index out of range"):
186
+ get_item(a, -4)
187
+ # TODO: Very large/small values and indexes
188
+
189
+ def test_simple_arithmetic_ops() -> None:
190
+ zero: i64 = int()
191
+ one: i64 = zero + 1
192
+ two: i64 = one + 1
193
+ neg_one: i64 = -one
194
+ assert one + one == 2
195
+ assert one + two == 3
196
+ assert one + neg_one == 0
197
+ assert one - one == 0
198
+ assert one - two == -1
199
+ assert one * one == 1
200
+ assert one * two == 2
201
+ assert two * two == 4
202
+ assert two * neg_one == -2
203
+ assert neg_one * one == -1
204
+ assert neg_one * neg_one == 1
205
+ assert two * 0 == 0
206
+ assert 0 * two == 0
207
+ assert -one == -1
208
+ assert -two == -2
209
+ assert -neg_one == 1
210
+ assert -zero == 0
211
+
212
+ def test_bitwise_ops() -> None:
213
+ x: i64 = 7997307308812232241 + int()
214
+ y: i64 = 4333433528471475340 + int()
215
+ z: i64 = -2462230749488444526 + int()
216
+ zero: i64 = int()
217
+ one: i64 = zero + 1
218
+ two: i64 = zero + 2
219
+ neg_one: i64 = -one
220
+
221
+ assert x & y == 3179577071592752128
222
+ assert x & z == 5536089561888850448
223
+ assert z & z == z
224
+ assert x & zero == 0
225
+
226
+ assert x | y == 9151163765690955453
227
+ assert x | z == -1013002565062733
228
+ assert z | z == z
229
+ assert x | 0 == x
230
+
231
+ assert x ^ y == 5971586694098203325
232
+ assert x ^ z == -5537102564453913181
233
+ assert z ^ z == 0
234
+ assert z ^ 0 == z
235
+
236
+ assert x << one == -2452129456085087134
237
+ assert x << two == -4904258912170174268
238
+ assert z << two == 8597821075755773512
239
+ assert z << 0 == z
240
+
241
+ assert x >> one == 3998653654406116120
242
+ assert x >> two == 1999326827203058060
243
+ assert z >> two == -615557687372111132
244
+ assert z >> 0 == z
245
+
246
+ assert ~x == -7997307308812232242
247
+ assert ~z == 2462230749488444525
248
+ assert ~zero == -1
249
+ assert ~neg_one == 0
250
+
251
+ def test_coerce_to_and_from_int() -> None:
252
+ for shift in range(0, 64):
253
+ for sign in 1, -1:
254
+ for delta in range(-5, 5):
255
+ n = sign * (1 << shift) + delta
256
+ if -(1 << 63) <= n < (1 << 63):
257
+ x: i64 = n
258
+ m: int = x
259
+ assert m == n
260
+
261
+ def test_coerce_to_and_from_int2() -> None:
262
+ for shift in range(0, 64):
263
+ for sign in 1, -1:
264
+ for delta in range(-5, 5):
265
+ n = sign * (1 << shift) + delta
266
+ if -(1 << 63) <= n < (1 << 63):
267
+ x: i64 = i64(n)
268
+ m: int = int(x)
269
+ assert m == n
270
+
271
+ def test_explicit_conversion_to_i64() -> None:
272
+ x = i64(5)
273
+ assert x == 5
274
+ y = int() - 113
275
+ x = i64(y)
276
+ assert x == -113
277
+ n32: i32 = 1733
278
+ x = i64(n32)
279
+ assert x == 1733
280
+ n32 = -1733
281
+ x = i64(n32)
282
+ assert x == -1733
283
+ z = i64(x)
284
+ assert z == -1733
285
+ a: i16 = int() + 19764
286
+ assert i64(a) == 19764
287
+ a = int() - 1
288
+ assert i64(a) == -1
289
+
290
+ def test_explicit_conversion_overflow() -> None:
291
+ max_i64 = int() + 2**63 - 1
292
+ x = i64(max_i64)
293
+ assert x == 2**63 - 1
294
+ assert int(x) == max_i64
295
+
296
+ min_i64 = int() - 2**63
297
+ y = i64(min_i64)
298
+ assert y == -2**63
299
+ assert int(y) == min_i64
300
+
301
+ too_big = int() + 2**63
302
+ with assertRaises(OverflowError):
303
+ x = i64(too_big)
304
+
305
+ too_small = int() - 2**63 - 1
306
+ with assertRaises(OverflowError):
307
+ x = i64(too_small)
308
+
309
+ def test_i64_from_large_small_literal() -> None:
310
+ x = i64(2**63 - 1)
311
+ assert x == 2**63 - 1
312
+ x = i64(-2**63)
313
+ assert x == -2**63
314
+
315
+ def from_float(x: float) -> i64:
316
+ return i64(x)
317
+
318
+ def test_explicit_conversion_from_float() -> None:
319
+ assert from_float(0.0) == 0
320
+ assert from_float(1.456) == 1
321
+ assert from_float(-1234.567) == -1234
322
+ # Subtract 1024 due to limited precision of 64-bit floats
323
+ assert from_float(2**63 - 1024) == 2**63 - 1024
324
+ assert from_float(-2**63) == -2**63
325
+ # The error message could be better, but this is acceptable
326
+ with assertRaises(OverflowError, "int too large to convert to i64"):
327
+ assert from_float(float(2**63))
328
+ with assertRaises(OverflowError, "int too large to convert to i64"):
329
+ # One ulp below the lowest valid i64 value
330
+ from_float(float(-2**63 - 2048))
331
+
332
+ def from_str(s: str) -> i64:
333
+ return i64(s)
334
+
335
+ def test_explicit_conversion_from_str() -> None:
336
+ assert from_str("0") == 0
337
+ assert from_str("1") == 1
338
+ assert from_str("-1234") == -1234
339
+ with assertRaises(ValueError):
340
+ from_str("1.2")
341
+
342
+ def from_str_with_base(s: str, base: int) -> i64:
343
+ return i64(s, base)
344
+
345
+ def test_explicit_conversion_from_str_with_base() -> None:
346
+ assert from_str_with_base("101", 2) == 5
347
+ assert from_str_with_base("109", 10) == 109
348
+ assert from_str_with_base("-f0A", 16) == -3850
349
+ assert from_str_with_base("0x1a", 16) == 26
350
+ assert from_str_with_base("0X1A", 16) == 26
351
+ with assertRaises(ValueError):
352
+ from_str_with_base("1.2", 16)
353
+
354
+ def from_bool(b: bool) -> i64:
355
+ return i64(b)
356
+
357
+ def test_explicit_conversion_from_bool() -> None:
358
+ assert from_bool(True) == 1
359
+ assert from_bool(False) == 0
360
+
361
+ class IntConv:
362
+ def __init__(self, x: i64) -> None:
363
+ self.x = x
364
+
365
+ def __int__(self) -> i64:
366
+ return self.x + 1
367
+
368
+ def test_explicit_conversion_from_instance() -> None:
369
+ assert i64(IntConv(0)) == 1
370
+ assert i64(IntConv(12345)) == 12346
371
+ assert i64(IntConv(-23)) == -22
372
+
373
+ def test_explicit_conversion_from_any() -> None:
374
+ # This can't be specialized
375
+ a: Any = "101"
376
+ assert i64(a, base=2) == 5
377
+
378
+ def test_tuple_i64() -> None:
379
+ a: i64 = 1
380
+ b: i64 = 2
381
+ t = (a, b)
382
+ a, b = t
383
+ assert a == 1
384
+ assert b == 2
385
+ x: Any = t
386
+ tt: Tuple[i64, i64] = x
387
+ assert tt == (1, 2)
388
+
389
+ def test_list_set_item() -> None:
390
+ a: List[i64] = [0, 2, 6]
391
+ z: i64 = int()
392
+ a[z] = 1
393
+ assert a == [1, 2, 6]
394
+ a[z + 2] = 9
395
+ assert a == [1, 2, 9]
396
+ a[-(z + 1)] = 10
397
+ assert a == [1, 2, 10]
398
+ a[-(z + 3)] = 3
399
+ assert a == [3, 2, 10]
400
+ with assertRaises(IndexError):
401
+ a[z + 3] = 0
402
+ with assertRaises(IndexError):
403
+ a[-(z + 4)] = 0
404
+ assert a == [3, 2, 10]
405
+
406
+ class C:
407
+ def __init__(self, x: i64) -> None:
408
+ self.x = x
409
+
410
+ def test_attributes() -> None:
411
+ i: i64
412
+ for i in range(-1000, 1000):
413
+ c = C(i)
414
+ assert c.x == i
415
+ c.x = i + 1
416
+ assert c.x == i + 1
417
+
418
+ def test_mixed_comparisons() -> None:
419
+ i64_3: i64 = int() + 3
420
+ int_5 = int() + 5
421
+ assert i64_3 < int_5
422
+ assert int_5 > i64_3
423
+ b = i64_3 > int_5
424
+ assert not b
425
+
426
+ int_largest = int() + (1 << 63) - 1
427
+ assert int_largest > i64_3
428
+ int_smallest = int() - (1 << 63)
429
+ assert i64_3 > int_smallest
430
+
431
+ int_too_big = int() + (1 << 63)
432
+ int_too_small = int() - (1 << 63) - 1
433
+ with assertRaises(OverflowError):
434
+ assert i64_3 < int_too_big
435
+ with assertRaises(OverflowError):
436
+ assert int_too_big < i64_3
437
+ with assertRaises(OverflowError):
438
+ assert i64_3 > int_too_small
439
+ with assertRaises(OverflowError):
440
+ assert int_too_small < i64_3
441
+
442
+ def test_mixed_comparisons_32bit() -> None:
443
+ # Test edge cases on 32-bit platforms
444
+ i64_3: i64 = int() + 3
445
+ int_5 = int() + 5
446
+
447
+ int_largest_short = int() + (1 << 30) - 1
448
+ int_largest_short_i64: i64 = int_largest_short
449
+ assert int_largest_short > i64_3
450
+ int_smallest_short = int() - (1 << 30)
451
+ int_smallest_short_i64: i64 = int_smallest_short
452
+ assert i64_3 > int_smallest_short
453
+
454
+ int_big = int() + (1 << 30)
455
+ assert int_big > i64_3
456
+ int_small = int() - (1 << 30) - 1
457
+ assert i64_3 > int_small
458
+
459
+ assert int_smallest_short_i64 > int_small
460
+ assert int_largest_short_i64 < int_big
461
+
462
+ def test_mixed_arithmetic_and_bitwise_ops() -> None:
463
+ i64_3: i64 = int() + 3
464
+ int_5 = int() + 5
465
+ assert i64_3 + int_5 == 8
466
+ assert int_5 - i64_3 == 2
467
+ assert i64_3 << int_5 == 96
468
+ assert int_5 << i64_3 == 40
469
+ assert i64_3 ^ int_5 == 6
470
+ assert int_5 | i64_3 == 7
471
+
472
+ int_largest = int() + (1 << 63) - 1
473
+ assert int_largest - i64_3 == 9223372036854775804
474
+ int_smallest = int() - (1 << 63)
475
+ assert int_smallest + i64_3 == -9223372036854775805
476
+
477
+ int_too_big = int() + (1 << 63)
478
+ int_too_small = int() - (1 << 63) - 1
479
+ with assertRaises(OverflowError):
480
+ assert i64_3 & int_too_big
481
+ with assertRaises(OverflowError):
482
+ assert int_too_small & i64_3
483
+
484
+ def test_for_loop() -> None:
485
+ n: i64 = 0
486
+ for i in range(i64(5 + int())):
487
+ n += i
488
+ assert n == 10
489
+ n = 0
490
+ for i in range(i64(5)):
491
+ n += i
492
+ assert n == 10
493
+ n = 0
494
+ for i in range(i64(2 + int()), 5 + int()):
495
+ n += i
496
+ assert n == 9
497
+ n = 0
498
+ for i in range(2, i64(5 + int())):
499
+ n += i
500
+ assert n == 9
501
+ assert sum([x * x for x in range(i64(4 + int()))]) == 1 + 4 + 9
502
+
503
+ def narrow1(x: Union[str, i64]) -> i64:
504
+ if isinstance(x, i64):
505
+ return x
506
+ return len(x)
507
+
508
+ def narrow2(x: Union[str, i64]) -> i64:
509
+ if isinstance(x, int):
510
+ return x
511
+ return len(x)
512
+
513
+ def test_isinstance() -> None:
514
+ assert narrow1(123) == 123
515
+ assert narrow1("foobar") == 6
516
+ assert narrow2(123) == 123
517
+ assert narrow2("foobar") == 6
518
+
519
+ [case testI64ErrorValuesAndUndefined]
520
+ from typing import Any, Tuple
521
+ import sys
522
+
523
+ from mypy_extensions import mypyc_attr, i64
524
+ from typing_extensions import Final
525
+
526
+ from testutil import assertRaises
527
+
528
+ def maybe_raise(n: i64, error: bool) -> i64:
529
+ if error:
530
+ raise ValueError()
531
+ return n
532
+
533
+ def test_error_value() -> None:
534
+ for i in range(-1000, 1000):
535
+ assert maybe_raise(i, False) == i
536
+ with assertRaises(ValueError):
537
+ maybe_raise(0, True)
538
+
539
+ class C:
540
+ def maybe_raise(self, n: i64, error: bool) -> i64:
541
+ if error:
542
+ raise ValueError()
543
+ return n
544
+
545
+ def test_method_error_value() -> None:
546
+ for i in range(-1000, 1000):
547
+ assert C().maybe_raise(i, False) == i
548
+ with assertRaises(ValueError):
549
+ C().maybe_raise(0, True)
550
+
551
+ def maybe_raise_tuple(n: i64, error: bool) -> Tuple[i64, i64]:
552
+ if error:
553
+ raise ValueError()
554
+ return n, n+ 1
555
+
556
+ def test_tuple_error_value() -> None:
557
+ for i in range(-1000, 1000):
558
+ assert maybe_raise_tuple(i, False) == (i, i + 1)
559
+ with assertRaises(ValueError):
560
+ maybe_raise_tuple(0, True)
561
+ f: Any = maybe_raise_tuple
562
+ for i in range(-1000, 1000):
563
+ assert f(i, False) == (i, i + 1)
564
+ with assertRaises(ValueError):
565
+ f(0, True)
566
+
567
+ def maybe_raise_tuple2(n: i64, error: bool) -> Tuple[i64, int]:
568
+ if error:
569
+ raise ValueError()
570
+ return n, n+ 1
571
+
572
+ def test_tuple_error_value_2() -> None:
573
+ for i in range(-1000, 1000):
574
+ assert maybe_raise_tuple2(i, False) == (i, i + 1)
575
+ with assertRaises(ValueError):
576
+ maybe_raise_tuple(0, True)
577
+
578
+ def test_unbox_int() -> None:
579
+ for i in list(range(-1000, 1000)) + [-(1 << 63), (1 << 63) - 1]:
580
+ o: Any = i
581
+ x: i64 = i
582
+ assert x == i
583
+ y: i64 = o
584
+ assert y == i
585
+
586
+ def test_unbox_int_fails() -> None:
587
+ o: Any = 'x'
588
+ if sys.version_info[0] == 3 and sys.version_info[1] < 10:
589
+ msg = "an integer is required (got type str)"
590
+ else:
591
+ msg = "'str' object cannot be interpreted as an integer"
592
+ with assertRaises(TypeError, msg):
593
+ x: i64 = o
594
+ o2: Any = 1 << 63
595
+ with assertRaises(OverflowError, "int too large to convert to i64"):
596
+ y: i64 = o2
597
+ o3: Any = -(1 << 63 + 1)
598
+ with assertRaises(OverflowError, "int too large to convert to i64"):
599
+ z: i64 = o3
600
+
601
+ class Uninit:
602
+ x: i64
603
+ y: i64 = 0
604
+ z: i64
605
+
606
+ class Derived(Uninit):
607
+ a: i64 = 1
608
+ b: i64
609
+ c: i64 = 2
610
+
611
+ class Derived2(Derived):
612
+ h: i64
613
+
614
+ def test_uninitialized_attr() -> None:
615
+ o = Uninit()
616
+ assert o.y == 0
617
+ with assertRaises(AttributeError):
618
+ o.x
619
+ with assertRaises(AttributeError):
620
+ o.z
621
+ o.x = 1
622
+ assert o.x == 1
623
+ with assertRaises(AttributeError):
624
+ o.z
625
+ o.z = 2
626
+ assert o.z == 2
627
+
628
+ # This is the error value, but it's also a valid normal value
629
+ MAGIC: Final = -113
630
+
631
+ def test_magic_value() -> None:
632
+ o = Uninit()
633
+ o.x = MAGIC
634
+ assert o.x == MAGIC
635
+ with assertRaises(AttributeError):
636
+ o.z
637
+ o.z = MAGIC
638
+ assert o.x == MAGIC
639
+ assert o.z == MAGIC
640
+
641
+ def test_magic_value_via_any() -> None:
642
+ o: Any = Uninit()
643
+ with assertRaises(AttributeError):
644
+ o.x
645
+ with assertRaises(AttributeError):
646
+ o.z
647
+ o.x = MAGIC
648
+ assert o.x == MAGIC
649
+ with assertRaises(AttributeError):
650
+ o.z
651
+ o.z = MAGIC
652
+ assert o.z == MAGIC
653
+
654
+ def test_magic_value_and_inheritance() -> None:
655
+ o = Derived2()
656
+ o.x = MAGIC
657
+ assert o.x == MAGIC
658
+ with assertRaises(AttributeError):
659
+ o.z
660
+ with assertRaises(AttributeError):
661
+ o.b
662
+ with assertRaises(AttributeError):
663
+ o.h
664
+ o.z = MAGIC
665
+ assert o.z == MAGIC
666
+ with assertRaises(AttributeError):
667
+ o.b
668
+ with assertRaises(AttributeError):
669
+ o.h
670
+ o.h = MAGIC
671
+ assert o.h == MAGIC
672
+ with assertRaises(AttributeError):
673
+ o.b
674
+ o.b = MAGIC
675
+ assert o.b == MAGIC
676
+
677
+ @mypyc_attr(allow_interpreted_subclasses=True)
678
+ class MagicInit:
679
+ x: i64 = MAGIC
680
+
681
+ def test_magic_value_as_initializer() -> None:
682
+ o = MagicInit()
683
+ assert o.x == MAGIC
684
+
685
+ class ManyUninit:
686
+ a1: i64
687
+ a2: i64
688
+ a3: i64
689
+ a4: i64
690
+ a5: i64
691
+ a6: i64
692
+ a7: i64
693
+ a8: i64
694
+ a9: i64
695
+ a10: i64
696
+ a11: i64
697
+ a12: i64
698
+ a13: i64
699
+ a14: i64
700
+ a15: i64
701
+ a16: i64
702
+ a17: i64
703
+ a18: i64
704
+ a19: i64
705
+ a20: i64
706
+ a21: i64
707
+ a22: i64
708
+ a23: i64
709
+ a24: i64
710
+ a25: i64
711
+ a26: i64
712
+ a27: i64
713
+ a28: i64
714
+ a29: i64
715
+ a30: i64
716
+ a31: i64
717
+ a32: i64
718
+ a33: i64
719
+ a34: i64
720
+ a35: i64
721
+ a36: i64
722
+ a37: i64
723
+ a38: i64
724
+ a39: i64
725
+ a40: i64
726
+ a41: i64
727
+ a42: i64
728
+ a43: i64
729
+ a44: i64
730
+ a45: i64
731
+ a46: i64
732
+ a47: i64
733
+ a48: i64
734
+ a49: i64
735
+ a50: i64
736
+ a51: i64
737
+ a52: i64
738
+ a53: i64
739
+ a54: i64
740
+ a55: i64
741
+ a56: i64
742
+ a57: i64
743
+ a58: i64
744
+ a59: i64
745
+ a60: i64
746
+ a61: i64
747
+ a62: i64
748
+ a63: i64
749
+ a64: i64
750
+ a65: i64
751
+ a66: i64
752
+ a67: i64
753
+ a68: i64
754
+ a69: i64
755
+ a70: i64
756
+ a71: i64
757
+ a72: i64
758
+ a73: i64
759
+ a74: i64
760
+ a75: i64
761
+ a76: i64
762
+ a77: i64
763
+ a78: i64
764
+ a79: i64
765
+ a80: i64
766
+ a81: i64
767
+ a82: i64
768
+ a83: i64
769
+ a84: i64
770
+ a85: i64
771
+ a86: i64
772
+ a87: i64
773
+ a88: i64
774
+ a89: i64
775
+ a90: i64
776
+ a91: i64
777
+ a92: i64
778
+ a93: i64
779
+ a94: i64
780
+ a95: i64
781
+ a96: i64
782
+ a97: i64
783
+ a98: i64
784
+ a99: i64
785
+ a100: i64
786
+
787
+ def test_many_uninitialized_attributes() -> None:
788
+ o = ManyUninit()
789
+ with assertRaises(AttributeError):
790
+ o.a1
791
+ with assertRaises(AttributeError):
792
+ o.a10
793
+ with assertRaises(AttributeError):
794
+ o.a20
795
+ with assertRaises(AttributeError):
796
+ o.a30
797
+ with assertRaises(AttributeError):
798
+ o.a31
799
+ with assertRaises(AttributeError):
800
+ o.a32
801
+ with assertRaises(AttributeError):
802
+ o.a33
803
+ with assertRaises(AttributeError):
804
+ o.a40
805
+ with assertRaises(AttributeError):
806
+ o.a50
807
+ with assertRaises(AttributeError):
808
+ o.a60
809
+ with assertRaises(AttributeError):
810
+ o.a62
811
+ with assertRaises(AttributeError):
812
+ o.a63
813
+ with assertRaises(AttributeError):
814
+ o.a64
815
+ with assertRaises(AttributeError):
816
+ o.a65
817
+ with assertRaises(AttributeError):
818
+ o.a80
819
+ with assertRaises(AttributeError):
820
+ o.a100
821
+ o.a30 = MAGIC
822
+ assert o.a30 == MAGIC
823
+ o.a31 = MAGIC
824
+ assert o.a31 == MAGIC
825
+ o.a32 = MAGIC
826
+ assert o.a32 == MAGIC
827
+ o.a33 = MAGIC
828
+ assert o.a33 == MAGIC
829
+ with assertRaises(AttributeError):
830
+ o.a34
831
+ o.a62 = MAGIC
832
+ assert o.a62 == MAGIC
833
+ o.a63 = MAGIC
834
+ assert o.a63 == MAGIC
835
+ o.a64 = MAGIC
836
+ assert o.a64 == MAGIC
837
+ o.a65 = MAGIC
838
+ assert o.a65 == MAGIC
839
+ with assertRaises(AttributeError):
840
+ o.a66
841
+
842
+ class BaseNoBitmap:
843
+ x: int = 5
844
+
845
+ class DerivedBitmap(BaseNoBitmap):
846
+ # Subclass needs a bitmap, but base class doesn't have it.
847
+ y: i64
848
+
849
+ def test_derived_adds_bitmap() -> None:
850
+ d = DerivedBitmap()
851
+ d.x = 643
852
+ b: BaseNoBitmap = d
853
+ assert b.x == 643
854
+
855
+ class Delete:
856
+ __deletable__ = ['x', 'y']
857
+ x: i64
858
+ y: i64
859
+
860
+ def test_del() -> None:
861
+ o = Delete()
862
+ o.x = MAGIC
863
+ o.y = -1
864
+ assert o.x == MAGIC
865
+ assert o.y == -1
866
+ del o.x
867
+ with assertRaises(AttributeError):
868
+ o.x
869
+ assert o.y == -1
870
+ del o.y
871
+ with assertRaises(AttributeError):
872
+ o.y
873
+ o.x = 5
874
+ assert o.x == 5
875
+ with assertRaises(AttributeError):
876
+ o.y
877
+ del o.x
878
+ with assertRaises(AttributeError):
879
+ o.x
880
+
881
+ class UndefinedTuple:
882
+ def __init__(self, x: i64, y: i64) -> None:
883
+ if x != 0:
884
+ self.t = (x, y)
885
+
886
+ def test_undefined_native_int_tuple() -> None:
887
+ o = UndefinedTuple(MAGIC, MAGIC)
888
+ assert o.t[0] == MAGIC
889
+ assert o.t[1] == MAGIC
890
+ o = UndefinedTuple(0, 0)
891
+ with assertRaises(AttributeError):
892
+ o.t
893
+ o = UndefinedTuple(-13, 45)
894
+ assert o.t == (-13, 45)
895
+
896
+ def test_undefined_native_int_tuple_via_any() -> None:
897
+ cls: Any = UndefinedTuple
898
+ o: Any = cls(MAGIC, MAGIC)
899
+ assert o.t[0] == MAGIC
900
+ assert o.t[1] == MAGIC
901
+ o = cls(0, 0)
902
+ with assertRaises(AttributeError):
903
+ o.t
904
+ o = UndefinedTuple(-13, 45)
905
+ assert o.t == (-13, 45)
906
+
907
+ [case testI64DefaultArgValues]
908
+ from typing import Any, Iterator, Tuple
909
+ from typing_extensions import Final
910
+
911
+ MAGIC: Final = -113
912
+
913
+ from mypy_extensions import i64
914
+
915
+ def f(x: i64, y: i64 = 5) -> i64:
916
+ return x + y
917
+
918
+ def test_simple_default_arg() -> None:
919
+ assert f(3) == 8
920
+ assert f(4, 9) == 13
921
+ assert f(5, MAGIC) == -108
922
+ for i in range(-1000, 1000):
923
+ assert f(1, i) == 1 + i
924
+ f2: Any = f
925
+ assert f2(3) == 8
926
+ assert f2(4, 9) == 13
927
+ assert f2(5, MAGIC) == -108
928
+
929
+ def g(a: i64, b: i64 = 1, c: int = 2, d: i64 = 3) -> i64:
930
+ return a + b + c + d
931
+
932
+ def test_two_default_args() -> None:
933
+ assert g(10) == 16
934
+ assert g(10, 2) == 17
935
+ assert g(10, 2, 3) == 18
936
+ assert g(10, 2, 3, 4) == 19
937
+ g2: Any = g
938
+ assert g2(10) == 16
939
+ assert g2(10, 2) == 17
940
+ assert g2(10, 2, 3) == 18
941
+ assert g2(10, 2, 3, 4) == 19
942
+
943
+ class C:
944
+ def __init__(self) -> None:
945
+ self.i: i64 = 1
946
+
947
+ def m(self, a: i64, b: i64 = 1, c: int = 2, d: i64 = 3) -> i64:
948
+ return self.i + a + b + c + d
949
+
950
+ class D(C):
951
+ def m(self, a: i64, b: i64 = 2, c: int = 3, d: i64 = 4) -> i64:
952
+ return self.i + a + b + c + d
953
+
954
+ def mm(self, a: i64 = 2, b: i64 = 1) -> i64:
955
+ return self.i + a + b
956
+
957
+ @staticmethod
958
+ def s(a: i64 = 2, b: i64 = 1) -> i64:
959
+ return a + b
960
+
961
+ @classmethod
962
+ def c(cls, a: i64 = 2, b: i64 = 3) -> i64:
963
+ assert cls is D
964
+ return a + b
965
+
966
+ def test_method_default_args() -> None:
967
+ a = [C(), D()]
968
+ assert a[0].m(4) == 11
969
+ d = D()
970
+ assert d.mm() == 4
971
+ assert d.mm(5) == 7
972
+ assert d.mm(MAGIC) == MAGIC + 2
973
+ assert d.mm(b=5) == 8
974
+ assert D.mm(d) == 4
975
+ assert D.mm(d, 6) == 8
976
+ assert D.mm(d, MAGIC) == MAGIC + 2
977
+ assert D.mm(d, b=6) == 9
978
+ dd: Any = d
979
+ assert dd.mm() == 4
980
+ assert dd.mm(5) == 7
981
+ assert dd.mm(MAGIC) == MAGIC + 2
982
+ assert dd.mm(b=5) == 8
983
+
984
+ def test_static_method_default_args() -> None:
985
+ d = D()
986
+ assert d.s() == 3
987
+ assert d.s(5) == 6
988
+ assert d.s(MAGIC) == MAGIC + 1
989
+ assert d.s(5, 6) == 11
990
+ assert D.s() == 3
991
+ assert D.s(5) == 6
992
+ assert D.s(MAGIC) == MAGIC + 1
993
+ assert D.s(5, 6) == 11
994
+ dd: Any = d
995
+ assert dd.s() == 3
996
+ assert dd.s(5) == 6
997
+ assert dd.s(MAGIC) == MAGIC + 1
998
+ assert dd.s(5, 6) == 11
999
+
1000
+ def test_class_method_default_args() -> None:
1001
+ d = D()
1002
+ assert d.c() == 5
1003
+ assert d.c(5) == 8
1004
+ assert d.c(MAGIC) == MAGIC + 3
1005
+ assert d.c(b=5) == 7
1006
+ assert D.c() == 5
1007
+ assert D.c(5) == 8
1008
+ assert D.c(MAGIC) == MAGIC + 3
1009
+ assert D.c(b=5) == 7
1010
+ dd: Any = d
1011
+ assert dd.c() == 5
1012
+ assert dd.c(5) == 8
1013
+ assert dd.c(MAGIC) == MAGIC + 3
1014
+ assert dd.c(b=5) == 7
1015
+
1016
+ class Init:
1017
+ def __init__(self, x: i64 = 2, y: i64 = 5) -> None:
1018
+ self.x = x
1019
+ self.y = y
1020
+
1021
+ def test_init_default_args() -> None:
1022
+ o = Init()
1023
+ assert o.x == 2
1024
+ assert o.y == 5
1025
+ o = Init(7, 8)
1026
+ assert o.x == 7
1027
+ assert o.y == 8
1028
+ o = Init(4)
1029
+ assert o.x == 4
1030
+ assert o.y == 5
1031
+ o = Init(MAGIC, MAGIC)
1032
+ assert o.x == MAGIC
1033
+ assert o.y == MAGIC
1034
+ o = Init(3, MAGIC)
1035
+ assert o.x == 3
1036
+ assert o.y == MAGIC
1037
+ o = Init(MAGIC, 11)
1038
+ assert o.x == MAGIC
1039
+ assert o.y == 11
1040
+ o = Init(MAGIC)
1041
+ assert o.x == MAGIC
1042
+ assert o.y == 5
1043
+ o = Init(y=MAGIC)
1044
+ assert o.x == 2
1045
+ assert o.y == MAGIC
1046
+
1047
+ def kw_only(*, a: i64 = 1, b: int = 2, c: i64 = 3) -> i64:
1048
+ return a + b + c * 2
1049
+
1050
+ def test_kw_only_default_args() -> None:
1051
+ assert kw_only() == 9
1052
+ assert kw_only(a=2) == 10
1053
+ assert kw_only(b=4) == 11
1054
+ assert kw_only(c=11) == 25
1055
+ assert kw_only(a=2, c=4) == 12
1056
+ assert kw_only(c=4, a=2) == 12
1057
+ kw_only2: Any = kw_only
1058
+ assert kw_only2() == 9
1059
+ assert kw_only2(a=2) == 10
1060
+ assert kw_only2(b=4) == 11
1061
+ assert kw_only2(c=11) == 25
1062
+ assert kw_only2(a=2, c=4) == 12
1063
+ assert kw_only2(c=4, a=2) == 12
1064
+
1065
+ def tuples(t: Tuple[i64, i64] = (MAGIC, MAGIC)) -> i64:
1066
+ return t[0] + t[1]
1067
+
1068
+ def test_tuple_arg_defaults() -> None:
1069
+ assert tuples() == 2 * MAGIC
1070
+ assert tuples((1, 2)) == 3
1071
+ assert tuples((MAGIC, MAGIC)) == 2 * MAGIC
1072
+ tuples2: Any = tuples
1073
+ assert tuples2() == 2 * MAGIC
1074
+ assert tuples2((1, 2)) == 3
1075
+ assert tuples2((MAGIC, MAGIC)) == 2 * MAGIC
1076
+
1077
+ class TupleInit:
1078
+ def __init__(self, t: Tuple[i64, i64] = (MAGIC, MAGIC)) -> None:
1079
+ self.t = t[0] + t[1]
1080
+
1081
+ def test_tuple_init_arg_defaults() -> None:
1082
+ assert TupleInit().t == 2 * MAGIC
1083
+ assert TupleInit((1, 2)).t == 3
1084
+ assert TupleInit((MAGIC, MAGIC)).t == 2 * MAGIC
1085
+ o: Any = TupleInit
1086
+ assert o().t == 2 * MAGIC
1087
+ assert o((1, 2)).t == 3
1088
+ assert o((MAGIC, MAGIC)).t == 2 * MAGIC
1089
+
1090
+ def many_args(
1091
+ a1: i64 = 0,
1092
+ a2: i64 = 1,
1093
+ a3: i64 = 2,
1094
+ a4: i64 = 3,
1095
+ a5: i64 = 4,
1096
+ a6: i64 = 5,
1097
+ a7: i64 = 6,
1098
+ a8: i64 = 7,
1099
+ a9: i64 = 8,
1100
+ a10: i64 = 9,
1101
+ a11: i64 = 10,
1102
+ a12: i64 = 11,
1103
+ a13: i64 = 12,
1104
+ a14: i64 = 13,
1105
+ a15: i64 = 14,
1106
+ a16: i64 = 15,
1107
+ a17: i64 = 16,
1108
+ a18: i64 = 17,
1109
+ a19: i64 = 18,
1110
+ a20: i64 = 19,
1111
+ a21: i64 = 20,
1112
+ a22: i64 = 21,
1113
+ a23: i64 = 22,
1114
+ a24: i64 = 23,
1115
+ a25: i64 = 24,
1116
+ a26: i64 = 25,
1117
+ a27: i64 = 26,
1118
+ a28: i64 = 27,
1119
+ a29: i64 = 28,
1120
+ a30: i64 = 29,
1121
+ a31: i64 = 30,
1122
+ a32: i64 = 31,
1123
+ a33: i64 = 32,
1124
+ a34: i64 = 33,
1125
+ ) -> i64:
1126
+ return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30 + a31 + a32 + a33 + a34
1127
+
1128
+ def test_many_args() -> None:
1129
+ assert many_args() == 561
1130
+ assert many_args(a1=100) == 661
1131
+ assert many_args(a2=101) == 661
1132
+ assert many_args(a15=114) == 661
1133
+ assert many_args(a31=130) == 661
1134
+ assert many_args(a32=131) == 661
1135
+ assert many_args(a33=232) == 761
1136
+ assert many_args(a34=333) == 861
1137
+ assert many_args(a1=100, a33=232) == 861
1138
+ f: Any = many_args
1139
+ assert f() == 561
1140
+ assert f(a1=100) == 661
1141
+ assert f(a2=101) == 661
1142
+ assert f(a15=114) == 661
1143
+ assert f(a31=130) == 661
1144
+ assert f(a32=131) == 661
1145
+ assert f(a33=232) == 761
1146
+ assert f(a34=333) == 861
1147
+ assert f(a1=100, a33=232) == 861
1148
+
1149
+ def test_nested_function_defaults() -> None:
1150
+ a: i64 = 1
1151
+
1152
+ def nested(x: i64 = 2, y: i64 = 3) -> i64:
1153
+ return a + x + y
1154
+
1155
+ assert nested() == 6
1156
+ assert nested(3) == 7
1157
+ assert nested(y=5) == 8
1158
+ assert nested(MAGIC) == MAGIC + 4
1159
+ a = 11
1160
+ assert nested() == 16
1161
+
1162
+
1163
+ def test_nested_function_defaults_via_any() -> None:
1164
+ a: i64 = 1
1165
+
1166
+ def nested_native(x: i64 = 2, y: i64 = 3) -> i64:
1167
+ return a + x + y
1168
+
1169
+ nested: Any = nested_native
1170
+
1171
+ assert nested() == 6
1172
+ assert nested(3) == 7
1173
+ assert nested(y=5) == 8
1174
+ assert nested(MAGIC) == MAGIC + 4
1175
+ a = 11
1176
+ assert nested() == 16
1177
+
1178
+ def gen(x: i64 = 1, y: i64 = 2) -> Iterator[i64]:
1179
+ yield x + y
1180
+
1181
+ def test_generator() -> None:
1182
+ g = gen()
1183
+ assert next(g) == 3
1184
+ g = gen(2)
1185
+ assert next(g) == 4
1186
+ g = gen(2, 3)
1187
+ assert next(g) == 5
1188
+ a: Any = gen
1189
+ g = a()
1190
+ assert next(g) == 3
1191
+ g = a(2)
1192
+ assert next(g) == 4
1193
+ g = a(2, 3)
1194
+ assert next(g) == 5
1195
+
1196
+ def magic_default(x: i64 = MAGIC) -> i64:
1197
+ return x
1198
+
1199
+ def test_magic_default() -> None:
1200
+ assert magic_default() == MAGIC
1201
+ assert magic_default(1) == 1
1202
+ assert magic_default(MAGIC) == MAGIC
1203
+ a: Any = magic_default
1204
+ assert a() == MAGIC
1205
+ assert a(1) == 1
1206
+ assert a(MAGIC) == MAGIC
1207
+
1208
+ [case testI64UndefinedLocal]
1209
+ from typing_extensions import Final
1210
+
1211
+ from mypy_extensions import i64, i32
1212
+
1213
+ from testutil import assertRaises
1214
+
1215
+ MAGIC: Final = -113
1216
+
1217
+
1218
+ def test_conditionally_defined_local() -> None:
1219
+ x = not int()
1220
+ if x:
1221
+ y: i64 = 5
1222
+ z: i32 = 6
1223
+ assert y == 5
1224
+ assert z == 6
1225
+
1226
+ def test_conditionally_undefined_local() -> None:
1227
+ x = int()
1228
+ if x:
1229
+ y: i64 = 5
1230
+ z: i32 = 6
1231
+ else:
1232
+ ok: i64 = 7
1233
+ assert ok == 7
1234
+ try:
1235
+ print(y)
1236
+ except NameError as e:
1237
+ assert str(e) == 'local variable "y" referenced before assignment'
1238
+ else:
1239
+ assert False
1240
+ try:
1241
+ print(z)
1242
+ except NameError as e:
1243
+ assert str(e) == 'local variable "z" referenced before assignment'
1244
+ else:
1245
+ assert False
1246
+
1247
+ def test_assign_error_value_conditionally() -> None:
1248
+ x = int()
1249
+ if not x:
1250
+ y: i64 = MAGIC
1251
+ z: i32 = MAGIC
1252
+ assert y == MAGIC
1253
+ assert z == MAGIC
1254
+
1255
+ def tuple_case(x: i64, y: i64) -> None:
1256
+ if not int():
1257
+ t = (x, y)
1258
+ assert t == (x, y)
1259
+ if int():
1260
+ t2 = (x, y)
1261
+ try:
1262
+ print(t2)
1263
+ except NameError as e:
1264
+ assert str(e) == 'local variable "t2" referenced before assignment'
1265
+ else:
1266
+ assert False
1267
+
1268
+ def test_conditionally_undefined_tuple() -> None:
1269
+ tuple_case(2, 3)
1270
+ tuple_case(-2, -3)
1271
+ tuple_case(MAGIC, MAGIC)
1272
+
1273
+ def test_many_locals() -> None:
1274
+ x = int()
1275
+ if x:
1276
+ a0: i64 = 0
1277
+ a1: i64 = 1
1278
+ a2: i64 = 2
1279
+ a3: i64 = 3
1280
+ a4: i64 = 4
1281
+ a5: i64 = 5
1282
+ a6: i64 = 6
1283
+ a7: i64 = 7
1284
+ a8: i64 = 8
1285
+ a9: i64 = 9
1286
+ a10: i64 = 10
1287
+ a11: i64 = 11
1288
+ a12: i64 = 12
1289
+ a13: i64 = 13
1290
+ a14: i64 = 14
1291
+ a15: i64 = 15
1292
+ a16: i64 = 16
1293
+ a17: i64 = 17
1294
+ a18: i64 = 18
1295
+ a19: i64 = 19
1296
+ a20: i64 = 20
1297
+ a21: i64 = 21
1298
+ a22: i64 = 22
1299
+ a23: i64 = 23
1300
+ a24: i64 = 24
1301
+ a25: i64 = 25
1302
+ a26: i64 = 26
1303
+ a27: i64 = 27
1304
+ a28: i64 = 28
1305
+ a29: i64 = 29
1306
+ a30: i64 = 30
1307
+ a31: i64 = 31
1308
+ a32: i64 = 32
1309
+ a33: i64 = 33
1310
+ with assertRaises(NameError):
1311
+ print(a0)
1312
+ with assertRaises(NameError):
1313
+ print(a31)
1314
+ with assertRaises(NameError):
1315
+ print(a32)
1316
+ with assertRaises(NameError):
1317
+ print(a33)
1318
+ a0 = 5
1319
+ assert a0 == 5
1320
+ with assertRaises(NameError):
1321
+ print(a31)
1322
+ with assertRaises(NameError):
1323
+ print(a32)
1324
+ with assertRaises(NameError):
1325
+ print(a33)
1326
+ a32 = 55
1327
+ assert a0 == 5
1328
+ assert a32 == 55
1329
+ with assertRaises(NameError):
1330
+ print(a31)
1331
+ with assertRaises(NameError):
1332
+ print(a33)
1333
+ a31 = 10
1334
+ a33 = 20
1335
+ assert a0 == 5
1336
+ assert a31 == 10
1337
+ assert a32 == 55
1338
+ assert a33 == 20
1339
+
1340
+ [case testI64GlueMethodsAndInheritance]
1341
+ from typing import Any
1342
+ from typing_extensions import Final
1343
+
1344
+ from mypy_extensions import i64, trait
1345
+
1346
+ from testutil import assertRaises
1347
+
1348
+ MAGIC: Final = -113
1349
+
1350
+ class Base:
1351
+ def foo(self) -> i64:
1352
+ return 5
1353
+
1354
+ def bar(self, x: i64 = 2) -> i64:
1355
+ return x + 1
1356
+
1357
+ def hoho(self, x: i64) -> i64:
1358
+ return x - 1
1359
+
1360
+ class Derived(Base):
1361
+ def foo(self, x: i64 = 5) -> i64:
1362
+ return x + 10
1363
+
1364
+ def bar(self, x: i64 = 3, y: i64 = 20) -> i64:
1365
+ return x + y + 2
1366
+
1367
+ def hoho(self, x: i64 = 7) -> i64:
1368
+ return x - 2
1369
+
1370
+ def test_derived_adds_bitmap() -> None:
1371
+ b: Base = Derived()
1372
+ assert b.foo() == 15
1373
+
1374
+ def test_derived_adds_another_default_arg() -> None:
1375
+ b: Base = Derived()
1376
+ assert b.bar() == 25
1377
+ assert b.bar(1) == 23
1378
+ assert b.bar(MAGIC) == MAGIC + 22
1379
+
1380
+ def test_derived_switches_arg_to_have_default() -> None:
1381
+ b: Base = Derived()
1382
+ assert b.hoho(5) == 3
1383
+ assert b.hoho(MAGIC) == MAGIC - 2
1384
+
1385
+ @trait
1386
+ class T:
1387
+ @property
1388
+ def x(self) -> i64: ...
1389
+ @property
1390
+ def y(self) -> i64: ...
1391
+
1392
+ class C(T):
1393
+ x: i64 = 1
1394
+ y: i64 = 4
1395
+
1396
+ def test_read_only_property_in_trait_implemented_as_attribute() -> None:
1397
+ c = C()
1398
+ c.x = 5
1399
+ assert c.x == 5
1400
+ c.x = MAGIC
1401
+ assert c.x == MAGIC
1402
+ assert c.y == 4
1403
+ c.y = 6
1404
+ assert c.y == 6
1405
+ t: T = C()
1406
+ assert t.y == 4
1407
+ t = c
1408
+ assert t.x == MAGIC
1409
+ c.x = 55
1410
+ assert t.x == 55
1411
+ assert t.y == 6
1412
+ a: Any = c
1413
+ assert a.x == 55
1414
+ assert a.y == 6
1415
+ a.x = 7
1416
+ a.y = 8
1417
+ assert a.x == 7
1418
+ assert a.y == 8
1419
+
1420
+ class D(T):
1421
+ xx: i64
1422
+
1423
+ @property
1424
+ def x(self) -> i64:
1425
+ return self.xx
1426
+
1427
+ @property
1428
+ def y(self) -> i64:
1429
+ raise TypeError
1430
+
1431
+ def test_read_only_property_in_trait_implemented_as_property() -> None:
1432
+ d = D()
1433
+ d.xx = 5
1434
+ assert d.x == 5
1435
+ d.xx = MAGIC
1436
+ assert d.x == MAGIC
1437
+ with assertRaises(TypeError):
1438
+ d.y
1439
+ t: T = d
1440
+ assert t.x == MAGIC
1441
+ d.xx = 6
1442
+ assert t.x == 6
1443
+ with assertRaises(TypeError):
1444
+ t.y
1445
+
1446
+ @trait
1447
+ class T2:
1448
+ x: i64
1449
+ y: i64
1450
+
1451
+ class C2(T2):
1452
+ pass
1453
+
1454
+ def test_inherit_trait_attribute() -> None:
1455
+ c = C2()
1456
+ c.x = 5
1457
+ assert c.x == 5
1458
+ c.x = MAGIC
1459
+ assert c.x == MAGIC
1460
+ with assertRaises(AttributeError):
1461
+ c.y
1462
+ c.y = 6
1463
+ assert c.y == 6
1464
+ t: T2 = C2()
1465
+ with assertRaises(AttributeError):
1466
+ t.y
1467
+ t = c
1468
+ assert t.x == MAGIC
1469
+ c.x = 55
1470
+ assert t.x == 55
1471
+ assert t.y == 6
1472
+ a: Any = c
1473
+ assert a.x == 55
1474
+ assert a.y == 6
1475
+ a.x = 7
1476
+ a.y = 8
1477
+ assert a.x == 7
1478
+ assert a.y == 8
1479
+
1480
+ class D2(T2):
1481
+ x: i64
1482
+ y: i64 = 4
1483
+
1484
+ def test_implement_trait_attribute() -> None:
1485
+ d = D2()
1486
+ d.x = 5
1487
+ assert d.x == 5
1488
+ d.x = MAGIC
1489
+ assert d.x == MAGIC
1490
+ assert d.y == 4
1491
+ d.y = 6
1492
+ assert d.y == 6
1493
+ t: T2 = D2()
1494
+ assert t.y == 4
1495
+ t = d
1496
+ assert t.x == MAGIC
1497
+ d.x = 55
1498
+ assert t.x == 55
1499
+ assert t.y == 6
1500
+ a: Any = d
1501
+ assert a.x == 55
1502
+ assert a.y == 6
1503
+ a.x = 7
1504
+ a.y = 8
1505
+ assert a.x == 7
1506
+ assert a.y == 8
1507
+
1508
+ class DunderErr:
1509
+ def __contains__(self, i: i64) -> bool:
1510
+ raise IndexError()
1511
+
1512
+ def test_dunder_arg_check() -> None:
1513
+ o: Any = DunderErr()
1514
+ with assertRaises(TypeError):
1515
+ 'x' in o
1516
+ with assertRaises(TypeError):
1517
+ 2**63 in o
1518
+ with assertRaises(IndexError):
1519
+ 1 in o