Commit b67b347
feat(generics): inbound value-inference for generic BAML calls
Solve a generic call's TypeVars from argument values when the wire leaves
them unbound, manufacturing the same type_args the explicit _types= channel
would, then handing off to the unchanged substitute/Gate A/coerce/Gate B path.
Engine-side only (RuntimeTy):
- union_runtime_ty + infer_bindings_runtime: RuntimeTy ports of the TIR's
union_ty / infer_bindings_inner (union-merge, null-strip, no union-arm
routing per 00b3 G5).
- synth_ty_from_value: value->RuntimeTy bridge; host-only values bind
rust_type and ride through as Object::RustData (no materializer change).
- driver in call_function_bound_args: infer before Gate A; explicit/self
bindings win via or_insert.
Tests: 16 unifier unit tests + 17 integration tests (tests/generics_inference.rs)
covering 00b3 cases A/B/C/D/E/F/I. Full bex_engine suite green (412 tests).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 85247f4 commit b67b347
3 files changed
Lines changed: 829 additions & 8 deletions
0 commit comments