jaclang 0.8.7__py3-none-any.whl → 0.8.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of jaclang might be problematic. Click here for more details.

Files changed (89) hide show
  1. jaclang/cli/cli.py +13 -27
  2. jaclang/cli/cmdreg.py +44 -0
  3. jaclang/compiler/constant.py +0 -1
  4. jaclang/compiler/jac.lark +3 -6
  5. jaclang/compiler/larkparse/jac_parser.py +2 -2
  6. jaclang/compiler/parser.py +213 -34
  7. jaclang/compiler/passes/main/__init__.py +2 -4
  8. jaclang/compiler/passes/main/def_use_pass.py +0 -4
  9. jaclang/compiler/passes/main/predynamo_pass.py +221 -0
  10. jaclang/compiler/passes/main/pyast_gen_pass.py +70 -52
  11. jaclang/compiler/passes/main/pyast_load_pass.py +52 -20
  12. jaclang/compiler/passes/main/sym_tab_build_pass.py +1 -1
  13. jaclang/compiler/passes/main/tests/fixtures/checker/import_sym.jac +2 -0
  14. jaclang/compiler/passes/main/tests/fixtures/checker/import_sym_test.jac +6 -0
  15. jaclang/compiler/passes/main/tests/fixtures/checker/imported_sym.jac +5 -0
  16. jaclang/compiler/passes/main/tests/fixtures/checker_arg_param_match.jac +37 -0
  17. jaclang/compiler/passes/main/tests/fixtures/checker_arity.jac +18 -0
  18. jaclang/compiler/passes/main/tests/fixtures/checker_cat_is_animal.jac +18 -0
  19. jaclang/compiler/passes/main/tests/fixtures/checker_float.jac +7 -0
  20. jaclang/compiler/passes/main/tests/fixtures/checker_param_types.jac +11 -0
  21. jaclang/compiler/passes/main/tests/fixtures/checker_self_type.jac +9 -0
  22. jaclang/compiler/passes/main/tests/fixtures/checker_sym_inherit.jac +42 -0
  23. jaclang/compiler/passes/main/tests/fixtures/predynamo_fix3.jac +43 -0
  24. jaclang/compiler/passes/main/tests/fixtures/predynamo_where_assign.jac +13 -0
  25. jaclang/compiler/passes/main/tests/fixtures/predynamo_where_return.jac +11 -0
  26. jaclang/compiler/passes/main/tests/test_checker_pass.py +191 -0
  27. jaclang/compiler/passes/main/tests/test_predynamo_pass.py +57 -0
  28. jaclang/compiler/passes/main/type_checker_pass.py +29 -73
  29. jaclang/compiler/passes/tool/doc_ir_gen_pass.py +204 -44
  30. jaclang/compiler/passes/tool/jac_formatter_pass.py +119 -69
  31. jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac +3 -3
  32. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/triple_quoted_string.jac +4 -5
  33. jaclang/compiler/passes/tool/tests/fixtures/tagbreak.jac +171 -11
  34. jaclang/compiler/passes/transform.py +12 -8
  35. jaclang/compiler/program.py +14 -6
  36. jaclang/compiler/tests/fixtures/jac_import_py_files.py +4 -0
  37. jaclang/compiler/tests/fixtures/jac_module.jac +3 -0
  38. jaclang/compiler/tests/fixtures/multiple_syntax_errors.jac +10 -0
  39. jaclang/compiler/tests/fixtures/python_module.py +1 -0
  40. jaclang/compiler/tests/test_importer.py +39 -0
  41. jaclang/compiler/tests/test_parser.py +49 -0
  42. jaclang/compiler/type_system/type_evaluator.py +351 -67
  43. jaclang/compiler/type_system/type_utils.py +246 -0
  44. jaclang/compiler/type_system/types.py +58 -2
  45. jaclang/compiler/unitree.py +79 -94
  46. jaclang/langserve/engine.jac +138 -159
  47. jaclang/langserve/server.jac +25 -1
  48. jaclang/langserve/tests/fixtures/circle.jac +3 -3
  49. jaclang/langserve/tests/fixtures/circle_err.jac +3 -3
  50. jaclang/langserve/tests/fixtures/circle_pure.test.jac +3 -3
  51. jaclang/langserve/tests/fixtures/completion_test_err.jac +10 -0
  52. jaclang/langserve/tests/server_test/circle_template.jac +80 -0
  53. jaclang/langserve/tests/server_test/glob_template.jac +4 -0
  54. jaclang/langserve/tests/server_test/test_lang_serve.py +154 -309
  55. jaclang/langserve/tests/server_test/utils.py +153 -116
  56. jaclang/langserve/tests/test_server.py +21 -84
  57. jaclang/langserve/utils.jac +12 -15
  58. jaclang/runtimelib/machine.py +7 -0
  59. jaclang/runtimelib/meta_importer.py +27 -1
  60. jaclang/runtimelib/tests/fixtures/custom_access_validation.jac +1 -1
  61. jaclang/runtimelib/tests/fixtures/savable_object.jac +2 -2
  62. jaclang/settings.py +18 -14
  63. jaclang/tests/fixtures/abc_check.jac +3 -3
  64. jaclang/tests/fixtures/arch_rel_import_creation.jac +12 -12
  65. jaclang/tests/fixtures/chandra_bugs2.jac +3 -3
  66. jaclang/tests/fixtures/create_dynamic_archetype.jac +13 -13
  67. jaclang/tests/fixtures/maxfail_run_test.jac +4 -4
  68. jaclang/tests/fixtures/params/param_syntax_err.jac +9 -0
  69. jaclang/tests/fixtures/params/test_complex_params.jac +42 -0
  70. jaclang/tests/fixtures/params/test_failing_kwonly.jac +207 -0
  71. jaclang/tests/fixtures/params/test_failing_posonly.jac +116 -0
  72. jaclang/tests/fixtures/params/test_failing_varargs.jac +300 -0
  73. jaclang/tests/fixtures/params/test_kwonly_params.jac +29 -0
  74. jaclang/tests/fixtures/py2jac_params.py +8 -0
  75. jaclang/tests/fixtures/run_test.jac +4 -4
  76. jaclang/tests/test_cli.py +37 -1
  77. jaclang/tests/test_language.py +74 -16
  78. jaclang/utils/helpers.py +47 -2
  79. jaclang/utils/module_resolver.py +10 -0
  80. jaclang/utils/test.py +8 -0
  81. jaclang/utils/treeprinter.py +0 -18
  82. {jaclang-0.8.7.dist-info → jaclang-0.8.8.dist-info}/METADATA +1 -2
  83. {jaclang-0.8.7.dist-info → jaclang-0.8.8.dist-info}/RECORD +85 -60
  84. {jaclang-0.8.7.dist-info → jaclang-0.8.8.dist-info}/WHEEL +1 -1
  85. jaclang/compiler/passes/main/inheritance_pass.py +0 -131
  86. jaclang/langserve/dev_engine.jac +0 -645
  87. jaclang/langserve/dev_server.jac +0 -201
  88. jaclang/langserve/tests/server_test/code_test.py +0 -0
  89. {jaclang-0.8.7.dist-info → jaclang-0.8.8.dist-info}/entry_points.txt +0 -0
jaclang/utils/test.py CHANGED
@@ -68,6 +68,14 @@ class TestCase(_TestCase):
68
68
  )
69
69
  return os.path.abspath(file_path)
70
70
 
71
+ def lang_fixture_abs_path(self, file: str) -> str:
72
+ """Language fixture abs path."""
73
+ fixture_src = jaclang.__file__
74
+ file_path = os.path.join(
75
+ os.path.dirname(fixture_src), "tests", "fixtures", file
76
+ )
77
+ return os.path.abspath(file_path)
78
+
71
79
 
72
80
  class TestCaseMicroSuite(TestCase):
73
81
  """Base test case for Jaseci."""
@@ -391,20 +391,6 @@ def _build_symbol_tree_common(
391
391
  children = SymbolTree(node_name="Sub Tables", parent=root)
392
392
 
393
393
  syms_to_iterate = set(node.names_in_scope.values())
394
- for inhrited_symtab in node.inherited_scope:
395
- for inhrited_sym in inhrited_symtab.symbols:
396
- sym = inhrited_symtab.lookup(inhrited_sym)
397
- assert sym is not None
398
- syms_to_iterate.add(sym)
399
-
400
- for stab in node.inherited_scope:
401
- if stab.load_all_symbols:
402
- syms_to_iterate.update(list(stab.base_symbol_table.names_in_scope.values()))
403
- else:
404
- for sname in stab.symbols:
405
- sym = stab.base_symbol_table.lookup(sname)
406
- assert sym is not None
407
- syms_to_iterate.add(sym)
408
394
 
409
395
  for sym in syms_to_iterate:
410
396
  symbol_node = SymbolTree(node_name=f"{sym.sym_name}", parent=symbols)
@@ -437,10 +423,6 @@ def _build_symbol_tree_common(
437
423
  continue
438
424
  _build_symbol_tree_common(k, children)
439
425
 
440
- for k2 in node.inherited_scope:
441
- if k2.base_symbol_table.scope_name == "builtins":
442
- continue
443
- _build_symbol_tree_common(k2.base_symbol_table, children)
444
426
  return root
445
427
 
446
428
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaclang
3
- Version: 0.8.7
3
+ Version: 0.8.8
4
4
  Summary: Jac is a unique and powerful programming language that runs on top of Python, offering an unprecedented level of intelligence and intuitive understanding.
5
5
  License: MIT
6
6
  Keywords: jac,jaclang,jaseci,python,programming-language,machine-learning,artificial-intelligence
@@ -19,7 +19,6 @@ Provides-Extra: all
19
19
  Provides-Extra: cloud
20
20
  Provides-Extra: llm
21
21
  Provides-Extra: streamlit
22
- Requires-Dist: mypy (>=1.15.0,<2.0.0)
23
22
  Project-URL: Documentation, https://jac-lang.org
24
23
  Project-URL: Homepage, https://jaseci.org
25
24
  Project-URL: Repository, https://github.com/Jaseci-Labs/jaclang
@@ -2,30 +2,30 @@ jaclang/__init__.py,sha256=Na5dttNt9pd93nNzi7xej7S_FAZ3_CTDZUv7tWEGw_c,490
2
2
  jaclang/cli/.gitignore,sha256=NYuons2lzuCpCdefMnztZxeSMgtPVJF6R6zSgVDOV20,27
3
3
  jaclang/cli/__init__.py,sha256=7aaPgYddIAHBvkdv36ngbfwsimMnfGaTDcaHYMg_vf4,23
4
4
  jaclang/cli/cli.md,sha256=l12Ev7jr29DFimpGAAoS9NLCLQlMQmM38-ogGFEdVSw,6072
5
- jaclang/cli/cli.py,sha256=rDZ6cGqvfgEAcSPWGHng7D8Bo11X0taiObQUMg_jRnQ,22920
6
- jaclang/cli/cmdreg.py,sha256=cRvtESjnwstjYRVD9u5PuTzxO9AZVsa3zSc6Qr1dSMs,8883
5
+ jaclang/cli/cli.py,sha256=xL1w0KH9wUo8Xxp0xz4DUfKGf056EENQnaAXf90QRAw,22747
6
+ jaclang/cli/cmdreg.py,sha256=AjsIpIN1qlfIeGjshezeXEFrM5m5HgUoVBCWwkKCPg4,10541
7
7
  jaclang/compiler/__init__.py,sha256=6huVTxA1YAjWViq_7vrbKNYi_Q9DMTMkmURlaetyooA,2526
8
8
  jaclang/compiler/codeinfo.py,sha256=ZOSAp1m3dBA8UF-YUz6H6l3wDs1EcuY4xWp13XmgHCo,2332
9
- jaclang/compiler/constant.py,sha256=tE92AuqJkP6pwHD0zyL3N1gzmz4K-Xtl74Gad719jMk,8192
10
- jaclang/compiler/jac.lark,sha256=EvWXizKcRsVQcVY8emy1X83Dj4xWCucz5j9WoFH7qYM,18310
9
+ jaclang/compiler/constant.py,sha256=puxyRKme3lwKnBgxzh0a7JRQnuMgRGoWe6fmVO5OzAA,8166
10
+ jaclang/compiler/jac.lark,sha256=q84w_2VKCFlTmudVpTdXu2pxCHhhFasoFrxi24jyTRY,18247
11
11
  jaclang/compiler/larkparse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- jaclang/compiler/larkparse/jac_parser.py,sha256=Drcj6BXsuUm9VzwcCuC6xe9KFVKPVlSsMfwSQtBQTJY,309222
13
- jaclang/compiler/parser.py,sha256=a9CDYGKzz1hNWXSaojaTebWFjp41Mi87IuwZ2rr-7g8,106012
12
+ jaclang/compiler/larkparse/jac_parser.py,sha256=WATX9e77KNvzSdnPgHfTO8-vb_ELXgwE_6_IxeJvN6s,314110
13
+ jaclang/compiler/parser.py,sha256=wwL31ablE6vIH3phbCeL0zEAxsQ5zBWeDj212AGi3iU,113899
14
14
  jaclang/compiler/passes/__init__.py,sha256=gQjeT9UTNAHTgOvRX9zeY20jC22cZVl2HhKuUKZo66M,100
15
- jaclang/compiler/passes/main/__init__.py,sha256=NE1KI1NdaY3RVQh5JcYFaDHfG1fRd_tkntnnKR2ty6U,1401
15
+ jaclang/compiler/passes/main/__init__.py,sha256=qdj1KsZ19rxzlj7W3Jj7DBID8bJqTNs5XZtAOb3paWc,1313
16
16
  jaclang/compiler/passes/main/annex_pass.py,sha256=EcMmXTMg8H3VoOCkxHUnCSWzJJykE1U_5YRuKF1VpYw,3082
17
17
  jaclang/compiler/passes/main/binder_pass.py,sha256=jSMpIGDYvb2AVp8qgvE6YTHbIwfwjD5oZxxXQ5ZDn_c,22000
18
18
  jaclang/compiler/passes/main/cfg_build_pass.py,sha256=onp3dmcjkcQEuHkbb98CmxtK_4IbIBr_v-25VZYR5kw,12952
19
19
  jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=AYhqi5ZFzUQyrJVFAPa9H8Bf0FZj4wZau16pTpMBib4,10143
20
- jaclang/compiler/passes/main/def_use_pass.py,sha256=y35cYo0bmVUUNZNnabvCZ9OqGwZTBPpRjlWV3GTH7VY,4888
20
+ jaclang/compiler/passes/main/def_use_pass.py,sha256=MwjeL0OuCIjEUfZEr_bwYCsgU4nFAPlYQHjwVk0ss-A,4735
21
21
  jaclang/compiler/passes/main/import_pass.py,sha256=nMoFbNIFzZ2sThnvapVvw6IZtoxeycuK7XaDx5AB3Uk,4696
22
- jaclang/compiler/passes/main/inheritance_pass.py,sha256=-qD8NeqUqmdskBBkOEm4L81UPucbP_BL9sEqOp7vYd4,5530
23
- jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=dH3KSChFXavjd_rG-ndniaRYyQb7iWcJNR-mNMwB0qo,110958
24
- jaclang/compiler/passes/main/pyast_load_pass.py,sha256=gwESgmfd9SYafjQrz6U042pagq9QY46dIN0yCzRGhZw,85386
22
+ jaclang/compiler/passes/main/predynamo_pass.py,sha256=wfNT7ZYyrM0rzO5LJ8PGyTX-qb3R4agkHZSeNpm-afc,8737
23
+ jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=k-V6w6X4yDbVLrM8Dmr3Jvwnrkc4H1v2ZSkh5hcf8ao,111948
24
+ jaclang/compiler/passes/main/pyast_load_pass.py,sha256=Iw7w26V0LJT78_PJUDaiUonqSspdH-ROZVtomuKIiOI,86467
25
25
  jaclang/compiler/passes/main/pybc_gen_pass.py,sha256=KUQ31396CBb_ib85rYL_QhvHY75ZxyJm8qSps8KYSyE,1876
26
26
  jaclang/compiler/passes/main/pyjac_ast_link_pass.py,sha256=_4l6CLZ_UHDSD0aJyyGesAvY0BSgWtc4F7Deikqgbko,5584
27
27
  jaclang/compiler/passes/main/sem_def_match_pass.py,sha256=txRK3RAtleQsR9sEVIxaWLqy_pTPJEhW3eE2wYKRBSc,2755
28
- jaclang/compiler/passes/main/sym_tab_build_pass.py,sha256=1pysiMENIlCg2ngHk2T_af1XGksg1u5YFH5VbIlG7CM,7980
28
+ jaclang/compiler/passes/main/sym_tab_build_pass.py,sha256=SK2_rfE9bZ_lrfpy4V9EirbGH5S16UqgXDCHpVSdVnE,7941
29
29
  jaclang/compiler/passes/main/sym_tab_link_pass.py,sha256=2sqSmgxFd4YQZT4CiPxcfRi4Nrlv-ETP82_tSnYuFGA,5497
30
30
  jaclang/compiler/passes/main/tests/__init__.py,sha256=RgheAgh-SqGTa-4kBOY-V-oz8bzMmDWxavFqwlYjfgE,36
31
31
  jaclang/compiler/passes/main/tests/fixtures/M1.jac,sha256=9nAwZ9zKuIWEsr9rne9zC2T1lssqiE6oTp8Ubt423LI,14
@@ -48,15 +48,25 @@ jaclang/compiler/passes/main/tests/fixtures/cfg_gen.jac,sha256=7dAM-0Lm60dnJXnpx
48
48
  jaclang/compiler/passes/main/tests/fixtures/cfg_has_var.jac,sha256=WzaGKic1i66xxanDWHTLVb16WVyddv39VpgbtwrQdFg,233
49
49
  jaclang/compiler/passes/main/tests/fixtures/cfg_if_no_else.jac,sha256=f0nIfUHs2adV_GL17IjcGTkm-WIIJFZHDCnzksXbS1U,180
50
50
  jaclang/compiler/passes/main/tests/fixtures/cfg_return.jac,sha256=gGG8RgpR3qoRzS2RwoFndajN1lLQMqavpYPovS5QEBs,137
51
+ jaclang/compiler/passes/main/tests/fixtures/checker/import_sym.jac,sha256=1MWXmcPJyXG_tu4kXzsQmCk3xaeeZ6VFKPDhcPicdgs,33
52
+ jaclang/compiler/passes/main/tests/fixtures/checker/import_sym_test.jac,sha256=YLkNz7iEuY4CqmQ-Rd_28rvh_pk-7yaVdN6yn1ZlRbE,109
53
+ jaclang/compiler/passes/main/tests/fixtures/checker/imported_sym.jac,sha256=3A3rshp13rAvrx2z9TnAP7hEFBx7RQpRfQTdpOcxFXs,41
54
+ jaclang/compiler/passes/main/tests/fixtures/checker_arg_param_match.jac,sha256=FW44dOYnQVFh14icQQDlRtPLTMxQtb2QymiZOkNWau8,1066
55
+ jaclang/compiler/passes/main/tests/fixtures/checker_arity.jac,sha256=AlpKPlOcmEmABMOHlWdGTm73DBwiErpUmlzXfRlRJ_Y,404
51
56
  jaclang/compiler/passes/main/tests/fixtures/checker_binary_op.jac,sha256=4hS8q6UlavBdgl1Ut81yd25Z7jxKCZMhRRh7q3Qg3AQ,285
52
57
  jaclang/compiler/passes/main/tests/fixtures/checker_call_expr_class.jac,sha256=L9SOnDYfV4B8tleSWLV3aSHS2VGGySTe0JZDhEfK8HI,189
58
+ jaclang/compiler/passes/main/tests/fixtures/checker_cat_is_animal.jac,sha256=JjNUEnjJc8cWQFRsMZO3PmbcaCbmayyYnCeBcIvwAFo,329
53
59
  jaclang/compiler/passes/main/tests/fixtures/checker_cyclic_symbol.jac,sha256=GF5Ezug1A5-tr5emjJTojIW5d8_A6peNb2q9hWs-bXE,27
54
60
  jaclang/compiler/passes/main/tests/fixtures/checker_expr_call.jac,sha256=FDFptRXbzgOYv9q-mDNmFXnetAbknUJi-zEAiPzKZpk,114
61
+ jaclang/compiler/passes/main/tests/fixtures/checker_float.jac,sha256=QOKhNhX9VjWI2goG9XcI1Ul6FHy6WPTu7RK3WsjEpxo,116
55
62
  jaclang/compiler/passes/main/tests/fixtures/checker_import_missing_module.jac,sha256=agWXZZ3ZidLeVkcWkv_TA0ktHiSS13rDLFo3HZnbJXk,348
56
63
  jaclang/compiler/passes/main/tests/fixtures/checker_imported.jac,sha256=6wjD1NQMbsm0vKf_qCpsr1csqY5a52P8I2je0rk0Qaw,26
57
64
  jaclang/compiler/passes/main/tests/fixtures/checker_importer.jac,sha256=Z6DjHVQDnyAkUDOtZiU-GpHO2eUjXY9_aor5ySLG-3U,121
58
65
  jaclang/compiler/passes/main/tests/fixtures/checker_magic_call.jac,sha256=wrR9zviHd8tyIFjPZo51vv9xOcq8Xvzcpy11DXKL1Yo,199
59
66
  jaclang/compiler/passes/main/tests/fixtures/checker_mod_path.jac,sha256=Mp-tTqOX6YHSXIE2YiR2gVMWGiB2oYNxi_wL8zK-4FY,93
67
+ jaclang/compiler/passes/main/tests/fixtures/checker_param_types.jac,sha256=TKr3dS39Do13r2gdNpA62w5akCuSIVjMGDhODC-DoQI,113
68
+ jaclang/compiler/passes/main/tests/fixtures/checker_self_type.jac,sha256=uRhUiGjijmu7aTPHpB-UTOKcX7W6Z1ynTjCy47HrUDQ,121
69
+ jaclang/compiler/passes/main/tests/fixtures/checker_sym_inherit.jac,sha256=N3afEcqvp9KSlFfE-zyTbWVHh_eP8eDOJHfW0OPMaSc,708
60
70
  jaclang/compiler/passes/main/tests/fixtures/circular_import.jac,sha256=e6zoQIrSRyToU_rr9be_OK-TGAQzuupKDYfwaS4LrJA,125
61
71
  jaclang/compiler/passes/main/tests/fixtures/codegen_sem.jac,sha256=2K-sPnnuKWvUPvutYhQ6I2voxEgI4xVvl0xf3nZvIRA,1451
62
72
  jaclang/compiler/passes/main/tests/fixtures/codegentext.jac,sha256=U9xyk8hDlWM3jUaozQXOD61f5p9SI-_QfDxA68DUYds,562
@@ -85,6 +95,9 @@ jaclang/compiler/passes/main/tests/fixtures/mtest.impl.jac,sha256=nLf_0rBWPRywLy
85
95
  jaclang/compiler/passes/main/tests/fixtures/mtest.jac,sha256=lpL2zfy6-QAgq0tVL02wt2ukn8lMQzCG9xNhq6_G8cs,67
86
96
  jaclang/compiler/passes/main/tests/fixtures/multi_def_err.jac,sha256=BxgmNUdz76gKLi6PXnLZE9rartodMgch5ydpGrd25Ec,87
87
97
  jaclang/compiler/passes/main/tests/fixtures/nested_impls.jac,sha256=t5hGg8tMJtXQx7alHmChPipGFbmNDl_WM6zolORdhWI,1003
98
+ jaclang/compiler/passes/main/tests/fixtures/predynamo_fix3.jac,sha256=KxIbyHWcNCdzcD_73GBZGdvvwqkljPNzLKJpsvSxmTM,1546
99
+ jaclang/compiler/passes/main/tests/fixtures/predynamo_where_assign.jac,sha256=N_iyfQ2Krv5tgLxo011cSHsiC9AvahDODNeMxuFrVnw,220
100
+ jaclang/compiler/passes/main/tests/fixtures/predynamo_where_return.jac,sha256=HEto1bnV4inD9kO7kDEaFVjJphwXMc3C-883Ea6tdfU,204
88
101
  jaclang/compiler/passes/main/tests/fixtures/py_imp_test.jac,sha256=H2-eoukWnf7v6XRfHdoqHukkqn-NPLsw5-aNotTl-fQ,907
89
102
  jaclang/compiler/passes/main/tests/fixtures/pygame_mock/__init__.py,sha256=Y1RSbBzcwGV_WnF8ialRg5yO_Bv-crpZtU2v7JRsAUk,94
90
103
  jaclang/compiler/passes/main/tests/fixtures/pygame_mock/__init__.pyi,sha256=Y1RSbBzcwGV_WnF8ialRg5yO_Bv-crpZtU2v7JRsAUk,94
@@ -104,10 +117,11 @@ jaclang/compiler/passes/main/tests/fixtures/type_annotation_assignment.jac,sha25
104
117
  jaclang/compiler/passes/main/tests/fixtures/type_info.jac,sha256=Gbatf5_V_2uFVF0l8ICbW8t7N7FKCL-1sE9CbEogT4A,660
105
118
  jaclang/compiler/passes/main/tests/test_binder_pass.py,sha256=0IQPqIW_bwXgMBTIlnBG16wB3W6ExPYC5Z7kU7VzhZ8,3661
106
119
  jaclang/compiler/passes/main/tests/test_cfg_build_pass.py,sha256=BFHuvKbh6mTjemzRRMIAlATar-UDWT8uj8iVro1qsVE,5068
107
- jaclang/compiler/passes/main/tests/test_checker_pass.py,sha256=5EKPVMcU_bLKFtl4arRKm_uu01iSAGkDFgcQ4PmMh-E,6510
120
+ jaclang/compiler/passes/main/tests/test_checker_pass.py,sha256=jdZHCcKfy32kYHYc9VLDgPC9qjzIE2yYRqVSO_rhu7w,14239
108
121
  jaclang/compiler/passes/main/tests/test_decl_impl_match_pass.py,sha256=HCu5KO1N7kVonIM2N1A9BGRpfnJ4VDwR8TXJGTuKn3M,6039
109
122
  jaclang/compiler/passes/main/tests/test_def_use_pass.py,sha256=CzIcSoUe_wk8gNW6NwF0w_MW9y-13VBLjHZKGYQ4aaE,771
110
123
  jaclang/compiler/passes/main/tests/test_import_pass.py,sha256=2FNsF6Z4zRUsxWOOcbH4fFyvc48FCAP_Yq8qpne04-U,4985
124
+ jaclang/compiler/passes/main/tests/test_predynamo_pass.py,sha256=Wqz61zMbQXLYu6NVcB8Ts1a6TzNg3BdR1qnqPpb3Ut0,2171
111
125
  jaclang/compiler/passes/main/tests/test_pyast_build_pass.py,sha256=MIn0rGJ_fdyH-g1mtTNopwng9SQNSzGta5kiEXB4Ffg,1973
112
126
  jaclang/compiler/passes/main/tests/test_pyast_gen_pass.py,sha256=8pBn0zReQtzQfwbu-LYI_ASahznjHzeSE4tX3XiBleY,9713
113
127
  jaclang/compiler/passes/main/tests/test_pybc_gen_pass.py,sha256=x92ZvO3vAehSlZojzTE6H4_Sc-mB2tK3gG-dZTWxqFQ,650
@@ -115,15 +129,15 @@ jaclang/compiler/passes/main/tests/test_sem_def_match_pass.py,sha256=WorjEiU9GdE
115
129
  jaclang/compiler/passes/main/tests/test_sub_node_pass.py,sha256=zO2PNo5DgtD1Qud8rTEdr-gLUVcMUXpQCBY-8-nj684,771
116
130
  jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py,sha256=7gtUU9vV3q5x2vFt_oHyrq9Q4q538rWcO8911NFtmK4,701
117
131
  jaclang/compiler/passes/main/tests/test_sym_tab_link_pass.py,sha256=N7eNPyIEwiM_1yECaErncmRXTidp89fFRFGFTd_AgIo,1894
118
- jaclang/compiler/passes/main/type_checker_pass.py,sha256=oZs5u9lV3UGIDC3-Xx0OwDtRGRRJqmiDJXUlXHFOtOg,6076
132
+ jaclang/compiler/passes/main/type_checker_pass.py,sha256=BI8j5nOnrmQjAQCndF6jsKvOqFvvHQe43iKJRBjhvd4,4417
119
133
  jaclang/compiler/passes/tool/__init__.py,sha256=8M5dq_jq2TC4FCx4Aqr0-Djzf2i_w_1HtYSMLZ0CXNY,299
120
134
  jaclang/compiler/passes/tool/doc_ir.py,sha256=okuoESF1qLbd3OHQxcfzHs35c6eilcIBp2sWNGg1m5w,5978
121
- jaclang/compiler/passes/tool/doc_ir_gen_pass.py,sha256=6u8JnRfcnEp9s2_Rmt23IgGKwZsqiGvJsNrz0xGk-gw,60111
135
+ jaclang/compiler/passes/tool/doc_ir_gen_pass.py,sha256=R9q798Fbd3_fY26GhhbwdTcZJnsKxCWZYPU9cAyhVE4,65500
122
136
  jaclang/compiler/passes/tool/fuse_comments_pass.py,sha256=GO-8ISvsD9L98ujeMsT5r_drpmnltRX5MWZCNKOFpGc,4530
123
- jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=9Bk5_jHMKNPNhTsEKpWu40Q7ZL2jfdEYuMbriA1RCU4,6138
137
+ jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=I2u0xMvqxP4U8NA_JH-Wwtxd1xmClOKVWS1ytBdPCGE,7706
124
138
  jaclang/compiler/passes/tool/tests/__init__.py,sha256=AeOaZjA1rf6VAr0JqIit6jlcmOzW7pxGr4U1fOwgK_Y,24
125
139
  jaclang/compiler/passes/tool/tests/fixtures/archetype_frmt.jac,sha256=_xcQS4Fe7bxoJ9MxyQdkoWNEx-smxSApcKJ9a8zLeiY,503
126
- jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac,sha256=GM1qku46s-46qZDe-45CK70hR7hUEHJV_ftPa7NxD_g,12409
140
+ jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac,sha256=7ZMEs2mz8oBGUfgZaDUZxFvgSRuh5HmlTsuKgjQ8dVg,12412
127
141
  jaclang/compiler/passes/tool/tests/fixtures/doc_string.jac,sha256=bNZJYX9ASkfrZTpi4nBMHEHfvkov1nw-wujxfFfADN4,217
128
142
  jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/access_mod_check.jac,sha256=eeexkLX8-lWWEChvqMCGOrviLYOdPNRYwQIeAgxNFCs,419
129
143
  jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/archetype_test.jac,sha256=8ZBwtRLH0g3YbTe__IXo3gnMwf5bYLPd_as5x6PTxoM,193
@@ -133,7 +147,7 @@ jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/decorator_stac
133
147
  jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/esc_keywords.jac,sha256=EQdOQnHWF7NmM7SuQ4Y77fXUD8vkIBR7TG3G1lCGl0I,72
134
148
  jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/line_spacing.jac,sha256=JAuaxnvG81o92uQG_SWawD9rceDGp4wjnDrreeBcQHw,1040
135
149
  jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/long_names.jac,sha256=f3ptg81A3mub7OdsVlxvX7FInEmT6Y2D55ZacQ7kZQw,734
136
- jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/triple_quoted_string.jac,sha256=N8pvJ0XIElQWSpbDSpDF7bx-B9QSVJwIWr0P3RBGoE8,194
150
+ jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/triple_quoted_string.jac,sha256=7Ts6oE3x3x91lJIFQpdko54hrtM6vpMZDi56c5XCkmM,174
137
151
  jaclang/compiler/passes/tool/tests/fixtures/has_frmt.jac,sha256=vIRwKItNJxbyAkSPpoFXMVKDnt3DWAQQKhu-5YCT1b0,444
138
152
  jaclang/compiler/passes/tool/tests/fixtures/import_fmt.jac,sha256=AglE8wZwyIXWptkRADT41o39MPucRfXtyRMutjStaX8,241
139
153
  jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.dot,sha256=Y4BtfJXqeqBHmsyRgfn_qjQCl0w-_YcKj9hoTyq80UY,1391
@@ -155,22 +169,25 @@ jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_defa
155
169
  jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_inline_ability_impl.jac,sha256=5AOxX4G7i3nYVQUryeuVVfe46gjzWimmW8ExNdBR9Bg,195
156
170
  jaclang/compiler/passes/tool/tests/fixtures/simple_walk.jac,sha256=5g_oneTxvkcV73xml4zSzvXZviLLyXXUplGvuiBZTH8,806
157
171
  jaclang/compiler/passes/tool/tests/fixtures/simple_walk_fmt.jac,sha256=uAFqtC7bh1oyYlU-7YbQu8INqPgVqOAFSdbjN4ViVIw,883
158
- jaclang/compiler/passes/tool/tests/fixtures/tagbreak.jac,sha256=nDcmmkKxb3QhjHmF9lKwcLNiQysVgMkBvauZ2gqN1rE,497
172
+ jaclang/compiler/passes/tool/tests/fixtures/tagbreak.jac,sha256=Dmz1FRGLyf9HGkHer4IvmO-foe-mWU6tgWkQyj2DPjU,4763
159
173
  jaclang/compiler/passes/tool/tests/test_fuse_comments_pass.py,sha256=ZeWHsm7VIyyS8KKpoB2SdlHM4jF22fMfSrfTfxt2MQw,398
160
174
  jaclang/compiler/passes/tool/tests/test_jac_format_pass.py,sha256=CXn42HkopQVMSWtK3a5zX0cFP8kAlX5_Ut-Tg4bjxNE,6589
161
175
  jaclang/compiler/passes/tool/tests/test_unparse_validate.py,sha256=fYlz31RQQUwmg3zYWHbXuwBksxli-zxk0HCVP42igAo,2214
162
- jaclang/compiler/passes/transform.py,sha256=haZ6zcxT5VJrYVFcQqe8vKPB5wzHhqHW438erTmYxJ0,4544
176
+ jaclang/compiler/passes/transform.py,sha256=mC9DnWY1Hnosd-JyaR3lmlU35v_9fNALOySS_6P12xk,4810
163
177
  jaclang/compiler/passes/uni_pass.py,sha256=Y1Y3TTrulqlpIGQUCZhBGkHVCvMg-AXfzCjV8dfGQm0,4841
164
178
  jaclang/compiler/passes/utils/__init__.py,sha256=UsI5rUopTUiStAzup4kbPwIwrnC5ofCrqWBCBbM2-k4,35
165
- jaclang/compiler/program.py,sha256=b-Q8YVOqVxM5kuRv9_2WTb6BYgG5DJpabFaKO38wWJo,6324
179
+ jaclang/compiler/program.py,sha256=uDfQI4FWkMof__uh4wpNHxIs1Fm3t7C4aX8DMY4q0cM,6818
166
180
  jaclang/compiler/tests/__init__.py,sha256=qiXa5UNRBanGOcplFKTT9a_9GEyiv7goq1OzuCjDCFE,27
167
181
  jaclang/compiler/tests/fixtures/__init__.py,sha256=udQ0T6rajpW_nMiYKJNckqP8izZ-pH3P4PNTJEln2NU,36
168
182
  jaclang/compiler/tests/fixtures/activity.py,sha256=fSvxYDKufsPeQIrbuh031zHw_hdbRv5iK9mS7dD8E54,263
169
183
  jaclang/compiler/tests/fixtures/codegentext.jac,sha256=U9xyk8hDlWM3jUaozQXOD61f5p9SI-_QfDxA68DUYds,562
170
184
  jaclang/compiler/tests/fixtures/fam.jac,sha256=PWbJPmAe_cXLTcqqXNy7N-S6biIlJDOm11LyHVvdiLM,1542
171
185
  jaclang/compiler/tests/fixtures/hello_world.jac,sha256=lEEbLWw9Kwhk1itygwcnJqRfruNjLulo3w8_rez69Ss,78
186
+ jaclang/compiler/tests/fixtures/jac_import_py_files.py,sha256=VEsCXPP2B5BiXRu3pEriVtMRAgjR-Vf6H-O3rc_Ls_U,102
187
+ jaclang/compiler/tests/fixtures/jac_module.jac,sha256=pfdGGmlfF9n4lSbbjxK76Td4_MbmTaOOQkvGaODGh_Q,51
172
188
  jaclang/compiler/tests/fixtures/kwesc.jac,sha256=OXxVL_fwiFuvYO1YX1RHa2hpETSpb0QD1-gMYnMY6DA,103
173
189
  jaclang/compiler/tests/fixtures/mod_doc_test.jac,sha256=aFZpjn7V5lvCHp0lPoGXtdkcY3CK8_-SKeZGruutv4Y,35
190
+ jaclang/compiler/tests/fixtures/multiple_syntax_errors.jac,sha256=umUf5wvFIhgLhKjzb0MO6eOdrEoNA9K-PbQ2x9gK9ws,98
174
191
  jaclang/compiler/tests/fixtures/pkg_import_lib/__init__.jac,sha256=XIIBWYlROHCXG-JK_kYtMpuVbqLtIoVr4q2z2PtDN5A,33
175
192
  jaclang/compiler/tests/fixtures/pkg_import_lib/sub/__init__.jac,sha256=RZmbO5bujPpxmmumjZkYId5w0zuDjBXpA_9g-xbGyYY,33
176
193
  jaclang/compiler/tests/fixtures/pkg_import_lib/sub/helper.jac,sha256=HphMN3KAuhRhsTtw7eoE45ZvStKa0QU3PvPIkWDyd-s,57
@@ -181,33 +198,33 @@ jaclang/compiler/tests/fixtures/pkg_import_lib_py/sub/helper.jac,sha256=HphMN3KA
181
198
  jaclang/compiler/tests/fixtures/pkg_import_lib_py/tools.jac,sha256=FuL88yu9AnPuDn7heRf8X0NN6nrrGzt1txJrhYR995c,57
182
199
  jaclang/compiler/tests/fixtures/pkg_import_main.jac,sha256=xeb8nb3_xQ9iCqGIJuMAqCsuB2S85whp531QlNA2q7U,299
183
200
  jaclang/compiler/tests/fixtures/pkg_import_main_py.jac,sha256=wJobypGI8EsC6w641e3Z5joJMLm3eE0xFpVmP6QoQEo,375
201
+ jaclang/compiler/tests/fixtures/python_module.py,sha256=vicQGJgmHnGE6dACrtp2yNfcMZaZmITI2fUmPCedCv0,34
184
202
  jaclang/compiler/tests/fixtures/staticcheck.jac,sha256=N44QGwRGK_rDY0uACqpkMQYRfkNQB2ai3lmdoAv0toI,342
185
203
  jaclang/compiler/tests/fixtures/stuff.jac,sha256=qOq6WOwhlprMmJpiqQudgqnr4qTd9uhulQSDGQ3o6sY,82
186
- jaclang/compiler/tests/test_importer.py,sha256=BQOuHdrOL5dd0mWeXvX9Om07O9jN59KVGMghbNewfOE,4621
187
- jaclang/compiler/tests/test_parser.py,sha256=LeIVgyQGZmjH_dx8T6g4fOv3KWNzhtfwKn9C3WVdBCM,5888
204
+ jaclang/compiler/tests/test_importer.py,sha256=ZhiFD_GvDgXFKvzrqlWz0Wub7Np6gp9G_NprXJ9iZH0,6841
205
+ jaclang/compiler/tests/test_parser.py,sha256=URkNi5zhvw7ZCzmfmP1NznYGpi-O8E8CI9MrRA9uW9Q,7525
188
206
  jaclang/compiler/tests/test_sr_errors.py,sha256=iixRll6eP-sgBzR2Zl9Bb-Da5flb67lPaPDQb3IDn3k,1074
189
207
  jaclang/compiler/type_system/__init__.py,sha256=6LO1vhnbQDxb-xPH_YdguQcwUOmtHgmasRNLOf5WV_o,29
190
208
  jaclang/compiler/type_system/operations.py,sha256=W3Unvaikk-obYcahian0M9tJRBnW_AXU6lhrL4LZ3SA,4129
191
- jaclang/compiler/type_system/type_evaluator.py,sha256=RJuS59wDEn0gNzBPV1LjfhdL71xrVJdF1UZq_GYUtko,24506
192
- jaclang/compiler/type_system/type_utils.py,sha256=EPm3Kdan4cZJswhhjNH_ZjTzpo4fzeXGrWw79uSYa3M,1370
193
- jaclang/compiler/type_system/types.py,sha256=H7mgdd2CNX9wOr9D_6R9sb96xVgr47IvLwA5aPzSKms,7536
194
- jaclang/compiler/unitree.py,sha256=dzk14I52013ECF5FBjOKoezVKX5aQWZSBpMiMr5g7QM,154375
209
+ jaclang/compiler/type_system/type_evaluator.py,sha256=3cugC1v3RGYP8dAGdZ5fVeRRbQUgngy1iTqXZfE79Bw,36607
210
+ jaclang/compiler/type_system/type_utils.py,sha256=jnqPZ-dpZC1RT_6Mq6G0OuGFXOEimSZEv6wjmtZZSV8,10250
211
+ jaclang/compiler/type_system/types.py,sha256=ulAdoKW5gt_OCYRzx3pUoRhFMnRJaD6rtjQze-G3tDA,9451
212
+ jaclang/compiler/unitree.py,sha256=NhYrGEXBADNEzvPqVfh0MFyODUUknx0K6accUsvtLmo,154055
195
213
  jaclang/langserve/__init__.jac,sha256=3IEtXWjsqOgLA-LPqCwARCw0Kd8B_NeLedALxGshfAE,33
196
- jaclang/langserve/dev_engine.jac,sha256=hbuaNyhwNxER34OEQPPIdWS-5TQ-fih3nIjhrtnzJjg,24858
197
- jaclang/langserve/dev_server.jac,sha256=GPbFqqx3nX9w63-AFLFrpRo6V_Gb3DDSi097AzygVAM,5800
198
- jaclang/langserve/engine.jac,sha256=ZosFbYEZpTt_37eBOZOIzqOb1tDpxsSjwynNgvHhyrk,25999
214
+ jaclang/langserve/engine.jac,sha256=qsieo6mBJnFAzy562ouREHyGCCDI89PJVwOWX9yVb1k,25132
199
215
  jaclang/langserve/sem_manager.jac,sha256=Gg95nKvXz9RwUNPshgUPHlrdFI8EWzk7Hxxgvs0xwa4,13795
200
- jaclang/langserve/server.jac,sha256=OMp04cOsjf-7xAnSQ42Clb3CmPg8XpP2btZz-Snyrec,6192
216
+ jaclang/langserve/server.jac,sha256=KDMqTyOjBFTmIS0Dnjs36SlXyLxZzFymyJNgi5oGUSQ,6802
201
217
  jaclang/langserve/tests/__init__.py,sha256=iDM47k6c3vahaWhwxpbkdEOshbmX-Zl5x669VONjS2I,23
202
218
  jaclang/langserve/tests/defaults.py,sha256=8UWHuCHY-WatPcWFhyX9-4KLuJgODTlLNj0wNnKomIM,7608
203
219
  jaclang/langserve/tests/fixtures/base_module_structure.jac,sha256=bzt1F4kxAW2w0gWLA5PN30IxXN0_Cp7RssOVXxLIy8k,1440
204
- jaclang/langserve/tests/fixtures/circle.jac,sha256=Ab9wSxJvt-BEfJinbj3VP5-mFOTFUw9HFr6iDDCR_7U,1743
205
- jaclang/langserve/tests/fixtures/circle_err.jac,sha256=I0fPvtIIf6Q3JvBSm3oevA7zzA-u8935i4VMpZiJ8Fo,1705
220
+ jaclang/langserve/tests/fixtures/circle.jac,sha256=7c9VqmGOsenb5xmPu4wK6qUdmiv5VmDkFQDTT-7ld08,1746
221
+ jaclang/langserve/tests/fixtures/circle_err.jac,sha256=GOO1mXOCTWufL_GlNwadAxqJcyYK9Z65k4dH0YIRjuE,1708
206
222
  jaclang/langserve/tests/fixtures/circle_pure.impl.jac,sha256=VQR2lJictcfTZWuRgtoN3WsLmh0VpEnAu5cbEGKqUiQ,693
207
223
  jaclang/langserve/tests/fixtures/circle_pure.jac,sha256=Y1WyKi_2pb7lDUBIbe83SIXOgYii0lIJqxfn9e2DhMM,620
208
- jaclang/langserve/tests/fixtures/circle_pure.test.jac,sha256=Ys-IoqcYqId1T-Pcz2i_eSyPgmjW6DUWCPaZag75FaE,272
224
+ jaclang/langserve/tests/fixtures/circle_pure.test.jac,sha256=PxigVWstwyLgdtxrAOsfAP-BupbOCYOUyTDqFEHIV7s,275
209
225
  jaclang/langserve/tests/fixtures/circle_pure_err.impl.jac,sha256=txhsHR4yatqVYfMjtH37cMFZIYgOAXs02zGXz7J8OYk,694
210
226
  jaclang/langserve/tests/fixtures/circle_pure_err.jac,sha256=Y0vJlFM9XF5BllZXWa-yZfJJc8kdfBZgPsMZRCHDtz0,604
227
+ jaclang/langserve/tests/fixtures/completion_test_err.jac,sha256=b56axbn8Wl9Iztp9FY-_UNUbiB3m1-gloZHLiGLmqKk,92
211
228
  jaclang/langserve/tests/fixtures/deep_check_crash.jac,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
229
  jaclang/langserve/tests/fixtures/hello.jac,sha256=iRMKtYVCw1zLvjOQbj3q__3Manj1Di1YeDTNMEvYtBc,36
213
230
  jaclang/langserve/tests/fixtures/import_include_statements.jac,sha256=X8uyjdSN1pDSLhQyFhX8URLU5qsULJUi5qgmaHUqAc8,280
@@ -218,43 +235,44 @@ jaclang/langserve/tests/pylsp_jsonrpc/dispatchers.py,sha256=zEZWu6C2_n4lPoA8H8OO
218
235
  jaclang/langserve/tests/pylsp_jsonrpc/endpoint.py,sha256=TxDpWUd-8AGJwdRQN_iiCXYxrVfviZQlNtEvBL0dDPc,10591
219
236
  jaclang/langserve/tests/pylsp_jsonrpc/exceptions.py,sha256=NGHeFQawZcjoLUcgDmY3bF7BqZR83g7TmdKyzCmRaKM,2836
220
237
  jaclang/langserve/tests/pylsp_jsonrpc/streams.py,sha256=R80_FvICIkrbdGmNtlemWYaxrr7-XldPgLaASnyv0W8,3332
221
- jaclang/langserve/tests/server_test/code_test.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
- jaclang/langserve/tests/server_test/test_lang_serve.py,sha256=h_mCvwfmY8WJ43vOyGioCRR1gaGV8NuvAXR9umXm-Yw,11382
223
- jaclang/langserve/tests/server_test/utils.py,sha256=ji0x497DmzrzxJEhMpVdnev1hMK9W9NnG4850ssNyEg,3707
238
+ jaclang/langserve/tests/server_test/circle_template.jac,sha256=iueTMdbsxFXUCRVuryQ8US9k_lEumOdzblVB3KS3TD0,1770
239
+ jaclang/langserve/tests/server_test/glob_template.jac,sha256=XrwYoO5YH9wJSTwFCf6srJSe3UeXWjDKzUChFUOOIz8,140
240
+ jaclang/langserve/tests/server_test/test_lang_serve.py,sha256=aRcEgdcAp0QnYlMTv1FyF6H3uGCtfeu61EdFdsQ3MgQ,6940
241
+ jaclang/langserve/tests/server_test/utils.py,sha256=m8G2mAydAljcGeV2RZBzYaQgYfXRpCP0cbpu6HarVjo,6341
224
242
  jaclang/langserve/tests/session.jac,sha256=fS-aUHWb-r5ay3R4wJuSmoeoxgAufN4srvTjMP_OhII,10658
225
243
  jaclang/langserve/tests/test_dev_server.py,sha256=zXjZy3BY40y5dQB2xJ2P3qPEP2B2BvrV4o1wqPm_Q38,2906
226
244
  jaclang/langserve/tests/test_sem_tokens.py,sha256=3ew2yVQhA4PCTRC05sqcoZjb8JSB9hJQJC4TGgD8Ytk,9935
227
- jaclang/langserve/tests/test_server.py,sha256=U_jwWg07t_sRQr4XfzvjZ12AUhnFMe7k0UvOKtuNB_s,24839
228
- jaclang/langserve/utils.jac,sha256=o4_O0mro1hwBZMrVbcuAzjSUqxWjh6_GGlmFxjHJiDY,13978
245
+ jaclang/langserve/tests/test_server.py,sha256=76qTNzA51601CNxERi_LmRm0aTU-CCCr088EBf0CAO8,22313
246
+ jaclang/langserve/utils.jac,sha256=_5aW0IMuh0AmG8rKwzlFwvdjSU1Hzp5qAppaGg-Cnk0,13864
229
247
  jaclang/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
248
  jaclang/runtimelib/__init__.py,sha256=jDDYBCV82qPhmcDVk3NIvHbhng0ebSrXD3xrojg0-eo,34
231
249
  jaclang/runtimelib/archetype.py,sha256=xZ_BRDSRags1p4v4wqm7GGDFraF2wXm4pLpFvHkjRG4,13029
232
250
  jaclang/runtimelib/builtin.py,sha256=WeaTeFhnLX_aNseMFSrbilO_pmCoyGapDmDBE2U28Hs,3016
233
251
  jaclang/runtimelib/constructs.py,sha256=L3mv17BFwq8TOx0lwr-rA-2N_qs4cNiRQYqDX3iqzmM,760
234
252
  jaclang/runtimelib/importer.py,sha256=R1VIhBPMBR0CnQhT9tKazMExYCQvRa8Z8hkQ4PPQRF4,13488
235
- jaclang/runtimelib/machine.py,sha256=KKDofpT_7a3WaJpEOOTLZHk-lszYQezuzH0akm6zcnY,60601
253
+ jaclang/runtimelib/machine.py,sha256=kZgdUvvcinARxpruiaMfZOQZnCquqeXWpIJw9BS_oZQ,60782
236
254
  jaclang/runtimelib/memory.py,sha256=g91YkO025PLG-ANW_9Q5KsMtwPjGTE_1nXuSjQFct1I,7318
237
- jaclang/runtimelib/meta_importer.py,sha256=mrofzKaawVHfIgbPHkGNt67EgfnCjadft9EUsFkE34o,3192
255
+ jaclang/runtimelib/meta_importer.py,sha256=w2R_gfYwM8bT-I1HWX--Mg_uxPIvIODyTrhoNPVWYMU,4511
238
256
  jaclang/runtimelib/test.py,sha256=4HW7MjHmxjwWjwtIqLtFpcq9B9rI4NmyA92qFy9yhz8,4709
239
257
  jaclang/runtimelib/tests/__init__.py,sha256=rn_tNG8jCHWwBc_rx4yFkGc4N1GISb7aPuTFVRTvrTk,38
240
- jaclang/runtimelib/tests/fixtures/custom_access_validation.jac,sha256=WDVcvaBUppK5751iyqWoRWcy34MX5w_zwA0hFRY2dac,1409
258
+ jaclang/runtimelib/tests/fixtures/custom_access_validation.jac,sha256=fytOAzVN4TFYKZObLhfAJni8gB01hzjqZkCeBwK2htY,1411
241
259
  jaclang/runtimelib/tests/fixtures/graph_purger.jac,sha256=ltADlHHhbtc2aVUHJ-itoy6EL41bAlDaFzAdVmsFBLA,1514
242
260
  jaclang/runtimelib/tests/fixtures/impl_match.jac,sha256=2TrA7eC21c8JcS9IYFs2aLT_ta6BuoBA06yK2ENsVwE,86
243
261
  jaclang/runtimelib/tests/fixtures/impl_match_impl.jac,sha256=4KbKJMnK_uYjc9kQHPhGsAbdHIRVLpg3Pp30fbV1eLA,27
244
262
  jaclang/runtimelib/tests/fixtures/other_root_access.jac,sha256=yArcQopYX82pVJOLXcgGwyTpuuZpRJLYQWcLpiwrqRQ,2109
245
- jaclang/runtimelib/tests/fixtures/savable_object.jac,sha256=l2_BNjjUz-ogB6FiTu_5WGRCCL0bn5UfD5gtfeTQaDY,2200
263
+ jaclang/runtimelib/tests/fixtures/savable_object.jac,sha256=HCqUzRHBY4nJ6vHXcQGtp7Av3grwLZkveS3ubOuIzlI,2204
246
264
  jaclang/runtimelib/tests/fixtures/simple_node_connection.jac,sha256=uwY0bgfhvXBsWNIMv-Ux53d8LtTu8JY64nx-QaRuTWc,1076
247
265
  jaclang/runtimelib/tests/fixtures/simple_persistent.jac,sha256=k75eUY8JUtzBcPz_yzJCG4RHeKrO6e4YtqTFarJgxQs,626
248
266
  jaclang/runtimelib/tests/fixtures/traversing_save.jac,sha256=DdLAKAmnbRbnHXeQnM57h4W6nKN1t657O_4USoeESik,267
249
267
  jaclang/runtimelib/tests/test_features.py,sha256=Tba4DkgVhzmbNsiVvcipMrdxO_vNmfdTDRpD--EWJM4,2511
250
268
  jaclang/runtimelib/tests/test_jaseci.py,sha256=SwCh2vWPysVkpv1r1jOl7LGJXz7QCJA4xqfd7o1zXA4,34746
251
269
  jaclang/runtimelib/utils.py,sha256=4NSyZdf_zvF3rmHujH0FHdXqwJXavvmsvSICJjvL_Vk,9200
252
- jaclang/settings.py,sha256=DKDtbY2WEZ2Eh0l1JsJ-h1Q0_-VWNbjGAQshHB14-gY,3676
270
+ jaclang/settings.py,sha256=ulU-njHAPJu8U9QuXyZ2AJSMq7xBr8hBCe8s9V0qxBg,3865
253
271
  jaclang/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
254
272
  jaclang/tests/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
255
- jaclang/tests/fixtures/abc_check.jac,sha256=Ab9wSxJvt-BEfJinbj3VP5-mFOTFUw9HFr6iDDCR_7U,1743
273
+ jaclang/tests/fixtures/abc_check.jac,sha256=7c9VqmGOsenb5xmPu4wK6qUdmiv5VmDkFQDTT-7ld08,1746
256
274
  jaclang/tests/fixtures/arch_create_util.jac,sha256=3pRe9JyCGO_8Z7XYnSKPehyOAAPf6747fHvgrMz6wQU,133
257
- jaclang/tests/fixtures/arch_rel_import_creation.jac,sha256=Db6ko39i4tQOYroCmSuvLfU3X6PlHcyg2nHTJrYH94k,656
275
+ jaclang/tests/fixtures/arch_rel_import_creation.jac,sha256=5IaqASXPqs432LoRKw7fUbhbLAwffOFB4kF7xUuSxyM,608
258
276
  jaclang/tests/fixtures/archetype_def_bug.jac,sha256=Z5GsP0vLMlrZf42uCkRh27eBfkB3-sln0KRpkmnOO40,265
259
277
  jaclang/tests/fixtures/arithmetic_bug.jac,sha256=iiO3ZwTi7R1U6-flV4tGbxDHXsw8GnaLEzVNGTPdMUA,135
260
278
  jaclang/tests/fixtures/assign_compr.jac,sha256=rnoujdtpjNbem4IdtBfxPahSUXl-gxNv4JFNEuUs5iM,286
@@ -276,12 +294,12 @@ jaclang/tests/fixtures/builtin_printgraph_mermaid.jac,sha256=IZAtTuj_qX5xEwZz8Gl
276
294
  jaclang/tests/fixtures/builtins_test.jac,sha256=1eJXipIFpa8IDjKv20TjAW_k4hTtJzNT1cKnQOAVt28,244
277
295
  jaclang/tests/fixtures/byllmissue.jac,sha256=0eHaoNXePdjt6vnWEnsKubskvwKRpS5Bf5_UHrWcuvw,86
278
296
  jaclang/tests/fixtures/chandra_bugs.jac,sha256=9RivLxwMFd3CiIB43_QcMikQCcZpSzUMB0QgFrJvSDs,282
279
- jaclang/tests/fixtures/chandra_bugs2.jac,sha256=H5uT8bWiJLsn-WcJR5Gatto_F17NgLOoXtQVFki92M4,619
297
+ jaclang/tests/fixtures/chandra_bugs2.jac,sha256=qamTrujjwsgegWZWv9h-ynx_15eCVYh9PvuwIiewre8,618
280
298
  jaclang/tests/fixtures/circle_pysolo.py,sha256=TAJTCOjrUl80oDke5wl6ZyBJQsy37Hu6gYdqcO-tQlY,2477
281
299
  jaclang/tests/fixtures/cls_method.jac,sha256=7belevX_oLNnePG_ji1cLpgdUca62riTmBwbbB_mHcM,729
282
300
  jaclang/tests/fixtures/concurrency.jac,sha256=DtSLDUHfz-ngOdCzKjeUgzXbeLoDiA2a_6LEGuUvFxU,572
283
301
  jaclang/tests/fixtures/connect_traverse_syntax.jac,sha256=WqSeIfm9OLLKXjdMGGDWx5gEDekEffJi08sPU4skxCo,298
284
- jaclang/tests/fixtures/create_dynamic_archetype.jac,sha256=N4_HtZyUrTyFQPH4vOmuxm8VIDxbN_7iRiV_jXohIjM,833
302
+ jaclang/tests/fixtures/create_dynamic_archetype.jac,sha256=O4ROmON9MFESQMzuRBzq_Lf_Vaha8KvTBqtkIFR5pqw,781
285
303
  jaclang/tests/fixtures/dblhello.jac,sha256=2CKdYZj35AXzvA2SCBHhgvG5f0bnlpLdQ36eqKCmI-M,69
286
304
  jaclang/tests/fixtures/decl_defn_param_name.jac,sha256=cvNq18tEim3DX17xM1kjjTio3SPKzdFK3KFOJRh6d2Y,383
287
305
  jaclang/tests/fixtures/deep/deeper/deep_outer_import.jac,sha256=9a5fREgfbafmxUOGMBKAjQcWbdyUwWhq_kBfYFTsZgc,246
@@ -347,7 +365,7 @@ jaclang/tests/fixtures/lambda.jac,sha256=VFF-bh-j4bLamY4RABDmTRY1_O_WPXfAD9swNaM
347
365
  jaclang/tests/fixtures/lambda_arg_annotation.jac,sha256=01Cg7FWW2g8R_aqajqoUGhV8WjaWJ5Wq3RqMKv6LEyw,202
348
366
  jaclang/tests/fixtures/lambda_self.jac,sha256=1Df_GAZHJAKYnnJymuL8nmo2riY9AMzsuZZveYPMj1o,344
349
367
  jaclang/tests/fixtures/match_multi_ex.jac,sha256=05XB0B0yMWpA84pCvAnKnpXObpE5fcUedpQ8Rly9Qp0,205
350
- jaclang/tests/fixtures/maxfail_run_test.jac,sha256=UMoJSwrmNL7mCI65P8XTKrsYgi7mFvwLS3Dd24BmR6k,160
368
+ jaclang/tests/fixtures/maxfail_run_test.jac,sha256=xtCbcw5a6Fdt9r_AKXuaVdTMwLPSwUv8RGi88sqj_Pw,164
351
369
  jaclang/tests/fixtures/multi_dim_array_split.jac,sha256=xM34uJwKBbI1-Q8Z-dK2lNB7PWvQZUmdsNxMuDwUHKs,290
352
370
  jaclang/tests/fixtures/needs_import.jac,sha256=lcZWN7LPeFudCqihi9ETL1FQfOvCKYMVTtoHwpAiUg0,301
353
371
  jaclang/tests/fixtures/needs_import_1.jac,sha256=LAMoIUITbFKSVDUCvgnBB0-7IjNp2RIC2ftH9y4LwF0,101
@@ -357,7 +375,14 @@ jaclang/tests/fixtures/needs_import_dup.jac,sha256=AR5sNlyIxnF-S3Hx5dqsNrA6gkp63
357
375
  jaclang/tests/fixtures/node_del.jac,sha256=BVcS94AaB7D0OIUisVihLs6NTOVIRY6LWeuVeCQWt98,1385
358
376
  jaclang/tests/fixtures/nosigself.jac,sha256=06wYx9eBv9lqqp5XmKCe1cwJE1-3ZhFvZV83AR_pxfA,187
359
377
  jaclang/tests/fixtures/objref.jac,sha256=u_Sc8CTbsqe0D0VI5jUEWsV36l2PH0uNukSn3LSlJPI,195
378
+ jaclang/tests/fixtures/params/param_syntax_err.jac,sha256=D8z7Tq_OfL7aQ7Aotat6YlmScmEcPNpmeApzQ_BsM0Q,227
379
+ jaclang/tests/fixtures/params/test_complex_params.jac,sha256=t6UGCUBqvRzIUAfkVLDaH_7HPkEkAldGMSs3aubnRPs,1413
380
+ jaclang/tests/fixtures/params/test_failing_kwonly.jac,sha256=4WSV8TUjegXN4-qX2LL998371GumkqXpprHJJ3-6pT0,7194
381
+ jaclang/tests/fixtures/params/test_failing_posonly.jac,sha256=IGfi_NhcHrLDf4-W9bfg5TV6ZZKz3adqBqTEMVdqdDA,3521
382
+ jaclang/tests/fixtures/params/test_failing_varargs.jac,sha256=huNEaKdlFiuVdUuGQRClPT1hpIrIlbnQdM8H4__ozsE,9882
383
+ jaclang/tests/fixtures/params/test_kwonly_params.jac,sha256=Suz_TIPzCvtewJqvltVd807G_TOfNNUfNsWFF6FWARc,861
360
384
  jaclang/tests/fixtures/py2jac.py,sha256=cRmCfVyOfbZrsJodV6UCF2AVy26m2PbJqE_hQEFuAsI,538
385
+ jaclang/tests/fixtures/py2jac_params.py,sha256=tuhpz-I1DUwrjmxeY3uz1sQlDDTt9wea65Y2UgNOEW8,279
361
386
  jaclang/tests/fixtures/py_bool_expr.py,sha256=DRfxCvuB0hkuSq6L49aw5e-xOODNgC082zgDrajV5fE,338
362
387
  jaclang/tests/fixtures/py_namedexpr.py,sha256=DV0hBKOblFbvpClhvYXZ2pMFp8fn25x9X-JtaHNSK8Q,113
363
388
  jaclang/tests/fixtures/py_run.jac,sha256=RjTlllwYlyIFbK0EMTe8bOoGEszAyEwj210Xr7UR0WQ,117
@@ -379,7 +404,7 @@ jaclang/tests/fixtures/python_run_test.py,sha256=CoRg_E6me6AGRthEceVtakE18hR67bQ
379
404
  jaclang/tests/fixtures/random_check.jac,sha256=EC5B0hTAb1_M2PUKJcI65RBhPSLd11_me-jzl9HCzCs,1511
380
405
  jaclang/tests/fixtures/raw_byte_string.jac,sha256=y5FA0rtLC5do8vqXfCxCF1TP7l8L20nI56WRFdu8x9k,337
381
406
  jaclang/tests/fixtures/refs_target.jac,sha256=Whexw4-xErg7vlV-1NB3cp0bNOP8u0df0QSrupTkJEY,347
382
- jaclang/tests/fixtures/run_test.jac,sha256=kR-kwJQ-UiRpJOZnhXws3Vqa4eK64-85rz72t9Zr94k,164
407
+ jaclang/tests/fixtures/run_test.jac,sha256=r_68jdBnnDegy2ivYZI4U_WtXzB7EbwCaWM0rxPwXFQ,168
383
408
  jaclang/tests/fixtures/simple_archs.jac,sha256=FsZvsQR9LuUMMFDIYEen-qRREa171hWd8gcqIvHVZmk,380
384
409
  jaclang/tests/fixtures/simple_walk.jac,sha256=2NyJLtyZj0uW03iJTp7vvLssB57dy4IORej6nfdAR8M,834
385
410
  jaclang/tests/fixtures/slice_vals.jac,sha256=pgCdz8D0vd43huMhHeBvbSUMuucwWyVSQpKkMAYw1Wk,228
@@ -403,22 +428,22 @@ jaclang/tests/fixtures/while_else.jac,sha256=Ziej7zCqTc2K7Dy9uE9pzyMns4pWGAVzjRx
403
428
  jaclang/tests/fixtures/with_context.jac,sha256=IitGo_vWRrJ--OU5I9n3LOf_oO8NH02G2D5qIDRkl04,466
404
429
  jaclang/tests/foo/__init__.jac,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
405
430
  jaclang/tests/test_bugs.py,sha256=w1_GJz1lMlsehriDtj1sq-gJlnvF5Kt0Dq1WKnl8By4,556
406
- jaclang/tests/test_cli.py,sha256=wJQb_pO1sgNRjlWciqcuHjGplLHCAy5vD2tmmp9ZFqg,22761
407
- jaclang/tests/test_language.py,sha256=iuCPno6OQaQ-PUGK7QhBuPRX6iameFWxL5aOOyZRHdM,61347
431
+ jaclang/tests/test_cli.py,sha256=_cW7WJxbtkPaqiyKVayci0GDJQiV1btufuTJX8p5LuQ,24539
432
+ jaclang/tests/test_language.py,sha256=sr-OmC2YD8Hu7VCJM2uewdyC8tGNS3RpquX5I6HUP8Y,64162
408
433
  jaclang/tests/test_man_code.py,sha256=ouK8XUp2FaEPNu2P7AkZa6OGrow2rNNIcQMF2uhJOvg,5054
409
434
  jaclang/tests/test_reference.py,sha256=p79l0O0PD4VHfKKKV2trlVSRRADlBbXKaOvEXi1X1Yk,3674
410
435
  jaclang/tests/test_settings.py,sha256=_h4vGHJMFe4H9ycFP78EkaT8gVrOt7e0tTJLYQjwNys,1839
411
436
  jaclang/tests/test_typecheck.py,sha256=ayTaNreS_mCxrDjx0XMzuvoTYdzU9r_pN-AFhC-oGyo,19911
412
437
  jaclang/utils/__init__.py,sha256=CB3oGfO8uIJsBig2PTQ89gtZB4zs1pIPZEYHa34oliY,203
413
- jaclang/utils/helpers.py,sha256=fOObXxov5hgF-VDrsL-w_kE5NA3Cv6Sgdivvbh8xc1I,10132
438
+ jaclang/utils/helpers.py,sha256=Ed8NgDTtocxmEiR6gRFhB4S7097NOKI-TXdhjly8h9k,11445
414
439
  jaclang/utils/lang_tools.py,sha256=n4oshYGy2Ras56A_Tc27dIyoomXJIhqQhd5oX2C9E0g,10819
415
440
  jaclang/utils/log.py,sha256=G8Y_DnETgTh9xzvlW5gh9zqJ1ap4YY_MDTwIMu5Uc0Y,262
416
- jaclang/utils/module_resolver.py,sha256=55Xg9Est2RALcC3WE6M8svJ7eD3MnAjiPF8MyqSBFrE,6654
441
+ jaclang/utils/module_resolver.py,sha256=vFflHJUUSzi7P8aACDHN6iS-iMm8tc3X1su7WfKyEBo,7014
417
442
  jaclang/utils/symtable_test_helpers.py,sha256=1T9qV8JALdjNjYqVmBY2HVCNI6OodP2D7Uy8qyLpxSA,4512
418
- jaclang/utils/test.py,sha256=nLh2t9nbF59BA39UAWK2QUB5WLeb9Hsh006GVivdOVw,6182
443
+ jaclang/utils/test.py,sha256=3-lUq4xp_FaJ5gcxMeE38Ar8Kg6rUAkEpPC1MOllYBM,6472
419
444
  jaclang/utils/tests/__init__.py,sha256=8uwVqMsc6cxBAM1DuHLuNuTnzLXqOqM-WRa4ixOMF6w,23
420
445
  jaclang/utils/tests/test_lang_tools.py,sha256=1pMYqSSOPTVCK9N7OTLOfUn0onByMiOhZEFtrIzq-IM,5643
421
- jaclang/utils/treeprinter.py,sha256=yElULT3ClwMoG6xn3XwJRj9mL2kmLLkaN8Ws0rx3Ewc,17595
446
+ jaclang/utils/treeprinter.py,sha256=5M9AOdzLPQnMe1TVxV3cejTLePhr1y9S1kXz0nCtlmc,16831
422
447
  jaclang/vendor/__init__.py,sha256=NQiD5OO-k2AD0Mt4VMdH_9PwBnKvIjAvF2NkhS5h9JM,238
423
448
  jaclang/vendor/attr/__init__.py,sha256=fOYIvt1eGSqQre4uCS3sJWKZ0mwAuC8UD6qba5OS9_U,2057
424
449
  jaclang/vendor/attr/__init__.pyi,sha256=QIXnnHPoucmDWkbpNsWTP-cgJ1bn8le7DjyRa_wYdew,11281
@@ -5227,7 +5252,7 @@ jaclang/vendor/typeshed/stubs/zxcvbn/zxcvbn/frequency_lists.pyi,sha256=Dtmz_lJ3F
5227
5252
  jaclang/vendor/typeshed/stubs/zxcvbn/zxcvbn/matching.pyi,sha256=_qCtgbqOjvvqdQNe4VvwwEggQMtJ65FATWfesuxeukE,3554
5228
5253
  jaclang/vendor/typeshed/stubs/zxcvbn/zxcvbn/scoring.pyi,sha256=8LMgKMusPGV0WxrcvzZXJbZQCBDKdIMRIdr2wnbXBiI,1454
5229
5254
  jaclang/vendor/typeshed/stubs/zxcvbn/zxcvbn/time_estimates.pyi,sha256=OWLFOMJXtKyoErBCIL7ej-WGLO-blK-j_xhzT-sHiU0,898
5230
- jaclang-0.8.7.dist-info/METADATA,sha256=zADeBs0WbQqj21IF6-G2x4oOHBICxgMntZvs4Rowi2s,5087
5231
- jaclang-0.8.7.dist-info/WHEEL,sha256=M5asmiAlL6HEcOq52Yi5mmk9KmTVjY2RDPtO4p9DMrc,88
5232
- jaclang-0.8.7.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
5233
- jaclang-0.8.7.dist-info/RECORD,,
5255
+ jaclang-0.8.8.dist-info/METADATA,sha256=nFRgShnyhWLqu1mAadgT7aNncGzRSX1Ka0RS7Fr_-tI,5049
5256
+ jaclang-0.8.8.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
5257
+ jaclang-0.8.8.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
5258
+ jaclang-0.8.8.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.2.0
2
+ Generator: poetry-core 2.2.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,131 +0,0 @@
1
- """Inheritance Resolution Pass for the Jac compiler.
2
-
3
- This pass handles the inheritance relationships between archetypes by:
4
-
5
- 1. Identifying base classes for each archetype in the program
6
- 2. Resolving the inheritance hierarchy, including multi-level inheritance
7
- 3. Populating derived class symbol tables with symbols from their base classes
8
- 4. Handling special cases like Python base classes and index slice expressions
9
- 5. Ensuring proper symbol visibility according to inheritance rules
10
-
11
- This pass is essential for object-oriented features in Jac, allowing derived classes
12
- to access methods and attributes defined in their parent classes.
13
- """
14
-
15
- from __future__ import annotations
16
-
17
- from typing import Optional
18
-
19
- import jaclang.compiler.unitree as uni
20
- from jaclang.compiler.passes.transform import Transform
21
- from jaclang.compiler.unitree import Symbol, UniScopeNode
22
-
23
-
24
- class InheritancePass(Transform[uni.Module, uni.Module]):
25
- """Add inherited abilities in the target symbol tables."""
26
-
27
- def transform(self, ir_in: uni.Module) -> uni.Module:
28
- """Entry point for the inheritance pass."""
29
- self.process_archetypes(ir_in)
30
- return ir_in
31
-
32
- def process_archetypes(self, module: uni.Module) -> None:
33
- """Process all archetypes in the module."""
34
- for node in module.get_all_sub_nodes(uni.Archetype):
35
- self.process_archetype_inheritance(node)
36
-
37
- def process_archetype_inheritance(self, node: uni.Archetype) -> None:
38
- """Fill archetype symbol tables with abilities from parent archetypes."""
39
- if not node.base_classes:
40
- return
41
-
42
- self.cur_node = node
43
- for item in node.base_classes:
44
- # Handle different types of base class references
45
- if isinstance(item, uni.Name):
46
- self.inherit_from_name(node, item)
47
- elif isinstance(item, uni.AtomTrailer):
48
- self.inherit_from_atom_trailer(node, item)
49
- elif isinstance(item, uni.FuncCall):
50
- self.log_info(
51
- "Base class depends on the type of a function call "
52
- "expression, this is not supported yet"
53
- )
54
-
55
- def inherit_from_name(self, node: uni.Archetype, item: uni.Name) -> None:
56
- """Handle inheritance from a simple name reference."""
57
- assert node.sym_tab.parent_scope is not None
58
- base_class_symbol = self.lookup_symbol(item.sym_name, node.sym_tab.parent_scope)
59
-
60
- if base_class_symbol is None:
61
- return
62
-
63
- base_class_symbol_table = base_class_symbol.symbol_table
64
-
65
- # FIXME: If the base class symbol is imported from another module, the symbol table
66
- # will be None. The imported symbols were ignored and introduced in the typecheck
67
- # for imported module items. This needs to be investigated to ensure that even imported
68
- # classes should have a symbol table (unless the module is not parsed and decided not to).
69
- if base_class_symbol_table is None:
70
- return
71
-
72
- if self.is_missing_py_symbol_table(base_class_symbol, base_class_symbol_table):
73
- return
74
-
75
- node.sym_tab.inherit_sym_tab(base_class_symbol_table)
76
-
77
- def inherit_from_atom_trailer(
78
- self, node: uni.Archetype, item: uni.AtomTrailer
79
- ) -> None:
80
- """Handle inheritance from an attribute access chain."""
81
- current_sym_table = node.sym_tab.parent_scope
82
- if current_sym_table:
83
- for name in item.as_attr_list:
84
- sym = self.lookup_symbol(name.sym_name, current_sym_table)
85
- if sym is None:
86
- return
87
- current_sym_table = sym.symbol_table
88
- # Handle Python base classes or index slice expressions
89
- if self.is_missing_py_symbol_table(sym, current_sym_table):
90
- return
91
- if self.is_index_slice_next(item, name):
92
- # "Base class depends on the type of an Index slice expression, this is not supported yet"
93
- return
94
- if current_sym_table is None:
95
- return
96
- node.sym_tab.inherit_sym_tab(current_sym_table)
97
-
98
- def lookup_symbol(self, name: str, sym_table: UniScopeNode) -> Optional[Symbol]:
99
- """Look up a symbol in the symbol table or in builtins."""
100
- symbol = sym_table.lookup(name)
101
- if symbol is None:
102
- # Check for the symbol in builtins
103
- builtins_symtable = self.get_builtins_symtable()
104
- if builtins_symtable:
105
- symbol = builtins_symtable.lookup(name)
106
- return symbol
107
-
108
- def get_builtins_symtable(self) -> Optional[UniScopeNode]:
109
- """Get the builtins symbol table."""
110
- for mod in self.prog.mod.hub.values():
111
- if mod.name == "builtins":
112
- return mod.sym_tab
113
- return None
114
-
115
- def is_missing_py_symbol_table(
116
- self, symbol: Symbol, symbol_table: Optional[UniScopeNode]
117
- ) -> bool:
118
- """Check if a Python symbol table is missing."""
119
- return (
120
- symbol_table is None
121
- and symbol.defn[0].parent_of_type(uni.Module).is_raised_from_py
122
- )
123
-
124
- def is_index_slice_next(
125
- self, item: uni.AtomTrailer, name: uni.AstSymbolNode
126
- ) -> bool:
127
- """Check if the next item in the atom trailer is an index slice."""
128
- idx = item.as_attr_list.index(name)
129
- return idx < len(item.as_attr_list) - 1 and isinstance(
130
- item.as_attr_list[idx + 1], uni.IndexSlice
131
- )