jaclang 0.6.0__py3-none-any.whl → 0.6.2__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.
Files changed (913) hide show
  1. jaclang/cli/.gitignore +3 -0
  2. jaclang/cli/cli.md +190 -0
  3. jaclang/cli/cli.py +90 -3
  4. jaclang/cli/cmdreg.py +18 -6
  5. jaclang/compiler/.gitignore +1 -0
  6. jaclang/compiler/absyntree.py +1 -2
  7. jaclang/compiler/parser.py +1 -1
  8. jaclang/compiler/passes/main/def_impl_match_pass.py +4 -1
  9. jaclang/compiler/passes/main/fuse_typeinfo_pass.py +10 -7
  10. jaclang/compiler/passes/main/import_pass.py +39 -22
  11. jaclang/compiler/passes/main/pyast_gen_pass.py +6 -57
  12. jaclang/compiler/passes/main/pyjac_ast_link_pass.py +218 -0
  13. jaclang/compiler/passes/main/schedules.py +2 -0
  14. jaclang/compiler/passes/main/sym_tab_build_pass.py +9 -3
  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/test_import_pass.py +11 -0
  35. jaclang/compiler/passes/tool/tests/fixtures/corelib.jac +480 -0
  36. jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac +480 -0
  37. jaclang/compiler/passes/tool/tests/fixtures/genai/essay_review.jac +36 -0
  38. jaclang/compiler/passes/tool/tests/fixtures/genai/expert_answer.jac +17 -0
  39. jaclang/compiler/passes/tool/tests/fixtures/genai/joke_gen.jac +32 -0
  40. jaclang/compiler/passes/tool/tests/fixtures/genai/odd_word_out.jac +27 -0
  41. jaclang/compiler/passes/tool/tests/fixtures/genai/personality_finder.jac +35 -0
  42. jaclang/compiler/passes/tool/tests/fixtures/genai/text_to_type.jac +25 -0
  43. jaclang/compiler/passes/tool/tests/fixtures/genai/translator.jac +13 -0
  44. jaclang/compiler/passes/tool/tests/fixtures/genai/wikipedia.jac +63 -0
  45. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.dot +39 -0
  46. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.jac +7 -0
  47. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.txt +20 -0
  48. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/ability_impl_long_comprehension.jac +15 -0
  49. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/call_with_many_parameters.jac +24 -0
  50. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/entry_main.jac +4 -0
  51. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/long_line_nested_dict_access.jac +10 -0
  52. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/multiline_fstrings.jac +16 -0
  53. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/nested_dict.jac +15 -0
  54. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/nested_loop_and_incrementer.jac +13 -0
  55. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/simple_walker.jac +25 -0
  56. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/try_block_and_walker_spawn_and_fstrings.jac +26 -0
  57. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/tuple_iteration_and_not_negation.jac +20 -0
  58. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/type_annotation.jac +3 -0
  59. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_decl_only.jac +12 -0
  60. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_default_values_types_and_docstrings.jac +18 -0
  61. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_inline_ability_impl.jac +8 -0
  62. jaclang/compiler/passes/tool/tests/fixtures/simple_walk.jac +47 -0
  63. jaclang/compiler/passes/tool/tests/fixtures/simple_walk_fmt.jac +47 -0
  64. jaclang/compiler/tests/fixtures/fam.jac +67 -0
  65. jaclang/compiler/tests/fixtures/hello_world.jac +5 -0
  66. jaclang/compiler/tests/fixtures/kwesc.jac +5 -0
  67. jaclang/compiler/tests/fixtures/mod_doc_test.jac +1 -0
  68. jaclang/compiler/tests/fixtures/staticcheck.jac +20 -0
  69. jaclang/compiler/tests/fixtures/stuff.jac +6 -0
  70. jaclang/core/aott.py +10 -1
  71. jaclang/core/construct.py +157 -21
  72. jaclang/core/importer.py +6 -2
  73. jaclang/core/memory.py +48 -0
  74. jaclang/core/shelve_storage.py +55 -0
  75. jaclang/plugin/__init__.py +1 -2
  76. jaclang/plugin/builtin.py +1 -1
  77. jaclang/plugin/default.py +97 -4
  78. jaclang/plugin/feature.py +28 -9
  79. jaclang/plugin/spec.py +45 -10
  80. jaclang/plugin/tests/fixtures/impl_match.jac +9 -0
  81. jaclang/plugin/tests/fixtures/impl_match_impl.jac +3 -0
  82. jaclang/plugin/tests/fixtures/simple_node_connection.jac +55 -0
  83. jaclang/plugin/tests/fixtures/simple_persistent.jac +41 -0
  84. jaclang/plugin/tests/test_jaseci.py +219 -0
  85. jaclang/tests/fixtures/abc.jac +73 -0
  86. jaclang/tests/fixtures/access_checker.jac +19 -0
  87. jaclang/tests/fixtures/access_modifier.jac +49 -0
  88. jaclang/tests/fixtures/aott_raise.jac +25 -0
  89. jaclang/tests/fixtures/arithmetic_bug.jac +13 -0
  90. jaclang/tests/fixtures/assign_compr.jac +15 -0
  91. jaclang/tests/fixtures/assign_compr_dup.jac +15 -0
  92. jaclang/tests/fixtures/builtin_dotgen.jac +41 -0
  93. jaclang/tests/fixtures/chandra_bugs.jac +11 -0
  94. jaclang/tests/fixtures/chandra_bugs2.jac +26 -0
  95. jaclang/tests/fixtures/circle_pysolo.py +91 -0
  96. jaclang/tests/fixtures/deep/deeper/deep_outer_import.jac +9 -0
  97. jaclang/tests/fixtures/deep/deeper/deep_outer_import2.jac +9 -0
  98. jaclang/tests/fixtures/deep/deeper/snd_lev.jac +6 -0
  99. jaclang/tests/fixtures/deep/mycode.jac +4 -0
  100. jaclang/tests/fixtures/deep/one_lev.jac +6 -0
  101. jaclang/tests/fixtures/deep/one_lev_dup.jac +6 -0
  102. jaclang/tests/fixtures/deep/one_lev_dup_py.py +6 -0
  103. jaclang/tests/fixtures/deep_import.jac +7 -0
  104. jaclang/tests/fixtures/deferred_field.jac +13 -0
  105. jaclang/tests/fixtures/disconn.jac +29 -0
  106. jaclang/tests/fixtures/edge_node_walk.jac +46 -0
  107. jaclang/tests/fixtures/edge_ops.jac +45 -0
  108. jaclang/tests/fixtures/edges_walk.jac +38 -0
  109. jaclang/tests/fixtures/enum_inside_archtype.jac +20 -0
  110. jaclang/tests/fixtures/err.jac +5 -0
  111. jaclang/tests/fixtures/err2.jac +5 -0
  112. jaclang/tests/fixtures/game1.jac +15 -0
  113. jaclang/tests/fixtures/gendot_bubble_sort.jac +77 -0
  114. jaclang/tests/fixtures/guess_game.jac +47 -0
  115. jaclang/tests/fixtures/has_goodness.jac +15 -0
  116. jaclang/tests/fixtures/hashcheck.jac +12 -0
  117. jaclang/tests/fixtures/hashcheck_dup.jac +12 -0
  118. jaclang/tests/fixtures/hello.jac +5 -0
  119. jaclang/tests/fixtures/hello_nc.jac +5 -0
  120. jaclang/tests/fixtures/ignore.jac +43 -0
  121. jaclang/tests/fixtures/ignore_dup.jac +43 -0
  122. jaclang/tests/fixtures/impl_grab.impl.jac +4 -0
  123. jaclang/tests/fixtures/impl_grab.jac +2 -0
  124. jaclang/tests/fixtures/inherit_check.jac +33 -0
  125. jaclang/tests/fixtures/jacsamp.jac +6 -0
  126. jaclang/tests/fixtures/jp_importer.jac +17 -0
  127. jaclang/tests/fixtures/lambda.jac +6 -0
  128. jaclang/tests/fixtures/maxfail_run_test.jac +5 -0
  129. jaclang/tests/fixtures/mtest.impl.jac +6 -0
  130. jaclang/tests/fixtures/mtest.jac +6 -0
  131. jaclang/tests/fixtures/needs_import.jac +18 -0
  132. jaclang/tests/fixtures/needs_import_1.jac +6 -0
  133. jaclang/tests/fixtures/needs_import_2.jac +6 -0
  134. jaclang/tests/fixtures/needs_import_3.jac +6 -0
  135. jaclang/tests/fixtures/needs_import_dup.jac +18 -0
  136. jaclang/tests/fixtures/package_import.jac +6 -0
  137. jaclang/tests/fixtures/pyfunc.py +11 -0
  138. jaclang/tests/fixtures/pyfunc_1.py +311 -0
  139. jaclang/tests/fixtures/pyfunc_2.py +279 -0
  140. jaclang/tests/fixtures/pyfunc_3.py +310 -0
  141. jaclang/tests/fixtures/random_check.jac +70 -0
  142. jaclang/tests/fixtures/raw_byte_string.jac +18 -0
  143. jaclang/tests/fixtures/registry.jac +37 -0
  144. jaclang/tests/fixtures/run_test.jac +5 -0
  145. jaclang/tests/fixtures/semstr.jac +33 -0
  146. jaclang/tests/fixtures/simple_archs.jac +26 -0
  147. jaclang/tests/fixtures/slice_vals.jac +7 -0
  148. jaclang/tests/fixtures/sub_abil_sep.jac +15 -0
  149. jaclang/tests/fixtures/sub_abil_sep_multilev.jac +17 -0
  150. jaclang/tests/fixtures/try_finally.jac +34 -0
  151. jaclang/tests/fixtures/tupleunpack.jac +6 -0
  152. jaclang/tests/fixtures/tuplytuples.jac +8 -0
  153. jaclang/tests/fixtures/type_info.jac +19 -0
  154. jaclang/tests/fixtures/with_context.jac +30 -0
  155. jaclang/tests/fixtures/with_llm_function.jac +33 -0
  156. jaclang/tests/fixtures/with_llm_lower.jac +45 -0
  157. jaclang/tests/fixtures/with_llm_method.jac +51 -0
  158. jaclang/tests/fixtures/with_llm_type.jac +52 -0
  159. jaclang/tests/test_cli.py +239 -0
  160. jaclang/tests/test_language.py +807 -0
  161. jaclang/tests/test_man_code.py +148 -0
  162. jaclang/tests/test_reference.py +95 -0
  163. jaclang/tests/test_settings.py +46 -0
  164. jaclang/utils/treeprinter.py +7 -2
  165. jaclang/vendor/LICENSE +18 -0
  166. jaclang/vendor/mypy/stubgen.py +0 -0
  167. jaclang/vendor/mypy/stubgenc.py +0 -0
  168. jaclang/vendor/mypy/typeshed/LICENSE +237 -0
  169. jaclang/vendor/mypy/typeshed/stdlib/VERSIONS +308 -0
  170. jaclang/vendor/mypy/typeshed/stdlib/__future__.pyi +41 -0
  171. jaclang/vendor/mypy/typeshed/stdlib/__main__.pyi +3 -0
  172. jaclang/vendor/mypy/typeshed/stdlib/_ast.pyi +632 -0
  173. jaclang/vendor/mypy/typeshed/stdlib/_bisect.pyi +106 -0
  174. jaclang/vendor/mypy/typeshed/stdlib/_bootlocale.pyi +1 -0
  175. jaclang/vendor/mypy/typeshed/stdlib/_codecs.pyi +198 -0
  176. jaclang/vendor/mypy/typeshed/stdlib/_collections_abc.pyi +94 -0
  177. jaclang/vendor/mypy/typeshed/stdlib/_compat_pickle.pyi +8 -0
  178. jaclang/vendor/mypy/typeshed/stdlib/_compression.pyi +25 -0
  179. jaclang/vendor/mypy/typeshed/stdlib/_csv.pyi +90 -0
  180. jaclang/vendor/mypy/typeshed/stdlib/_ctypes.pyi +219 -0
  181. jaclang/vendor/mypy/typeshed/stdlib/_curses.pyi +600 -0
  182. jaclang/vendor/mypy/typeshed/stdlib/_decimal.pyi +316 -0
  183. jaclang/vendor/mypy/typeshed/stdlib/_dummy_thread.pyi +43 -0
  184. jaclang/vendor/mypy/typeshed/stdlib/_dummy_threading.pyi +185 -0
  185. jaclang/vendor/mypy/typeshed/stdlib/_heapq.pyi +11 -0
  186. jaclang/vendor/mypy/typeshed/stdlib/_imp.pyi +32 -0
  187. jaclang/vendor/mypy/typeshed/stdlib/_json.pyi +49 -0
  188. jaclang/vendor/mypy/typeshed/stdlib/_locale.pyi +100 -0
  189. jaclang/vendor/mypy/typeshed/stdlib/_markupbase.pyi +16 -0
  190. jaclang/vendor/mypy/typeshed/stdlib/_msi.pyi +92 -0
  191. jaclang/vendor/mypy/typeshed/stdlib/_operator.pyi +172 -0
  192. jaclang/vendor/mypy/typeshed/stdlib/_osx_support.pyi +55 -0
  193. jaclang/vendor/mypy/typeshed/stdlib/_posixsubprocess.pyi +32 -0
  194. jaclang/vendor/mypy/typeshed/stdlib/_py_abc.pyi +17 -0
  195. jaclang/vendor/mypy/typeshed/stdlib/_pydecimal.pyi +43 -0
  196. jaclang/vendor/mypy/typeshed/stdlib/_random.pyi +12 -0
  197. jaclang/vendor/mypy/typeshed/stdlib/_sitebuiltins.pyi +18 -0
  198. jaclang/vendor/mypy/typeshed/stdlib/_socket.pyi +851 -0
  199. jaclang/vendor/mypy/typeshed/stdlib/_stat.pyi +103 -0
  200. jaclang/vendor/mypy/typeshed/stdlib/_thread.pyi +63 -0
  201. jaclang/vendor/mypy/typeshed/stdlib/_threading_local.pyi +17 -0
  202. jaclang/vendor/mypy/typeshed/stdlib/_tkinter.pyi +120 -0
  203. jaclang/vendor/mypy/typeshed/stdlib/_tracemalloc.pyi +17 -0
  204. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/README.md +34 -0
  205. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/__init__.pyi +374 -0
  206. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/dbapi.pyi +45 -0
  207. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/wsgi.pyi +51 -0
  208. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/xml.pyi +13 -0
  209. jaclang/vendor/mypy/typeshed/stdlib/_warnings.pyi +65 -0
  210. jaclang/vendor/mypy/typeshed/stdlib/_weakref.pyi +45 -0
  211. jaclang/vendor/mypy/typeshed/stdlib/_weakrefset.pyi +51 -0
  212. jaclang/vendor/mypy/typeshed/stdlib/_winapi.pyi +275 -0
  213. jaclang/vendor/mypy/typeshed/stdlib/abc.pyi +61 -0
  214. jaclang/vendor/mypy/typeshed/stdlib/aifc.pyi +99 -0
  215. jaclang/vendor/mypy/typeshed/stdlib/antigravity.pyi +3 -0
  216. jaclang/vendor/mypy/typeshed/stdlib/argparse.pyi +675 -0
  217. jaclang/vendor/mypy/typeshed/stdlib/array.pyi +111 -0
  218. jaclang/vendor/mypy/typeshed/stdlib/ast.pyi +287 -0
  219. jaclang/vendor/mypy/typeshed/stdlib/asynchat.pyi +21 -0
  220. jaclang/vendor/mypy/typeshed/stdlib/asyncio/__init__.pyi +41 -0
  221. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_events.pyi +519 -0
  222. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_futures.pyi +21 -0
  223. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +71 -0
  224. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_tasks.pyi +13 -0
  225. jaclang/vendor/mypy/typeshed/stdlib/asyncio/constants.pyi +20 -0
  226. jaclang/vendor/mypy/typeshed/stdlib/asyncio/coroutines.pyi +32 -0
  227. jaclang/vendor/mypy/typeshed/stdlib/asyncio/events.pyi +669 -0
  228. jaclang/vendor/mypy/typeshed/stdlib/asyncio/exceptions.pyi +43 -0
  229. jaclang/vendor/mypy/typeshed/stdlib/asyncio/format_helpers.pyi +26 -0
  230. jaclang/vendor/mypy/typeshed/stdlib/asyncio/futures.pyi +61 -0
  231. jaclang/vendor/mypy/typeshed/stdlib/asyncio/locks.pyi +131 -0
  232. jaclang/vendor/mypy/typeshed/stdlib/asyncio/log.pyi +3 -0
  233. jaclang/vendor/mypy/typeshed/stdlib/asyncio/mixins.pyi +9 -0
  234. jaclang/vendor/mypy/typeshed/stdlib/asyncio/proactor_events.pyi +72 -0
  235. jaclang/vendor/mypy/typeshed/stdlib/asyncio/protocols.pyi +40 -0
  236. jaclang/vendor/mypy/typeshed/stdlib/asyncio/queues.pyi +49 -0
  237. jaclang/vendor/mypy/typeshed/stdlib/asyncio/runners.pyi +44 -0
  238. jaclang/vendor/mypy/typeshed/stdlib/asyncio/selector_events.pyi +8 -0
  239. jaclang/vendor/mypy/typeshed/stdlib/asyncio/sslproto.pyi +189 -0
  240. jaclang/vendor/mypy/typeshed/stdlib/asyncio/staggered.pyi +13 -0
  241. jaclang/vendor/mypy/typeshed/stdlib/asyncio/streams.pyi +172 -0
  242. jaclang/vendor/mypy/typeshed/stdlib/asyncio/subprocess.pyi +234 -0
  243. jaclang/vendor/mypy/typeshed/stdlib/asyncio/taskgroups.pyi +36 -0
  244. jaclang/vendor/mypy/typeshed/stdlib/asyncio/tasks.pyi +566 -0
  245. jaclang/vendor/mypy/typeshed/stdlib/asyncio/threads.pyi +11 -0
  246. jaclang/vendor/mypy/typeshed/stdlib/asyncio/timeouts.pyi +22 -0
  247. jaclang/vendor/mypy/typeshed/stdlib/asyncio/transports.pyi +64 -0
  248. jaclang/vendor/mypy/typeshed/stdlib/asyncio/trsock.pyi +140 -0
  249. jaclang/vendor/mypy/typeshed/stdlib/asyncio/unix_events.pyi +268 -0
  250. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_events.pyi +108 -0
  251. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_utils.pyi +59 -0
  252. jaclang/vendor/mypy/typeshed/stdlib/asyncore.pyi +99 -0
  253. jaclang/vendor/mypy/typeshed/stdlib/atexit.pyi +14 -0
  254. jaclang/vendor/mypy/typeshed/stdlib/audioop.pyi +50 -0
  255. jaclang/vendor/mypy/typeshed/stdlib/base64.pyi +76 -0
  256. jaclang/vendor/mypy/typeshed/stdlib/bdb.pyi +133 -0
  257. jaclang/vendor/mypy/typeshed/stdlib/binascii.pyi +45 -0
  258. jaclang/vendor/mypy/typeshed/stdlib/binhex.pyi +47 -0
  259. jaclang/vendor/mypy/typeshed/stdlib/bisect.pyi +4 -0
  260. jaclang/vendor/mypy/typeshed/stdlib/builtins.pyi +2310 -0
  261. jaclang/vendor/mypy/typeshed/stdlib/bz2.pyi +177 -0
  262. jaclang/vendor/mypy/typeshed/stdlib/cProfile.pyi +49 -0
  263. jaclang/vendor/mypy/typeshed/stdlib/calendar.pyi +248 -0
  264. jaclang/vendor/mypy/typeshed/stdlib/cgi.pyi +122 -0
  265. jaclang/vendor/mypy/typeshed/stdlib/cgitb.pyi +44 -0
  266. jaclang/vendor/mypy/typeshed/stdlib/chunk.pyi +26 -0
  267. jaclang/vendor/mypy/typeshed/stdlib/cmath.pyi +38 -0
  268. jaclang/vendor/mypy/typeshed/stdlib/cmd.pyi +52 -0
  269. jaclang/vendor/mypy/typeshed/stdlib/code.pyi +46 -0
  270. jaclang/vendor/mypy/typeshed/stdlib/codecs.pyi +344 -0
  271. jaclang/vendor/mypy/typeshed/stdlib/codeop.pyi +17 -0
  272. jaclang/vendor/mypy/typeshed/stdlib/collections/__init__.pyi +571 -0
  273. jaclang/vendor/mypy/typeshed/stdlib/collections/abc.pyi +2 -0
  274. jaclang/vendor/mypy/typeshed/stdlib/colorsys.pyi +20 -0
  275. jaclang/vendor/mypy/typeshed/stdlib/compileall.pyi +111 -0
  276. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +32 -0
  277. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/_base.pyi +137 -0
  278. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/process.pyi +272 -0
  279. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/thread.pyi +86 -0
  280. jaclang/vendor/mypy/typeshed/stdlib/configparser.pyi +449 -0
  281. jaclang/vendor/mypy/typeshed/stdlib/contextlib.pyi +274 -0
  282. jaclang/vendor/mypy/typeshed/stdlib/contextvars.pyi +67 -0
  283. jaclang/vendor/mypy/typeshed/stdlib/copy.pyi +16 -0
  284. jaclang/vendor/mypy/typeshed/stdlib/copyreg.pyi +32 -0
  285. jaclang/vendor/mypy/typeshed/stdlib/crypt.pyi +12 -0
  286. jaclang/vendor/mypy/typeshed/stdlib/csv.pyi +147 -0
  287. jaclang/vendor/mypy/typeshed/stdlib/ctypes/__init__.pyi +211 -0
  288. jaclang/vendor/mypy/typeshed/stdlib/ctypes/_endian.pyi +29 -0
  289. jaclang/vendor/mypy/typeshed/stdlib/ctypes/util.pyi +6 -0
  290. jaclang/vendor/mypy/typeshed/stdlib/ctypes/wintypes.pyi +298 -0
  291. jaclang/vendor/mypy/typeshed/stdlib/curses/__init__.pyi +25 -0
  292. jaclang/vendor/mypy/typeshed/stdlib/curses/ascii.pyi +63 -0
  293. jaclang/vendor/mypy/typeshed/stdlib/curses/has_key.pyi +4 -0
  294. jaclang/vendor/mypy/typeshed/stdlib/curses/panel.pyi +25 -0
  295. jaclang/vendor/mypy/typeshed/stdlib/curses/textpad.pyi +15 -0
  296. jaclang/vendor/mypy/typeshed/stdlib/dataclasses.pyi +323 -0
  297. jaclang/vendor/mypy/typeshed/stdlib/datetime.pyi +334 -0
  298. jaclang/vendor/mypy/typeshed/stdlib/dbm/__init__.pyi +98 -0
  299. jaclang/vendor/mypy/typeshed/stdlib/dbm/dumb.pyi +34 -0
  300. jaclang/vendor/mypy/typeshed/stdlib/dbm/gnu.pyi +44 -0
  301. jaclang/vendor/mypy/typeshed/stdlib/dbm/ndbm.pyi +40 -0
  302. jaclang/vendor/mypy/typeshed/stdlib/decimal.pyi +5 -0
  303. jaclang/vendor/mypy/typeshed/stdlib/difflib.pyi +169 -0
  304. jaclang/vendor/mypy/typeshed/stdlib/dis.pyi +190 -0
  305. jaclang/vendor/mypy/typeshed/stdlib/distutils/__init__.pyi +5 -0
  306. jaclang/vendor/mypy/typeshed/stdlib/distutils/archive_util.pyi +22 -0
  307. jaclang/vendor/mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +3 -0
  308. jaclang/vendor/mypy/typeshed/stdlib/distutils/ccompiler.pyi +183 -0
  309. jaclang/vendor/mypy/typeshed/stdlib/distutils/cmd.pyi +88 -0
  310. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/__init__.pyi +0 -0
  311. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist.pyi +25 -0
  312. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +21 -0
  313. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +45 -0
  314. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi +0 -0
  315. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +52 -0
  316. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +21 -0
  317. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build.pyi +31 -0
  318. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_clib.pyi +27 -0
  319. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_ext.pyi +50 -0
  320. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_py.pyi +44 -0
  321. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +24 -0
  322. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/check.pyi +39 -0
  323. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/clean.pyi +17 -0
  324. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/config.pyi +91 -0
  325. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install.pyi +63 -0
  326. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_data.pyi +19 -0
  327. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +18 -0
  328. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_headers.pyi +16 -0
  329. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_lib.pyi +25 -0
  330. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +18 -0
  331. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/register.pyi +18 -0
  332. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/sdist.pyi +42 -0
  333. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/upload.pyi +17 -0
  334. jaclang/vendor/mypy/typeshed/stdlib/distutils/config.pyi +17 -0
  335. jaclang/vendor/mypy/typeshed/stdlib/distutils/core.pyi +59 -0
  336. jaclang/vendor/mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +20 -0
  337. jaclang/vendor/mypy/typeshed/stdlib/distutils/debug.pyi +1 -0
  338. jaclang/vendor/mypy/typeshed/stdlib/distutils/dep_util.pyi +3 -0
  339. jaclang/vendor/mypy/typeshed/stdlib/distutils/dir_util.pyi +21 -0
  340. jaclang/vendor/mypy/typeshed/stdlib/distutils/dist.pyi +155 -0
  341. jaclang/vendor/mypy/typeshed/stdlib/distutils/errors.pyi +19 -0
  342. jaclang/vendor/mypy/typeshed/stdlib/distutils/extension.pyi +36 -0
  343. jaclang/vendor/mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +37 -0
  344. jaclang/vendor/mypy/typeshed/stdlib/distutils/file_util.pyi +14 -0
  345. jaclang/vendor/mypy/typeshed/stdlib/distutils/filelist.pyi +78 -0
  346. jaclang/vendor/mypy/typeshed/stdlib/distutils/log.pyi +25 -0
  347. jaclang/vendor/mypy/typeshed/stdlib/distutils/msvccompiler.pyi +3 -0
  348. jaclang/vendor/mypy/typeshed/stdlib/distutils/spawn.pyi +4 -0
  349. jaclang/vendor/mypy/typeshed/stdlib/distutils/sysconfig.pyi +24 -0
  350. jaclang/vendor/mypy/typeshed/stdlib/distutils/text_file.pyi +23 -0
  351. jaclang/vendor/mypy/typeshed/stdlib/distutils/unixccompiler.pyi +3 -0
  352. jaclang/vendor/mypy/typeshed/stdlib/distutils/util.pyi +50 -0
  353. jaclang/vendor/mypy/typeshed/stdlib/distutils/version.pyi +36 -0
  354. jaclang/vendor/mypy/typeshed/stdlib/doctest.pyi +282 -0
  355. jaclang/vendor/mypy/typeshed/stdlib/dummy_threading.pyi +2 -0
  356. jaclang/vendor/mypy/typeshed/stdlib/email/__init__.pyi +37 -0
  357. jaclang/vendor/mypy/typeshed/stdlib/email/_header_value_parser.pyi +392 -0
  358. jaclang/vendor/mypy/typeshed/stdlib/email/_policybase.pyi +51 -0
  359. jaclang/vendor/mypy/typeshed/stdlib/email/base64mime.pyi +22 -0
  360. jaclang/vendor/mypy/typeshed/stdlib/email/charset.pyi +39 -0
  361. jaclang/vendor/mypy/typeshed/stdlib/email/contentmanager.pyi +11 -0
  362. jaclang/vendor/mypy/typeshed/stdlib/email/encoders.pyi +8 -0
  363. jaclang/vendor/mypy/typeshed/stdlib/email/errors.pyi +39 -0
  364. jaclang/vendor/mypy/typeshed/stdlib/email/feedparser.pyi +31 -0
  365. jaclang/vendor/mypy/typeshed/stdlib/email/generator.pyi +42 -0
  366. jaclang/vendor/mypy/typeshed/stdlib/email/header.pyi +41 -0
  367. jaclang/vendor/mypy/typeshed/stdlib/email/headerregistry.pyi +214 -0
  368. jaclang/vendor/mypy/typeshed/stdlib/email/iterators.pyi +19 -0
  369. jaclang/vendor/mypy/typeshed/stdlib/email/message.pyi +220 -0
  370. jaclang/vendor/mypy/typeshed/stdlib/email/mime/__init__.pyi +0 -0
  371. jaclang/vendor/mypy/typeshed/stdlib/email/mime/application.pyi +17 -0
  372. jaclang/vendor/mypy/typeshed/stdlib/email/mime/audio.pyi +17 -0
  373. jaclang/vendor/mypy/typeshed/stdlib/email/mime/base.pyi +15 -0
  374. jaclang/vendor/mypy/typeshed/stdlib/email/mime/image.pyi +17 -0
  375. jaclang/vendor/mypy/typeshed/stdlib/email/mime/message.pyi +10 -0
  376. jaclang/vendor/mypy/typeshed/stdlib/email/mime/multipart.pyi +18 -0
  377. jaclang/vendor/mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +5 -0
  378. jaclang/vendor/mypy/typeshed/stdlib/email/mime/text.pyi +14 -0
  379. jaclang/vendor/mypy/typeshed/stdlib/email/parser.pyi +44 -0
  380. jaclang/vendor/mypy/typeshed/stdlib/email/policy.pyi +51 -0
  381. jaclang/vendor/mypy/typeshed/stdlib/email/quoprimime.pyi +30 -0
  382. jaclang/vendor/mypy/typeshed/stdlib/email/utils.pyi +84 -0
  383. jaclang/vendor/mypy/typeshed/stdlib/encodings/__init__.pyi +10 -0
  384. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8.pyi +25 -0
  385. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +28 -0
  386. jaclang/vendor/mypy/typeshed/stdlib/ensurepip/__init__.pyi +12 -0
  387. jaclang/vendor/mypy/typeshed/stdlib/enum.pyi +347 -0
  388. jaclang/vendor/mypy/typeshed/stdlib/errno.pyi +222 -0
  389. jaclang/vendor/mypy/typeshed/stdlib/faulthandler.pyi +20 -0
  390. jaclang/vendor/mypy/typeshed/stdlib/fcntl.pyi +155 -0
  391. jaclang/vendor/mypy/typeshed/stdlib/filecmp.pyi +62 -0
  392. jaclang/vendor/mypy/typeshed/stdlib/fileinput.pyi +246 -0
  393. jaclang/vendor/mypy/typeshed/stdlib/fnmatch.pyi +9 -0
  394. jaclang/vendor/mypy/typeshed/stdlib/formatter.pyi +92 -0
  395. jaclang/vendor/mypy/typeshed/stdlib/fractions.pyi +152 -0
  396. jaclang/vendor/mypy/typeshed/stdlib/ftplib.pyi +214 -0
  397. jaclang/vendor/mypy/typeshed/stdlib/functools.pyi +261 -0
  398. jaclang/vendor/mypy/typeshed/stdlib/gc.pyi +39 -0
  399. jaclang/vendor/mypy/typeshed/stdlib/genericpath.pyi +62 -0
  400. jaclang/vendor/mypy/typeshed/stdlib/getopt.pyi +15 -0
  401. jaclang/vendor/mypy/typeshed/stdlib/getpass.pyi +8 -0
  402. jaclang/vendor/mypy/typeshed/stdlib/gettext.pyi +200 -0
  403. jaclang/vendor/mypy/typeshed/stdlib/glob.pyi +50 -0
  404. jaclang/vendor/mypy/typeshed/stdlib/graphlib.pyi +28 -0
  405. jaclang/vendor/mypy/typeshed/stdlib/grp.pyi +22 -0
  406. jaclang/vendor/mypy/typeshed/stdlib/gzip.pyi +162 -0
  407. jaclang/vendor/mypy/typeshed/stdlib/hashlib.pyi +191 -0
  408. jaclang/vendor/mypy/typeshed/stdlib/heapq.pyi +36 -0
  409. jaclang/vendor/mypy/typeshed/stdlib/hmac.pyi +45 -0
  410. jaclang/vendor/mypy/typeshed/stdlib/html/__init__.pyi +6 -0
  411. jaclang/vendor/mypy/typeshed/stdlib/html/entities.pyi +6 -0
  412. jaclang/vendor/mypy/typeshed/stdlib/html/parser.pyi +40 -0
  413. jaclang/vendor/mypy/typeshed/stdlib/http/__init__.pyi +105 -0
  414. jaclang/vendor/mypy/typeshed/stdlib/http/client.pyi +283 -0
  415. jaclang/vendor/mypy/typeshed/stdlib/http/cookiejar.pyi +206 -0
  416. jaclang/vendor/mypy/typeshed/stdlib/http/cookies.pyi +67 -0
  417. jaclang/vendor/mypy/typeshed/stdlib/http/server.pyi +93 -0
  418. jaclang/vendor/mypy/typeshed/stdlib/imaplib.pyi +221 -0
  419. jaclang/vendor/mypy/typeshed/stdlib/imghdr.pyi +17 -0
  420. jaclang/vendor/mypy/typeshed/stdlib/imp.pyi +75 -0
  421. jaclang/vendor/mypy/typeshed/stdlib/importlib/__init__.pyi +24 -0
  422. jaclang/vendor/mypy/typeshed/stdlib/importlib/_abc.pyi +15 -0
  423. jaclang/vendor/mypy/typeshed/stdlib/importlib/abc.pyi +195 -0
  424. jaclang/vendor/mypy/typeshed/stdlib/importlib/machinery.pyi +214 -0
  425. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +310 -0
  426. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +40 -0
  427. jaclang/vendor/mypy/typeshed/stdlib/importlib/readers.pyi +68 -0
  428. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/__init__.pyi +66 -0
  429. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/abc.pyi +12 -0
  430. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/readers.pyi +14 -0
  431. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/simple.pyi +55 -0
  432. jaclang/vendor/mypy/typeshed/stdlib/importlib/simple.pyi +16 -0
  433. jaclang/vendor/mypy/typeshed/stdlib/importlib/util.pyi +57 -0
  434. jaclang/vendor/mypy/typeshed/stdlib/inspect.pyi +709 -0
  435. jaclang/vendor/mypy/typeshed/stdlib/io.pyi +222 -0
  436. jaclang/vendor/mypy/typeshed/stdlib/ipaddress.pyi +229 -0
  437. jaclang/vendor/mypy/typeshed/stdlib/itertools.pyi +394 -0
  438. jaclang/vendor/mypy/typeshed/stdlib/json/__init__.pyi +69 -0
  439. jaclang/vendor/mypy/typeshed/stdlib/json/decoder.pyi +34 -0
  440. jaclang/vendor/mypy/typeshed/stdlib/json/encoder.pyi +38 -0
  441. jaclang/vendor/mypy/typeshed/stdlib/json/tool.pyi +1 -0
  442. jaclang/vendor/mypy/typeshed/stdlib/keyword.pyi +21 -0
  443. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/__init__.pyi +0 -0
  444. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +32 -0
  445. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +44 -0
  446. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi +0 -0
  447. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +8 -0
  448. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +10 -0
  449. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +8 -0
  450. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +8 -0
  451. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +16 -0
  452. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +14 -0
  453. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +8 -0
  454. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +8 -0
  455. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +13 -0
  456. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +9 -0
  457. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +8 -0
  458. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +8 -0
  459. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +8 -0
  460. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +8 -0
  461. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +15 -0
  462. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +16 -0
  463. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +21 -0
  464. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +6 -0
  465. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +11 -0
  466. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +9 -0
  467. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +8 -0
  468. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +9 -0
  469. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +7 -0
  470. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +7 -0
  471. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +9 -0
  472. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +17 -0
  473. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +10 -0
  474. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +8 -0
  475. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +19 -0
  476. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +8 -0
  477. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +8 -0
  478. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +12 -0
  479. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +8 -0
  480. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +12 -0
  481. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +8 -0
  482. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +8 -0
  483. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +8 -0
  484. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +9 -0
  485. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +17 -0
  486. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +8 -0
  487. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +7 -0
  488. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +8 -0
  489. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +9 -0
  490. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +8 -0
  491. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +17 -0
  492. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +8 -0
  493. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +12 -0
  494. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +18 -0
  495. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +12 -0
  496. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +20 -0
  497. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +8 -0
  498. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +9 -0
  499. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/main.pyi +46 -0
  500. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +9 -0
  501. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +40 -0
  502. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +24 -0
  503. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +7 -0
  504. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +36 -0
  505. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +52 -0
  506. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +67 -0
  507. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +98 -0
  508. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pygram.pyi +114 -0
  509. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pytree.pyi +142 -0
  510. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/refactor.pyi +122 -0
  511. jaclang/vendor/mypy/typeshed/stdlib/linecache.pyi +29 -0
  512. jaclang/vendor/mypy/typeshed/stdlib/locale.pyi +165 -0
  513. jaclang/vendor/mypy/typeshed/stdlib/logging/__init__.pyi +685 -0
  514. jaclang/vendor/mypy/typeshed/stdlib/logging/config.pyi +161 -0
  515. jaclang/vendor/mypy/typeshed/stdlib/logging/handlers.pyi +315 -0
  516. jaclang/vendor/mypy/typeshed/stdlib/lzma.pyi +213 -0
  517. jaclang/vendor/mypy/typeshed/stdlib/mailbox.pyi +306 -0
  518. jaclang/vendor/mypy/typeshed/stdlib/mailcap.pyi +15 -0
  519. jaclang/vendor/mypy/typeshed/stdlib/marshal.pyi +35 -0
  520. jaclang/vendor/mypy/typeshed/stdlib/math.pyi +134 -0
  521. jaclang/vendor/mypy/typeshed/stdlib/mimetypes.pyi +50 -0
  522. jaclang/vendor/mypy/typeshed/stdlib/mmap.pyi +126 -0
  523. jaclang/vendor/mypy/typeshed/stdlib/modulefinder.pyi +84 -0
  524. jaclang/vendor/mypy/typeshed/stdlib/msilib/__init__.pyi +237 -0
  525. jaclang/vendor/mypy/typeshed/stdlib/msilib/schema.pyi +107 -0
  526. jaclang/vendor/mypy/typeshed/stdlib/msilib/sequence.pyi +13 -0
  527. jaclang/vendor/mypy/typeshed/stdlib/msilib/text.pyi +7 -0
  528. jaclang/vendor/mypy/typeshed/stdlib/msvcrt.pyi +32 -0
  529. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/__init__.pyi +94 -0
  530. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/connection.pyi +94 -0
  531. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/context.pyi +235 -0
  532. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +83 -0
  533. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +50 -0
  534. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +36 -0
  535. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/heap.pyi +38 -0
  536. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/managers.pyi +270 -0
  537. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/pool.pyi +137 -0
  538. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +23 -0
  539. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +16 -0
  540. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +20 -0
  541. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +30 -0
  542. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/process.pyi +39 -0
  543. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/queues.pyi +43 -0
  544. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/reduction.pyi +118 -0
  545. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +20 -0
  546. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +18 -0
  547. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +44 -0
  548. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +140 -0
  549. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/spawn.pyi +34 -0
  550. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +66 -0
  551. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/util.pyi +83 -0
  552. jaclang/vendor/mypy/typeshed/stdlib/netrc.pyi +28 -0
  553. jaclang/vendor/mypy/typeshed/stdlib/nis.pyi +9 -0
  554. jaclang/vendor/mypy/typeshed/stdlib/nntplib.pyi +151 -0
  555. jaclang/vendor/mypy/typeshed/stdlib/nt.pyi +114 -0
  556. jaclang/vendor/mypy/typeshed/stdlib/ntpath.pyi +119 -0
  557. jaclang/vendor/mypy/typeshed/stdlib/nturl2path.pyi +2 -0
  558. jaclang/vendor/mypy/typeshed/stdlib/numbers.pyi +154 -0
  559. jaclang/vendor/mypy/typeshed/stdlib/opcode.pyi +68 -0
  560. jaclang/vendor/mypy/typeshed/stdlib/operator.pyi +110 -0
  561. jaclang/vendor/mypy/typeshed/stdlib/optparse.pyi +290 -0
  562. jaclang/vendor/mypy/typeshed/stdlib/os/__init__.pyi +1317 -0
  563. jaclang/vendor/mypy/typeshed/stdlib/os/path.pyi +8 -0
  564. jaclang/vendor/mypy/typeshed/stdlib/ossaudiodev.pyi +131 -0
  565. jaclang/vendor/mypy/typeshed/stdlib/parser.pyi +28 -0
  566. jaclang/vendor/mypy/typeshed/stdlib/pathlib.pyi +282 -0
  567. jaclang/vendor/mypy/typeshed/stdlib/pdb.pyi +223 -0
  568. jaclang/vendor/mypy/typeshed/stdlib/pickle.pyi +286 -0
  569. jaclang/vendor/mypy/typeshed/stdlib/pickletools.pyi +173 -0
  570. jaclang/vendor/mypy/typeshed/stdlib/pipes.pyi +16 -0
  571. jaclang/vendor/mypy/typeshed/stdlib/pkgutil.pyi +61 -0
  572. jaclang/vendor/mypy/typeshed/stdlib/platform.pyi +56 -0
  573. jaclang/vendor/mypy/typeshed/stdlib/plistlib.pyi +176 -0
  574. jaclang/vendor/mypy/typeshed/stdlib/poplib.pyi +78 -0
  575. jaclang/vendor/mypy/typeshed/stdlib/posix.pyi +363 -0
  576. jaclang/vendor/mypy/typeshed/stdlib/posixpath.pyi +171 -0
  577. jaclang/vendor/mypy/typeshed/stdlib/pprint.pyi +122 -0
  578. jaclang/vendor/mypy/typeshed/stdlib/profile.pyi +43 -0
  579. jaclang/vendor/mypy/typeshed/stdlib/pstats.pyi +85 -0
  580. jaclang/vendor/mypy/typeshed/stdlib/pty.pyi +21 -0
  581. jaclang/vendor/mypy/typeshed/stdlib/pwd.pyi +36 -0
  582. jaclang/vendor/mypy/typeshed/stdlib/py_compile.pyi +40 -0
  583. jaclang/vendor/mypy/typeshed/stdlib/pyclbr.pyi +97 -0
  584. jaclang/vendor/mypy/typeshed/stdlib/pydoc.pyi +309 -0
  585. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
  586. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/topics.pyi +1 -0
  587. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/__init__.pyi +94 -0
  588. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/errors.pyi +49 -0
  589. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/model.pyi +11 -0
  590. jaclang/vendor/mypy/typeshed/stdlib/queue.pyi +62 -0
  591. jaclang/vendor/mypy/typeshed/stdlib/quopri.pyi +17 -0
  592. jaclang/vendor/mypy/typeshed/stdlib/random.pyi +160 -0
  593. jaclang/vendor/mypy/typeshed/stdlib/re.pyi +376 -0
  594. jaclang/vendor/mypy/typeshed/stdlib/readline.pyi +40 -0
  595. jaclang/vendor/mypy/typeshed/stdlib/reprlib.pyi +65 -0
  596. jaclang/vendor/mypy/typeshed/stdlib/resource.pyi +116 -0
  597. jaclang/vendor/mypy/typeshed/stdlib/rlcompleter.pyi +9 -0
  598. jaclang/vendor/mypy/typeshed/stdlib/runpy.pyi +31 -0
  599. jaclang/vendor/mypy/typeshed/stdlib/sched.pyi +56 -0
  600. jaclang/vendor/mypy/typeshed/stdlib/secrets.pyi +24 -0
  601. jaclang/vendor/mypy/typeshed/stdlib/select.pyi +162 -0
  602. jaclang/vendor/mypy/typeshed/stdlib/selectors.pyi +85 -0
  603. jaclang/vendor/mypy/typeshed/stdlib/shelve.pyi +64 -0
  604. jaclang/vendor/mypy/typeshed/stdlib/shlex.pyi +47 -0
  605. jaclang/vendor/mypy/typeshed/stdlib/shutil.pyi +239 -0
  606. jaclang/vendor/mypy/typeshed/stdlib/signal.pyi +208 -0
  607. jaclang/vendor/mypy/typeshed/stdlib/site.pyi +33 -0
  608. jaclang/vendor/mypy/typeshed/stdlib/smtpd.pyi +102 -0
  609. jaclang/vendor/mypy/typeshed/stdlib/smtplib.pyi +223 -0
  610. jaclang/vendor/mypy/typeshed/stdlib/sndhdr.pyi +14 -0
  611. jaclang/vendor/mypy/typeshed/stdlib/socket.pyi +881 -0
  612. jaclang/vendor/mypy/typeshed/stdlib/socketserver.pyi +195 -0
  613. jaclang/vendor/mypy/typeshed/stdlib/spwd.pyi +43 -0
  614. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/__init__.pyi +1 -0
  615. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +519 -0
  616. jaclang/vendor/mypy/typeshed/stdlib/sre_compile.pyi +11 -0
  617. jaclang/vendor/mypy/typeshed/stdlib/sre_constants.pyi +132 -0
  618. jaclang/vendor/mypy/typeshed/stdlib/sre_parse.pyi +110 -0
  619. jaclang/vendor/mypy/typeshed/stdlib/ssl.pyi +559 -0
  620. jaclang/vendor/mypy/typeshed/stdlib/stat.pyi +1 -0
  621. jaclang/vendor/mypy/typeshed/stdlib/statistics.pyi +151 -0
  622. jaclang/vendor/mypy/typeshed/stdlib/string.pyi +112 -0
  623. jaclang/vendor/mypy/typeshed/stdlib/stringprep.pyi +27 -0
  624. jaclang/vendor/mypy/typeshed/stdlib/struct.pyi +43 -0
  625. jaclang/vendor/mypy/typeshed/stdlib/subprocess.pyi +2638 -0
  626. jaclang/vendor/mypy/typeshed/stdlib/sunau.pyi +86 -0
  627. jaclang/vendor/mypy/typeshed/stdlib/symbol.pyi +93 -0
  628. jaclang/vendor/mypy/typeshed/stdlib/symtable.pyi +63 -0
  629. jaclang/vendor/mypy/typeshed/stdlib/sys/__init__.pyi +396 -0
  630. jaclang/vendor/mypy/typeshed/stdlib/sys/_monitoring.pyi +54 -0
  631. jaclang/vendor/mypy/typeshed/stdlib/sysconfig.pyi +52 -0
  632. jaclang/vendor/mypy/typeshed/stdlib/syslog.pyi +48 -0
  633. jaclang/vendor/mypy/typeshed/stdlib/tabnanny.pyi +18 -0
  634. jaclang/vendor/mypy/typeshed/stdlib/tarfile.pyi +486 -0
  635. jaclang/vendor/mypy/typeshed/stdlib/telnetlib.pyi +129 -0
  636. jaclang/vendor/mypy/typeshed/stdlib/tempfile.pyi +521 -0
  637. jaclang/vendor/mypy/typeshed/stdlib/termios.pyi +273 -0
  638. jaclang/vendor/mypy/typeshed/stdlib/textwrap.pyi +107 -0
  639. jaclang/vendor/mypy/typeshed/stdlib/this.pyi +2 -0
  640. jaclang/vendor/mypy/typeshed/stdlib/threading.pyi +212 -0
  641. jaclang/vendor/mypy/typeshed/stdlib/time.pyi +122 -0
  642. jaclang/vendor/mypy/typeshed/stdlib/timeit.pyi +46 -0
  643. jaclang/vendor/mypy/typeshed/stdlib/tkinter/__init__.pyi +3950 -0
  644. jaclang/vendor/mypy/typeshed/stdlib/tkinter/colorchooser.pyi +28 -0
  645. jaclang/vendor/mypy/typeshed/stdlib/tkinter/commondialog.pyi +16 -0
  646. jaclang/vendor/mypy/typeshed/stdlib/tkinter/constants.pyi +80 -0
  647. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dialog.pyi +21 -0
  648. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dnd.pyi +20 -0
  649. jaclang/vendor/mypy/typeshed/stdlib/tkinter/filedialog.pyi +173 -0
  650. jaclang/vendor/mypy/typeshed/stdlib/tkinter/font.pyi +148 -0
  651. jaclang/vendor/mypy/typeshed/stdlib/tkinter/messagebox.pyi +60 -0
  652. jaclang/vendor/mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +10 -0
  653. jaclang/vendor/mypy/typeshed/stdlib/tkinter/simpledialog.pyi +54 -0
  654. jaclang/vendor/mypy/typeshed/stdlib/tkinter/tix.pyi +395 -0
  655. jaclang/vendor/mypy/typeshed/stdlib/tkinter/ttk.pyi +1276 -0
  656. jaclang/vendor/mypy/typeshed/stdlib/token.pyi +159 -0
  657. jaclang/vendor/mypy/typeshed/stdlib/tokenize.pyi +185 -0
  658. jaclang/vendor/mypy/typeshed/stdlib/tomllib.pyi +12 -0
  659. jaclang/vendor/mypy/typeshed/stdlib/trace.pyi +114 -0
  660. jaclang/vendor/mypy/typeshed/stdlib/traceback.pyi +297 -0
  661. jaclang/vendor/mypy/typeshed/stdlib/tracemalloc.pyi +142 -0
  662. jaclang/vendor/mypy/typeshed/stdlib/tty.pyi +30 -0
  663. jaclang/vendor/mypy/typeshed/stdlib/turtle.pyi +830 -0
  664. jaclang/vendor/mypy/typeshed/stdlib/types.pyi +647 -0
  665. jaclang/vendor/mypy/typeshed/stdlib/typing.pyi +1059 -0
  666. jaclang/vendor/mypy/typeshed/stdlib/typing_extensions.pyi +524 -0
  667. jaclang/vendor/mypy/typeshed/stdlib/unicodedata.pyi +71 -0
  668. jaclang/vendor/mypy/typeshed/stdlib/unittest/__init__.pyi +72 -0
  669. jaclang/vendor/mypy/typeshed/stdlib/unittest/_log.pyi +34 -0
  670. jaclang/vendor/mypy/typeshed/stdlib/unittest/async_case.pyi +28 -0
  671. jaclang/vendor/mypy/typeshed/stdlib/unittest/case.pyi +481 -0
  672. jaclang/vendor/mypy/typeshed/stdlib/unittest/loader.pyi +71 -0
  673. jaclang/vendor/mypy/typeshed/stdlib/unittest/main.pyi +75 -0
  674. jaclang/vendor/mypy/typeshed/stdlib/unittest/mock.pyi +468 -0
  675. jaclang/vendor/mypy/typeshed/stdlib/unittest/result.pyi +59 -0
  676. jaclang/vendor/mypy/typeshed/stdlib/unittest/runner.pyi +83 -0
  677. jaclang/vendor/mypy/typeshed/stdlib/unittest/signals.pyi +15 -0
  678. jaclang/vendor/mypy/typeshed/stdlib/unittest/suite.pyi +26 -0
  679. jaclang/vendor/mypy/typeshed/stdlib/unittest/util.pyi +31 -0
  680. jaclang/vendor/mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
  681. jaclang/vendor/mypy/typeshed/stdlib/urllib/error.pyi +27 -0
  682. jaclang/vendor/mypy/typeshed/stdlib/urllib/parse.pyi +245 -0
  683. jaclang/vendor/mypy/typeshed/stdlib/urllib/request.pyi +544 -0
  684. jaclang/vendor/mypy/typeshed/stdlib/urllib/response.pyi +50 -0
  685. jaclang/vendor/mypy/typeshed/stdlib/urllib/robotparser.pyi +20 -0
  686. jaclang/vendor/mypy/typeshed/stdlib/uu.pyi +23 -0
  687. jaclang/vendor/mypy/typeshed/stdlib/uuid.pyi +100 -0
  688. jaclang/vendor/mypy/typeshed/stdlib/warnings.pyi +144 -0
  689. jaclang/vendor/mypy/typeshed/stdlib/wave.pyi +87 -0
  690. jaclang/vendor/mypy/typeshed/stdlib/weakref.pyi +173 -0
  691. jaclang/vendor/mypy/typeshed/stdlib/webbrowser.pyi +80 -0
  692. jaclang/vendor/mypy/typeshed/stdlib/winreg.pyi +120 -0
  693. jaclang/vendor/mypy/typeshed/stdlib/winsound.pyi +28 -0
  694. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
  695. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/handlers.pyi +109 -0
  696. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/headers.pyi +28 -0
  697. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/simple_server.pyi +49 -0
  698. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/types.pyi +44 -0
  699. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/util.pyi +31 -0
  700. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/validate.pyi +52 -0
  701. jaclang/vendor/mypy/typeshed/stdlib/xdrlib.pyi +63 -0
  702. jaclang/vendor/mypy/typeshed/stdlib/xml/__init__.pyi +1 -0
  703. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +19 -0
  704. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/__init__.pyi +72 -0
  705. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/domreg.pyi +12 -0
  706. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +111 -0
  707. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minicompat.pyi +22 -0
  708. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minidom.pyi +467 -0
  709. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/pulldom.pyi +101 -0
  710. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +110 -0
  711. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +35 -0
  712. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +49 -0
  713. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +367 -0
  714. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
  715. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +1 -0
  716. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/__init__.pyi +1 -0
  717. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +1 -0
  718. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +1 -0
  719. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +1 -0
  720. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/__init__.pyi +34 -0
  721. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/_exceptions.pyi +21 -0
  722. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/handler.pyi +59 -0
  723. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/saxutils.pyi +71 -0
  724. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +89 -0
  725. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
  726. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/client.pyi +348 -0
  727. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/server.pyi +186 -0
  728. jaclang/vendor/mypy/typeshed/stdlib/xxlimited.pyi +22 -0
  729. jaclang/vendor/mypy/typeshed/stdlib/zipapp.pyi +20 -0
  730. jaclang/vendor/mypy/typeshed/stdlib/zipfile/__init__.pyi +355 -0
  731. jaclang/vendor/mypy/typeshed/stdlib/zipfile/_path.pyi +105 -0
  732. jaclang/vendor/mypy/typeshed/stdlib/zipimport.pyi +40 -0
  733. jaclang/vendor/mypy/typeshed/stdlib/zlib.pyi +63 -0
  734. jaclang/vendor/mypy/typeshed/stdlib/zoneinfo/__init__.pyi +45 -0
  735. jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/@tests/stubtest_allowlist.txt +2 -0
  736. jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/METADATA.toml +4 -0
  737. jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +238 -0
  738. jaclang/vendor/mypy/xml/mypy-html.css +104 -0
  739. jaclang/vendor/mypy/xml/mypy-html.xslt +81 -0
  740. jaclang/vendor/mypy/xml/mypy-txt.xslt +100 -0
  741. jaclang/vendor/mypy/xml/mypy.xsd +50 -0
  742. jaclang/vendor/mypyc/.readthedocs.yaml +18 -0
  743. jaclang/vendor/mypyc/README.md +133 -0
  744. jaclang/vendor/mypyc/doc/Makefile +20 -0
  745. jaclang/vendor/mypyc/doc/bool_operations.rst +27 -0
  746. jaclang/vendor/mypyc/doc/compilation_units.rst +20 -0
  747. jaclang/vendor/mypyc/doc/conf.py +59 -0
  748. jaclang/vendor/mypyc/doc/cpython-timings.md +25 -0
  749. jaclang/vendor/mypyc/doc/dev-intro.md +548 -0
  750. jaclang/vendor/mypyc/doc/dict_operations.rst +59 -0
  751. jaclang/vendor/mypyc/doc/differences_from_python.rst +332 -0
  752. jaclang/vendor/mypyc/doc/float_operations.rst +50 -0
  753. jaclang/vendor/mypyc/doc/future.md +42 -0
  754. jaclang/vendor/mypyc/doc/getting_started.rst +240 -0
  755. jaclang/vendor/mypyc/doc/index.rst +61 -0
  756. jaclang/vendor/mypyc/doc/int_operations.rst +162 -0
  757. jaclang/vendor/mypyc/doc/introduction.rst +150 -0
  758. jaclang/vendor/mypyc/doc/list_operations.rst +65 -0
  759. jaclang/vendor/mypyc/doc/make.bat +35 -0
  760. jaclang/vendor/mypyc/doc/native_classes.rst +206 -0
  761. jaclang/vendor/mypyc/doc/native_operations.rst +55 -0
  762. jaclang/vendor/mypyc/doc/performance_tips_and_tricks.rst +244 -0
  763. jaclang/vendor/mypyc/doc/set_operations.rst +47 -0
  764. jaclang/vendor/mypyc/doc/str_operations.rst +35 -0
  765. jaclang/vendor/mypyc/doc/tuple_operations.rst +33 -0
  766. jaclang/vendor/mypyc/doc/using_type_annotations.rst +398 -0
  767. jaclang/vendor/mypyc/external/googletest/LICENSE +28 -0
  768. jaclang/vendor/mypyc/external/googletest/README.md +280 -0
  769. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-death-test.h +294 -0
  770. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-message.h +250 -0
  771. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h +1444 -0
  772. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h.pump +510 -0
  773. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-printers.h +993 -0
  774. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-spi.h +232 -0
  775. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-test-part.h +179 -0
  776. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-typed-test.h +263 -0
  777. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest.h +2236 -0
  778. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_pred_impl.h +358 -0
  779. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_prod.h +58 -0
  780. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-port.h +69 -0
  781. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  782. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest.h +41 -0
  783. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-death-test-internal.h +319 -0
  784. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-filepath.h +206 -0
  785. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-internal.h +1238 -0
  786. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-linked_ptr.h +243 -0
  787. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h +5146 -0
  788. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +286 -0
  789. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util.h +731 -0
  790. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port-arch.h +93 -0
  791. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port.h +2560 -0
  792. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-string.h +167 -0
  793. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h +1020 -0
  794. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h.pump +347 -0
  795. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h +3331 -0
  796. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h.pump +297 -0
  797. jaclang/vendor/mypyc/external/googletest/make/Makefile +61 -0
  798. jaclang/vendor/mypyc/external/googletest/src/gtest-all.cc +48 -0
  799. jaclang/vendor/mypyc/external/googletest/src/gtest-death-test.cc +1342 -0
  800. jaclang/vendor/mypyc/external/googletest/src/gtest-filepath.cc +387 -0
  801. jaclang/vendor/mypyc/external/googletest/src/gtest-internal-inl.h +1183 -0
  802. jaclang/vendor/mypyc/external/googletest/src/gtest-port.cc +1259 -0
  803. jaclang/vendor/mypyc/external/googletest/src/gtest-printers.cc +373 -0
  804. jaclang/vendor/mypyc/external/googletest/src/gtest-test-part.cc +110 -0
  805. jaclang/vendor/mypyc/external/googletest/src/gtest-typed-test.cc +118 -0
  806. jaclang/vendor/mypyc/external/googletest/src/gtest.cc +5388 -0
  807. jaclang/vendor/mypyc/external/googletest/src/gtest_main.cc +38 -0
  808. jaclang/vendor/mypyc/lib-rt/CPy.h +643 -0
  809. jaclang/vendor/mypyc/lib-rt/bytes_ops.c +143 -0
  810. jaclang/vendor/mypyc/lib-rt/dict_ops.c +446 -0
  811. jaclang/vendor/mypyc/lib-rt/exc_ops.c +259 -0
  812. jaclang/vendor/mypyc/lib-rt/float_ops.c +192 -0
  813. jaclang/vendor/mypyc/lib-rt/generic_ops.c +64 -0
  814. jaclang/vendor/mypyc/lib-rt/getargs.c +450 -0
  815. jaclang/vendor/mypyc/lib-rt/getargsfast.c +569 -0
  816. jaclang/vendor/mypyc/lib-rt/init.c +13 -0
  817. jaclang/vendor/mypyc/lib-rt/int_ops.c +803 -0
  818. jaclang/vendor/mypyc/lib-rt/list_ops.c +335 -0
  819. jaclang/vendor/mypyc/lib-rt/misc_ops.c +942 -0
  820. jaclang/vendor/mypyc/lib-rt/module_shim.tmpl +18 -0
  821. jaclang/vendor/mypyc/lib-rt/mypyc_util.h +118 -0
  822. jaclang/vendor/mypyc/lib-rt/pythoncapi_compat.h +497 -0
  823. jaclang/vendor/mypyc/lib-rt/pythonsupport.h +548 -0
  824. jaclang/vendor/mypyc/lib-rt/set_ops.c +17 -0
  825. jaclang/vendor/mypyc/lib-rt/setup.py +76 -0
  826. jaclang/vendor/mypyc/lib-rt/str_ops.c +241 -0
  827. jaclang/vendor/mypyc/lib-rt/test_capi.cc +585 -0
  828. jaclang/vendor/mypyc/lib-rt/tuple_ops.c +61 -0
  829. jaclang/vendor/mypyc/test-data/alwaysdefined.test +732 -0
  830. jaclang/vendor/mypyc/test-data/analysis.test +603 -0
  831. jaclang/vendor/mypyc/test-data/commandline.test +245 -0
  832. jaclang/vendor/mypyc/test-data/driver/driver.py +50 -0
  833. jaclang/vendor/mypyc/test-data/exceptions-freq.test +125 -0
  834. jaclang/vendor/mypyc/test-data/exceptions.test +713 -0
  835. jaclang/vendor/mypyc/test-data/fixtures/ir.py +850 -0
  836. jaclang/vendor/mypyc/test-data/fixtures/testutil.py +117 -0
  837. jaclang/vendor/mypyc/test-data/fixtures/typing-full.pyi +212 -0
  838. jaclang/vendor/mypyc/test-data/irbuild-any.test +238 -0
  839. jaclang/vendor/mypyc/test-data/irbuild-basic.test +3690 -0
  840. jaclang/vendor/mypyc/test-data/irbuild-bool.test +463 -0
  841. jaclang/vendor/mypyc/test-data/irbuild-bytes.test +184 -0
  842. jaclang/vendor/mypyc/test-data/irbuild-classes.test +1303 -0
  843. jaclang/vendor/mypyc/test-data/irbuild-constant-fold.test +480 -0
  844. jaclang/vendor/mypyc/test-data/irbuild-dict.test +585 -0
  845. jaclang/vendor/mypyc/test-data/irbuild-dunders.test +223 -0
  846. jaclang/vendor/mypyc/test-data/irbuild-float.test +497 -0
  847. jaclang/vendor/mypyc/test-data/irbuild-generics.test +151 -0
  848. jaclang/vendor/mypyc/test-data/irbuild-glue-methods.test +437 -0
  849. jaclang/vendor/mypyc/test-data/irbuild-i16.test +526 -0
  850. jaclang/vendor/mypyc/test-data/irbuild-i32.test +598 -0
  851. jaclang/vendor/mypyc/test-data/irbuild-i64.test +2164 -0
  852. jaclang/vendor/mypyc/test-data/irbuild-int.test +235 -0
  853. jaclang/vendor/mypyc/test-data/irbuild-isinstance.test +109 -0
  854. jaclang/vendor/mypyc/test-data/irbuild-lists.test +547 -0
  855. jaclang/vendor/mypyc/test-data/irbuild-match.test +1708 -0
  856. jaclang/vendor/mypyc/test-data/irbuild-math.test +64 -0
  857. jaclang/vendor/mypyc/test-data/irbuild-nested.test +807 -0
  858. jaclang/vendor/mypyc/test-data/irbuild-optional.test +536 -0
  859. jaclang/vendor/mypyc/test-data/irbuild-set.test +838 -0
  860. jaclang/vendor/mypyc/test-data/irbuild-singledispatch.test +257 -0
  861. jaclang/vendor/mypyc/test-data/irbuild-statements.test +1149 -0
  862. jaclang/vendor/mypyc/test-data/irbuild-str.test +314 -0
  863. jaclang/vendor/mypyc/test-data/irbuild-strip-asserts.test +12 -0
  864. jaclang/vendor/mypyc/test-data/irbuild-try.test +523 -0
  865. jaclang/vendor/mypyc/test-data/irbuild-tuple.test +462 -0
  866. jaclang/vendor/mypyc/test-data/irbuild-u8.test +543 -0
  867. jaclang/vendor/mypyc/test-data/irbuild-unreachable.test +241 -0
  868. jaclang/vendor/mypyc/test-data/irbuild-vectorcall.test +153 -0
  869. jaclang/vendor/mypyc/test-data/refcount.test +1588 -0
  870. jaclang/vendor/mypyc/test-data/run-async.test +145 -0
  871. jaclang/vendor/mypyc/test-data/run-attrs.test +318 -0
  872. jaclang/vendor/mypyc/test-data/run-bench.test +196 -0
  873. jaclang/vendor/mypyc/test-data/run-bools.test +229 -0
  874. jaclang/vendor/mypyc/test-data/run-bytes.test +302 -0
  875. jaclang/vendor/mypyc/test-data/run-classes.test +2505 -0
  876. jaclang/vendor/mypyc/test-data/run-dicts.test +334 -0
  877. jaclang/vendor/mypyc/test-data/run-dunders.test +945 -0
  878. jaclang/vendor/mypyc/test-data/run-exceptions.test +448 -0
  879. jaclang/vendor/mypyc/test-data/run-floats.test +516 -0
  880. jaclang/vendor/mypyc/test-data/run-functions.test +1310 -0
  881. jaclang/vendor/mypyc/test-data/run-generators.test +681 -0
  882. jaclang/vendor/mypyc/test-data/run-i16.test +338 -0
  883. jaclang/vendor/mypyc/test-data/run-i32.test +336 -0
  884. jaclang/vendor/mypyc/test-data/run-i64.test +1519 -0
  885. jaclang/vendor/mypyc/test-data/run-imports.test +265 -0
  886. jaclang/vendor/mypyc/test-data/run-integers.test +540 -0
  887. jaclang/vendor/mypyc/test-data/run-lists.test +411 -0
  888. jaclang/vendor/mypyc/test-data/run-loops.test +485 -0
  889. jaclang/vendor/mypyc/test-data/run-match.test +283 -0
  890. jaclang/vendor/mypyc/test-data/run-math.test +106 -0
  891. jaclang/vendor/mypyc/test-data/run-misc.test +1168 -0
  892. jaclang/vendor/mypyc/test-data/run-multimodule.test +887 -0
  893. jaclang/vendor/mypyc/test-data/run-mypy-sim.test +138 -0
  894. jaclang/vendor/mypyc/test-data/run-primitives.test +375 -0
  895. jaclang/vendor/mypyc/test-data/run-python37.test +159 -0
  896. jaclang/vendor/mypyc/test-data/run-python38.test +88 -0
  897. jaclang/vendor/mypyc/test-data/run-sets.test +150 -0
  898. jaclang/vendor/mypyc/test-data/run-singledispatch.test +698 -0
  899. jaclang/vendor/mypyc/test-data/run-strings.test +641 -0
  900. jaclang/vendor/mypyc/test-data/run-traits.test +411 -0
  901. jaclang/vendor/mypyc/test-data/run-tuples.test +258 -0
  902. jaclang/vendor/mypyc/test-data/run-u8.test +303 -0
  903. jaclang/vendor/pluggy/LICENSE +21 -0
  904. jaclang-0.6.2.dist-info/METADATA +110 -0
  905. jaclang-0.6.2.dist-info/RECORD +1305 -0
  906. {jaclang-0.6.0.dist-info → jaclang-0.6.2.dist-info}/WHEEL +1 -2
  907. jaclang-0.6.2.dist-info/entry_points.txt +3 -0
  908. jaclang/compiler/generated/jac_parser.py +0 -4069
  909. jaclang-0.6.0.dist-info/METADATA +0 -17
  910. jaclang-0.6.0.dist-info/RECORD +0 -426
  911. jaclang-0.6.0.dist-info/entry_points.txt +0 -2
  912. jaclang-0.6.0.dist-info/top_level.txt +0 -1
  913. /jaclang/{compiler/generated/__init__.py → vendor/mypy/typeshed/stdlib/concurrent/__init__.pyi} +0 -0
@@ -0,0 +1,2164 @@
1
+ [case testI64Basics]
2
+ from mypy_extensions import i64
3
+
4
+ def f() -> i64:
5
+ x: i64 = 5
6
+ y = x
7
+ return y
8
+ [out]
9
+ def f():
10
+ x, y :: i64
11
+ L0:
12
+ x = 5
13
+ y = x
14
+ return y
15
+
16
+ [case testI64Compare]
17
+ from mypy_extensions import i64
18
+
19
+ def min(x: i64, y: i64) -> i64:
20
+ if x < y:
21
+ return x
22
+ else:
23
+ return y
24
+
25
+ def all_comparisons(x: i64) -> int:
26
+ if x == 2:
27
+ y = 10
28
+ elif 3 != x:
29
+ y = 11
30
+ elif x > 4:
31
+ y = 12
32
+ elif 6 >= x:
33
+ y = 13
34
+ elif x < 5:
35
+ y = 14
36
+ elif 6 <= x:
37
+ y = 15
38
+ else:
39
+ y = 16
40
+ return y
41
+ [out]
42
+ def min(x, y):
43
+ x, y :: i64
44
+ r0 :: bit
45
+ L0:
46
+ r0 = x < y :: signed
47
+ if r0 goto L1 else goto L2 :: bool
48
+ L1:
49
+ return x
50
+ L2:
51
+ return y
52
+ L3:
53
+ unreachable
54
+ def all_comparisons(x):
55
+ x :: i64
56
+ r0 :: bit
57
+ y :: int
58
+ r1, r2, r3, r4, r5 :: bit
59
+ L0:
60
+ r0 = x == 2
61
+ if r0 goto L1 else goto L2 :: bool
62
+ L1:
63
+ y = 20
64
+ goto L18
65
+ L2:
66
+ r1 = 3 != x
67
+ if r1 goto L3 else goto L4 :: bool
68
+ L3:
69
+ y = 22
70
+ goto L17
71
+ L4:
72
+ r2 = x > 4 :: signed
73
+ if r2 goto L5 else goto L6 :: bool
74
+ L5:
75
+ y = 24
76
+ goto L16
77
+ L6:
78
+ r3 = 6 >= x :: signed
79
+ if r3 goto L7 else goto L8 :: bool
80
+ L7:
81
+ y = 26
82
+ goto L15
83
+ L8:
84
+ r4 = x < 5 :: signed
85
+ if r4 goto L9 else goto L10 :: bool
86
+ L9:
87
+ y = 28
88
+ goto L14
89
+ L10:
90
+ r5 = 6 <= x :: signed
91
+ if r5 goto L11 else goto L12 :: bool
92
+ L11:
93
+ y = 30
94
+ goto L13
95
+ L12:
96
+ y = 32
97
+ L13:
98
+ L14:
99
+ L15:
100
+ L16:
101
+ L17:
102
+ L18:
103
+ return y
104
+
105
+ [case testI64Arithmetic]
106
+ from mypy_extensions import i64
107
+
108
+ def f(x: i64, y: i64) -> i64:
109
+ z = x + y
110
+ return y - z
111
+ [out]
112
+ def f(x, y):
113
+ x, y, r0, z, r1 :: i64
114
+ L0:
115
+ r0 = x + y
116
+ z = r0
117
+ r1 = y - z
118
+ return r1
119
+
120
+ [case testI64Negation]
121
+ from mypy_extensions import i64
122
+
123
+ def f() -> i64:
124
+ i: i64 = -3
125
+ return -i
126
+ [out]
127
+ def f():
128
+ i, r0 :: i64
129
+ L0:
130
+ i = -3
131
+ r0 = 0 - i
132
+ return r0
133
+
134
+ [case testI64MoreUnaryOps]
135
+ from mypy_extensions import i64
136
+
137
+ def unary(x: i64) -> i64:
138
+ y = ~x
139
+ x = +y
140
+ return x
141
+ [out]
142
+ def unary(x):
143
+ x, r0, y :: i64
144
+ L0:
145
+ r0 = x ^ -1
146
+ y = r0
147
+ x = y
148
+ return x
149
+
150
+ [case testI64BoxingAndUnboxing]
151
+ from typing import Any
152
+ from mypy_extensions import i64
153
+
154
+ def f(a: Any) -> None:
155
+ b: i64 = a
156
+ a = b
157
+ [out]
158
+ def f(a):
159
+ a :: object
160
+ r0, b :: i64
161
+ r1 :: object
162
+ L0:
163
+ r0 = unbox(i64, a)
164
+ b = r0
165
+ r1 = box(i64, b)
166
+ a = r1
167
+ return 1
168
+
169
+ [case testI64ListGetSetItem]
170
+ from typing import List
171
+ from mypy_extensions import i64
172
+
173
+ def get(a: List[i64], i: i64) -> i64:
174
+ return a[i]
175
+ def set(a: List[i64], i: i64, x: i64) -> None:
176
+ a[i] = x
177
+ [out]
178
+ def get(a, i):
179
+ a :: list
180
+ i :: i64
181
+ r0 :: object
182
+ r1 :: i64
183
+ L0:
184
+ r0 = CPyList_GetItemInt64(a, i)
185
+ r1 = unbox(i64, r0)
186
+ return r1
187
+ def set(a, i, x):
188
+ a :: list
189
+ i, x :: i64
190
+ r0 :: object
191
+ r1 :: bit
192
+ L0:
193
+ r0 = box(i64, x)
194
+ r1 = CPyList_SetItemInt64(a, i, r0)
195
+ return 1
196
+
197
+ [case testI64MixedArithmetic]
198
+ from mypy_extensions import i64
199
+
200
+ def f() -> i64:
201
+ a: i64 = 1
202
+ b = a + 2
203
+ return 3 - b
204
+ [out]
205
+ def f():
206
+ a, r0, b, r1 :: i64
207
+ L0:
208
+ a = 1
209
+ r0 = a + 2
210
+ b = r0
211
+ r1 = 3 - b
212
+ return r1
213
+
214
+ [case testI64MixedComparison]
215
+ from mypy_extensions import i64
216
+
217
+ def f(a: i64) -> i64:
218
+ if a < 3:
219
+ return 1
220
+ elif 3 < a:
221
+ return 2
222
+ return 3
223
+ [out]
224
+ def f(a):
225
+ a :: i64
226
+ r0, r1 :: bit
227
+ L0:
228
+ r0 = a < 3 :: signed
229
+ if r0 goto L1 else goto L2 :: bool
230
+ L1:
231
+ return 1
232
+ L2:
233
+ r1 = 3 < a :: signed
234
+ if r1 goto L3 else goto L4 :: bool
235
+ L3:
236
+ return 2
237
+ L4:
238
+ L5:
239
+ return 3
240
+
241
+ [case testI64InplaceOperations]
242
+ from mypy_extensions import i64
243
+
244
+ def add(a: i64) -> i64:
245
+ b = a
246
+ b += 1
247
+ a += b
248
+ return a
249
+ def others(a: i64, b: i64) -> i64:
250
+ a -= b
251
+ a *= b
252
+ a &= b
253
+ a |= b
254
+ a ^= b
255
+ a <<= b
256
+ a >>= b
257
+ return a
258
+ [out]
259
+ def add(a):
260
+ a, b, r0, r1 :: i64
261
+ L0:
262
+ b = a
263
+ r0 = b + 1
264
+ b = r0
265
+ r1 = a + b
266
+ a = r1
267
+ return a
268
+ def others(a, b):
269
+ a, b, r0, r1, r2, r3, r4, r5, r6 :: i64
270
+ L0:
271
+ r0 = a - b
272
+ a = r0
273
+ r1 = a * b
274
+ a = r1
275
+ r2 = a & b
276
+ a = r2
277
+ r3 = a | b
278
+ a = r3
279
+ r4 = a ^ b
280
+ a = r4
281
+ r5 = a << b
282
+ a = r5
283
+ r6 = a >> b
284
+ a = r6
285
+ return a
286
+
287
+ [case testI64BitwiseOps]
288
+ from mypy_extensions import i64
289
+
290
+ def forward(a: i64, b: i64) -> i64:
291
+ b = a & 1
292
+ a = b | 2
293
+ b = a ^ 3
294
+ a = b << 4
295
+ b = a >> 5
296
+ return b
297
+
298
+ def reverse(a: i64, b: i64) -> i64:
299
+ b = 1 & a
300
+ a = 2 | b
301
+ b = 3 ^ a
302
+ a = 4 << b
303
+ b = 5 >> a
304
+ return b
305
+
306
+ def unary(a: i64) -> i64:
307
+ return ~a
308
+ [out]
309
+ def forward(a, b):
310
+ a, b, r0, r1, r2, r3, r4 :: i64
311
+ L0:
312
+ r0 = a & 1
313
+ b = r0
314
+ r1 = b | 2
315
+ a = r1
316
+ r2 = a ^ 3
317
+ b = r2
318
+ r3 = b << 4
319
+ a = r3
320
+ r4 = a >> 5
321
+ b = r4
322
+ return b
323
+ def reverse(a, b):
324
+ a, b, r0, r1, r2, r3, r4 :: i64
325
+ L0:
326
+ r0 = 1 & a
327
+ b = r0
328
+ r1 = 2 | b
329
+ a = r1
330
+ r2 = 3 ^ a
331
+ b = r2
332
+ r3 = 4 << b
333
+ a = r3
334
+ r4 = 5 >> a
335
+ b = r4
336
+ return b
337
+ def unary(a):
338
+ a, r0 :: i64
339
+ L0:
340
+ r0 = a ^ -1
341
+ return r0
342
+
343
+ [case testI64Division]
344
+ from mypy_extensions import i64
345
+
346
+ def constant_divisor(x: i64) -> i64:
347
+ return x // 7
348
+ def variable_divisor(x: i64, y: i64) -> i64:
349
+ return x // y
350
+ def constant_lhs(x: i64) -> i64:
351
+ return 27 // x
352
+ def divide_by_neg_one(x: i64) -> i64:
353
+ return x // -1
354
+ def divide_by_zero(x: i64) -> i64:
355
+ return x // 0
356
+ [out]
357
+ def constant_divisor(x):
358
+ x, r0, r1 :: i64
359
+ r2, r3, r4 :: bit
360
+ r5 :: i64
361
+ r6 :: bit
362
+ r7 :: i64
363
+ L0:
364
+ r0 = x / 7
365
+ r1 = r0
366
+ r2 = x < 0 :: signed
367
+ r3 = 7 < 0 :: signed
368
+ r4 = r2 == r3
369
+ if r4 goto L3 else goto L1 :: bool
370
+ L1:
371
+ r5 = r1 * 7
372
+ r6 = r5 == x
373
+ if r6 goto L3 else goto L2 :: bool
374
+ L2:
375
+ r7 = r1 - 1
376
+ r1 = r7
377
+ L3:
378
+ return r1
379
+ def variable_divisor(x, y):
380
+ x, y, r0 :: i64
381
+ L0:
382
+ r0 = CPyInt64_Divide(x, y)
383
+ return r0
384
+ def constant_lhs(x):
385
+ x, r0 :: i64
386
+ L0:
387
+ r0 = CPyInt64_Divide(27, x)
388
+ return r0
389
+ def divide_by_neg_one(x):
390
+ x, r0 :: i64
391
+ L0:
392
+ r0 = CPyInt64_Divide(x, -1)
393
+ return r0
394
+ def divide_by_zero(x):
395
+ x, r0 :: i64
396
+ L0:
397
+ r0 = CPyInt64_Divide(x, 0)
398
+ return r0
399
+
400
+ [case testI64Mod]
401
+ from mypy_extensions import i64
402
+
403
+ def constant_divisor(x: i64) -> i64:
404
+ return x % 7
405
+ def variable_divisor(x: i64, y: i64) -> i64:
406
+ return x % y
407
+ def constant_lhs(x: i64) -> i64:
408
+ return 27 % x
409
+ def mod_by_zero(x: i64) -> i64:
410
+ return x % 0
411
+ [out]
412
+ def constant_divisor(x):
413
+ x, r0, r1 :: i64
414
+ r2, r3, r4, r5 :: bit
415
+ r6 :: i64
416
+ L0:
417
+ r0 = x % 7
418
+ r1 = r0
419
+ r2 = x < 0 :: signed
420
+ r3 = 7 < 0 :: signed
421
+ r4 = r2 == r3
422
+ if r4 goto L3 else goto L1 :: bool
423
+ L1:
424
+ r5 = r1 == 0
425
+ if r5 goto L3 else goto L2 :: bool
426
+ L2:
427
+ r6 = r1 + 7
428
+ r1 = r6
429
+ L3:
430
+ return r1
431
+ def variable_divisor(x, y):
432
+ x, y, r0 :: i64
433
+ L0:
434
+ r0 = CPyInt64_Remainder(x, y)
435
+ return r0
436
+ def constant_lhs(x):
437
+ x, r0 :: i64
438
+ L0:
439
+ r0 = CPyInt64_Remainder(27, x)
440
+ return r0
441
+ def mod_by_zero(x):
442
+ x, r0 :: i64
443
+ L0:
444
+ r0 = CPyInt64_Remainder(x, 0)
445
+ return r0
446
+
447
+ [case testI64InPlaceDiv]
448
+ from mypy_extensions import i64
449
+
450
+ def by_constant(x: i64) -> i64:
451
+ x //= 7
452
+ return x
453
+ def by_variable(x: i64, y: i64) -> i64:
454
+ x //= y
455
+ return x
456
+ [out]
457
+ def by_constant(x):
458
+ x, r0, r1 :: i64
459
+ r2, r3, r4 :: bit
460
+ r5 :: i64
461
+ r6 :: bit
462
+ r7 :: i64
463
+ L0:
464
+ r0 = x / 7
465
+ r1 = r0
466
+ r2 = x < 0 :: signed
467
+ r3 = 7 < 0 :: signed
468
+ r4 = r2 == r3
469
+ if r4 goto L3 else goto L1 :: bool
470
+ L1:
471
+ r5 = r1 * 7
472
+ r6 = r5 == x
473
+ if r6 goto L3 else goto L2 :: bool
474
+ L2:
475
+ r7 = r1 - 1
476
+ r1 = r7
477
+ L3:
478
+ x = r1
479
+ return x
480
+ def by_variable(x, y):
481
+ x, y, r0 :: i64
482
+ L0:
483
+ r0 = CPyInt64_Divide(x, y)
484
+ x = r0
485
+ return x
486
+
487
+ [case testI64InPlaceMod]
488
+ from mypy_extensions import i64
489
+
490
+ def by_constant(x: i64) -> i64:
491
+ x %= 7
492
+ return x
493
+ def by_variable(x: i64, y: i64) -> i64:
494
+ x %= y
495
+ return x
496
+ [out]
497
+ def by_constant(x):
498
+ x, r0, r1 :: i64
499
+ r2, r3, r4, r5 :: bit
500
+ r6 :: i64
501
+ L0:
502
+ r0 = x % 7
503
+ r1 = r0
504
+ r2 = x < 0 :: signed
505
+ r3 = 7 < 0 :: signed
506
+ r4 = r2 == r3
507
+ if r4 goto L3 else goto L1 :: bool
508
+ L1:
509
+ r5 = r1 == 0
510
+ if r5 goto L3 else goto L2 :: bool
511
+ L2:
512
+ r6 = r1 + 7
513
+ r1 = r6
514
+ L3:
515
+ x = r1
516
+ return x
517
+ def by_variable(x, y):
518
+ x, y, r0 :: i64
519
+ L0:
520
+ r0 = CPyInt64_Remainder(x, y)
521
+ x = r0
522
+ return x
523
+
524
+ [case testI64ForRange]
525
+ from mypy_extensions import i64
526
+
527
+ def g(a: i64) -> None: pass
528
+
529
+ def f(x: i64) -> None:
530
+ n: i64 # TODO: Infer the type
531
+ for n in range(x):
532
+ g(n)
533
+ [out]
534
+ def g(a):
535
+ a :: i64
536
+ L0:
537
+ return 1
538
+ def f(x):
539
+ x, r0, n :: i64
540
+ r1 :: bit
541
+ r2 :: None
542
+ r3 :: i64
543
+ L0:
544
+ r0 = 0
545
+ n = r0
546
+ L1:
547
+ r1 = r0 < x :: signed
548
+ if r1 goto L2 else goto L4 :: bool
549
+ L2:
550
+ r2 = g(n)
551
+ L3:
552
+ r3 = r0 + 1
553
+ r0 = r3
554
+ n = r3
555
+ goto L1
556
+ L4:
557
+ return 1
558
+
559
+ [case testI64ConvertFromInt_64bit]
560
+ from mypy_extensions import i64
561
+
562
+ def int_to_i64(a: int) -> i64:
563
+ return a
564
+ [out]
565
+ def int_to_i64(a):
566
+ a :: int
567
+ r0 :: native_int
568
+ r1 :: bit
569
+ r2, r3 :: i64
570
+ r4 :: ptr
571
+ r5 :: c_ptr
572
+ r6 :: i64
573
+ L0:
574
+ r0 = a & 1
575
+ r1 = r0 == 0
576
+ if r1 goto L1 else goto L2 :: bool
577
+ L1:
578
+ r2 = a >> 1
579
+ r3 = r2
580
+ goto L3
581
+ L2:
582
+ r4 = a ^ 1
583
+ r5 = r4
584
+ r6 = CPyLong_AsInt64(r5)
585
+ r3 = r6
586
+ keep_alive a
587
+ L3:
588
+ return r3
589
+
590
+ [case testI64ConvertToInt_64bit]
591
+ from mypy_extensions import i64
592
+
593
+ def i64_to_int(a: i64) -> int:
594
+ return a
595
+ [out]
596
+ def i64_to_int(a):
597
+ a :: i64
598
+ r0, r1 :: bit
599
+ r2, r3, r4 :: int
600
+ L0:
601
+ r0 = a <= 4611686018427387903 :: signed
602
+ if r0 goto L1 else goto L2 :: bool
603
+ L1:
604
+ r1 = a >= -4611686018427387904 :: signed
605
+ if r1 goto L3 else goto L2 :: bool
606
+ L2:
607
+ r2 = CPyTagged_FromInt64(a)
608
+ r3 = r2
609
+ goto L4
610
+ L3:
611
+ r4 = a << 1
612
+ r3 = r4
613
+ L4:
614
+ return r3
615
+
616
+ [case testI64ConvertToInt_32bit]
617
+ from mypy_extensions import i64
618
+
619
+ def i64_to_int(a: i64) -> int:
620
+ return a
621
+ [out]
622
+ def i64_to_int(a):
623
+ a :: i64
624
+ r0, r1 :: bit
625
+ r2, r3 :: int
626
+ r4 :: native_int
627
+ r5 :: int
628
+ L0:
629
+ r0 = a <= 1073741823 :: signed
630
+ if r0 goto L1 else goto L2 :: bool
631
+ L1:
632
+ r1 = a >= -1073741824 :: signed
633
+ if r1 goto L3 else goto L2 :: bool
634
+ L2:
635
+ r2 = CPyTagged_FromInt64(a)
636
+ r3 = r2
637
+ goto L4
638
+ L3:
639
+ r4 = truncate a: i64 to native_int
640
+ r5 = r4 << 1
641
+ r3 = r5
642
+ L4:
643
+ return r3
644
+
645
+ [case testI64Tuple]
646
+ from typing import Tuple
647
+ from mypy_extensions import i64
648
+
649
+ def f(x: i64, y: i64) -> Tuple[i64, i64]:
650
+ return x, y
651
+
652
+ def g() -> Tuple[i64, i64]:
653
+ return 1, 2
654
+
655
+ def h() -> i64:
656
+ x, y = g()
657
+ t = g()
658
+ return x + y + t[0]
659
+ [out]
660
+ def f(x, y):
661
+ x, y :: i64
662
+ r0 :: tuple[i64, i64]
663
+ L0:
664
+ r0 = (x, y)
665
+ return r0
666
+ def g():
667
+ r0 :: tuple[int, int]
668
+ r1 :: tuple[i64, i64]
669
+ L0:
670
+ r0 = (2, 4)
671
+ r1 = (1, 2)
672
+ return r1
673
+ def h():
674
+ r0 :: tuple[i64, i64]
675
+ r1, x, r2, y :: i64
676
+ r3, t :: tuple[i64, i64]
677
+ r4, r5, r6 :: i64
678
+ L0:
679
+ r0 = g()
680
+ r1 = r0[0]
681
+ x = r1
682
+ r2 = r0[1]
683
+ y = r2
684
+ r3 = g()
685
+ t = r3
686
+ r4 = x + y
687
+ r5 = t[0]
688
+ r6 = r4 + r5
689
+ return r6
690
+
691
+ [case testI64MixWithTagged1_64bit]
692
+ from mypy_extensions import i64
693
+ def f(x: i64, y: int) -> i64:
694
+ return x + y
695
+ [out]
696
+ def f(x, y):
697
+ x :: i64
698
+ y :: int
699
+ r0 :: native_int
700
+ r1 :: bit
701
+ r2, r3 :: i64
702
+ r4 :: ptr
703
+ r5 :: c_ptr
704
+ r6, r7 :: i64
705
+ L0:
706
+ r0 = y & 1
707
+ r1 = r0 == 0
708
+ if r1 goto L1 else goto L2 :: bool
709
+ L1:
710
+ r2 = y >> 1
711
+ r3 = r2
712
+ goto L3
713
+ L2:
714
+ r4 = y ^ 1
715
+ r5 = r4
716
+ r6 = CPyLong_AsInt64(r5)
717
+ r3 = r6
718
+ keep_alive y
719
+ L3:
720
+ r7 = x + r3
721
+ return r7
722
+
723
+ [case testI64MixWithTagged2_64bit]
724
+ from mypy_extensions import i64
725
+ def f(x: int, y: i64) -> i64:
726
+ return x + y
727
+ [out]
728
+ def f(x, y):
729
+ x :: int
730
+ y :: i64
731
+ r0 :: native_int
732
+ r1 :: bit
733
+ r2, r3 :: i64
734
+ r4 :: ptr
735
+ r5 :: c_ptr
736
+ r6, r7 :: i64
737
+ L0:
738
+ r0 = x & 1
739
+ r1 = r0 == 0
740
+ if r1 goto L1 else goto L2 :: bool
741
+ L1:
742
+ r2 = x >> 1
743
+ r3 = r2
744
+ goto L3
745
+ L2:
746
+ r4 = x ^ 1
747
+ r5 = r4
748
+ r6 = CPyLong_AsInt64(r5)
749
+ r3 = r6
750
+ keep_alive x
751
+ L3:
752
+ r7 = r3 + y
753
+ return r7
754
+
755
+ [case testI64MixWithTaggedInPlace1_64bit]
756
+ from mypy_extensions import i64
757
+ def f(y: i64) -> int:
758
+ x = 0
759
+ x += y
760
+ return x
761
+ [out]
762
+ def f(y):
763
+ y :: i64
764
+ x :: int
765
+ r0 :: native_int
766
+ r1 :: bit
767
+ r2, r3 :: i64
768
+ r4 :: ptr
769
+ r5 :: c_ptr
770
+ r6, r7 :: i64
771
+ r8, r9 :: bit
772
+ r10, r11, r12 :: int
773
+ L0:
774
+ x = 0
775
+ r0 = x & 1
776
+ r1 = r0 == 0
777
+ if r1 goto L1 else goto L2 :: bool
778
+ L1:
779
+ r2 = x >> 1
780
+ r3 = r2
781
+ goto L3
782
+ L2:
783
+ r4 = x ^ 1
784
+ r5 = r4
785
+ r6 = CPyLong_AsInt64(r5)
786
+ r3 = r6
787
+ keep_alive x
788
+ L3:
789
+ r7 = r3 + y
790
+ r8 = r7 <= 4611686018427387903 :: signed
791
+ if r8 goto L4 else goto L5 :: bool
792
+ L4:
793
+ r9 = r7 >= -4611686018427387904 :: signed
794
+ if r9 goto L6 else goto L5 :: bool
795
+ L5:
796
+ r10 = CPyTagged_FromInt64(r7)
797
+ r11 = r10
798
+ goto L7
799
+ L6:
800
+ r12 = r7 << 1
801
+ r11 = r12
802
+ L7:
803
+ x = r11
804
+ return x
805
+
806
+ [case testI64MixWithTaggedInPlace2_64bit]
807
+ from mypy_extensions import i64
808
+ def f(y: int) -> i64:
809
+ x: i64 = 0
810
+ x += y
811
+ return x
812
+ [out]
813
+ def f(y):
814
+ y :: int
815
+ x :: i64
816
+ r0 :: native_int
817
+ r1 :: bit
818
+ r2, r3 :: i64
819
+ r4 :: ptr
820
+ r5 :: c_ptr
821
+ r6, r7 :: i64
822
+ L0:
823
+ x = 0
824
+ r0 = y & 1
825
+ r1 = r0 == 0
826
+ if r1 goto L1 else goto L2 :: bool
827
+ L1:
828
+ r2 = y >> 1
829
+ r3 = r2
830
+ goto L3
831
+ L2:
832
+ r4 = y ^ 1
833
+ r5 = r4
834
+ r6 = CPyLong_AsInt64(r5)
835
+ r3 = r6
836
+ keep_alive y
837
+ L3:
838
+ r7 = x + r3
839
+ x = r7
840
+ return x
841
+
842
+ [case testI64MixedCompare1_64bit]
843
+ from mypy_extensions import i64
844
+ def f(x: int, y: i64) -> bool:
845
+ return x == y
846
+ [out]
847
+ def f(x, y):
848
+ x :: int
849
+ y :: i64
850
+ r0 :: native_int
851
+ r1 :: bit
852
+ r2, r3 :: i64
853
+ r4 :: ptr
854
+ r5 :: c_ptr
855
+ r6 :: i64
856
+ r7 :: bit
857
+ L0:
858
+ r0 = x & 1
859
+ r1 = r0 == 0
860
+ if r1 goto L1 else goto L2 :: bool
861
+ L1:
862
+ r2 = x >> 1
863
+ r3 = r2
864
+ goto L3
865
+ L2:
866
+ r4 = x ^ 1
867
+ r5 = r4
868
+ r6 = CPyLong_AsInt64(r5)
869
+ r3 = r6
870
+ keep_alive x
871
+ L3:
872
+ r7 = r3 == y
873
+ return r7
874
+
875
+ [case testI64MixedCompare2_64bit]
876
+ from mypy_extensions import i64
877
+ def f(x: i64, y: int) -> bool:
878
+ return x == y
879
+ [out]
880
+ def f(x, y):
881
+ x :: i64
882
+ y :: int
883
+ r0 :: native_int
884
+ r1 :: bit
885
+ r2, r3 :: i64
886
+ r4 :: ptr
887
+ r5 :: c_ptr
888
+ r6 :: i64
889
+ r7 :: bit
890
+ L0:
891
+ r0 = y & 1
892
+ r1 = r0 == 0
893
+ if r1 goto L1 else goto L2 :: bool
894
+ L1:
895
+ r2 = y >> 1
896
+ r3 = r2
897
+ goto L3
898
+ L2:
899
+ r4 = y ^ 1
900
+ r5 = r4
901
+ r6 = CPyLong_AsInt64(r5)
902
+ r3 = r6
903
+ keep_alive y
904
+ L3:
905
+ r7 = x == r3
906
+ return r7
907
+
908
+ [case testI64MixedCompare_32bit]
909
+ from mypy_extensions import i64
910
+ def f(x: int, y: i64) -> bool:
911
+ return x == y
912
+ [out]
913
+ def f(x, y):
914
+ x :: int
915
+ y :: i64
916
+ r0 :: native_int
917
+ r1 :: bit
918
+ r2, r3, r4 :: i64
919
+ r5 :: ptr
920
+ r6 :: c_ptr
921
+ r7 :: i64
922
+ r8 :: bit
923
+ L0:
924
+ r0 = x & 1
925
+ r1 = r0 == 0
926
+ if r1 goto L1 else goto L2 :: bool
927
+ L1:
928
+ r2 = extend signed x: builtins.int to i64
929
+ r3 = r2 >> 1
930
+ r4 = r3
931
+ goto L3
932
+ L2:
933
+ r5 = x ^ 1
934
+ r6 = r5
935
+ r7 = CPyLong_AsInt64(r6)
936
+ r4 = r7
937
+ keep_alive x
938
+ L3:
939
+ r8 = r4 == y
940
+ return r8
941
+
942
+ [case testI64AsBool]
943
+ from mypy_extensions import i64
944
+ def f(x: i64) -> i64:
945
+ if x:
946
+ return 5
947
+ elif not x:
948
+ return 6
949
+ return 3
950
+ [out]
951
+ def f(x):
952
+ x :: i64
953
+ r0, r1 :: bit
954
+ L0:
955
+ r0 = x != 0
956
+ if r0 goto L1 else goto L2 :: bool
957
+ L1:
958
+ return 5
959
+ L2:
960
+ r1 = x != 0
961
+ if r1 goto L4 else goto L3 :: bool
962
+ L3:
963
+ return 6
964
+ L4:
965
+ L5:
966
+ return 3
967
+
968
+ [case testI64AssignMixed_64bit]
969
+ from mypy_extensions import i64
970
+ def f(x: i64, y: int) -> i64:
971
+ x = y
972
+ return x
973
+ def g(x: i64, y: int) -> int:
974
+ y = x
975
+ return y
976
+ [out]
977
+ def f(x, y):
978
+ x :: i64
979
+ y :: int
980
+ r0 :: native_int
981
+ r1 :: bit
982
+ r2, r3 :: i64
983
+ r4 :: ptr
984
+ r5 :: c_ptr
985
+ r6 :: i64
986
+ L0:
987
+ r0 = y & 1
988
+ r1 = r0 == 0
989
+ if r1 goto L1 else goto L2 :: bool
990
+ L1:
991
+ r2 = y >> 1
992
+ r3 = r2
993
+ goto L3
994
+ L2:
995
+ r4 = y ^ 1
996
+ r5 = r4
997
+ r6 = CPyLong_AsInt64(r5)
998
+ r3 = r6
999
+ keep_alive y
1000
+ L3:
1001
+ x = r3
1002
+ return x
1003
+ def g(x, y):
1004
+ x :: i64
1005
+ y :: int
1006
+ r0, r1 :: bit
1007
+ r2, r3, r4 :: int
1008
+ L0:
1009
+ r0 = x <= 4611686018427387903 :: signed
1010
+ if r0 goto L1 else goto L2 :: bool
1011
+ L1:
1012
+ r1 = x >= -4611686018427387904 :: signed
1013
+ if r1 goto L3 else goto L2 :: bool
1014
+ L2:
1015
+ r2 = CPyTagged_FromInt64(x)
1016
+ r3 = r2
1017
+ goto L4
1018
+ L3:
1019
+ r4 = x << 1
1020
+ r3 = r4
1021
+ L4:
1022
+ y = r3
1023
+ return y
1024
+
1025
+ [case testBorrowOverI64Arithmetic]
1026
+ from mypy_extensions import i64
1027
+
1028
+ def add_simple(c: C) -> i64:
1029
+ return c.x + c.y
1030
+
1031
+ def inplace_add_simple(c: C) -> None:
1032
+ c.x += c.y
1033
+
1034
+ def add_borrow(d: D) -> i64:
1035
+ return d.c.x + d.c.y
1036
+
1037
+ class D:
1038
+ c: C
1039
+
1040
+ class C:
1041
+ x: i64
1042
+ y: i64
1043
+ [out]
1044
+ def add_simple(c):
1045
+ c :: __main__.C
1046
+ r0, r1, r2 :: i64
1047
+ L0:
1048
+ r0 = c.x
1049
+ r1 = c.y
1050
+ r2 = r0 + r1
1051
+ return r2
1052
+ def inplace_add_simple(c):
1053
+ c :: __main__.C
1054
+ r0, r1, r2 :: i64
1055
+ r3 :: bool
1056
+ L0:
1057
+ r0 = c.x
1058
+ r1 = c.y
1059
+ r2 = r0 + r1
1060
+ c.x = r2; r3 = is_error
1061
+ return 1
1062
+ def add_borrow(d):
1063
+ d :: __main__.D
1064
+ r0 :: __main__.C
1065
+ r1 :: i64
1066
+ r2 :: __main__.C
1067
+ r3, r4 :: i64
1068
+ L0:
1069
+ r0 = borrow d.c
1070
+ r1 = r0.x
1071
+ r2 = borrow d.c
1072
+ r3 = r2.y
1073
+ r4 = r1 + r3
1074
+ keep_alive d, d
1075
+ return r4
1076
+
1077
+ [case testBorrowOverI64Bitwise]
1078
+ from mypy_extensions import i64
1079
+
1080
+ def bitwise_simple(c: C) -> i64:
1081
+ return c.x | c.y
1082
+
1083
+ def inplace_bitwide_simple(c: C) -> None:
1084
+ c.x &= c.y
1085
+
1086
+ def bitwise_borrow(d: D) -> i64:
1087
+ return d.c.x ^ d.c.y
1088
+
1089
+ class D:
1090
+ c: C
1091
+
1092
+ class C:
1093
+ x: i64
1094
+ y: i64
1095
+ [out]
1096
+ def bitwise_simple(c):
1097
+ c :: __main__.C
1098
+ r0, r1, r2 :: i64
1099
+ L0:
1100
+ r0 = c.x
1101
+ r1 = c.y
1102
+ r2 = r0 | r1
1103
+ return r2
1104
+ def inplace_bitwide_simple(c):
1105
+ c :: __main__.C
1106
+ r0, r1, r2 :: i64
1107
+ r3 :: bool
1108
+ L0:
1109
+ r0 = c.x
1110
+ r1 = c.y
1111
+ r2 = r0 & r1
1112
+ c.x = r2; r3 = is_error
1113
+ return 1
1114
+ def bitwise_borrow(d):
1115
+ d :: __main__.D
1116
+ r0 :: __main__.C
1117
+ r1 :: i64
1118
+ r2 :: __main__.C
1119
+ r3, r4 :: i64
1120
+ L0:
1121
+ r0 = borrow d.c
1122
+ r1 = r0.x
1123
+ r2 = borrow d.c
1124
+ r3 = r2.y
1125
+ r4 = r1 ^ r3
1126
+ keep_alive d, d
1127
+ return r4
1128
+
1129
+ [case testBorrowOverI64ListGetItem1]
1130
+ from mypy_extensions import i64
1131
+
1132
+ def f(n: i64) -> str:
1133
+ a = [C()]
1134
+ return a[n].s
1135
+
1136
+ class C:
1137
+ s: str
1138
+ [out]
1139
+ def f(n):
1140
+ n :: i64
1141
+ r0 :: __main__.C
1142
+ r1 :: list
1143
+ r2, r3 :: ptr
1144
+ a :: list
1145
+ r4 :: object
1146
+ r5 :: __main__.C
1147
+ r6 :: str
1148
+ L0:
1149
+ r0 = C()
1150
+ r1 = PyList_New(1)
1151
+ r2 = get_element_ptr r1 ob_item :: PyListObject
1152
+ r3 = load_mem r2 :: ptr*
1153
+ set_mem r3, r0 :: builtins.object*
1154
+ keep_alive r1
1155
+ a = r1
1156
+ r4 = CPyList_GetItemInt64Borrow(a, n)
1157
+ r5 = borrow cast(__main__.C, r4)
1158
+ r6 = r5.s
1159
+ keep_alive a, n, r4
1160
+ return r6
1161
+
1162
+ [case testBorrowOverI64ListGetItem2]
1163
+ from typing import List
1164
+ from mypy_extensions import i64
1165
+
1166
+ def f(a: List[i64], n: i64) -> bool:
1167
+ if a[n] == 0:
1168
+ return True
1169
+ return False
1170
+ [out]
1171
+ def f(a, n):
1172
+ a :: list
1173
+ n :: i64
1174
+ r0 :: object
1175
+ r1 :: i64
1176
+ r2 :: bit
1177
+ L0:
1178
+ r0 = CPyList_GetItemInt64Borrow(a, n)
1179
+ r1 = unbox(i64, r0)
1180
+ r2 = r1 == 0
1181
+ keep_alive a, n
1182
+ if r2 goto L1 else goto L2 :: bool
1183
+ L1:
1184
+ return 1
1185
+ L2:
1186
+ return 0
1187
+
1188
+ [case testCoerceShortIntToI64]
1189
+ from mypy_extensions import i64
1190
+ from typing import List
1191
+
1192
+ def f(a: List[i64], y: i64) -> bool:
1193
+ if len(a) < y:
1194
+ return True
1195
+ return False
1196
+
1197
+ def g(a: List[i64], y: i64) -> bool:
1198
+ if y < len(a):
1199
+ return True
1200
+ return False
1201
+ [out]
1202
+ def f(a, y):
1203
+ a :: list
1204
+ y :: i64
1205
+ r0 :: ptr
1206
+ r1 :: native_int
1207
+ r2 :: short_int
1208
+ r3 :: i64
1209
+ r4 :: bit
1210
+ L0:
1211
+ r0 = get_element_ptr a ob_size :: PyVarObject
1212
+ r1 = load_mem r0 :: native_int*
1213
+ keep_alive a
1214
+ r2 = r1 << 1
1215
+ r3 = r2 >> 1
1216
+ r4 = r3 < y :: signed
1217
+ if r4 goto L1 else goto L2 :: bool
1218
+ L1:
1219
+ return 1
1220
+ L2:
1221
+ return 0
1222
+ def g(a, y):
1223
+ a :: list
1224
+ y :: i64
1225
+ r0 :: ptr
1226
+ r1 :: native_int
1227
+ r2 :: short_int
1228
+ r3 :: i64
1229
+ r4 :: bit
1230
+ L0:
1231
+ r0 = get_element_ptr a ob_size :: PyVarObject
1232
+ r1 = load_mem r0 :: native_int*
1233
+ keep_alive a
1234
+ r2 = r1 << 1
1235
+ r3 = r2 >> 1
1236
+ r4 = y < r3 :: signed
1237
+ if r4 goto L1 else goto L2 :: bool
1238
+ L1:
1239
+ return 1
1240
+ L2:
1241
+ return 0
1242
+
1243
+ [case testMultiplyListByI64_64bit]
1244
+ from mypy_extensions import i64
1245
+ from typing import List
1246
+
1247
+ def f(n: i64) -> List[i64]:
1248
+ return [n] * n
1249
+ [out]
1250
+ def f(n):
1251
+ n :: i64
1252
+ r0 :: list
1253
+ r1 :: object
1254
+ r2, r3 :: ptr
1255
+ r4, r5 :: bit
1256
+ r6, r7, r8 :: int
1257
+ r9 :: list
1258
+ L0:
1259
+ r0 = PyList_New(1)
1260
+ r1 = box(i64, n)
1261
+ r2 = get_element_ptr r0 ob_item :: PyListObject
1262
+ r3 = load_mem r2 :: ptr*
1263
+ set_mem r3, r1 :: builtins.object*
1264
+ keep_alive r0
1265
+ r4 = n <= 4611686018427387903 :: signed
1266
+ if r4 goto L1 else goto L2 :: bool
1267
+ L1:
1268
+ r5 = n >= -4611686018427387904 :: signed
1269
+ if r5 goto L3 else goto L2 :: bool
1270
+ L2:
1271
+ r6 = CPyTagged_FromInt64(n)
1272
+ r7 = r6
1273
+ goto L4
1274
+ L3:
1275
+ r8 = n << 1
1276
+ r7 = r8
1277
+ L4:
1278
+ r9 = CPySequence_Multiply(r0, r7)
1279
+ return r9
1280
+
1281
+ [case testShortIntAndI64Op]
1282
+ from mypy_extensions import i64
1283
+ from typing import List
1284
+
1285
+ def add_i64(a: List[i64], n: i64) -> i64:
1286
+ return len(a) + n
1287
+ def add_i64_2(a: List[i64], n: i64) -> i64:
1288
+ return n + len(a)
1289
+ def eq_i64(a: List[i64], n: i64) -> bool:
1290
+ if len(a) == n:
1291
+ return True
1292
+ return False
1293
+ def lt_i64(a: List[i64], n: i64) -> bool:
1294
+ if n < len(a):
1295
+ return True
1296
+ return False
1297
+ [out]
1298
+ def add_i64(a, n):
1299
+ a :: list
1300
+ n :: i64
1301
+ r0 :: ptr
1302
+ r1 :: native_int
1303
+ r2 :: short_int
1304
+ r3, r4 :: i64
1305
+ L0:
1306
+ r0 = get_element_ptr a ob_size :: PyVarObject
1307
+ r1 = load_mem r0 :: native_int*
1308
+ keep_alive a
1309
+ r2 = r1 << 1
1310
+ r3 = r2 >> 1
1311
+ r4 = r3 + n
1312
+ return r4
1313
+ def add_i64_2(a, n):
1314
+ a :: list
1315
+ n :: i64
1316
+ r0 :: ptr
1317
+ r1 :: native_int
1318
+ r2 :: short_int
1319
+ r3, r4 :: i64
1320
+ L0:
1321
+ r0 = get_element_ptr a ob_size :: PyVarObject
1322
+ r1 = load_mem r0 :: native_int*
1323
+ keep_alive a
1324
+ r2 = r1 << 1
1325
+ r3 = r2 >> 1
1326
+ r4 = n + r3
1327
+ return r4
1328
+ def eq_i64(a, n):
1329
+ a :: list
1330
+ n :: i64
1331
+ r0 :: ptr
1332
+ r1 :: native_int
1333
+ r2 :: short_int
1334
+ r3 :: i64
1335
+ r4 :: bit
1336
+ L0:
1337
+ r0 = get_element_ptr a ob_size :: PyVarObject
1338
+ r1 = load_mem r0 :: native_int*
1339
+ keep_alive a
1340
+ r2 = r1 << 1
1341
+ r3 = r2 >> 1
1342
+ r4 = r3 == n
1343
+ if r4 goto L1 else goto L2 :: bool
1344
+ L1:
1345
+ return 1
1346
+ L2:
1347
+ return 0
1348
+ def lt_i64(a, n):
1349
+ a :: list
1350
+ n :: i64
1351
+ r0 :: ptr
1352
+ r1 :: native_int
1353
+ r2 :: short_int
1354
+ r3 :: i64
1355
+ r4 :: bit
1356
+ L0:
1357
+ r0 = get_element_ptr a ob_size :: PyVarObject
1358
+ r1 = load_mem r0 :: native_int*
1359
+ keep_alive a
1360
+ r2 = r1 << 1
1361
+ r3 = r2 >> 1
1362
+ r4 = n < r3 :: signed
1363
+ if r4 goto L1 else goto L2 :: bool
1364
+ L1:
1365
+ return 1
1366
+ L2:
1367
+ return 0
1368
+
1369
+ [case testOptionalI64_64bit]
1370
+ from typing import Optional
1371
+ from mypy_extensions import i64
1372
+
1373
+ def f(x: Optional[i64]) -> i64:
1374
+ if x is None:
1375
+ return 1
1376
+ return x
1377
+ [out]
1378
+ def f(x):
1379
+ x :: union[i64, None]
1380
+ r0 :: object
1381
+ r1 :: bit
1382
+ r2 :: i64
1383
+ L0:
1384
+ r0 = load_address _Py_NoneStruct
1385
+ r1 = x == r0
1386
+ if r1 goto L1 else goto L2 :: bool
1387
+ L1:
1388
+ return 1
1389
+ L2:
1390
+ r2 = unbox(i64, x)
1391
+ return r2
1392
+
1393
+ [case testI64DefaultValueSingle]
1394
+ from mypy_extensions import i64
1395
+
1396
+ def f(x: i64, y: i64 = 0) -> i64:
1397
+ return x + y
1398
+
1399
+ def g() -> i64:
1400
+ return f(7) + f(8, 9)
1401
+ [out]
1402
+ def f(x, y, __bitmap):
1403
+ x, y :: i64
1404
+ __bitmap, r0 :: u32
1405
+ r1 :: bit
1406
+ r2 :: i64
1407
+ L0:
1408
+ r0 = __bitmap & 1
1409
+ r1 = r0 == 0
1410
+ if r1 goto L1 else goto L2 :: bool
1411
+ L1:
1412
+ y = 0
1413
+ L2:
1414
+ r2 = x + y
1415
+ return r2
1416
+ def g():
1417
+ r0, r1, r2 :: i64
1418
+ L0:
1419
+ r0 = f(7, 0, 0)
1420
+ r1 = f(8, 9, 1)
1421
+ r2 = r0 + r1
1422
+ return r2
1423
+
1424
+ [case testI64DefaultValueWithMultipleArgs]
1425
+ from mypy_extensions import i64
1426
+
1427
+ def f(a: i64, b: i64 = 1, c: int = 2, d: i64 = 3) -> i64:
1428
+ return 0
1429
+
1430
+ def g() -> i64:
1431
+ return f(7) + f(8, 9) + f(1, 2, 3) + f(4, 5, 6, 7)
1432
+ [out]
1433
+ def f(a, b, c, d, __bitmap):
1434
+ a, b :: i64
1435
+ c :: int
1436
+ d :: i64
1437
+ __bitmap, r0 :: u32
1438
+ r1 :: bit
1439
+ r2 :: u32
1440
+ r3 :: bit
1441
+ L0:
1442
+ r0 = __bitmap & 1
1443
+ r1 = r0 == 0
1444
+ if r1 goto L1 else goto L2 :: bool
1445
+ L1:
1446
+ b = 1
1447
+ L2:
1448
+ if is_error(c) goto L3 else goto L4
1449
+ L3:
1450
+ c = 4
1451
+ L4:
1452
+ r2 = __bitmap & 2
1453
+ r3 = r2 == 0
1454
+ if r3 goto L5 else goto L6 :: bool
1455
+ L5:
1456
+ d = 3
1457
+ L6:
1458
+ return 0
1459
+ def g():
1460
+ r0 :: int
1461
+ r1 :: i64
1462
+ r2 :: int
1463
+ r3, r4, r5, r6, r7, r8 :: i64
1464
+ L0:
1465
+ r0 = <error> :: int
1466
+ r1 = f(7, 0, r0, 0, 0)
1467
+ r2 = <error> :: int
1468
+ r3 = f(8, 9, r2, 0, 1)
1469
+ r4 = r1 + r3
1470
+ r5 = f(1, 2, 6, 0, 1)
1471
+ r6 = r4 + r5
1472
+ r7 = f(4, 5, 12, 7, 3)
1473
+ r8 = r6 + r7
1474
+ return r8
1475
+
1476
+ [case testI64MethodDefaultValue]
1477
+ from mypy_extensions import i64
1478
+
1479
+ class C:
1480
+ def m(self, x: i64 = 5) -> None:
1481
+ pass
1482
+
1483
+ def f(c: C) -> None:
1484
+ c.m()
1485
+ c.m(6)
1486
+ [out]
1487
+ def C.m(self, x, __bitmap):
1488
+ self :: __main__.C
1489
+ x :: i64
1490
+ __bitmap, r0 :: u32
1491
+ r1 :: bit
1492
+ L0:
1493
+ r0 = __bitmap & 1
1494
+ r1 = r0 == 0
1495
+ if r1 goto L1 else goto L2 :: bool
1496
+ L1:
1497
+ x = 5
1498
+ L2:
1499
+ return 1
1500
+ def f(c):
1501
+ c :: __main__.C
1502
+ r0, r1 :: None
1503
+ L0:
1504
+ r0 = c.m(0, 0)
1505
+ r1 = c.m(6, 1)
1506
+ return 1
1507
+
1508
+ [case testI64ExplicitConversionFromNativeInt]
1509
+ from mypy_extensions import i64, i32, i16
1510
+
1511
+ def from_i16(x: i16) -> i64:
1512
+ return i64(x)
1513
+
1514
+ def from_i32(x: i32) -> i64:
1515
+ return i64(x)
1516
+
1517
+ def from_i64(x: i64) -> i64:
1518
+ return i64(x)
1519
+ [out]
1520
+ def from_i16(x):
1521
+ x :: i16
1522
+ r0 :: i64
1523
+ L0:
1524
+ r0 = extend signed x: i16 to i64
1525
+ return r0
1526
+ def from_i32(x):
1527
+ x :: i32
1528
+ r0 :: i64
1529
+ L0:
1530
+ r0 = extend signed x: i32 to i64
1531
+ return r0
1532
+ def from_i64(x):
1533
+ x :: i64
1534
+ L0:
1535
+ return x
1536
+
1537
+ [case testI64ExplicitConversionFromInt_64bit]
1538
+ from mypy_extensions import i64
1539
+
1540
+ def f(x: int) -> i64:
1541
+ return i64(x)
1542
+ [out]
1543
+ def f(x):
1544
+ x :: int
1545
+ r0 :: native_int
1546
+ r1 :: bit
1547
+ r2, r3 :: i64
1548
+ r4 :: ptr
1549
+ r5 :: c_ptr
1550
+ r6 :: i64
1551
+ L0:
1552
+ r0 = x & 1
1553
+ r1 = r0 == 0
1554
+ if r1 goto L1 else goto L2 :: bool
1555
+ L1:
1556
+ r2 = x >> 1
1557
+ r3 = r2
1558
+ goto L3
1559
+ L2:
1560
+ r4 = x ^ 1
1561
+ r5 = r4
1562
+ r6 = CPyLong_AsInt64(r5)
1563
+ r3 = r6
1564
+ keep_alive x
1565
+ L3:
1566
+ return r3
1567
+
1568
+ [case testI64ExplicitConversionToInt_64bit]
1569
+ from mypy_extensions import i64
1570
+
1571
+ def f(x: i64) -> int:
1572
+ return int(x)
1573
+ [out]
1574
+ def f(x):
1575
+ x :: i64
1576
+ r0, r1 :: bit
1577
+ r2, r3, r4 :: int
1578
+ L0:
1579
+ r0 = x <= 4611686018427387903 :: signed
1580
+ if r0 goto L1 else goto L2 :: bool
1581
+ L1:
1582
+ r1 = x >= -4611686018427387904 :: signed
1583
+ if r1 goto L3 else goto L2 :: bool
1584
+ L2:
1585
+ r2 = CPyTagged_FromInt64(x)
1586
+ r3 = r2
1587
+ goto L4
1588
+ L3:
1589
+ r4 = x << 1
1590
+ r3 = r4
1591
+ L4:
1592
+ return r3
1593
+
1594
+ [case testI64ExplicitConversionFromLiteral]
1595
+ from mypy_extensions import i64
1596
+
1597
+ def f() -> None:
1598
+ x = i64(0)
1599
+ y = i64(11)
1600
+ z = i64(-3)
1601
+ [out]
1602
+ def f():
1603
+ x, y, z :: i64
1604
+ L0:
1605
+ x = 0
1606
+ y = 11
1607
+ z = -3
1608
+ return 1
1609
+
1610
+ [case testI64ForLoopOverRange]
1611
+ from mypy_extensions import i64
1612
+
1613
+ def f() -> None:
1614
+ for x in range(i64(4)):
1615
+ y = x
1616
+ [out]
1617
+ def f():
1618
+ r0, x :: i64
1619
+ r1 :: bit
1620
+ y, r2 :: i64
1621
+ L0:
1622
+ r0 = 0
1623
+ x = r0
1624
+ L1:
1625
+ r1 = r0 < 4 :: signed
1626
+ if r1 goto L2 else goto L4 :: bool
1627
+ L2:
1628
+ y = x
1629
+ L3:
1630
+ r2 = r0 + 1
1631
+ r0 = r2
1632
+ x = r2
1633
+ goto L1
1634
+ L4:
1635
+ return 1
1636
+
1637
+ [case testI64ForLoopOverRange2]
1638
+ from mypy_extensions import i64
1639
+
1640
+ def f() -> None:
1641
+ for x in range(0, i64(4)):
1642
+ y = x
1643
+ [out]
1644
+ def f():
1645
+ r0, x :: i64
1646
+ r1 :: bit
1647
+ y, r2 :: i64
1648
+ L0:
1649
+ r0 = 0
1650
+ x = r0
1651
+ L1:
1652
+ r1 = r0 < 4 :: signed
1653
+ if r1 goto L2 else goto L4 :: bool
1654
+ L2:
1655
+ y = x
1656
+ L3:
1657
+ r2 = r0 + 1
1658
+ r0 = r2
1659
+ x = r2
1660
+ goto L1
1661
+ L4:
1662
+ return 1
1663
+
1664
+ [case testI64MethodDefaultValueOverride]
1665
+ from mypy_extensions import i64
1666
+
1667
+ class C:
1668
+ def f(self, x: i64 = 11) -> None: pass
1669
+ class D(C):
1670
+ def f(self, x: i64 = 12) -> None: pass
1671
+ [out]
1672
+ def C.f(self, x, __bitmap):
1673
+ self :: __main__.C
1674
+ x :: i64
1675
+ __bitmap, r0 :: u32
1676
+ r1 :: bit
1677
+ L0:
1678
+ r0 = __bitmap & 1
1679
+ r1 = r0 == 0
1680
+ if r1 goto L1 else goto L2 :: bool
1681
+ L1:
1682
+ x = 11
1683
+ L2:
1684
+ return 1
1685
+ def D.f(self, x, __bitmap):
1686
+ self :: __main__.D
1687
+ x :: i64
1688
+ __bitmap, r0 :: u32
1689
+ r1 :: bit
1690
+ L0:
1691
+ r0 = __bitmap & 1
1692
+ r1 = r0 == 0
1693
+ if r1 goto L1 else goto L2 :: bool
1694
+ L1:
1695
+ x = 12
1696
+ L2:
1697
+ return 1
1698
+
1699
+ [case testI64FinalConstants]
1700
+ from typing_extensions import Final
1701
+ from mypy_extensions import i64
1702
+
1703
+ A: Final = -1
1704
+ B: Final = -(1 + 3*2)
1705
+ C: Final = 0
1706
+ D: Final = A - B
1707
+ E: Final[i64] = 1 + 3
1708
+
1709
+ def f1() -> i64:
1710
+ return A
1711
+
1712
+ def f2() -> i64:
1713
+ return A + B
1714
+
1715
+ def f3() -> i64:
1716
+ return C
1717
+
1718
+ def f4() -> i64:
1719
+ return D
1720
+
1721
+ def f5() -> i64:
1722
+ return E
1723
+ [out]
1724
+ def f1():
1725
+ L0:
1726
+ return -1
1727
+ def f2():
1728
+ L0:
1729
+ return -8
1730
+ def f3():
1731
+ L0:
1732
+ return 0
1733
+ def f4():
1734
+ L0:
1735
+ return 6
1736
+ def f5():
1737
+ L0:
1738
+ return 4
1739
+
1740
+ [case testI64OperationsWithBools]
1741
+ from mypy_extensions import i64
1742
+
1743
+ # TODO: Other mixed operations
1744
+
1745
+ def add_bool_to_int(n: i64, b: bool) -> i64:
1746
+ return n + b
1747
+
1748
+ def compare_bool_to_i64(n: i64, b: bool) -> bool:
1749
+ if n == b:
1750
+ return b != n
1751
+ return True
1752
+ [out]
1753
+ def add_bool_to_int(n, b):
1754
+ n :: i64
1755
+ b :: bool
1756
+ r0, r1 :: i64
1757
+ L0:
1758
+ r0 = extend b: builtins.bool to i64
1759
+ r1 = n + r0
1760
+ return r1
1761
+ def compare_bool_to_i64(n, b):
1762
+ n :: i64
1763
+ b :: bool
1764
+ r0 :: i64
1765
+ r1 :: bit
1766
+ r2 :: i64
1767
+ r3 :: bit
1768
+ L0:
1769
+ r0 = extend b: builtins.bool to i64
1770
+ r1 = n == r0
1771
+ if r1 goto L1 else goto L2 :: bool
1772
+ L1:
1773
+ r2 = extend b: builtins.bool to i64
1774
+ r3 = r2 != n
1775
+ return r3
1776
+ L2:
1777
+ return 1
1778
+
1779
+ [case testI64Cast_64bit]
1780
+ from typing import cast
1781
+ from mypy_extensions import i64
1782
+
1783
+ def cast_object(o: object) -> i64:
1784
+ return cast(i64, o)
1785
+
1786
+ def cast_int(x: int) -> i64:
1787
+ return cast(i64, x)
1788
+ [out]
1789
+ def cast_object(o):
1790
+ o :: object
1791
+ r0 :: i64
1792
+ L0:
1793
+ r0 = unbox(i64, o)
1794
+ return r0
1795
+ def cast_int(x):
1796
+ x :: int
1797
+ r0 :: native_int
1798
+ r1 :: bit
1799
+ r2, r3 :: i64
1800
+ r4 :: ptr
1801
+ r5 :: c_ptr
1802
+ r6 :: i64
1803
+ L0:
1804
+ r0 = x & 1
1805
+ r1 = r0 == 0
1806
+ if r1 goto L1 else goto L2 :: bool
1807
+ L1:
1808
+ r2 = x >> 1
1809
+ r3 = r2
1810
+ goto L3
1811
+ L2:
1812
+ r4 = x ^ 1
1813
+ r5 = r4
1814
+ r6 = CPyLong_AsInt64(r5)
1815
+ r3 = r6
1816
+ keep_alive x
1817
+ L3:
1818
+ return r3
1819
+
1820
+ [case testI64Cast_32bit]
1821
+ from typing import cast
1822
+ from mypy_extensions import i64
1823
+
1824
+ def cast_int(x: int) -> i64:
1825
+ return cast(i64, x)
1826
+ [out]
1827
+ def cast_int(x):
1828
+ x :: int
1829
+ r0 :: native_int
1830
+ r1 :: bit
1831
+ r2, r3, r4 :: i64
1832
+ r5 :: ptr
1833
+ r6 :: c_ptr
1834
+ r7 :: i64
1835
+ L0:
1836
+ r0 = x & 1
1837
+ r1 = r0 == 0
1838
+ if r1 goto L1 else goto L2 :: bool
1839
+ L1:
1840
+ r2 = extend signed x: builtins.int to i64
1841
+ r3 = r2 >> 1
1842
+ r4 = r3
1843
+ goto L3
1844
+ L2:
1845
+ r5 = x ^ 1
1846
+ r6 = r5
1847
+ r7 = CPyLong_AsInt64(r6)
1848
+ r4 = r7
1849
+ keep_alive x
1850
+ L3:
1851
+ return r4
1852
+
1853
+ [case testI64ExplicitConversionFromVariousTypes_64bit]
1854
+ from mypy_extensions import i64
1855
+
1856
+ def bool_to_i64(b: bool) -> i64:
1857
+ return i64(b)
1858
+
1859
+ def str_to_i64(s: str) -> i64:
1860
+ return i64(s)
1861
+
1862
+ def str_to_i64_with_base(s: str) -> i64:
1863
+ return i64(s, 2)
1864
+
1865
+ class C:
1866
+ def __int__(self) -> i64:
1867
+ return 5
1868
+
1869
+ def instance_to_i64(c: C) -> i64:
1870
+ return i64(c)
1871
+
1872
+ def float_to_i64(x: float) -> i64:
1873
+ return i64(x)
1874
+ [out]
1875
+ def bool_to_i64(b):
1876
+ b :: bool
1877
+ r0 :: i64
1878
+ L0:
1879
+ r0 = extend b: builtins.bool to i64
1880
+ return r0
1881
+ def str_to_i64(s):
1882
+ s :: str
1883
+ r0 :: object
1884
+ r1 :: i64
1885
+ L0:
1886
+ r0 = CPyLong_FromStr(s)
1887
+ r1 = unbox(i64, r0)
1888
+ return r1
1889
+ def str_to_i64_with_base(s):
1890
+ s :: str
1891
+ r0 :: object
1892
+ r1 :: i64
1893
+ L0:
1894
+ r0 = CPyLong_FromStrWithBase(s, 4)
1895
+ r1 = unbox(i64, r0)
1896
+ return r1
1897
+ def C.__int__(self):
1898
+ self :: __main__.C
1899
+ L0:
1900
+ return 5
1901
+ def instance_to_i64(c):
1902
+ c :: __main__.C
1903
+ r0 :: i64
1904
+ L0:
1905
+ r0 = c.__int__()
1906
+ return r0
1907
+ def float_to_i64(x):
1908
+ x :: float
1909
+ r0 :: int
1910
+ r1 :: native_int
1911
+ r2 :: bit
1912
+ r3, r4 :: i64
1913
+ r5 :: ptr
1914
+ r6 :: c_ptr
1915
+ r7 :: i64
1916
+ L0:
1917
+ r0 = CPyTagged_FromFloat(x)
1918
+ r1 = r0 & 1
1919
+ r2 = r1 == 0
1920
+ if r2 goto L1 else goto L2 :: bool
1921
+ L1:
1922
+ r3 = r0 >> 1
1923
+ r4 = r3
1924
+ goto L3
1925
+ L2:
1926
+ r5 = r0 ^ 1
1927
+ r6 = r5
1928
+ r7 = CPyLong_AsInt64(r6)
1929
+ r4 = r7
1930
+ keep_alive r0
1931
+ L3:
1932
+ return r4
1933
+
1934
+ [case testI64ExplicitConversionFromFloat_32bit]
1935
+ from mypy_extensions import i64
1936
+
1937
+ def float_to_i64(x: float) -> i64:
1938
+ return i64(x)
1939
+ [out]
1940
+ def float_to_i64(x):
1941
+ x :: float
1942
+ r0 :: int
1943
+ r1 :: native_int
1944
+ r2 :: bit
1945
+ r3, r4, r5 :: i64
1946
+ r6 :: ptr
1947
+ r7 :: c_ptr
1948
+ r8 :: i64
1949
+ L0:
1950
+ r0 = CPyTagged_FromFloat(x)
1951
+ r1 = r0 & 1
1952
+ r2 = r1 == 0
1953
+ if r2 goto L1 else goto L2 :: bool
1954
+ L1:
1955
+ r3 = extend signed r0: builtins.int to i64
1956
+ r4 = r3 >> 1
1957
+ r5 = r4
1958
+ goto L3
1959
+ L2:
1960
+ r6 = r0 ^ 1
1961
+ r7 = r6
1962
+ r8 = CPyLong_AsInt64(r7)
1963
+ r5 = r8
1964
+ keep_alive r0
1965
+ L3:
1966
+ return r5
1967
+
1968
+ [case testI64ConvertToFloat_64bit]
1969
+ from mypy_extensions import i64
1970
+
1971
+ def i64_to_float(x: i64) -> float:
1972
+ return float(x)
1973
+ [out]
1974
+ def i64_to_float(x):
1975
+ x :: i64
1976
+ r0, r1 :: bit
1977
+ r2, r3, r4 :: int
1978
+ r5 :: float
1979
+ L0:
1980
+ r0 = x <= 4611686018427387903 :: signed
1981
+ if r0 goto L1 else goto L2 :: bool
1982
+ L1:
1983
+ r1 = x >= -4611686018427387904 :: signed
1984
+ if r1 goto L3 else goto L2 :: bool
1985
+ L2:
1986
+ r2 = CPyTagged_FromInt64(x)
1987
+ r3 = r2
1988
+ goto L4
1989
+ L3:
1990
+ r4 = x << 1
1991
+ r3 = r4
1992
+ L4:
1993
+ r5 = CPyFloat_FromTagged(r3)
1994
+ return r5
1995
+
1996
+ [case testI64ConvertToFloat_32bit]
1997
+ from mypy_extensions import i64
1998
+
1999
+ def i64_to_float(x: i64) -> float:
2000
+ return float(x)
2001
+ [out]
2002
+ def i64_to_float(x):
2003
+ x :: i64
2004
+ r0, r1 :: bit
2005
+ r2, r3 :: int
2006
+ r4 :: native_int
2007
+ r5 :: int
2008
+ r6 :: float
2009
+ L0:
2010
+ r0 = x <= 1073741823 :: signed
2011
+ if r0 goto L1 else goto L2 :: bool
2012
+ L1:
2013
+ r1 = x >= -1073741824 :: signed
2014
+ if r1 goto L3 else goto L2 :: bool
2015
+ L2:
2016
+ r2 = CPyTagged_FromInt64(x)
2017
+ r3 = r2
2018
+ goto L4
2019
+ L3:
2020
+ r4 = truncate x: i64 to native_int
2021
+ r5 = r4 << 1
2022
+ r3 = r5
2023
+ L4:
2024
+ r6 = CPyFloat_FromTagged(r3)
2025
+ return r6
2026
+
2027
+ [case testI64IsinstanceNarrowing]
2028
+ from typing import Union
2029
+ from mypy_extensions import i64
2030
+
2031
+ class C:
2032
+ a: i64
2033
+
2034
+ def narrow1(x: Union[C, i64]) -> i64:
2035
+ if isinstance(x, i64):
2036
+ return x
2037
+ return x.a
2038
+
2039
+ def narrow2(x: Union[C, i64]) -> i64:
2040
+ if isinstance(x, int):
2041
+ return x
2042
+ return x.a
2043
+ [out]
2044
+ def narrow1(x):
2045
+ x :: union[__main__.C, i64]
2046
+ r0 :: object
2047
+ r1 :: i32
2048
+ r2 :: bit
2049
+ r3 :: bool
2050
+ r4 :: i64
2051
+ r5 :: __main__.C
2052
+ r6 :: i64
2053
+ L0:
2054
+ r0 = load_address PyLong_Type
2055
+ r1 = PyObject_IsInstance(x, r0)
2056
+ r2 = r1 >= 0 :: signed
2057
+ r3 = truncate r1: i32 to builtins.bool
2058
+ if r3 goto L1 else goto L2 :: bool
2059
+ L1:
2060
+ r4 = unbox(i64, x)
2061
+ return r4
2062
+ L2:
2063
+ r5 = borrow cast(__main__.C, x)
2064
+ r6 = r5.a
2065
+ keep_alive x
2066
+ return r6
2067
+ def narrow2(x):
2068
+ x :: union[__main__.C, i64]
2069
+ r0 :: object
2070
+ r1 :: i32
2071
+ r2 :: bit
2072
+ r3 :: bool
2073
+ r4 :: i64
2074
+ r5 :: __main__.C
2075
+ r6 :: i64
2076
+ L0:
2077
+ r0 = load_address PyLong_Type
2078
+ r1 = PyObject_IsInstance(x, r0)
2079
+ r2 = r1 >= 0 :: signed
2080
+ r3 = truncate r1: i32 to builtins.bool
2081
+ if r3 goto L1 else goto L2 :: bool
2082
+ L1:
2083
+ r4 = unbox(i64, x)
2084
+ return r4
2085
+ L2:
2086
+ r5 = borrow cast(__main__.C, x)
2087
+ r6 = r5.a
2088
+ keep_alive x
2089
+ return r6
2090
+
2091
+ [case testI64ConvertBetweenTuples_64bit]
2092
+ from __future__ import annotations
2093
+ from mypy_extensions import i64
2094
+
2095
+ def f(t: tuple[int, i64, int]) -> None:
2096
+ tt: tuple[int, i64, i64] = t
2097
+
2098
+ def g(n: int) -> None:
2099
+ t: tuple[i64, i64] = (1, n)
2100
+ [out]
2101
+ def f(t):
2102
+ t :: tuple[int, i64, int]
2103
+ r0 :: int
2104
+ r1 :: i64
2105
+ r2 :: int
2106
+ r3 :: native_int
2107
+ r4 :: bit
2108
+ r5, r6 :: i64
2109
+ r7 :: ptr
2110
+ r8 :: c_ptr
2111
+ r9 :: i64
2112
+ r10, tt :: tuple[int, i64, i64]
2113
+ L0:
2114
+ r0 = t[0]
2115
+ r1 = t[1]
2116
+ r2 = t[2]
2117
+ r3 = r2 & 1
2118
+ r4 = r3 == 0
2119
+ if r4 goto L1 else goto L2 :: bool
2120
+ L1:
2121
+ r5 = r2 >> 1
2122
+ r6 = r5
2123
+ goto L3
2124
+ L2:
2125
+ r7 = r2 ^ 1
2126
+ r8 = r7
2127
+ r9 = CPyLong_AsInt64(r8)
2128
+ r6 = r9
2129
+ keep_alive r2
2130
+ L3:
2131
+ r10 = (r0, r1, r6)
2132
+ tt = r10
2133
+ return 1
2134
+ def g(n):
2135
+ n :: int
2136
+ r0 :: tuple[int, int]
2137
+ r1 :: int
2138
+ r2 :: native_int
2139
+ r3 :: bit
2140
+ r4, r5 :: i64
2141
+ r6 :: ptr
2142
+ r7 :: c_ptr
2143
+ r8 :: i64
2144
+ r9, t :: tuple[i64, i64]
2145
+ L0:
2146
+ r0 = (2, n)
2147
+ r1 = r0[1]
2148
+ r2 = r1 & 1
2149
+ r3 = r2 == 0
2150
+ if r3 goto L1 else goto L2 :: bool
2151
+ L1:
2152
+ r4 = r1 >> 1
2153
+ r5 = r4
2154
+ goto L3
2155
+ L2:
2156
+ r6 = r1 ^ 1
2157
+ r7 = r6
2158
+ r8 = CPyLong_AsInt64(r7)
2159
+ r5 = r8
2160
+ keep_alive r1
2161
+ L3:
2162
+ r9 = (1, r5)
2163
+ t = r9
2164
+ return 1