Skip to content

AssertionError #150

Description

@robertmorelli

lib.py:

import __static__
from __static__ import int64

def f(a) -> int64:
    x = 0
    if a: x = a
    return x

main.py:

from cinderx.compiler.strict.loader import install
install()

from lib import f
f(3)

install specs:

cinderx pulled/built from source and installed to venv (commit 4a4f7552d506a6cf1174ccd67bcd03aad667dce2 rechecked on 4ff0ed93278a3521d62dae8afbe33bc997adb32b)
python3.14 (from homebrew)
MacOS 27.0 Beta (KK4GR6WT65) Apple M1 Pro (MacBook Pro)

error:

∫ python3 main.py
Traceback (most recent call last):
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/10/main.py", line 4, in <module>
    from lib import f
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1342, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 938, in _load_unlocked
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/strict/loader.py", line 579, in exec_module
    code = self.get_code(module.__name__)
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/strict/loader.py", line 479, in get_code
    code_object = self.source_to_code(source_bytes, source_path)
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/strict/loader.py", line 552, in source_to_code
    ) = self.get_compiler().load_compiled_module_from_source(
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        data,
        ^^^^^
    ...<4 lines>...
        override_flags=Flags(is_strict=force),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/strict/compiler.py", line 213, in load_compiled_module_from_source
    code = self._compile_static(
        pyast, source, symbols, filename, name, optimize
    )
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/strict/compiler.py", line 338, in _compile_static
    return self.compile(
           ~~~~~~~~~~~~^
        name,
        ^^^^^
    ...<5 lines>...
        builtins=self.original_builtins,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/static/compiler.py", line 613, in compile
    code_gen = self.code_gen(
        name, filename, tree, source, optimize, enable_patching, builtins
    )
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/static/compiler.py", line 652, in code_gen
    code_gen.visit(tree)
    ~~~~~~~~~~~~~~^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/pycodegen.py", line 2661, in visit
    ret = super().visit(node)
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/visitor.py", line 57, in visit
    return meth(self, node)
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/static/__init__.py", line 632, in visitModule
    super().visitModule(node)
    ~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/pycodegen.py", line 551, in visitModule
    self.visitStatements(self.skip_docstring(node.body))
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/pycodegen.py", line 2672, in visitStatements
    return self.visit_list(nodes)
           ~~~~~~~~~~~~~~~^^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/visitor.py", line 66, in visit_list
    self.visit(node, *args)
    ~~~~~~~~~~^^^^^^^^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/pycodegen.py", line 2661, in visit
    ret = super().visit(node)
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/visitor.py", line 57, in visit
    return meth(self, node)
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/pycodegen.py", line 578, in visitFunctionDef
    self.visitFunctionOrLambda(node)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/static/__init__.py", line 466, in visitFunctionOrLambda
    name = function.emit_function(node, self)
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/static/types.py", line 3872, in emit_function
    self.emit_function_body(node, code_gen, first_lineno, node.body)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/static/types.py", line 3422, in emit_function_body
    gen = code_gen.generate_function_with_body(node, node.name, first_lineno, body)
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/pycodegen.py", line 3583, in generate_function_with_body
    self.processBody(node, body, gen)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/static/__init__.py", line 457, in processBody
    super().processBody(node, body, gen)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/strict/code_gen_base.py", line 355, in processBody
    super().processBody(node, body, gen)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/pycodegen.py", line 612, in processBody
    gen.visit(stmt)
    ~~~~~~~~~^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/pycodegen.py", line 2661, in visit
    ret = super().visit(node)
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/visitor.py", line 57, in visit
    return meth(self, node)
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/static/__init__.py", line 839, in visitReturn
    self._visitReturnValue(value, expected)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/static/__init__.py", line 822, in _visitReturnValue
    expected.emit_type_check(self.get_type(value).klass, self)
    ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/robertmorelli/Documents/personal-repos/cinderx_bugs/.venv/lib/python3.14/site-packages/cinderx/compiler/static/types.py", line 9764, in emit_type_check
    assert self.can_assign_from(src)
           ~~~~~~~~~~~~~~~~~~~~^^^^^
AssertionError

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions