Fix nested components - render functions now return i32
Changes: - Component render functions return i32 (root element) instead of void - Nested components (yield SomeComponent()) now work correctly - Added main() entry point that calls top-level component and sets root - Updated runtime to call main() instead of render_ComponentName() Note: Active state in ternary expressions still needs reactive updates This commit fixes the nested component rendering issue All tests passing (51 passed, 2 skipped) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
1 parent
adf95f424d
commit
b0e38db22c
26 files changed
+2310
-1222
No files matched your search
@@ -25,7 +25,7 @@ def test_llvm_hello_world_structure():
|
||||
llvm_ir = generate_llvm_ir(ir_dict)
|
||||
|
||||
# Check basic LLVM IR structure
|
||||
assert "define void @render_HelloWorld()" in llvm_ir
|
||||
assert "define i32 @render_HelloWorld()" in llvm_ir
|
||||
assert "ret void" in llvm_ir
|
||||
|
||||
# Should have string constants
|
||||
@@ -115,10 +115,12 @@ def test_llvm_ir_syntax_valid():
|
||||
llvm_ir = generate_llvm_ir(ir_dict)
|
||||
|
||||
# Basic syntax checks
|
||||
assert llvm_ir.count("define") == llvm_ir.count("ret void") # All functions return
|
||||
assert llvm_ir.count("define") == llvm_ir.count("ret") # All functions have returns
|
||||
assert "%" in llvm_ir # Has SSA variables
|
||||
assert "call" in llvm_ir # Has function calls
|
||||
assert "@" in llvm_ir # Has global symbols
|
||||
assert "define void @main()" in llvm_ir # Has main entry point
|
||||
assert "define i32 @render_" in llvm_ir # Component functions return i32
|
||||
|
||||
|
||||
def test_llvm_ir_compiles_with_llc():
|
||||
|
||||
Reference in new issue
Block a user