jaclang 0.6.1__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 (889) hide show
  1. jaclang/cli/.gitignore +3 -0
  2. jaclang/cli/cli.md +190 -0
  3. jaclang/compiler/.gitignore +1 -0
  4. jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl/getme.impl.jac +3 -0
  5. jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl.jac +3 -0
  6. jaclang/compiler/passes/main/tests/fixtures/autoimpl.jac +9 -0
  7. jaclang/compiler/passes/main/tests/fixtures/autoimpl.something.else.impl.jac +3 -0
  8. jaclang/compiler/passes/main/tests/fixtures/base.jac +13 -0
  9. jaclang/compiler/passes/main/tests/fixtures/base2.jac +14 -0
  10. jaclang/compiler/passes/main/tests/fixtures/blip.jac +2 -0
  11. jaclang/compiler/passes/main/tests/fixtures/codegentext.jac +31 -0
  12. jaclang/compiler/passes/main/tests/fixtures/decls.jac +10 -0
  13. jaclang/compiler/passes/main/tests/fixtures/defs_and_uses.jac +44 -0
  14. jaclang/compiler/passes/main/tests/fixtures/fstrings.jac +4 -0
  15. jaclang/compiler/passes/main/tests/fixtures/func.jac +18 -0
  16. jaclang/compiler/passes/main/tests/fixtures/func2.jac +8 -0
  17. jaclang/compiler/passes/main/tests/fixtures/game1.jac +15 -0
  18. jaclang/compiler/passes/main/tests/fixtures/impl/defs1.jac +8 -0
  19. jaclang/compiler/passes/main/tests/fixtures/impl/defs2.jac +8 -0
  20. jaclang/compiler/passes/main/tests/fixtures/impl/imps.jac +11 -0
  21. jaclang/compiler/passes/main/tests/fixtures/multi_def_err.jac +7 -0
  22. jaclang/compiler/passes/main/tests/fixtures/registry.jac +36 -0
  23. jaclang/compiler/passes/tool/tests/fixtures/corelib.jac +480 -0
  24. jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac +480 -0
  25. jaclang/compiler/passes/tool/tests/fixtures/genai/essay_review.jac +36 -0
  26. jaclang/compiler/passes/tool/tests/fixtures/genai/expert_answer.jac +17 -0
  27. jaclang/compiler/passes/tool/tests/fixtures/genai/joke_gen.jac +32 -0
  28. jaclang/compiler/passes/tool/tests/fixtures/genai/odd_word_out.jac +27 -0
  29. jaclang/compiler/passes/tool/tests/fixtures/genai/personality_finder.jac +35 -0
  30. jaclang/compiler/passes/tool/tests/fixtures/genai/text_to_type.jac +25 -0
  31. jaclang/compiler/passes/tool/tests/fixtures/genai/translator.jac +13 -0
  32. jaclang/compiler/passes/tool/tests/fixtures/genai/wikipedia.jac +63 -0
  33. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.dot +39 -0
  34. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.jac +7 -0
  35. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.txt +20 -0
  36. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/ability_impl_long_comprehension.jac +15 -0
  37. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/call_with_many_parameters.jac +24 -0
  38. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/entry_main.jac +4 -0
  39. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/long_line_nested_dict_access.jac +10 -0
  40. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/multiline_fstrings.jac +16 -0
  41. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/nested_dict.jac +15 -0
  42. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/nested_loop_and_incrementer.jac +13 -0
  43. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/simple_walker.jac +25 -0
  44. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/try_block_and_walker_spawn_and_fstrings.jac +26 -0
  45. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/tuple_iteration_and_not_negation.jac +20 -0
  46. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/type_annotation.jac +3 -0
  47. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_decl_only.jac +12 -0
  48. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_default_values_types_and_docstrings.jac +18 -0
  49. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_inline_ability_impl.jac +8 -0
  50. jaclang/compiler/passes/tool/tests/fixtures/simple_walk.jac +47 -0
  51. jaclang/compiler/passes/tool/tests/fixtures/simple_walk_fmt.jac +47 -0
  52. jaclang/compiler/tests/fixtures/fam.jac +67 -0
  53. jaclang/compiler/tests/fixtures/hello_world.jac +5 -0
  54. jaclang/compiler/tests/fixtures/kwesc.jac +5 -0
  55. jaclang/compiler/tests/fixtures/mod_doc_test.jac +1 -0
  56. jaclang/compiler/tests/fixtures/staticcheck.jac +20 -0
  57. jaclang/compiler/tests/fixtures/stuff.jac +6 -0
  58. jaclang/plugin/tests/fixtures/impl_match.jac +9 -0
  59. jaclang/plugin/tests/fixtures/impl_match_impl.jac +3 -0
  60. jaclang/plugin/tests/fixtures/simple_node_connection.jac +55 -0
  61. jaclang/plugin/tests/fixtures/simple_persistent.jac +41 -0
  62. jaclang/tests/fixtures/abc.jac +73 -0
  63. jaclang/tests/fixtures/access_checker.jac +19 -0
  64. jaclang/tests/fixtures/access_modifier.jac +49 -0
  65. jaclang/tests/fixtures/aott_raise.jac +25 -0
  66. jaclang/tests/fixtures/arithmetic_bug.jac +13 -0
  67. jaclang/tests/fixtures/assign_compr.jac +15 -0
  68. jaclang/tests/fixtures/assign_compr_dup.jac +15 -0
  69. jaclang/tests/fixtures/builtin_dotgen.jac +41 -0
  70. jaclang/tests/fixtures/chandra_bugs.jac +11 -0
  71. jaclang/tests/fixtures/chandra_bugs2.jac +26 -0
  72. jaclang/tests/fixtures/circle_pysolo.py +91 -0
  73. jaclang/tests/fixtures/deep/deeper/deep_outer_import.jac +9 -0
  74. jaclang/tests/fixtures/deep/deeper/deep_outer_import2.jac +9 -0
  75. jaclang/tests/fixtures/deep/deeper/snd_lev.jac +6 -0
  76. jaclang/tests/fixtures/deep/mycode.jac +4 -0
  77. jaclang/tests/fixtures/deep/one_lev.jac +6 -0
  78. jaclang/tests/fixtures/deep/one_lev_dup.jac +6 -0
  79. jaclang/tests/fixtures/deep/one_lev_dup_py.py +6 -0
  80. jaclang/tests/fixtures/deep_import.jac +7 -0
  81. jaclang/tests/fixtures/deferred_field.jac +13 -0
  82. jaclang/tests/fixtures/disconn.jac +29 -0
  83. jaclang/tests/fixtures/edge_node_walk.jac +46 -0
  84. jaclang/tests/fixtures/edge_ops.jac +45 -0
  85. jaclang/tests/fixtures/edges_walk.jac +38 -0
  86. jaclang/tests/fixtures/enum_inside_archtype.jac +20 -0
  87. jaclang/tests/fixtures/err.jac +5 -0
  88. jaclang/tests/fixtures/err2.jac +5 -0
  89. jaclang/tests/fixtures/game1.jac +15 -0
  90. jaclang/tests/fixtures/gendot_bubble_sort.jac +77 -0
  91. jaclang/tests/fixtures/guess_game.jac +47 -0
  92. jaclang/tests/fixtures/has_goodness.jac +15 -0
  93. jaclang/tests/fixtures/hashcheck.jac +12 -0
  94. jaclang/tests/fixtures/hashcheck_dup.jac +12 -0
  95. jaclang/tests/fixtures/hello.jac +5 -0
  96. jaclang/tests/fixtures/hello_nc.jac +5 -0
  97. jaclang/tests/fixtures/ignore.jac +43 -0
  98. jaclang/tests/fixtures/ignore_dup.jac +43 -0
  99. jaclang/tests/fixtures/impl_grab.impl.jac +4 -0
  100. jaclang/tests/fixtures/impl_grab.jac +2 -0
  101. jaclang/tests/fixtures/inherit_check.jac +33 -0
  102. jaclang/tests/fixtures/jacsamp.jac +6 -0
  103. jaclang/tests/fixtures/jp_importer.jac +17 -0
  104. jaclang/tests/fixtures/lambda.jac +6 -0
  105. jaclang/tests/fixtures/maxfail_run_test.jac +5 -0
  106. jaclang/tests/fixtures/mtest.impl.jac +6 -0
  107. jaclang/tests/fixtures/mtest.jac +6 -0
  108. jaclang/tests/fixtures/needs_import.jac +18 -0
  109. jaclang/tests/fixtures/needs_import_1.jac +6 -0
  110. jaclang/tests/fixtures/needs_import_2.jac +6 -0
  111. jaclang/tests/fixtures/needs_import_3.jac +6 -0
  112. jaclang/tests/fixtures/needs_import_dup.jac +18 -0
  113. jaclang/tests/fixtures/package_import.jac +6 -0
  114. jaclang/tests/fixtures/pyfunc.py +11 -0
  115. jaclang/tests/fixtures/pyfunc_1.py +311 -0
  116. jaclang/tests/fixtures/pyfunc_2.py +279 -0
  117. jaclang/tests/fixtures/pyfunc_3.py +310 -0
  118. jaclang/tests/fixtures/random_check.jac +70 -0
  119. jaclang/tests/fixtures/raw_byte_string.jac +18 -0
  120. jaclang/tests/fixtures/registry.jac +37 -0
  121. jaclang/tests/fixtures/run_test.jac +5 -0
  122. jaclang/tests/fixtures/semstr.jac +33 -0
  123. jaclang/tests/fixtures/simple_archs.jac +26 -0
  124. jaclang/tests/fixtures/slice_vals.jac +7 -0
  125. jaclang/tests/fixtures/sub_abil_sep.jac +15 -0
  126. jaclang/tests/fixtures/sub_abil_sep_multilev.jac +17 -0
  127. jaclang/tests/fixtures/try_finally.jac +34 -0
  128. jaclang/tests/fixtures/tupleunpack.jac +6 -0
  129. jaclang/tests/fixtures/tuplytuples.jac +8 -0
  130. jaclang/tests/fixtures/type_info.jac +19 -0
  131. jaclang/tests/fixtures/with_context.jac +30 -0
  132. jaclang/tests/fixtures/with_llm_function.jac +33 -0
  133. jaclang/tests/fixtures/with_llm_lower.jac +45 -0
  134. jaclang/tests/fixtures/with_llm_method.jac +51 -0
  135. jaclang/tests/fixtures/with_llm_type.jac +52 -0
  136. jaclang/tests/test_cli.py +239 -0
  137. jaclang/tests/test_language.py +807 -0
  138. jaclang/tests/test_man_code.py +148 -0
  139. jaclang/tests/test_reference.py +95 -0
  140. jaclang/tests/test_settings.py +46 -0
  141. jaclang/vendor/LICENSE +18 -0
  142. jaclang/vendor/mypy/stubgen.py +0 -0
  143. jaclang/vendor/mypy/stubgenc.py +0 -0
  144. jaclang/vendor/mypy/typeshed/LICENSE +237 -0
  145. jaclang/vendor/mypy/typeshed/stdlib/VERSIONS +308 -0
  146. jaclang/vendor/mypy/typeshed/stdlib/__future__.pyi +41 -0
  147. jaclang/vendor/mypy/typeshed/stdlib/__main__.pyi +3 -0
  148. jaclang/vendor/mypy/typeshed/stdlib/_ast.pyi +632 -0
  149. jaclang/vendor/mypy/typeshed/stdlib/_bisect.pyi +106 -0
  150. jaclang/vendor/mypy/typeshed/stdlib/_bootlocale.pyi +1 -0
  151. jaclang/vendor/mypy/typeshed/stdlib/_codecs.pyi +198 -0
  152. jaclang/vendor/mypy/typeshed/stdlib/_collections_abc.pyi +94 -0
  153. jaclang/vendor/mypy/typeshed/stdlib/_compat_pickle.pyi +8 -0
  154. jaclang/vendor/mypy/typeshed/stdlib/_compression.pyi +25 -0
  155. jaclang/vendor/mypy/typeshed/stdlib/_csv.pyi +90 -0
  156. jaclang/vendor/mypy/typeshed/stdlib/_ctypes.pyi +219 -0
  157. jaclang/vendor/mypy/typeshed/stdlib/_curses.pyi +600 -0
  158. jaclang/vendor/mypy/typeshed/stdlib/_decimal.pyi +316 -0
  159. jaclang/vendor/mypy/typeshed/stdlib/_dummy_thread.pyi +43 -0
  160. jaclang/vendor/mypy/typeshed/stdlib/_dummy_threading.pyi +185 -0
  161. jaclang/vendor/mypy/typeshed/stdlib/_heapq.pyi +11 -0
  162. jaclang/vendor/mypy/typeshed/stdlib/_imp.pyi +32 -0
  163. jaclang/vendor/mypy/typeshed/stdlib/_json.pyi +49 -0
  164. jaclang/vendor/mypy/typeshed/stdlib/_locale.pyi +100 -0
  165. jaclang/vendor/mypy/typeshed/stdlib/_markupbase.pyi +16 -0
  166. jaclang/vendor/mypy/typeshed/stdlib/_msi.pyi +92 -0
  167. jaclang/vendor/mypy/typeshed/stdlib/_operator.pyi +172 -0
  168. jaclang/vendor/mypy/typeshed/stdlib/_osx_support.pyi +55 -0
  169. jaclang/vendor/mypy/typeshed/stdlib/_posixsubprocess.pyi +32 -0
  170. jaclang/vendor/mypy/typeshed/stdlib/_py_abc.pyi +17 -0
  171. jaclang/vendor/mypy/typeshed/stdlib/_pydecimal.pyi +43 -0
  172. jaclang/vendor/mypy/typeshed/stdlib/_random.pyi +12 -0
  173. jaclang/vendor/mypy/typeshed/stdlib/_sitebuiltins.pyi +18 -0
  174. jaclang/vendor/mypy/typeshed/stdlib/_socket.pyi +851 -0
  175. jaclang/vendor/mypy/typeshed/stdlib/_stat.pyi +103 -0
  176. jaclang/vendor/mypy/typeshed/stdlib/_thread.pyi +63 -0
  177. jaclang/vendor/mypy/typeshed/stdlib/_threading_local.pyi +17 -0
  178. jaclang/vendor/mypy/typeshed/stdlib/_tkinter.pyi +120 -0
  179. jaclang/vendor/mypy/typeshed/stdlib/_tracemalloc.pyi +17 -0
  180. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/README.md +34 -0
  181. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/__init__.pyi +374 -0
  182. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/dbapi.pyi +45 -0
  183. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/wsgi.pyi +51 -0
  184. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/xml.pyi +13 -0
  185. jaclang/vendor/mypy/typeshed/stdlib/_warnings.pyi +65 -0
  186. jaclang/vendor/mypy/typeshed/stdlib/_weakref.pyi +45 -0
  187. jaclang/vendor/mypy/typeshed/stdlib/_weakrefset.pyi +51 -0
  188. jaclang/vendor/mypy/typeshed/stdlib/_winapi.pyi +275 -0
  189. jaclang/vendor/mypy/typeshed/stdlib/abc.pyi +61 -0
  190. jaclang/vendor/mypy/typeshed/stdlib/aifc.pyi +99 -0
  191. jaclang/vendor/mypy/typeshed/stdlib/antigravity.pyi +3 -0
  192. jaclang/vendor/mypy/typeshed/stdlib/argparse.pyi +675 -0
  193. jaclang/vendor/mypy/typeshed/stdlib/array.pyi +111 -0
  194. jaclang/vendor/mypy/typeshed/stdlib/ast.pyi +287 -0
  195. jaclang/vendor/mypy/typeshed/stdlib/asynchat.pyi +21 -0
  196. jaclang/vendor/mypy/typeshed/stdlib/asyncio/__init__.pyi +41 -0
  197. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_events.pyi +519 -0
  198. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_futures.pyi +21 -0
  199. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +71 -0
  200. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_tasks.pyi +13 -0
  201. jaclang/vendor/mypy/typeshed/stdlib/asyncio/constants.pyi +20 -0
  202. jaclang/vendor/mypy/typeshed/stdlib/asyncio/coroutines.pyi +32 -0
  203. jaclang/vendor/mypy/typeshed/stdlib/asyncio/events.pyi +669 -0
  204. jaclang/vendor/mypy/typeshed/stdlib/asyncio/exceptions.pyi +43 -0
  205. jaclang/vendor/mypy/typeshed/stdlib/asyncio/format_helpers.pyi +26 -0
  206. jaclang/vendor/mypy/typeshed/stdlib/asyncio/futures.pyi +61 -0
  207. jaclang/vendor/mypy/typeshed/stdlib/asyncio/locks.pyi +131 -0
  208. jaclang/vendor/mypy/typeshed/stdlib/asyncio/log.pyi +3 -0
  209. jaclang/vendor/mypy/typeshed/stdlib/asyncio/mixins.pyi +9 -0
  210. jaclang/vendor/mypy/typeshed/stdlib/asyncio/proactor_events.pyi +72 -0
  211. jaclang/vendor/mypy/typeshed/stdlib/asyncio/protocols.pyi +40 -0
  212. jaclang/vendor/mypy/typeshed/stdlib/asyncio/queues.pyi +49 -0
  213. jaclang/vendor/mypy/typeshed/stdlib/asyncio/runners.pyi +44 -0
  214. jaclang/vendor/mypy/typeshed/stdlib/asyncio/selector_events.pyi +8 -0
  215. jaclang/vendor/mypy/typeshed/stdlib/asyncio/sslproto.pyi +189 -0
  216. jaclang/vendor/mypy/typeshed/stdlib/asyncio/staggered.pyi +13 -0
  217. jaclang/vendor/mypy/typeshed/stdlib/asyncio/streams.pyi +172 -0
  218. jaclang/vendor/mypy/typeshed/stdlib/asyncio/subprocess.pyi +234 -0
  219. jaclang/vendor/mypy/typeshed/stdlib/asyncio/taskgroups.pyi +36 -0
  220. jaclang/vendor/mypy/typeshed/stdlib/asyncio/tasks.pyi +566 -0
  221. jaclang/vendor/mypy/typeshed/stdlib/asyncio/threads.pyi +11 -0
  222. jaclang/vendor/mypy/typeshed/stdlib/asyncio/timeouts.pyi +22 -0
  223. jaclang/vendor/mypy/typeshed/stdlib/asyncio/transports.pyi +64 -0
  224. jaclang/vendor/mypy/typeshed/stdlib/asyncio/trsock.pyi +140 -0
  225. jaclang/vendor/mypy/typeshed/stdlib/asyncio/unix_events.pyi +268 -0
  226. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_events.pyi +108 -0
  227. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_utils.pyi +59 -0
  228. jaclang/vendor/mypy/typeshed/stdlib/asyncore.pyi +99 -0
  229. jaclang/vendor/mypy/typeshed/stdlib/atexit.pyi +14 -0
  230. jaclang/vendor/mypy/typeshed/stdlib/audioop.pyi +50 -0
  231. jaclang/vendor/mypy/typeshed/stdlib/base64.pyi +76 -0
  232. jaclang/vendor/mypy/typeshed/stdlib/bdb.pyi +133 -0
  233. jaclang/vendor/mypy/typeshed/stdlib/binascii.pyi +45 -0
  234. jaclang/vendor/mypy/typeshed/stdlib/binhex.pyi +47 -0
  235. jaclang/vendor/mypy/typeshed/stdlib/bisect.pyi +4 -0
  236. jaclang/vendor/mypy/typeshed/stdlib/builtins.pyi +2310 -0
  237. jaclang/vendor/mypy/typeshed/stdlib/bz2.pyi +177 -0
  238. jaclang/vendor/mypy/typeshed/stdlib/cProfile.pyi +49 -0
  239. jaclang/vendor/mypy/typeshed/stdlib/calendar.pyi +248 -0
  240. jaclang/vendor/mypy/typeshed/stdlib/cgi.pyi +122 -0
  241. jaclang/vendor/mypy/typeshed/stdlib/cgitb.pyi +44 -0
  242. jaclang/vendor/mypy/typeshed/stdlib/chunk.pyi +26 -0
  243. jaclang/vendor/mypy/typeshed/stdlib/cmath.pyi +38 -0
  244. jaclang/vendor/mypy/typeshed/stdlib/cmd.pyi +52 -0
  245. jaclang/vendor/mypy/typeshed/stdlib/code.pyi +46 -0
  246. jaclang/vendor/mypy/typeshed/stdlib/codecs.pyi +344 -0
  247. jaclang/vendor/mypy/typeshed/stdlib/codeop.pyi +17 -0
  248. jaclang/vendor/mypy/typeshed/stdlib/collections/__init__.pyi +571 -0
  249. jaclang/vendor/mypy/typeshed/stdlib/collections/abc.pyi +2 -0
  250. jaclang/vendor/mypy/typeshed/stdlib/colorsys.pyi +20 -0
  251. jaclang/vendor/mypy/typeshed/stdlib/compileall.pyi +111 -0
  252. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +32 -0
  253. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/_base.pyi +137 -0
  254. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/process.pyi +272 -0
  255. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/thread.pyi +86 -0
  256. jaclang/vendor/mypy/typeshed/stdlib/configparser.pyi +449 -0
  257. jaclang/vendor/mypy/typeshed/stdlib/contextlib.pyi +274 -0
  258. jaclang/vendor/mypy/typeshed/stdlib/contextvars.pyi +67 -0
  259. jaclang/vendor/mypy/typeshed/stdlib/copy.pyi +16 -0
  260. jaclang/vendor/mypy/typeshed/stdlib/copyreg.pyi +32 -0
  261. jaclang/vendor/mypy/typeshed/stdlib/crypt.pyi +12 -0
  262. jaclang/vendor/mypy/typeshed/stdlib/csv.pyi +147 -0
  263. jaclang/vendor/mypy/typeshed/stdlib/ctypes/__init__.pyi +211 -0
  264. jaclang/vendor/mypy/typeshed/stdlib/ctypes/_endian.pyi +29 -0
  265. jaclang/vendor/mypy/typeshed/stdlib/ctypes/util.pyi +6 -0
  266. jaclang/vendor/mypy/typeshed/stdlib/ctypes/wintypes.pyi +298 -0
  267. jaclang/vendor/mypy/typeshed/stdlib/curses/__init__.pyi +25 -0
  268. jaclang/vendor/mypy/typeshed/stdlib/curses/ascii.pyi +63 -0
  269. jaclang/vendor/mypy/typeshed/stdlib/curses/has_key.pyi +4 -0
  270. jaclang/vendor/mypy/typeshed/stdlib/curses/panel.pyi +25 -0
  271. jaclang/vendor/mypy/typeshed/stdlib/curses/textpad.pyi +15 -0
  272. jaclang/vendor/mypy/typeshed/stdlib/dataclasses.pyi +323 -0
  273. jaclang/vendor/mypy/typeshed/stdlib/datetime.pyi +334 -0
  274. jaclang/vendor/mypy/typeshed/stdlib/dbm/__init__.pyi +98 -0
  275. jaclang/vendor/mypy/typeshed/stdlib/dbm/dumb.pyi +34 -0
  276. jaclang/vendor/mypy/typeshed/stdlib/dbm/gnu.pyi +44 -0
  277. jaclang/vendor/mypy/typeshed/stdlib/dbm/ndbm.pyi +40 -0
  278. jaclang/vendor/mypy/typeshed/stdlib/decimal.pyi +5 -0
  279. jaclang/vendor/mypy/typeshed/stdlib/difflib.pyi +169 -0
  280. jaclang/vendor/mypy/typeshed/stdlib/dis.pyi +190 -0
  281. jaclang/vendor/mypy/typeshed/stdlib/distutils/__init__.pyi +5 -0
  282. jaclang/vendor/mypy/typeshed/stdlib/distutils/archive_util.pyi +22 -0
  283. jaclang/vendor/mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +3 -0
  284. jaclang/vendor/mypy/typeshed/stdlib/distutils/ccompiler.pyi +183 -0
  285. jaclang/vendor/mypy/typeshed/stdlib/distutils/cmd.pyi +88 -0
  286. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/__init__.pyi +0 -0
  287. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist.pyi +25 -0
  288. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +21 -0
  289. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +45 -0
  290. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi +0 -0
  291. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +52 -0
  292. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +21 -0
  293. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build.pyi +31 -0
  294. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_clib.pyi +27 -0
  295. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_ext.pyi +50 -0
  296. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_py.pyi +44 -0
  297. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +24 -0
  298. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/check.pyi +39 -0
  299. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/clean.pyi +17 -0
  300. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/config.pyi +91 -0
  301. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install.pyi +63 -0
  302. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_data.pyi +19 -0
  303. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +18 -0
  304. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_headers.pyi +16 -0
  305. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_lib.pyi +25 -0
  306. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +18 -0
  307. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/register.pyi +18 -0
  308. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/sdist.pyi +42 -0
  309. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/upload.pyi +17 -0
  310. jaclang/vendor/mypy/typeshed/stdlib/distutils/config.pyi +17 -0
  311. jaclang/vendor/mypy/typeshed/stdlib/distutils/core.pyi +59 -0
  312. jaclang/vendor/mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +20 -0
  313. jaclang/vendor/mypy/typeshed/stdlib/distutils/debug.pyi +1 -0
  314. jaclang/vendor/mypy/typeshed/stdlib/distutils/dep_util.pyi +3 -0
  315. jaclang/vendor/mypy/typeshed/stdlib/distutils/dir_util.pyi +21 -0
  316. jaclang/vendor/mypy/typeshed/stdlib/distutils/dist.pyi +155 -0
  317. jaclang/vendor/mypy/typeshed/stdlib/distutils/errors.pyi +19 -0
  318. jaclang/vendor/mypy/typeshed/stdlib/distutils/extension.pyi +36 -0
  319. jaclang/vendor/mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +37 -0
  320. jaclang/vendor/mypy/typeshed/stdlib/distutils/file_util.pyi +14 -0
  321. jaclang/vendor/mypy/typeshed/stdlib/distutils/filelist.pyi +78 -0
  322. jaclang/vendor/mypy/typeshed/stdlib/distutils/log.pyi +25 -0
  323. jaclang/vendor/mypy/typeshed/stdlib/distutils/msvccompiler.pyi +3 -0
  324. jaclang/vendor/mypy/typeshed/stdlib/distutils/spawn.pyi +4 -0
  325. jaclang/vendor/mypy/typeshed/stdlib/distutils/sysconfig.pyi +24 -0
  326. jaclang/vendor/mypy/typeshed/stdlib/distutils/text_file.pyi +23 -0
  327. jaclang/vendor/mypy/typeshed/stdlib/distutils/unixccompiler.pyi +3 -0
  328. jaclang/vendor/mypy/typeshed/stdlib/distutils/util.pyi +50 -0
  329. jaclang/vendor/mypy/typeshed/stdlib/distutils/version.pyi +36 -0
  330. jaclang/vendor/mypy/typeshed/stdlib/doctest.pyi +282 -0
  331. jaclang/vendor/mypy/typeshed/stdlib/dummy_threading.pyi +2 -0
  332. jaclang/vendor/mypy/typeshed/stdlib/email/__init__.pyi +37 -0
  333. jaclang/vendor/mypy/typeshed/stdlib/email/_header_value_parser.pyi +392 -0
  334. jaclang/vendor/mypy/typeshed/stdlib/email/_policybase.pyi +51 -0
  335. jaclang/vendor/mypy/typeshed/stdlib/email/base64mime.pyi +22 -0
  336. jaclang/vendor/mypy/typeshed/stdlib/email/charset.pyi +39 -0
  337. jaclang/vendor/mypy/typeshed/stdlib/email/contentmanager.pyi +11 -0
  338. jaclang/vendor/mypy/typeshed/stdlib/email/encoders.pyi +8 -0
  339. jaclang/vendor/mypy/typeshed/stdlib/email/errors.pyi +39 -0
  340. jaclang/vendor/mypy/typeshed/stdlib/email/feedparser.pyi +31 -0
  341. jaclang/vendor/mypy/typeshed/stdlib/email/generator.pyi +42 -0
  342. jaclang/vendor/mypy/typeshed/stdlib/email/header.pyi +41 -0
  343. jaclang/vendor/mypy/typeshed/stdlib/email/headerregistry.pyi +214 -0
  344. jaclang/vendor/mypy/typeshed/stdlib/email/iterators.pyi +19 -0
  345. jaclang/vendor/mypy/typeshed/stdlib/email/message.pyi +220 -0
  346. jaclang/vendor/mypy/typeshed/stdlib/email/mime/__init__.pyi +0 -0
  347. jaclang/vendor/mypy/typeshed/stdlib/email/mime/application.pyi +17 -0
  348. jaclang/vendor/mypy/typeshed/stdlib/email/mime/audio.pyi +17 -0
  349. jaclang/vendor/mypy/typeshed/stdlib/email/mime/base.pyi +15 -0
  350. jaclang/vendor/mypy/typeshed/stdlib/email/mime/image.pyi +17 -0
  351. jaclang/vendor/mypy/typeshed/stdlib/email/mime/message.pyi +10 -0
  352. jaclang/vendor/mypy/typeshed/stdlib/email/mime/multipart.pyi +18 -0
  353. jaclang/vendor/mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +5 -0
  354. jaclang/vendor/mypy/typeshed/stdlib/email/mime/text.pyi +14 -0
  355. jaclang/vendor/mypy/typeshed/stdlib/email/parser.pyi +44 -0
  356. jaclang/vendor/mypy/typeshed/stdlib/email/policy.pyi +51 -0
  357. jaclang/vendor/mypy/typeshed/stdlib/email/quoprimime.pyi +30 -0
  358. jaclang/vendor/mypy/typeshed/stdlib/email/utils.pyi +84 -0
  359. jaclang/vendor/mypy/typeshed/stdlib/encodings/__init__.pyi +10 -0
  360. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8.pyi +25 -0
  361. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +28 -0
  362. jaclang/vendor/mypy/typeshed/stdlib/ensurepip/__init__.pyi +12 -0
  363. jaclang/vendor/mypy/typeshed/stdlib/enum.pyi +347 -0
  364. jaclang/vendor/mypy/typeshed/stdlib/errno.pyi +222 -0
  365. jaclang/vendor/mypy/typeshed/stdlib/faulthandler.pyi +20 -0
  366. jaclang/vendor/mypy/typeshed/stdlib/fcntl.pyi +155 -0
  367. jaclang/vendor/mypy/typeshed/stdlib/filecmp.pyi +62 -0
  368. jaclang/vendor/mypy/typeshed/stdlib/fileinput.pyi +246 -0
  369. jaclang/vendor/mypy/typeshed/stdlib/fnmatch.pyi +9 -0
  370. jaclang/vendor/mypy/typeshed/stdlib/formatter.pyi +92 -0
  371. jaclang/vendor/mypy/typeshed/stdlib/fractions.pyi +152 -0
  372. jaclang/vendor/mypy/typeshed/stdlib/ftplib.pyi +214 -0
  373. jaclang/vendor/mypy/typeshed/stdlib/functools.pyi +261 -0
  374. jaclang/vendor/mypy/typeshed/stdlib/gc.pyi +39 -0
  375. jaclang/vendor/mypy/typeshed/stdlib/genericpath.pyi +62 -0
  376. jaclang/vendor/mypy/typeshed/stdlib/getopt.pyi +15 -0
  377. jaclang/vendor/mypy/typeshed/stdlib/getpass.pyi +8 -0
  378. jaclang/vendor/mypy/typeshed/stdlib/gettext.pyi +200 -0
  379. jaclang/vendor/mypy/typeshed/stdlib/glob.pyi +50 -0
  380. jaclang/vendor/mypy/typeshed/stdlib/graphlib.pyi +28 -0
  381. jaclang/vendor/mypy/typeshed/stdlib/grp.pyi +22 -0
  382. jaclang/vendor/mypy/typeshed/stdlib/gzip.pyi +162 -0
  383. jaclang/vendor/mypy/typeshed/stdlib/hashlib.pyi +191 -0
  384. jaclang/vendor/mypy/typeshed/stdlib/heapq.pyi +36 -0
  385. jaclang/vendor/mypy/typeshed/stdlib/hmac.pyi +45 -0
  386. jaclang/vendor/mypy/typeshed/stdlib/html/__init__.pyi +6 -0
  387. jaclang/vendor/mypy/typeshed/stdlib/html/entities.pyi +6 -0
  388. jaclang/vendor/mypy/typeshed/stdlib/html/parser.pyi +40 -0
  389. jaclang/vendor/mypy/typeshed/stdlib/http/__init__.pyi +105 -0
  390. jaclang/vendor/mypy/typeshed/stdlib/http/client.pyi +283 -0
  391. jaclang/vendor/mypy/typeshed/stdlib/http/cookiejar.pyi +206 -0
  392. jaclang/vendor/mypy/typeshed/stdlib/http/cookies.pyi +67 -0
  393. jaclang/vendor/mypy/typeshed/stdlib/http/server.pyi +93 -0
  394. jaclang/vendor/mypy/typeshed/stdlib/imaplib.pyi +221 -0
  395. jaclang/vendor/mypy/typeshed/stdlib/imghdr.pyi +17 -0
  396. jaclang/vendor/mypy/typeshed/stdlib/imp.pyi +75 -0
  397. jaclang/vendor/mypy/typeshed/stdlib/importlib/__init__.pyi +24 -0
  398. jaclang/vendor/mypy/typeshed/stdlib/importlib/_abc.pyi +15 -0
  399. jaclang/vendor/mypy/typeshed/stdlib/importlib/abc.pyi +195 -0
  400. jaclang/vendor/mypy/typeshed/stdlib/importlib/machinery.pyi +214 -0
  401. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +310 -0
  402. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +40 -0
  403. jaclang/vendor/mypy/typeshed/stdlib/importlib/readers.pyi +68 -0
  404. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/__init__.pyi +66 -0
  405. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/abc.pyi +12 -0
  406. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/readers.pyi +14 -0
  407. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/simple.pyi +55 -0
  408. jaclang/vendor/mypy/typeshed/stdlib/importlib/simple.pyi +16 -0
  409. jaclang/vendor/mypy/typeshed/stdlib/importlib/util.pyi +57 -0
  410. jaclang/vendor/mypy/typeshed/stdlib/inspect.pyi +709 -0
  411. jaclang/vendor/mypy/typeshed/stdlib/io.pyi +222 -0
  412. jaclang/vendor/mypy/typeshed/stdlib/ipaddress.pyi +229 -0
  413. jaclang/vendor/mypy/typeshed/stdlib/itertools.pyi +394 -0
  414. jaclang/vendor/mypy/typeshed/stdlib/json/__init__.pyi +69 -0
  415. jaclang/vendor/mypy/typeshed/stdlib/json/decoder.pyi +34 -0
  416. jaclang/vendor/mypy/typeshed/stdlib/json/encoder.pyi +38 -0
  417. jaclang/vendor/mypy/typeshed/stdlib/json/tool.pyi +1 -0
  418. jaclang/vendor/mypy/typeshed/stdlib/keyword.pyi +21 -0
  419. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/__init__.pyi +0 -0
  420. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +32 -0
  421. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +44 -0
  422. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi +0 -0
  423. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +8 -0
  424. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +10 -0
  425. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +8 -0
  426. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +8 -0
  427. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +16 -0
  428. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +14 -0
  429. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +8 -0
  430. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +8 -0
  431. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +13 -0
  432. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +9 -0
  433. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +8 -0
  434. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +8 -0
  435. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +8 -0
  436. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +8 -0
  437. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +15 -0
  438. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +16 -0
  439. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +21 -0
  440. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +6 -0
  441. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +11 -0
  442. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +9 -0
  443. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +8 -0
  444. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +9 -0
  445. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +7 -0
  446. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +7 -0
  447. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +9 -0
  448. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +17 -0
  449. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +10 -0
  450. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +8 -0
  451. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +19 -0
  452. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +8 -0
  453. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +8 -0
  454. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +12 -0
  455. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +8 -0
  456. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +12 -0
  457. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +8 -0
  458. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +8 -0
  459. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +8 -0
  460. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +9 -0
  461. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +17 -0
  462. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +8 -0
  463. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +7 -0
  464. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +8 -0
  465. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +9 -0
  466. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +8 -0
  467. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +17 -0
  468. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +8 -0
  469. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +12 -0
  470. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +18 -0
  471. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +12 -0
  472. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +20 -0
  473. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +8 -0
  474. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +9 -0
  475. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/main.pyi +46 -0
  476. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +9 -0
  477. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +40 -0
  478. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +24 -0
  479. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +7 -0
  480. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +36 -0
  481. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +52 -0
  482. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +67 -0
  483. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +98 -0
  484. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pygram.pyi +114 -0
  485. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pytree.pyi +142 -0
  486. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/refactor.pyi +122 -0
  487. jaclang/vendor/mypy/typeshed/stdlib/linecache.pyi +29 -0
  488. jaclang/vendor/mypy/typeshed/stdlib/locale.pyi +165 -0
  489. jaclang/vendor/mypy/typeshed/stdlib/logging/__init__.pyi +685 -0
  490. jaclang/vendor/mypy/typeshed/stdlib/logging/config.pyi +161 -0
  491. jaclang/vendor/mypy/typeshed/stdlib/logging/handlers.pyi +315 -0
  492. jaclang/vendor/mypy/typeshed/stdlib/lzma.pyi +213 -0
  493. jaclang/vendor/mypy/typeshed/stdlib/mailbox.pyi +306 -0
  494. jaclang/vendor/mypy/typeshed/stdlib/mailcap.pyi +15 -0
  495. jaclang/vendor/mypy/typeshed/stdlib/marshal.pyi +35 -0
  496. jaclang/vendor/mypy/typeshed/stdlib/math.pyi +134 -0
  497. jaclang/vendor/mypy/typeshed/stdlib/mimetypes.pyi +50 -0
  498. jaclang/vendor/mypy/typeshed/stdlib/mmap.pyi +126 -0
  499. jaclang/vendor/mypy/typeshed/stdlib/modulefinder.pyi +84 -0
  500. jaclang/vendor/mypy/typeshed/stdlib/msilib/__init__.pyi +237 -0
  501. jaclang/vendor/mypy/typeshed/stdlib/msilib/schema.pyi +107 -0
  502. jaclang/vendor/mypy/typeshed/stdlib/msilib/sequence.pyi +13 -0
  503. jaclang/vendor/mypy/typeshed/stdlib/msilib/text.pyi +7 -0
  504. jaclang/vendor/mypy/typeshed/stdlib/msvcrt.pyi +32 -0
  505. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/__init__.pyi +94 -0
  506. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/connection.pyi +94 -0
  507. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/context.pyi +235 -0
  508. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +83 -0
  509. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +50 -0
  510. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +36 -0
  511. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/heap.pyi +38 -0
  512. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/managers.pyi +270 -0
  513. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/pool.pyi +137 -0
  514. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +23 -0
  515. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +16 -0
  516. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +20 -0
  517. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +30 -0
  518. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/process.pyi +39 -0
  519. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/queues.pyi +43 -0
  520. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/reduction.pyi +118 -0
  521. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +20 -0
  522. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +18 -0
  523. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +44 -0
  524. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +140 -0
  525. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/spawn.pyi +34 -0
  526. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +66 -0
  527. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/util.pyi +83 -0
  528. jaclang/vendor/mypy/typeshed/stdlib/netrc.pyi +28 -0
  529. jaclang/vendor/mypy/typeshed/stdlib/nis.pyi +9 -0
  530. jaclang/vendor/mypy/typeshed/stdlib/nntplib.pyi +151 -0
  531. jaclang/vendor/mypy/typeshed/stdlib/nt.pyi +114 -0
  532. jaclang/vendor/mypy/typeshed/stdlib/ntpath.pyi +119 -0
  533. jaclang/vendor/mypy/typeshed/stdlib/nturl2path.pyi +2 -0
  534. jaclang/vendor/mypy/typeshed/stdlib/numbers.pyi +154 -0
  535. jaclang/vendor/mypy/typeshed/stdlib/opcode.pyi +68 -0
  536. jaclang/vendor/mypy/typeshed/stdlib/operator.pyi +110 -0
  537. jaclang/vendor/mypy/typeshed/stdlib/optparse.pyi +290 -0
  538. jaclang/vendor/mypy/typeshed/stdlib/os/__init__.pyi +1317 -0
  539. jaclang/vendor/mypy/typeshed/stdlib/os/path.pyi +8 -0
  540. jaclang/vendor/mypy/typeshed/stdlib/ossaudiodev.pyi +131 -0
  541. jaclang/vendor/mypy/typeshed/stdlib/parser.pyi +28 -0
  542. jaclang/vendor/mypy/typeshed/stdlib/pathlib.pyi +282 -0
  543. jaclang/vendor/mypy/typeshed/stdlib/pdb.pyi +223 -0
  544. jaclang/vendor/mypy/typeshed/stdlib/pickle.pyi +286 -0
  545. jaclang/vendor/mypy/typeshed/stdlib/pickletools.pyi +173 -0
  546. jaclang/vendor/mypy/typeshed/stdlib/pipes.pyi +16 -0
  547. jaclang/vendor/mypy/typeshed/stdlib/pkgutil.pyi +61 -0
  548. jaclang/vendor/mypy/typeshed/stdlib/platform.pyi +56 -0
  549. jaclang/vendor/mypy/typeshed/stdlib/plistlib.pyi +176 -0
  550. jaclang/vendor/mypy/typeshed/stdlib/poplib.pyi +78 -0
  551. jaclang/vendor/mypy/typeshed/stdlib/posix.pyi +363 -0
  552. jaclang/vendor/mypy/typeshed/stdlib/posixpath.pyi +171 -0
  553. jaclang/vendor/mypy/typeshed/stdlib/pprint.pyi +122 -0
  554. jaclang/vendor/mypy/typeshed/stdlib/profile.pyi +43 -0
  555. jaclang/vendor/mypy/typeshed/stdlib/pstats.pyi +85 -0
  556. jaclang/vendor/mypy/typeshed/stdlib/pty.pyi +21 -0
  557. jaclang/vendor/mypy/typeshed/stdlib/pwd.pyi +36 -0
  558. jaclang/vendor/mypy/typeshed/stdlib/py_compile.pyi +40 -0
  559. jaclang/vendor/mypy/typeshed/stdlib/pyclbr.pyi +97 -0
  560. jaclang/vendor/mypy/typeshed/stdlib/pydoc.pyi +309 -0
  561. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
  562. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/topics.pyi +1 -0
  563. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/__init__.pyi +94 -0
  564. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/errors.pyi +49 -0
  565. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/model.pyi +11 -0
  566. jaclang/vendor/mypy/typeshed/stdlib/queue.pyi +62 -0
  567. jaclang/vendor/mypy/typeshed/stdlib/quopri.pyi +17 -0
  568. jaclang/vendor/mypy/typeshed/stdlib/random.pyi +160 -0
  569. jaclang/vendor/mypy/typeshed/stdlib/re.pyi +376 -0
  570. jaclang/vendor/mypy/typeshed/stdlib/readline.pyi +40 -0
  571. jaclang/vendor/mypy/typeshed/stdlib/reprlib.pyi +65 -0
  572. jaclang/vendor/mypy/typeshed/stdlib/resource.pyi +116 -0
  573. jaclang/vendor/mypy/typeshed/stdlib/rlcompleter.pyi +9 -0
  574. jaclang/vendor/mypy/typeshed/stdlib/runpy.pyi +31 -0
  575. jaclang/vendor/mypy/typeshed/stdlib/sched.pyi +56 -0
  576. jaclang/vendor/mypy/typeshed/stdlib/secrets.pyi +24 -0
  577. jaclang/vendor/mypy/typeshed/stdlib/select.pyi +162 -0
  578. jaclang/vendor/mypy/typeshed/stdlib/selectors.pyi +85 -0
  579. jaclang/vendor/mypy/typeshed/stdlib/shelve.pyi +64 -0
  580. jaclang/vendor/mypy/typeshed/stdlib/shlex.pyi +47 -0
  581. jaclang/vendor/mypy/typeshed/stdlib/shutil.pyi +239 -0
  582. jaclang/vendor/mypy/typeshed/stdlib/signal.pyi +208 -0
  583. jaclang/vendor/mypy/typeshed/stdlib/site.pyi +33 -0
  584. jaclang/vendor/mypy/typeshed/stdlib/smtpd.pyi +102 -0
  585. jaclang/vendor/mypy/typeshed/stdlib/smtplib.pyi +223 -0
  586. jaclang/vendor/mypy/typeshed/stdlib/sndhdr.pyi +14 -0
  587. jaclang/vendor/mypy/typeshed/stdlib/socket.pyi +881 -0
  588. jaclang/vendor/mypy/typeshed/stdlib/socketserver.pyi +195 -0
  589. jaclang/vendor/mypy/typeshed/stdlib/spwd.pyi +43 -0
  590. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/__init__.pyi +1 -0
  591. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +519 -0
  592. jaclang/vendor/mypy/typeshed/stdlib/sre_compile.pyi +11 -0
  593. jaclang/vendor/mypy/typeshed/stdlib/sre_constants.pyi +132 -0
  594. jaclang/vendor/mypy/typeshed/stdlib/sre_parse.pyi +110 -0
  595. jaclang/vendor/mypy/typeshed/stdlib/ssl.pyi +559 -0
  596. jaclang/vendor/mypy/typeshed/stdlib/stat.pyi +1 -0
  597. jaclang/vendor/mypy/typeshed/stdlib/statistics.pyi +151 -0
  598. jaclang/vendor/mypy/typeshed/stdlib/string.pyi +112 -0
  599. jaclang/vendor/mypy/typeshed/stdlib/stringprep.pyi +27 -0
  600. jaclang/vendor/mypy/typeshed/stdlib/struct.pyi +43 -0
  601. jaclang/vendor/mypy/typeshed/stdlib/subprocess.pyi +2638 -0
  602. jaclang/vendor/mypy/typeshed/stdlib/sunau.pyi +86 -0
  603. jaclang/vendor/mypy/typeshed/stdlib/symbol.pyi +93 -0
  604. jaclang/vendor/mypy/typeshed/stdlib/symtable.pyi +63 -0
  605. jaclang/vendor/mypy/typeshed/stdlib/sys/__init__.pyi +396 -0
  606. jaclang/vendor/mypy/typeshed/stdlib/sys/_monitoring.pyi +54 -0
  607. jaclang/vendor/mypy/typeshed/stdlib/sysconfig.pyi +52 -0
  608. jaclang/vendor/mypy/typeshed/stdlib/syslog.pyi +48 -0
  609. jaclang/vendor/mypy/typeshed/stdlib/tabnanny.pyi +18 -0
  610. jaclang/vendor/mypy/typeshed/stdlib/tarfile.pyi +486 -0
  611. jaclang/vendor/mypy/typeshed/stdlib/telnetlib.pyi +129 -0
  612. jaclang/vendor/mypy/typeshed/stdlib/tempfile.pyi +521 -0
  613. jaclang/vendor/mypy/typeshed/stdlib/termios.pyi +273 -0
  614. jaclang/vendor/mypy/typeshed/stdlib/textwrap.pyi +107 -0
  615. jaclang/vendor/mypy/typeshed/stdlib/this.pyi +2 -0
  616. jaclang/vendor/mypy/typeshed/stdlib/threading.pyi +212 -0
  617. jaclang/vendor/mypy/typeshed/stdlib/time.pyi +122 -0
  618. jaclang/vendor/mypy/typeshed/stdlib/timeit.pyi +46 -0
  619. jaclang/vendor/mypy/typeshed/stdlib/tkinter/__init__.pyi +3950 -0
  620. jaclang/vendor/mypy/typeshed/stdlib/tkinter/colorchooser.pyi +28 -0
  621. jaclang/vendor/mypy/typeshed/stdlib/tkinter/commondialog.pyi +16 -0
  622. jaclang/vendor/mypy/typeshed/stdlib/tkinter/constants.pyi +80 -0
  623. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dialog.pyi +21 -0
  624. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dnd.pyi +20 -0
  625. jaclang/vendor/mypy/typeshed/stdlib/tkinter/filedialog.pyi +173 -0
  626. jaclang/vendor/mypy/typeshed/stdlib/tkinter/font.pyi +148 -0
  627. jaclang/vendor/mypy/typeshed/stdlib/tkinter/messagebox.pyi +60 -0
  628. jaclang/vendor/mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +10 -0
  629. jaclang/vendor/mypy/typeshed/stdlib/tkinter/simpledialog.pyi +54 -0
  630. jaclang/vendor/mypy/typeshed/stdlib/tkinter/tix.pyi +395 -0
  631. jaclang/vendor/mypy/typeshed/stdlib/tkinter/ttk.pyi +1276 -0
  632. jaclang/vendor/mypy/typeshed/stdlib/token.pyi +159 -0
  633. jaclang/vendor/mypy/typeshed/stdlib/tokenize.pyi +185 -0
  634. jaclang/vendor/mypy/typeshed/stdlib/tomllib.pyi +12 -0
  635. jaclang/vendor/mypy/typeshed/stdlib/trace.pyi +114 -0
  636. jaclang/vendor/mypy/typeshed/stdlib/traceback.pyi +297 -0
  637. jaclang/vendor/mypy/typeshed/stdlib/tracemalloc.pyi +142 -0
  638. jaclang/vendor/mypy/typeshed/stdlib/tty.pyi +30 -0
  639. jaclang/vendor/mypy/typeshed/stdlib/turtle.pyi +830 -0
  640. jaclang/vendor/mypy/typeshed/stdlib/types.pyi +647 -0
  641. jaclang/vendor/mypy/typeshed/stdlib/typing.pyi +1059 -0
  642. jaclang/vendor/mypy/typeshed/stdlib/typing_extensions.pyi +524 -0
  643. jaclang/vendor/mypy/typeshed/stdlib/unicodedata.pyi +71 -0
  644. jaclang/vendor/mypy/typeshed/stdlib/unittest/__init__.pyi +72 -0
  645. jaclang/vendor/mypy/typeshed/stdlib/unittest/_log.pyi +34 -0
  646. jaclang/vendor/mypy/typeshed/stdlib/unittest/async_case.pyi +28 -0
  647. jaclang/vendor/mypy/typeshed/stdlib/unittest/case.pyi +481 -0
  648. jaclang/vendor/mypy/typeshed/stdlib/unittest/loader.pyi +71 -0
  649. jaclang/vendor/mypy/typeshed/stdlib/unittest/main.pyi +75 -0
  650. jaclang/vendor/mypy/typeshed/stdlib/unittest/mock.pyi +468 -0
  651. jaclang/vendor/mypy/typeshed/stdlib/unittest/result.pyi +59 -0
  652. jaclang/vendor/mypy/typeshed/stdlib/unittest/runner.pyi +83 -0
  653. jaclang/vendor/mypy/typeshed/stdlib/unittest/signals.pyi +15 -0
  654. jaclang/vendor/mypy/typeshed/stdlib/unittest/suite.pyi +26 -0
  655. jaclang/vendor/mypy/typeshed/stdlib/unittest/util.pyi +31 -0
  656. jaclang/vendor/mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
  657. jaclang/vendor/mypy/typeshed/stdlib/urllib/error.pyi +27 -0
  658. jaclang/vendor/mypy/typeshed/stdlib/urllib/parse.pyi +245 -0
  659. jaclang/vendor/mypy/typeshed/stdlib/urllib/request.pyi +544 -0
  660. jaclang/vendor/mypy/typeshed/stdlib/urllib/response.pyi +50 -0
  661. jaclang/vendor/mypy/typeshed/stdlib/urllib/robotparser.pyi +20 -0
  662. jaclang/vendor/mypy/typeshed/stdlib/uu.pyi +23 -0
  663. jaclang/vendor/mypy/typeshed/stdlib/uuid.pyi +100 -0
  664. jaclang/vendor/mypy/typeshed/stdlib/warnings.pyi +144 -0
  665. jaclang/vendor/mypy/typeshed/stdlib/wave.pyi +87 -0
  666. jaclang/vendor/mypy/typeshed/stdlib/weakref.pyi +173 -0
  667. jaclang/vendor/mypy/typeshed/stdlib/webbrowser.pyi +80 -0
  668. jaclang/vendor/mypy/typeshed/stdlib/winreg.pyi +120 -0
  669. jaclang/vendor/mypy/typeshed/stdlib/winsound.pyi +28 -0
  670. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
  671. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/handlers.pyi +109 -0
  672. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/headers.pyi +28 -0
  673. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/simple_server.pyi +49 -0
  674. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/types.pyi +44 -0
  675. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/util.pyi +31 -0
  676. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/validate.pyi +52 -0
  677. jaclang/vendor/mypy/typeshed/stdlib/xdrlib.pyi +63 -0
  678. jaclang/vendor/mypy/typeshed/stdlib/xml/__init__.pyi +1 -0
  679. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +19 -0
  680. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/__init__.pyi +72 -0
  681. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/domreg.pyi +12 -0
  682. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +111 -0
  683. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minicompat.pyi +22 -0
  684. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minidom.pyi +467 -0
  685. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/pulldom.pyi +101 -0
  686. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +110 -0
  687. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +35 -0
  688. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +49 -0
  689. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +367 -0
  690. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
  691. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +1 -0
  692. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/__init__.pyi +1 -0
  693. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +1 -0
  694. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +1 -0
  695. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +1 -0
  696. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/__init__.pyi +34 -0
  697. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/_exceptions.pyi +21 -0
  698. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/handler.pyi +59 -0
  699. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/saxutils.pyi +71 -0
  700. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +89 -0
  701. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
  702. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/client.pyi +348 -0
  703. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/server.pyi +186 -0
  704. jaclang/vendor/mypy/typeshed/stdlib/xxlimited.pyi +22 -0
  705. jaclang/vendor/mypy/typeshed/stdlib/zipapp.pyi +20 -0
  706. jaclang/vendor/mypy/typeshed/stdlib/zipfile/__init__.pyi +355 -0
  707. jaclang/vendor/mypy/typeshed/stdlib/zipfile/_path.pyi +105 -0
  708. jaclang/vendor/mypy/typeshed/stdlib/zipimport.pyi +40 -0
  709. jaclang/vendor/mypy/typeshed/stdlib/zlib.pyi +63 -0
  710. jaclang/vendor/mypy/typeshed/stdlib/zoneinfo/__init__.pyi +45 -0
  711. jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/@tests/stubtest_allowlist.txt +2 -0
  712. jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/METADATA.toml +4 -0
  713. jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +238 -0
  714. jaclang/vendor/mypy/xml/mypy-html.css +104 -0
  715. jaclang/vendor/mypy/xml/mypy-html.xslt +81 -0
  716. jaclang/vendor/mypy/xml/mypy-txt.xslt +100 -0
  717. jaclang/vendor/mypy/xml/mypy.xsd +50 -0
  718. jaclang/vendor/mypyc/.readthedocs.yaml +18 -0
  719. jaclang/vendor/mypyc/README.md +133 -0
  720. jaclang/vendor/mypyc/doc/Makefile +20 -0
  721. jaclang/vendor/mypyc/doc/bool_operations.rst +27 -0
  722. jaclang/vendor/mypyc/doc/compilation_units.rst +20 -0
  723. jaclang/vendor/mypyc/doc/conf.py +59 -0
  724. jaclang/vendor/mypyc/doc/cpython-timings.md +25 -0
  725. jaclang/vendor/mypyc/doc/dev-intro.md +548 -0
  726. jaclang/vendor/mypyc/doc/dict_operations.rst +59 -0
  727. jaclang/vendor/mypyc/doc/differences_from_python.rst +332 -0
  728. jaclang/vendor/mypyc/doc/float_operations.rst +50 -0
  729. jaclang/vendor/mypyc/doc/future.md +42 -0
  730. jaclang/vendor/mypyc/doc/getting_started.rst +240 -0
  731. jaclang/vendor/mypyc/doc/index.rst +61 -0
  732. jaclang/vendor/mypyc/doc/int_operations.rst +162 -0
  733. jaclang/vendor/mypyc/doc/introduction.rst +150 -0
  734. jaclang/vendor/mypyc/doc/list_operations.rst +65 -0
  735. jaclang/vendor/mypyc/doc/make.bat +35 -0
  736. jaclang/vendor/mypyc/doc/native_classes.rst +206 -0
  737. jaclang/vendor/mypyc/doc/native_operations.rst +55 -0
  738. jaclang/vendor/mypyc/doc/performance_tips_and_tricks.rst +244 -0
  739. jaclang/vendor/mypyc/doc/set_operations.rst +47 -0
  740. jaclang/vendor/mypyc/doc/str_operations.rst +35 -0
  741. jaclang/vendor/mypyc/doc/tuple_operations.rst +33 -0
  742. jaclang/vendor/mypyc/doc/using_type_annotations.rst +398 -0
  743. jaclang/vendor/mypyc/external/googletest/LICENSE +28 -0
  744. jaclang/vendor/mypyc/external/googletest/README.md +280 -0
  745. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-death-test.h +294 -0
  746. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-message.h +250 -0
  747. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h +1444 -0
  748. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h.pump +510 -0
  749. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-printers.h +993 -0
  750. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-spi.h +232 -0
  751. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-test-part.h +179 -0
  752. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-typed-test.h +263 -0
  753. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest.h +2236 -0
  754. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_pred_impl.h +358 -0
  755. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_prod.h +58 -0
  756. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-port.h +69 -0
  757. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  758. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest.h +41 -0
  759. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-death-test-internal.h +319 -0
  760. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-filepath.h +206 -0
  761. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-internal.h +1238 -0
  762. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-linked_ptr.h +243 -0
  763. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h +5146 -0
  764. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +286 -0
  765. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util.h +731 -0
  766. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port-arch.h +93 -0
  767. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port.h +2560 -0
  768. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-string.h +167 -0
  769. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h +1020 -0
  770. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h.pump +347 -0
  771. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h +3331 -0
  772. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h.pump +297 -0
  773. jaclang/vendor/mypyc/external/googletest/make/Makefile +61 -0
  774. jaclang/vendor/mypyc/external/googletest/src/gtest-all.cc +48 -0
  775. jaclang/vendor/mypyc/external/googletest/src/gtest-death-test.cc +1342 -0
  776. jaclang/vendor/mypyc/external/googletest/src/gtest-filepath.cc +387 -0
  777. jaclang/vendor/mypyc/external/googletest/src/gtest-internal-inl.h +1183 -0
  778. jaclang/vendor/mypyc/external/googletest/src/gtest-port.cc +1259 -0
  779. jaclang/vendor/mypyc/external/googletest/src/gtest-printers.cc +373 -0
  780. jaclang/vendor/mypyc/external/googletest/src/gtest-test-part.cc +110 -0
  781. jaclang/vendor/mypyc/external/googletest/src/gtest-typed-test.cc +118 -0
  782. jaclang/vendor/mypyc/external/googletest/src/gtest.cc +5388 -0
  783. jaclang/vendor/mypyc/external/googletest/src/gtest_main.cc +38 -0
  784. jaclang/vendor/mypyc/lib-rt/CPy.h +643 -0
  785. jaclang/vendor/mypyc/lib-rt/bytes_ops.c +143 -0
  786. jaclang/vendor/mypyc/lib-rt/dict_ops.c +446 -0
  787. jaclang/vendor/mypyc/lib-rt/exc_ops.c +259 -0
  788. jaclang/vendor/mypyc/lib-rt/float_ops.c +192 -0
  789. jaclang/vendor/mypyc/lib-rt/generic_ops.c +64 -0
  790. jaclang/vendor/mypyc/lib-rt/getargs.c +450 -0
  791. jaclang/vendor/mypyc/lib-rt/getargsfast.c +569 -0
  792. jaclang/vendor/mypyc/lib-rt/init.c +13 -0
  793. jaclang/vendor/mypyc/lib-rt/int_ops.c +803 -0
  794. jaclang/vendor/mypyc/lib-rt/list_ops.c +335 -0
  795. jaclang/vendor/mypyc/lib-rt/misc_ops.c +942 -0
  796. jaclang/vendor/mypyc/lib-rt/module_shim.tmpl +18 -0
  797. jaclang/vendor/mypyc/lib-rt/mypyc_util.h +118 -0
  798. jaclang/vendor/mypyc/lib-rt/pythoncapi_compat.h +497 -0
  799. jaclang/vendor/mypyc/lib-rt/pythonsupport.h +548 -0
  800. jaclang/vendor/mypyc/lib-rt/set_ops.c +17 -0
  801. jaclang/vendor/mypyc/lib-rt/setup.py +76 -0
  802. jaclang/vendor/mypyc/lib-rt/str_ops.c +241 -0
  803. jaclang/vendor/mypyc/lib-rt/test_capi.cc +585 -0
  804. jaclang/vendor/mypyc/lib-rt/tuple_ops.c +61 -0
  805. jaclang/vendor/mypyc/test-data/alwaysdefined.test +732 -0
  806. jaclang/vendor/mypyc/test-data/analysis.test +603 -0
  807. jaclang/vendor/mypyc/test-data/commandline.test +245 -0
  808. jaclang/vendor/mypyc/test-data/driver/driver.py +50 -0
  809. jaclang/vendor/mypyc/test-data/exceptions-freq.test +125 -0
  810. jaclang/vendor/mypyc/test-data/exceptions.test +713 -0
  811. jaclang/vendor/mypyc/test-data/fixtures/ir.py +850 -0
  812. jaclang/vendor/mypyc/test-data/fixtures/testutil.py +117 -0
  813. jaclang/vendor/mypyc/test-data/fixtures/typing-full.pyi +212 -0
  814. jaclang/vendor/mypyc/test-data/irbuild-any.test +238 -0
  815. jaclang/vendor/mypyc/test-data/irbuild-basic.test +3690 -0
  816. jaclang/vendor/mypyc/test-data/irbuild-bool.test +463 -0
  817. jaclang/vendor/mypyc/test-data/irbuild-bytes.test +184 -0
  818. jaclang/vendor/mypyc/test-data/irbuild-classes.test +1303 -0
  819. jaclang/vendor/mypyc/test-data/irbuild-constant-fold.test +480 -0
  820. jaclang/vendor/mypyc/test-data/irbuild-dict.test +585 -0
  821. jaclang/vendor/mypyc/test-data/irbuild-dunders.test +223 -0
  822. jaclang/vendor/mypyc/test-data/irbuild-float.test +497 -0
  823. jaclang/vendor/mypyc/test-data/irbuild-generics.test +151 -0
  824. jaclang/vendor/mypyc/test-data/irbuild-glue-methods.test +437 -0
  825. jaclang/vendor/mypyc/test-data/irbuild-i16.test +526 -0
  826. jaclang/vendor/mypyc/test-data/irbuild-i32.test +598 -0
  827. jaclang/vendor/mypyc/test-data/irbuild-i64.test +2164 -0
  828. jaclang/vendor/mypyc/test-data/irbuild-int.test +235 -0
  829. jaclang/vendor/mypyc/test-data/irbuild-isinstance.test +109 -0
  830. jaclang/vendor/mypyc/test-data/irbuild-lists.test +547 -0
  831. jaclang/vendor/mypyc/test-data/irbuild-match.test +1708 -0
  832. jaclang/vendor/mypyc/test-data/irbuild-math.test +64 -0
  833. jaclang/vendor/mypyc/test-data/irbuild-nested.test +807 -0
  834. jaclang/vendor/mypyc/test-data/irbuild-optional.test +536 -0
  835. jaclang/vendor/mypyc/test-data/irbuild-set.test +838 -0
  836. jaclang/vendor/mypyc/test-data/irbuild-singledispatch.test +257 -0
  837. jaclang/vendor/mypyc/test-data/irbuild-statements.test +1149 -0
  838. jaclang/vendor/mypyc/test-data/irbuild-str.test +314 -0
  839. jaclang/vendor/mypyc/test-data/irbuild-strip-asserts.test +12 -0
  840. jaclang/vendor/mypyc/test-data/irbuild-try.test +523 -0
  841. jaclang/vendor/mypyc/test-data/irbuild-tuple.test +462 -0
  842. jaclang/vendor/mypyc/test-data/irbuild-u8.test +543 -0
  843. jaclang/vendor/mypyc/test-data/irbuild-unreachable.test +241 -0
  844. jaclang/vendor/mypyc/test-data/irbuild-vectorcall.test +153 -0
  845. jaclang/vendor/mypyc/test-data/refcount.test +1588 -0
  846. jaclang/vendor/mypyc/test-data/run-async.test +145 -0
  847. jaclang/vendor/mypyc/test-data/run-attrs.test +318 -0
  848. jaclang/vendor/mypyc/test-data/run-bench.test +196 -0
  849. jaclang/vendor/mypyc/test-data/run-bools.test +229 -0
  850. jaclang/vendor/mypyc/test-data/run-bytes.test +302 -0
  851. jaclang/vendor/mypyc/test-data/run-classes.test +2505 -0
  852. jaclang/vendor/mypyc/test-data/run-dicts.test +334 -0
  853. jaclang/vendor/mypyc/test-data/run-dunders.test +945 -0
  854. jaclang/vendor/mypyc/test-data/run-exceptions.test +448 -0
  855. jaclang/vendor/mypyc/test-data/run-floats.test +516 -0
  856. jaclang/vendor/mypyc/test-data/run-functions.test +1310 -0
  857. jaclang/vendor/mypyc/test-data/run-generators.test +681 -0
  858. jaclang/vendor/mypyc/test-data/run-i16.test +338 -0
  859. jaclang/vendor/mypyc/test-data/run-i32.test +336 -0
  860. jaclang/vendor/mypyc/test-data/run-i64.test +1519 -0
  861. jaclang/vendor/mypyc/test-data/run-imports.test +265 -0
  862. jaclang/vendor/mypyc/test-data/run-integers.test +540 -0
  863. jaclang/vendor/mypyc/test-data/run-lists.test +411 -0
  864. jaclang/vendor/mypyc/test-data/run-loops.test +485 -0
  865. jaclang/vendor/mypyc/test-data/run-match.test +283 -0
  866. jaclang/vendor/mypyc/test-data/run-math.test +106 -0
  867. jaclang/vendor/mypyc/test-data/run-misc.test +1168 -0
  868. jaclang/vendor/mypyc/test-data/run-multimodule.test +887 -0
  869. jaclang/vendor/mypyc/test-data/run-mypy-sim.test +138 -0
  870. jaclang/vendor/mypyc/test-data/run-primitives.test +375 -0
  871. jaclang/vendor/mypyc/test-data/run-python37.test +159 -0
  872. jaclang/vendor/mypyc/test-data/run-python38.test +88 -0
  873. jaclang/vendor/mypyc/test-data/run-sets.test +150 -0
  874. jaclang/vendor/mypyc/test-data/run-singledispatch.test +698 -0
  875. jaclang/vendor/mypyc/test-data/run-strings.test +641 -0
  876. jaclang/vendor/mypyc/test-data/run-traits.test +411 -0
  877. jaclang/vendor/mypyc/test-data/run-tuples.test +258 -0
  878. jaclang/vendor/mypyc/test-data/run-u8.test +303 -0
  879. jaclang/vendor/pluggy/LICENSE +21 -0
  880. jaclang-0.6.2.dist-info/METADATA +110 -0
  881. jaclang-0.6.2.dist-info/RECORD +1305 -0
  882. {jaclang-0.6.1.dist-info → jaclang-0.6.2.dist-info}/WHEEL +1 -2
  883. jaclang-0.6.2.dist-info/entry_points.txt +3 -0
  884. jaclang/compiler/generated/jac_parser.py +0 -4069
  885. jaclang-0.6.1.dist-info/METADATA +0 -17
  886. jaclang-0.6.1.dist-info/RECORD +0 -430
  887. jaclang-0.6.1.dist-info/entry_points.txt +0 -2
  888. jaclang-0.6.1.dist-info/top_level.txt +0 -1
  889. /jaclang/{compiler/generated/__init__.py → vendor/mypy/typeshed/stdlib/concurrent/__init__.pyi} +0 -0
@@ -0,0 +1,1588 @@
1
+ -- Test cases for reference count insertion.
2
+
3
+ [case testReturnLiteral]
4
+ def f() -> int:
5
+ return 1
6
+ [out]
7
+ def f():
8
+ L0:
9
+ return 2
10
+
11
+ [case testReturnLocal]
12
+ def f() -> int:
13
+ x = 1
14
+ return x
15
+ [out]
16
+ def f():
17
+ x :: int
18
+ L0:
19
+ x = 2
20
+ return x
21
+
22
+ [case testLocalVars]
23
+ def f() -> int:
24
+ x = 1
25
+ y = x
26
+ x = y
27
+ return x
28
+ [out]
29
+ def f():
30
+ x, y :: int
31
+ L0:
32
+ x = 2
33
+ y = x
34
+ x = y
35
+ return x
36
+
37
+ [case testLocalVars2]
38
+ def f() -> int:
39
+ x = 1
40
+ y = x
41
+ z = x
42
+ return y + z
43
+ [out]
44
+ def f():
45
+ x, y, z, r0 :: int
46
+ L0:
47
+ x = 2
48
+ inc_ref x :: int
49
+ y = x
50
+ z = x
51
+ r0 = CPyTagged_Add(y, z)
52
+ dec_ref y :: int
53
+ dec_ref z :: int
54
+ return r0
55
+
56
+ [case testFreeAtReturn]
57
+ def f() -> int:
58
+ x = 1
59
+ y = 2
60
+ if x == 1:
61
+ return x
62
+ return y
63
+ [out]
64
+ def f():
65
+ x, y :: int
66
+ r0 :: bit
67
+ L0:
68
+ x = 2
69
+ y = 4
70
+ r0 = x == 2
71
+ if r0 goto L3 else goto L4 :: bool
72
+ L1:
73
+ return x
74
+ L2:
75
+ return y
76
+ L3:
77
+ dec_ref y :: int
78
+ goto L1
79
+ L4:
80
+ dec_ref x :: int
81
+ goto L2
82
+
83
+ [case testArgumentsInOps]
84
+ def f(a: int, b: int) -> int:
85
+ x = a + 1
86
+ y = x + a
87
+ return y
88
+ [out]
89
+ def f(a, b):
90
+ a, b, r0, x, r1, y :: int
91
+ L0:
92
+ r0 = CPyTagged_Add(a, 2)
93
+ x = r0
94
+ r1 = CPyTagged_Add(x, a)
95
+ dec_ref x :: int
96
+ y = r1
97
+ return y
98
+
99
+ [case testArgumentsInAssign]
100
+ def f(a: int) -> int:
101
+ x = a
102
+ y = a
103
+ x = 1
104
+ return x + y
105
+ [out]
106
+ def f(a):
107
+ a, x, y, r0 :: int
108
+ L0:
109
+ inc_ref a :: int
110
+ x = a
111
+ dec_ref x :: int
112
+ inc_ref a :: int
113
+ y = a
114
+ x = 2
115
+ r0 = CPyTagged_Add(x, y)
116
+ dec_ref x :: int
117
+ dec_ref y :: int
118
+ return r0
119
+
120
+ [case testAssignToArgument1]
121
+ def f(a: int) -> int:
122
+ a = 1
123
+ y = a
124
+ return y
125
+ [out]
126
+ def f(a):
127
+ a, y :: int
128
+ L0:
129
+ a = 2
130
+ y = a
131
+ return y
132
+
133
+ [case testAssignToArgument2]
134
+ def f(a: int) -> int:
135
+ a = 1
136
+ a = 2
137
+ a = 3
138
+ return a
139
+ [out]
140
+ def f(a):
141
+ a :: int
142
+ L0:
143
+ a = 2
144
+ dec_ref a :: int
145
+ a = 4
146
+ dec_ref a :: int
147
+ a = 6
148
+ return a
149
+
150
+ [case testAssignToArgument3]
151
+ def f(a: int) -> int:
152
+ x = 1
153
+ a = x
154
+ y = x
155
+ return a
156
+ [out]
157
+ def f(a):
158
+ a, x, y :: int
159
+ L0:
160
+ x = 2
161
+ inc_ref x :: int
162
+ a = x
163
+ y = x
164
+ dec_ref y :: int
165
+ return a
166
+
167
+ [case testReturnArgument]
168
+ def f(a: int) -> int:
169
+ return a
170
+ [out]
171
+ def f(a):
172
+ a :: int
173
+ L0:
174
+ inc_ref a :: int
175
+ return a
176
+
177
+ [case testConditionalAssignToArgument1]
178
+ def f(a: int) -> int:
179
+ if a == a:
180
+ a = 1
181
+ else:
182
+ x = 2
183
+ y = a + 1
184
+ return y
185
+ [out]
186
+ def f(a):
187
+ a :: int
188
+ r0 :: native_int
189
+ r1, r2, r3 :: bit
190
+ x, r4, y :: int
191
+ L0:
192
+ r0 = a & 1
193
+ r1 = r0 != 0
194
+ if r1 goto L1 else goto L2 :: bool
195
+ L1:
196
+ r2 = CPyTagged_IsEq_(a, a)
197
+ if r2 goto L3 else goto L4 :: bool
198
+ L2:
199
+ r3 = a == a
200
+ if r3 goto L3 else goto L4 :: bool
201
+ L3:
202
+ a = 2
203
+ goto L5
204
+ L4:
205
+ x = 4
206
+ dec_ref x :: int
207
+ goto L6
208
+ L5:
209
+ r4 = CPyTagged_Add(a, 2)
210
+ dec_ref a :: int
211
+ y = r4
212
+ return y
213
+ L6:
214
+ inc_ref a :: int
215
+ goto L5
216
+
217
+ [case testConditionalAssignToArgument2]
218
+ def f(a: int) -> int:
219
+ if a == a:
220
+ x = 2
221
+ else:
222
+ a = 1
223
+ y = a + 1
224
+ return y
225
+ [out]
226
+ def f(a):
227
+ a :: int
228
+ r0 :: native_int
229
+ r1, r2, r3 :: bit
230
+ x, r4, y :: int
231
+ L0:
232
+ r0 = a & 1
233
+ r1 = r0 != 0
234
+ if r1 goto L1 else goto L2 :: bool
235
+ L1:
236
+ r2 = CPyTagged_IsEq_(a, a)
237
+ if r2 goto L3 else goto L4 :: bool
238
+ L2:
239
+ r3 = a == a
240
+ if r3 goto L3 else goto L4 :: bool
241
+ L3:
242
+ x = 4
243
+ dec_ref x :: int
244
+ goto L6
245
+ L4:
246
+ a = 2
247
+ L5:
248
+ r4 = CPyTagged_Add(a, 2)
249
+ dec_ref a :: int
250
+ y = r4
251
+ return y
252
+ L6:
253
+ inc_ref a :: int
254
+ goto L5
255
+
256
+ [case testConditionalAssignToArgument3]
257
+ def f(a: int) -> int:
258
+ if a == a:
259
+ a = 1
260
+ return a
261
+ [out]
262
+ def f(a):
263
+ a :: int
264
+ r0 :: native_int
265
+ r1, r2, r3 :: bit
266
+ L0:
267
+ r0 = a & 1
268
+ r1 = r0 != 0
269
+ if r1 goto L1 else goto L2 :: bool
270
+ L1:
271
+ r2 = CPyTagged_IsEq_(a, a)
272
+ if r2 goto L3 else goto L5 :: bool
273
+ L2:
274
+ r3 = a == a
275
+ if r3 goto L3 else goto L5 :: bool
276
+ L3:
277
+ a = 2
278
+ L4:
279
+ return a
280
+ L5:
281
+ inc_ref a :: int
282
+ goto L4
283
+
284
+ [case testAssignRegisterToItself]
285
+ def f(a: int) -> int:
286
+ a = a
287
+ x = 1
288
+ x = x
289
+ return x + a
290
+ -- This is correct but bad code
291
+ [out]
292
+ def f(a):
293
+ a, x, r0 :: int
294
+ L0:
295
+ inc_ref a :: int
296
+ a = a
297
+ x = 2
298
+ inc_ref x :: int
299
+ dec_ref x :: int
300
+ x = x
301
+ r0 = CPyTagged_Add(x, a)
302
+ dec_ref x :: int
303
+ dec_ref a :: int
304
+ return r0
305
+
306
+ [case testIncrement1]
307
+ def f(a: int) -> int:
308
+ a = a + 1
309
+ x = 1
310
+ x = x + 1
311
+ return a + x
312
+ [out]
313
+ def f(a):
314
+ a, r0, x, r1, r2 :: int
315
+ L0:
316
+ r0 = CPyTagged_Add(a, 2)
317
+ a = r0
318
+ x = 2
319
+ r1 = CPyTagged_Add(x, 2)
320
+ dec_ref x :: int
321
+ x = r1
322
+ r2 = CPyTagged_Add(a, x)
323
+ dec_ref a :: int
324
+ dec_ref x :: int
325
+ return r2
326
+
327
+ [case testIncrement2]
328
+ def f() -> None:
329
+ x = 1
330
+ x = x + 1
331
+ [out]
332
+ def f():
333
+ x, r0 :: int
334
+ L0:
335
+ x = 2
336
+ r0 = CPyTagged_Add(x, 2)
337
+ dec_ref x :: int
338
+ x = r0
339
+ dec_ref x :: int
340
+ return 1
341
+
342
+ [case testAdd1]
343
+ def f() -> None:
344
+ y = 1
345
+ x = y + 1
346
+ [out]
347
+ def f():
348
+ y, r0, x :: int
349
+ L0:
350
+ y = 2
351
+ r0 = CPyTagged_Add(y, 2)
352
+ dec_ref y :: int
353
+ x = r0
354
+ dec_ref x :: int
355
+ return 1
356
+
357
+ [case testAdd2]
358
+ def f(a: int) -> int:
359
+ a = a + a
360
+ x = a
361
+ x = x + x
362
+ return x
363
+ [out]
364
+ def f(a):
365
+ a, r0, x, r1 :: int
366
+ L0:
367
+ r0 = CPyTagged_Add(a, a)
368
+ a = r0
369
+ x = a
370
+ r1 = CPyTagged_Add(x, x)
371
+ dec_ref x :: int
372
+ x = r1
373
+ return x
374
+
375
+ [case testAdd3]
376
+ def f(a: int) -> int:
377
+ x = a + a
378
+ y = x + x
379
+ return y
380
+ [out]
381
+ def f(a):
382
+ a, r0, x, r1, y :: int
383
+ L0:
384
+ r0 = CPyTagged_Add(a, a)
385
+ x = r0
386
+ r1 = CPyTagged_Add(x, x)
387
+ dec_ref x :: int
388
+ y = r1
389
+ return y
390
+
391
+ [case testAdd4]
392
+ def f(a: int) -> None:
393
+ x = a + a
394
+ y = 1
395
+ z = y + y
396
+ [out]
397
+ def f(a):
398
+ a, r0, x, y, r1, z :: int
399
+ L0:
400
+ r0 = CPyTagged_Add(a, a)
401
+ x = r0
402
+ dec_ref x :: int
403
+ y = 2
404
+ r1 = CPyTagged_Add(y, y)
405
+ dec_ref y :: int
406
+ z = r1
407
+ dec_ref z :: int
408
+ return 1
409
+
410
+ [case testAdd5]
411
+ def f(a: int) -> None:
412
+ a = a + a
413
+ x = 1
414
+ x = x + x
415
+ [out]
416
+ def f(a):
417
+ a, r0, x, r1 :: int
418
+ L0:
419
+ r0 = CPyTagged_Add(a, a)
420
+ a = r0
421
+ dec_ref a :: int
422
+ x = 2
423
+ r1 = CPyTagged_Add(x, x)
424
+ dec_ref x :: int
425
+ x = r1
426
+ dec_ref x :: int
427
+ return 1
428
+
429
+ [case testReturnInMiddleOfFunction]
430
+ def f() -> int:
431
+ x = 1
432
+ y = 2
433
+ z = 3
434
+ if z == z:
435
+ return z
436
+ a = 1
437
+ return x + y - a
438
+ [out]
439
+ def f():
440
+ x, y, z :: int
441
+ r0 :: native_int
442
+ r1, r2, r3 :: bit
443
+ a, r4, r5 :: int
444
+ L0:
445
+ x = 2
446
+ y = 4
447
+ z = 6
448
+ r0 = z & 1
449
+ r1 = r0 != 0
450
+ if r1 goto L1 else goto L2 :: bool
451
+ L1:
452
+ r2 = CPyTagged_IsEq_(z, z)
453
+ if r2 goto L5 else goto L6 :: bool
454
+ L2:
455
+ r3 = z == z
456
+ if r3 goto L5 else goto L6 :: bool
457
+ L3:
458
+ return z
459
+ L4:
460
+ a = 2
461
+ r4 = CPyTagged_Add(x, y)
462
+ dec_ref x :: int
463
+ dec_ref y :: int
464
+ r5 = CPyTagged_Subtract(r4, a)
465
+ dec_ref r4 :: int
466
+ dec_ref a :: int
467
+ return r5
468
+ L5:
469
+ dec_ref x :: int
470
+ dec_ref y :: int
471
+ goto L3
472
+ L6:
473
+ dec_ref z :: int
474
+ goto L4
475
+
476
+ [case testLoop]
477
+ def f(a: int) -> int:
478
+ sum = 0
479
+ i = 0
480
+ while i <= a:
481
+ sum = sum + i
482
+ i = i + 1
483
+ return sum
484
+ [out]
485
+ def f(a):
486
+ a, sum, i :: int
487
+ r0 :: native_int
488
+ r1 :: bit
489
+ r2 :: native_int
490
+ r3, r4, r5 :: bit
491
+ r6, r7 :: int
492
+ L0:
493
+ sum = 0
494
+ i = 0
495
+ L1:
496
+ r0 = i & 1
497
+ r1 = r0 != 0
498
+ if r1 goto L3 else goto L2 :: bool
499
+ L2:
500
+ r2 = a & 1
501
+ r3 = r2 != 0
502
+ if r3 goto L3 else goto L4 :: bool
503
+ L3:
504
+ r4 = CPyTagged_IsLt_(a, i)
505
+ if r4 goto L7 else goto L5 :: bool
506
+ L4:
507
+ r5 = i <= a :: signed
508
+ if r5 goto L5 else goto L7 :: bool
509
+ L5:
510
+ r6 = CPyTagged_Add(sum, i)
511
+ dec_ref sum :: int
512
+ sum = r6
513
+ r7 = CPyTagged_Add(i, 2)
514
+ dec_ref i :: int
515
+ i = r7
516
+ goto L1
517
+ L6:
518
+ return sum
519
+ L7:
520
+ dec_ref i :: int
521
+ goto L6
522
+
523
+ [case testCall]
524
+ def f(a: int) -> int:
525
+ return f(a + 1)
526
+ [out]
527
+ def f(a):
528
+ a, r0, r1 :: int
529
+ L0:
530
+ r0 = CPyTagged_Add(a, 2)
531
+ r1 = f(r0)
532
+ dec_ref r0 :: int
533
+ return r1
534
+
535
+ [case testError]
536
+ def f(x: List[int]) -> None: pass # E: Name "List" is not defined \
537
+ # N: Did you forget to import it from "typing"? (Suggestion: "from typing import List")
538
+
539
+ [case testNewList]
540
+ def f() -> int:
541
+ a = [0, 1]
542
+ return 0
543
+ [out]
544
+ def f():
545
+ r0 :: list
546
+ r1, r2 :: object
547
+ r3, r4, r5 :: ptr
548
+ a :: list
549
+ L0:
550
+ r0 = PyList_New(2)
551
+ r1 = object 0
552
+ r2 = object 1
553
+ r3 = get_element_ptr r0 ob_item :: PyListObject
554
+ r4 = load_mem r3 :: ptr*
555
+ inc_ref r1
556
+ set_mem r4, r1 :: builtins.object*
557
+ r5 = r4 + WORD_SIZE*1
558
+ inc_ref r2
559
+ set_mem r5, r2 :: builtins.object*
560
+ a = r0
561
+ dec_ref a
562
+ return 0
563
+
564
+ [case testListSet]
565
+ from typing import List
566
+ def f(a: List[int], b: List[int]) -> None:
567
+ a[0] = b[0]
568
+ [out]
569
+ def f(a, b):
570
+ a, b :: list
571
+ r0 :: object
572
+ r1 :: int
573
+ r2 :: object
574
+ r3 :: bit
575
+ L0:
576
+ r0 = CPyList_GetItemShort(b, 0)
577
+ r1 = unbox(int, r0)
578
+ dec_ref r0
579
+ r2 = box(int, r1)
580
+ r3 = CPyList_SetItem(a, 0, r2)
581
+ return 1
582
+
583
+ [case testTupleRefcount]
584
+ from typing import Tuple
585
+ def f(x: Tuple[Tuple[int, bool], bool]) -> int:
586
+ return x[0][0]
587
+ [out]
588
+ def f(x):
589
+ x :: tuple[tuple[int, bool], bool]
590
+ r0 :: tuple[int, bool]
591
+ r1 :: int
592
+ L0:
593
+ r0 = x[0]
594
+ r1 = r0[0]
595
+ dec_ref r0
596
+ return r1
597
+
598
+ [case testUserClassRefCount]
599
+ class C:
600
+ x: 'C'
601
+ def f() -> None:
602
+ c = C()
603
+ c.x = C()
604
+ [out]
605
+ def f():
606
+ r0, c, r1 :: __main__.C
607
+ r2 :: bool
608
+ L0:
609
+ r0 = C()
610
+ c = r0
611
+ r1 = C()
612
+ c.x = r1; r2 = is_error
613
+ dec_ref c
614
+ return 1
615
+
616
+ [case testCastRefCount]
617
+ class C: pass
618
+
619
+ def f() -> None:
620
+ a = [C()]
621
+ d = a[0]
622
+ [out]
623
+ def f():
624
+ r0 :: __main__.C
625
+ r1 :: list
626
+ r2, r3 :: ptr
627
+ a :: list
628
+ r4 :: object
629
+ r5, d :: __main__.C
630
+ L0:
631
+ r0 = C()
632
+ r1 = PyList_New(1)
633
+ r2 = get_element_ptr r1 ob_item :: PyListObject
634
+ r3 = load_mem r2 :: ptr*
635
+ set_mem r3, r0 :: builtins.object*
636
+ a = r1
637
+ r4 = CPyList_GetItemShort(a, 0)
638
+ dec_ref a
639
+ r5 = cast(__main__.C, r4)
640
+ d = r5
641
+ dec_ref d
642
+ return 1
643
+
644
+ [case testUnaryBranchSpecialCase]
645
+ def f(x: bool) -> int:
646
+ if x:
647
+ return 1
648
+ return 2
649
+ [out]
650
+ def f(x):
651
+ x :: bool
652
+ L0:
653
+ if x goto L1 else goto L2 :: bool
654
+ L1:
655
+ return 2
656
+ L2:
657
+ return 4
658
+
659
+ [case testReturnTuple]
660
+ from typing import Tuple
661
+
662
+ class C: pass
663
+ def f() -> Tuple[C, C]:
664
+ a = C()
665
+ b = C()
666
+ return a, b
667
+ [out]
668
+ def f():
669
+ r0, a, r1, b :: __main__.C
670
+ r2 :: tuple[__main__.C, __main__.C]
671
+ L0:
672
+ r0 = C()
673
+ a = r0
674
+ r1 = C()
675
+ b = r1
676
+ r2 = (a, b)
677
+ return r2
678
+
679
+ [case testDecomposeTuple]
680
+ from typing import Tuple
681
+
682
+ class C:
683
+ a: int
684
+
685
+ def f() -> int:
686
+ x, y = g()
687
+ return x.a + y.a
688
+
689
+ def g() -> Tuple[C, C]:
690
+ return C(), C()
691
+ [out]
692
+ def f():
693
+ r0 :: tuple[__main__.C, __main__.C]
694
+ r1, r2, x, r3, r4, y :: __main__.C
695
+ r5, r6, r7 :: int
696
+ L0:
697
+ r0 = g()
698
+ r1 = borrow r0[0]
699
+ r2 = unborrow r1
700
+ x = r2
701
+ r3 = borrow r0[1]
702
+ r4 = unborrow r3
703
+ y = r4
704
+ r5 = borrow x.a
705
+ r6 = borrow y.a
706
+ r7 = CPyTagged_Add(r5, r6)
707
+ dec_ref x
708
+ dec_ref y
709
+ return r7
710
+ def g():
711
+ r0, r1 :: __main__.C
712
+ r2 :: tuple[__main__.C, __main__.C]
713
+ L0:
714
+ r0 = C()
715
+ r1 = C()
716
+ r2 = (r0, r1)
717
+ return r2
718
+
719
+ [case testUnicodeLiteral]
720
+ def f() -> str:
721
+ return "some string"
722
+ [out]
723
+ def f():
724
+ r0 :: str
725
+ L0:
726
+ r0 = 'some string'
727
+ inc_ref r0
728
+ return r0
729
+
730
+ [case testPyMethodCall]
731
+ def g(x: str) -> int:
732
+ return int(x, base=2)
733
+ [out]
734
+ def g(x):
735
+ x :: str
736
+ r0 :: object
737
+ r1 :: str
738
+ r2 :: tuple
739
+ r3 :: object
740
+ r4 :: dict
741
+ r5 :: object
742
+ r6 :: int
743
+ L0:
744
+ r0 = load_address PyLong_Type
745
+ r1 = 'base'
746
+ r2 = PyTuple_Pack(1, x)
747
+ r3 = object 2
748
+ r4 = CPyDict_Build(1, r1, r3)
749
+ r5 = PyObject_Call(r0, r2, r4)
750
+ dec_ref r2
751
+ dec_ref r4
752
+ r6 = unbox(int, r5)
753
+ dec_ref r5
754
+ return r6
755
+
756
+ [case testListAppend]
757
+ from typing import List
758
+ def f(a: List[int], x: int) -> None:
759
+ a.append(x)
760
+ [out]
761
+ def f(a, x):
762
+ a :: list
763
+ x :: int
764
+ r0 :: object
765
+ r1 :: i32
766
+ r2 :: bit
767
+ L0:
768
+ inc_ref x :: int
769
+ r0 = box(int, x)
770
+ r1 = PyList_Append(a, r0)
771
+ dec_ref r0
772
+ r2 = r1 >= 0 :: signed
773
+ return 1
774
+
775
+ [case testForDict]
776
+ from typing import Dict
777
+
778
+ def f(d: Dict[int, int]) -> None:
779
+ for key in d:
780
+ d[key]
781
+ [out]
782
+ def f(d):
783
+ d :: dict
784
+ r0 :: short_int
785
+ r1 :: native_int
786
+ r2 :: short_int
787
+ r3 :: object
788
+ r4 :: tuple[bool, short_int, object]
789
+ r5 :: short_int
790
+ r6 :: bool
791
+ r7 :: object
792
+ r8, key :: int
793
+ r9, r10 :: object
794
+ r11 :: int
795
+ r12, r13 :: bit
796
+ L0:
797
+ r0 = 0
798
+ r1 = PyDict_Size(d)
799
+ r2 = r1 << 1
800
+ r3 = CPyDict_GetKeysIter(d)
801
+ L1:
802
+ r4 = CPyDict_NextKey(r3, r0)
803
+ r5 = r4[1]
804
+ r0 = r5
805
+ r6 = r4[0]
806
+ if r6 goto L2 else goto L6 :: bool
807
+ L2:
808
+ r7 = r4[2]
809
+ dec_ref r4
810
+ r8 = unbox(int, r7)
811
+ dec_ref r7
812
+ key = r8
813
+ r9 = box(int, key)
814
+ r10 = CPyDict_GetItem(d, r9)
815
+ dec_ref r9
816
+ r11 = unbox(int, r10)
817
+ dec_ref r10
818
+ dec_ref r11 :: int
819
+ L3:
820
+ r12 = CPyDict_CheckSize(d, r2)
821
+ goto L1
822
+ L4:
823
+ r13 = CPy_NoErrOccured()
824
+ L5:
825
+ return 1
826
+ L6:
827
+ dec_ref r3
828
+ dec_ref r4
829
+ goto L4
830
+
831
+ [case testBorrowRefs]
832
+ def make_garbage(arg: object) -> None:
833
+ b = True
834
+ while b:
835
+ arg = None
836
+ b = False
837
+ [out]
838
+ def make_garbage(arg):
839
+ arg :: object
840
+ b :: bool
841
+ r0 :: object
842
+ L0:
843
+ b = 1
844
+ L1:
845
+ if b goto L2 else goto L3 :: bool
846
+ L2:
847
+ r0 = box(None, 1)
848
+ inc_ref r0
849
+ arg = r0
850
+ dec_ref arg
851
+ b = 0
852
+ goto L1
853
+ L3:
854
+ return 1
855
+
856
+ [case testGetElementPtrLifeTime]
857
+ from typing import List
858
+
859
+ def f() -> int:
860
+ x: List[str] = []
861
+ return len(x)
862
+ [out]
863
+ def f():
864
+ r0, x :: list
865
+ r1 :: ptr
866
+ r2 :: native_int
867
+ r3 :: short_int
868
+ L0:
869
+ r0 = PyList_New(0)
870
+ x = r0
871
+ r1 = get_element_ptr x ob_size :: PyVarObject
872
+ r2 = load_mem r1 :: native_int*
873
+ dec_ref x
874
+ r3 = r2 << 1
875
+ return r3
876
+
877
+ [case testSometimesUninitializedVariable]
878
+ def f(x: bool) -> int:
879
+ if x:
880
+ y = 1
881
+ else:
882
+ z = 2
883
+ return y + z
884
+ [out]
885
+ def f(x):
886
+ x :: bool
887
+ r0, y, r1, z :: int
888
+ r2, r3 :: bool
889
+ r4 :: int
890
+ L0:
891
+ r0 = <error> :: int
892
+ y = r0
893
+ r1 = <error> :: int
894
+ z = r1
895
+ if x goto L8 else goto L9 :: bool
896
+ L1:
897
+ y = 2
898
+ goto L3
899
+ L2:
900
+ z = 4
901
+ L3:
902
+ if is_error(y) goto L10 else goto L5
903
+ L4:
904
+ r2 = raise UnboundLocalError('local variable "y" referenced before assignment')
905
+ unreachable
906
+ L5:
907
+ if is_error(z) goto L11 else goto L7
908
+ L6:
909
+ r3 = raise UnboundLocalError('local variable "z" referenced before assignment')
910
+ unreachable
911
+ L7:
912
+ r4 = CPyTagged_Add(y, z)
913
+ xdec_ref y :: int
914
+ xdec_ref z :: int
915
+ return r4
916
+ L8:
917
+ xdec_ref y :: int
918
+ goto L1
919
+ L9:
920
+ xdec_ref z :: int
921
+ goto L2
922
+ L10:
923
+ xdec_ref z :: int
924
+ goto L4
925
+ L11:
926
+ xdec_ref y :: int
927
+ goto L6
928
+
929
+ [case testVectorcall_python3_8]
930
+ from typing import Any
931
+
932
+ def call(f: Any, x: int) -> int:
933
+ return f(x)
934
+ [out]
935
+ def call(f, x):
936
+ f :: object
937
+ x :: int
938
+ r0 :: object
939
+ r1 :: object[1]
940
+ r2 :: object_ptr
941
+ r3 :: object
942
+ r4 :: int
943
+ L0:
944
+ inc_ref x :: int
945
+ r0 = box(int, x)
946
+ r1 = [r0]
947
+ r2 = load_address r1
948
+ r3 = _PyObject_Vectorcall(f, r2, 1, 0)
949
+ dec_ref r0
950
+ r4 = unbox(int, r3)
951
+ dec_ref r3
952
+ return r4
953
+
954
+ [case testVectorcallMethod_python3_9_64bit]
955
+ from typing import Any
956
+
957
+ def call(o: Any, x: int) -> int:
958
+ return o.m(x)
959
+ [out]
960
+ def call(o, x):
961
+ o :: object
962
+ x :: int
963
+ r0 :: str
964
+ r1 :: object
965
+ r2 :: object[2]
966
+ r3 :: object_ptr
967
+ r4 :: object
968
+ r5 :: int
969
+ L0:
970
+ r0 = 'm'
971
+ inc_ref x :: int
972
+ r1 = box(int, x)
973
+ r2 = [o, r1]
974
+ r3 = load_address r2
975
+ r4 = PyObject_VectorcallMethod(r0, r3, 9223372036854775810, 0)
976
+ dec_ref r1
977
+ r5 = unbox(int, r4)
978
+ dec_ref r4
979
+ return r5
980
+
981
+ [case testBorrowAttribute]
982
+ def g() -> int:
983
+ d = D()
984
+ return d.c.x
985
+
986
+ def f(d: D) -> int:
987
+ return d.c.x
988
+
989
+ class C:
990
+ x: int
991
+ class D:
992
+ c: C
993
+ [out]
994
+ def g():
995
+ r0, d :: __main__.D
996
+ r1 :: __main__.C
997
+ r2 :: int
998
+ L0:
999
+ r0 = D()
1000
+ d = r0
1001
+ r1 = borrow d.c
1002
+ r2 = r1.x
1003
+ dec_ref d
1004
+ return r2
1005
+ def f(d):
1006
+ d :: __main__.D
1007
+ r0 :: __main__.C
1008
+ r1 :: int
1009
+ L0:
1010
+ r0 = borrow d.c
1011
+ r1 = r0.x
1012
+ return r1
1013
+
1014
+ [case testBorrowAttributeTwice]
1015
+ def f(e: E) -> int:
1016
+ return e.d.c.x
1017
+
1018
+ class C:
1019
+ x: int
1020
+ class D:
1021
+ c: C
1022
+ class E:
1023
+ d: D
1024
+ [out]
1025
+ def f(e):
1026
+ e :: __main__.E
1027
+ r0 :: __main__.D
1028
+ r1 :: __main__.C
1029
+ r2 :: int
1030
+ L0:
1031
+ r0 = borrow e.d
1032
+ r1 = borrow r0.c
1033
+ r2 = r1.x
1034
+ return r2
1035
+
1036
+ [case testBorrowAttributeIsNone]
1037
+ from typing import Optional
1038
+
1039
+ def f(c: C) -> bool:
1040
+ return c.x is not None
1041
+
1042
+ def g(c: C) -> bool:
1043
+ return c.x is None
1044
+
1045
+ class C:
1046
+ x: Optional[str]
1047
+ [out]
1048
+ def f(c):
1049
+ c :: __main__.C
1050
+ r0 :: union[str, None]
1051
+ r1 :: object
1052
+ r2 :: bit
1053
+ L0:
1054
+ r0 = borrow c.x
1055
+ r1 = load_address _Py_NoneStruct
1056
+ r2 = r0 != r1
1057
+ return r2
1058
+ def g(c):
1059
+ c :: __main__.C
1060
+ r0 :: union[str, None]
1061
+ r1 :: object
1062
+ r2 :: bit
1063
+ L0:
1064
+ r0 = borrow c.x
1065
+ r1 = load_address _Py_NoneStruct
1066
+ r2 = r0 == r1
1067
+ return r2
1068
+
1069
+ [case testBorrowAttributeNarrowOptional]
1070
+ from typing import Optional
1071
+
1072
+ def f(c: C) -> bool:
1073
+ if c.x is not None:
1074
+ return c.x.b
1075
+ return False
1076
+
1077
+ class C:
1078
+ x: Optional[D]
1079
+
1080
+ class D:
1081
+ b: bool
1082
+ [out]
1083
+ def f(c):
1084
+ c :: __main__.C
1085
+ r0 :: union[__main__.D, None]
1086
+ r1 :: object
1087
+ r2 :: bit
1088
+ r3 :: union[__main__.D, None]
1089
+ r4 :: __main__.D
1090
+ r5 :: bool
1091
+ L0:
1092
+ r0 = borrow c.x
1093
+ r1 = load_address _Py_NoneStruct
1094
+ r2 = r0 != r1
1095
+ if r2 goto L1 else goto L2 :: bool
1096
+ L1:
1097
+ r3 = borrow c.x
1098
+ r4 = borrow cast(__main__.D, r3)
1099
+ r5 = r4.b
1100
+ return r5
1101
+ L2:
1102
+ return 0
1103
+
1104
+ [case testBorrowLenArgument]
1105
+ from typing import List
1106
+
1107
+ def f(x: C) -> int:
1108
+ return len(x.a)
1109
+
1110
+ class C:
1111
+ a: List[str]
1112
+ [out]
1113
+ def f(x):
1114
+ x :: __main__.C
1115
+ r0 :: list
1116
+ r1 :: ptr
1117
+ r2 :: native_int
1118
+ r3 :: short_int
1119
+ L0:
1120
+ r0 = borrow x.a
1121
+ r1 = get_element_ptr r0 ob_size :: PyVarObject
1122
+ r2 = load_mem r1 :: native_int*
1123
+ r3 = r2 << 1
1124
+ return r3
1125
+
1126
+ [case testBorrowIsinstanceArgument]
1127
+ from typing import List
1128
+
1129
+ def f(x: C) -> bool:
1130
+ if isinstance(x.a, D):
1131
+ return x.a.b
1132
+ else:
1133
+ return True
1134
+
1135
+ class C:
1136
+ a: object
1137
+
1138
+ class D:
1139
+ b: bool
1140
+ [out]
1141
+ def f(x):
1142
+ x :: __main__.C
1143
+ r0, r1 :: object
1144
+ r2 :: ptr
1145
+ r3 :: object
1146
+ r4 :: bit
1147
+ r5 :: object
1148
+ r6 :: __main__.D
1149
+ r7 :: bool
1150
+ L0:
1151
+ r0 = borrow x.a
1152
+ r1 = __main__.D :: type
1153
+ r2 = get_element_ptr r0 ob_type :: PyObject
1154
+ r3 = load_mem r2 :: builtins.object*
1155
+ r4 = r3 == r1
1156
+ if r4 goto L1 else goto L2 :: bool
1157
+ L1:
1158
+ r5 = borrow x.a
1159
+ r6 = borrow cast(__main__.D, r5)
1160
+ r7 = r6.b
1161
+ return r7
1162
+ L2:
1163
+ return 1
1164
+
1165
+ [case testBorrowListGetItem1]
1166
+ from typing import List
1167
+
1168
+ def literal_index(x: C) -> str:
1169
+ return x.a[0]
1170
+
1171
+ def negative_index(x: C) -> str:
1172
+ return x.a[-1]
1173
+
1174
+ def lvar_index(x: C, n: int) -> str:
1175
+ return x.a[n]
1176
+
1177
+ class C:
1178
+ a: List[str]
1179
+
1180
+ [out]
1181
+ def literal_index(x):
1182
+ x :: __main__.C
1183
+ r0 :: list
1184
+ r1 :: object
1185
+ r2 :: str
1186
+ L0:
1187
+ r0 = borrow x.a
1188
+ r1 = CPyList_GetItemShort(r0, 0)
1189
+ r2 = cast(str, r1)
1190
+ return r2
1191
+ def negative_index(x):
1192
+ x :: __main__.C
1193
+ r0 :: list
1194
+ r1 :: object
1195
+ r2 :: str
1196
+ L0:
1197
+ r0 = borrow x.a
1198
+ r1 = CPyList_GetItemShort(r0, -2)
1199
+ r2 = cast(str, r1)
1200
+ return r2
1201
+ def lvar_index(x, n):
1202
+ x :: __main__.C
1203
+ n :: int
1204
+ r0 :: list
1205
+ r1 :: object
1206
+ r2 :: str
1207
+ L0:
1208
+ r0 = borrow x.a
1209
+ r1 = CPyList_GetItem(r0, n)
1210
+ r2 = cast(str, r1)
1211
+ return r2
1212
+
1213
+ [case testBorrowListGetItem2]
1214
+ from typing import List
1215
+
1216
+ def attr_before_index(x: C) -> str:
1217
+ return x.a[x.n]
1218
+
1219
+ def attr_after_index(a: List[C], i: int) -> int:
1220
+ return a[i].n
1221
+
1222
+ def attr_after_index_literal(a: List[C]) -> int:
1223
+ return a[0].n
1224
+
1225
+ class C:
1226
+ a: List[str]
1227
+ n: int
1228
+ [out]
1229
+ def attr_before_index(x):
1230
+ x :: __main__.C
1231
+ r0 :: list
1232
+ r1 :: int
1233
+ r2 :: object
1234
+ r3 :: str
1235
+ L0:
1236
+ r0 = borrow x.a
1237
+ r1 = borrow x.n
1238
+ r2 = CPyList_GetItem(r0, r1)
1239
+ r3 = cast(str, r2)
1240
+ return r3
1241
+ def attr_after_index(a, i):
1242
+ a :: list
1243
+ i :: int
1244
+ r0 :: object
1245
+ r1 :: __main__.C
1246
+ r2 :: int
1247
+ L0:
1248
+ r0 = CPyList_GetItemBorrow(a, i)
1249
+ r1 = borrow cast(__main__.C, r0)
1250
+ r2 = r1.n
1251
+ return r2
1252
+ def attr_after_index_literal(a):
1253
+ a :: list
1254
+ r0 :: object
1255
+ r1 :: __main__.C
1256
+ r2 :: int
1257
+ L0:
1258
+ r0 = CPyList_GetItemShortBorrow(a, 0)
1259
+ r1 = borrow cast(__main__.C, r0)
1260
+ r2 = r1.n
1261
+ return r2
1262
+
1263
+ [case testCannotBorrowListGetItem]
1264
+ from typing import List
1265
+
1266
+ def func_index(x: C) -> str:
1267
+ return x.a[f()]
1268
+
1269
+ def f() -> int: return 0
1270
+
1271
+ class C:
1272
+ a: List[str]
1273
+ [out]
1274
+ def func_index(x):
1275
+ x :: __main__.C
1276
+ r0 :: list
1277
+ r1 :: int
1278
+ r2 :: object
1279
+ r3 :: str
1280
+ L0:
1281
+ r0 = x.a
1282
+ r1 = f()
1283
+ r2 = CPyList_GetItem(r0, r1)
1284
+ dec_ref r0
1285
+ dec_ref r1 :: int
1286
+ r3 = cast(str, r2)
1287
+ return r3
1288
+ def f():
1289
+ L0:
1290
+ return 0
1291
+
1292
+ [case testBorrowListGetItemKeepAlive]
1293
+ from typing import List
1294
+
1295
+ def f() -> str:
1296
+ a = [C()]
1297
+ return a[0].s
1298
+
1299
+ class C:
1300
+ s: str
1301
+ [out]
1302
+ def f():
1303
+ r0 :: __main__.C
1304
+ r1 :: list
1305
+ r2, r3 :: ptr
1306
+ a :: list
1307
+ r4 :: object
1308
+ r5 :: __main__.C
1309
+ r6 :: str
1310
+ L0:
1311
+ r0 = C()
1312
+ r1 = PyList_New(1)
1313
+ r2 = get_element_ptr r1 ob_item :: PyListObject
1314
+ r3 = load_mem r2 :: ptr*
1315
+ set_mem r3, r0 :: builtins.object*
1316
+ a = r1
1317
+ r4 = CPyList_GetItemShortBorrow(a, 0)
1318
+ r5 = borrow cast(__main__.C, r4)
1319
+ r6 = r5.s
1320
+ dec_ref a
1321
+ return r6
1322
+
1323
+ [case testBorrowSetAttrObject]
1324
+ from typing import Optional
1325
+
1326
+ def f(x: Optional[C]) -> None:
1327
+ if x is not None:
1328
+ x.b = True
1329
+
1330
+ def g(x: D) -> None:
1331
+ x.c.b = False
1332
+
1333
+ class C:
1334
+ b: bool
1335
+
1336
+ class D:
1337
+ c: C
1338
+ [out]
1339
+ def f(x):
1340
+ x :: union[__main__.C, None]
1341
+ r0 :: object
1342
+ r1 :: bit
1343
+ r2 :: __main__.C
1344
+ r3 :: bool
1345
+ L0:
1346
+ r0 = load_address _Py_NoneStruct
1347
+ r1 = x != r0
1348
+ if r1 goto L1 else goto L2 :: bool
1349
+ L1:
1350
+ r2 = borrow cast(__main__.C, x)
1351
+ r2.b = 1; r3 = is_error
1352
+ L2:
1353
+ return 1
1354
+ def g(x):
1355
+ x :: __main__.D
1356
+ r0 :: __main__.C
1357
+ r1 :: bool
1358
+ L0:
1359
+ r0 = borrow x.c
1360
+ r0.b = 0; r1 = is_error
1361
+ return 1
1362
+
1363
+ [case testBorrowIntEquality]
1364
+ def add(c: C) -> bool:
1365
+ return c.x == c.y
1366
+
1367
+ class C:
1368
+ x: int
1369
+ y: int
1370
+ [out]
1371
+ def add(c):
1372
+ c :: __main__.C
1373
+ r0, r1 :: int
1374
+ r2 :: native_int
1375
+ r3, r4 :: bit
1376
+ r5 :: bool
1377
+ r6 :: bit
1378
+ L0:
1379
+ r0 = borrow c.x
1380
+ r1 = borrow c.y
1381
+ r2 = r0 & 1
1382
+ r3 = r2 == 0
1383
+ if r3 goto L1 else goto L2 :: bool
1384
+ L1:
1385
+ r4 = r0 == r1
1386
+ r5 = r4
1387
+ goto L3
1388
+ L2:
1389
+ r6 = CPyTagged_IsEq_(r0, r1)
1390
+ r5 = r6
1391
+ L3:
1392
+ return r5
1393
+
1394
+ [case testBorrowIntLessThan]
1395
+ def add(c: C) -> bool:
1396
+ return c.x < c.y
1397
+
1398
+ class C:
1399
+ x: int
1400
+ y: int
1401
+ [out]
1402
+ def add(c):
1403
+ c :: __main__.C
1404
+ r0, r1 :: int
1405
+ r2 :: native_int
1406
+ r3 :: bit
1407
+ r4 :: native_int
1408
+ r5, r6, r7 :: bit
1409
+ r8 :: bool
1410
+ r9 :: bit
1411
+ L0:
1412
+ r0 = borrow c.x
1413
+ r1 = borrow c.y
1414
+ r2 = r0 & 1
1415
+ r3 = r2 == 0
1416
+ r4 = r1 & 1
1417
+ r5 = r4 == 0
1418
+ r6 = r3 & r5
1419
+ if r6 goto L1 else goto L2 :: bool
1420
+ L1:
1421
+ r7 = r0 < r1 :: signed
1422
+ r8 = r7
1423
+ goto L3
1424
+ L2:
1425
+ r9 = CPyTagged_IsLt_(r0, r1)
1426
+ r8 = r9
1427
+ L3:
1428
+ return r8
1429
+
1430
+ [case testBorrowIntCompareFinal]
1431
+ from typing_extensions import Final
1432
+
1433
+ X: Final = 10
1434
+
1435
+ def add(c: C) -> bool:
1436
+ return c.x == X
1437
+
1438
+ class C:
1439
+ x: int
1440
+ [out]
1441
+ def add(c):
1442
+ c :: __main__.C
1443
+ r0 :: int
1444
+ r1 :: native_int
1445
+ r2, r3 :: bit
1446
+ r4 :: bool
1447
+ r5 :: bit
1448
+ L0:
1449
+ r0 = borrow c.x
1450
+ r1 = r0 & 1
1451
+ r2 = r1 == 0
1452
+ if r2 goto L1 else goto L2 :: bool
1453
+ L1:
1454
+ r3 = r0 == 20
1455
+ r4 = r3
1456
+ goto L3
1457
+ L2:
1458
+ r5 = CPyTagged_IsEq_(r0, 20)
1459
+ r4 = r5
1460
+ L3:
1461
+ return r4
1462
+
1463
+ [case testBorrowIntArithmetic]
1464
+ def add(c: C) -> int:
1465
+ return c.x + c.y
1466
+
1467
+ def sub(c: C) -> int:
1468
+ return c.x - c.y
1469
+
1470
+ class C:
1471
+ x: int
1472
+ y: int
1473
+ [out]
1474
+ def add(c):
1475
+ c :: __main__.C
1476
+ r0, r1, r2 :: int
1477
+ L0:
1478
+ r0 = borrow c.x
1479
+ r1 = borrow c.y
1480
+ r2 = CPyTagged_Add(r0, r1)
1481
+ return r2
1482
+ def sub(c):
1483
+ c :: __main__.C
1484
+ r0, r1, r2 :: int
1485
+ L0:
1486
+ r0 = borrow c.x
1487
+ r1 = borrow c.y
1488
+ r2 = CPyTagged_Subtract(r0, r1)
1489
+ return r2
1490
+
1491
+ [case testBorrowIntComparisonInIf]
1492
+ def add(c: C, n: int) -> bool:
1493
+ if c.x == c.y:
1494
+ return True
1495
+ return False
1496
+
1497
+ class C:
1498
+ x: int
1499
+ y: int
1500
+ [out]
1501
+ def add(c, n):
1502
+ c :: __main__.C
1503
+ n, r0, r1 :: int
1504
+ r2 :: native_int
1505
+ r3, r4, r5 :: bit
1506
+ L0:
1507
+ r0 = borrow c.x
1508
+ r1 = borrow c.y
1509
+ r2 = r0 & 1
1510
+ r3 = r2 != 0
1511
+ if r3 goto L1 else goto L2 :: bool
1512
+ L1:
1513
+ r4 = CPyTagged_IsEq_(r0, r1)
1514
+ if r4 goto L3 else goto L4 :: bool
1515
+ L2:
1516
+ r5 = r0 == r1
1517
+ if r5 goto L3 else goto L4 :: bool
1518
+ L3:
1519
+ return 1
1520
+ L4:
1521
+ return 0
1522
+
1523
+ [case testBorrowIntInPlaceOp]
1524
+ def add(c: C, n: int) -> None:
1525
+ c.x += n
1526
+
1527
+ def sub(c: C, n: int) -> None:
1528
+ c.x -= c.y
1529
+
1530
+ class C:
1531
+ x: int
1532
+ y: int
1533
+ [out]
1534
+ def add(c, n):
1535
+ c :: __main__.C
1536
+ n, r0, r1 :: int
1537
+ r2 :: bool
1538
+ L0:
1539
+ r0 = borrow c.x
1540
+ r1 = CPyTagged_Add(r0, n)
1541
+ c.x = r1; r2 = is_error
1542
+ return 1
1543
+ def sub(c, n):
1544
+ c :: __main__.C
1545
+ n, r0, r1, r2 :: int
1546
+ r3 :: bool
1547
+ L0:
1548
+ r0 = borrow c.x
1549
+ r1 = borrow c.y
1550
+ r2 = CPyTagged_Subtract(r0, r1)
1551
+ c.x = r2; r3 = is_error
1552
+ return 1
1553
+
1554
+ [case testCoerceIntToI64_64bit]
1555
+ from mypy_extensions import i64
1556
+
1557
+ def f(x: int) -> i64:
1558
+ # TODO: On the fast path we shouldn't have a decref. Once we have high-level IR,
1559
+ # coercion from int to i64 can be a single op, which makes it easier to
1560
+ # generate optimal refcount handling for this case.
1561
+ return x + 1
1562
+ [out]
1563
+ def f(x):
1564
+ x, r0 :: int
1565
+ r1 :: native_int
1566
+ r2 :: bit
1567
+ r3, r4 :: i64
1568
+ r5 :: ptr
1569
+ r6 :: c_ptr
1570
+ r7 :: i64
1571
+ L0:
1572
+ r0 = CPyTagged_Add(x, 2)
1573
+ r1 = r0 & 1
1574
+ r2 = r1 == 0
1575
+ if r2 goto L1 else goto L2 :: bool
1576
+ L1:
1577
+ r3 = r0 >> 1
1578
+ dec_ref r0 :: int
1579
+ r4 = r3
1580
+ goto L3
1581
+ L2:
1582
+ r5 = r0 ^ 1
1583
+ r6 = r5
1584
+ r7 = CPyLong_AsInt64(r6)
1585
+ r4 = r7
1586
+ dec_ref r0 :: int
1587
+ L3:
1588
+ return r4