Constructors are now auto-slotted into the vtable by the semantic pass. When a constructor is called through a metaclass-typed variable (C.Create(args)), the compiler emits _ClassCreate for allocation followed by a vtable-indirect call to the most-derived constructor body. Direct calls (TFoo.Create) remain fully static. Both backends (QBE and native x86-64) emit correct dispatch for: - MetaclassVar.Create(args) syntax - ClassCreate(MetaclassVar, args) builtin - Zero-arg and multi-arg constructor signatures This is a layout-changing commit (adds constructor vtable slots). Verified: FIXPOINT_OK, NATIVE_FIXPOINT_OK, NATIVE_INTERNAL_OK, 3370 tests pass. |
||
|---|---|---|
| .. | ||
| benchmark.txt | ||
| bif-format.adoc | ||
| design.adoc | ||
| extending-ast.adoc | ||
| future-improvements.adoc | ||
| grammar.ebnf | ||
| internal-linker-design.adoc | ||
| language-rationale.adoc | ||
| name-mangling.adoc | ||
| native-const-arg-arc-port.adoc | ||
| testing-strategy.adoc | ||