roadmap: P2 milestone — module-qualified class names + type-driven method dispatch
This commit is contained in:
@@ -77,6 +77,24 @@ work progresses.
|
|||||||
classes beyond the prelude four; multi-parameter classes; superclass
|
classes beyond the prelude four; multi-parameter classes; superclass
|
||||||
chains; richer instance bodies. Deferred from milestone 22.
|
chains; richer instance bodies. Deferred from milestone 22.
|
||||||
- context: JOURNAL 2026-05-09
|
- context: JOURNAL 2026-05-09
|
||||||
|
- [ ] **\[milestone\]** Module-qualified class names + type-driven
|
||||||
|
method dispatch — retire the `MethodNameCollision` workaround
|
||||||
|
(`crates/ailang-core/src/workspace.rs:472`) that today keeps bare
|
||||||
|
class names viable by enforcing workspace-global method-name
|
||||||
|
uniqueness. Replaces name-driven method resolution
|
||||||
|
(`ModuleGlobals::class_methods: IndexMap<String, ClassMethodEntry>`,
|
||||||
|
`crates/ailang-check/src/lib.rs:983`; consumed by
|
||||||
|
`mono::rewrite_class_method_calls`, `crates/ailang-check/src/mono.rs:657`)
|
||||||
|
with type-driven dispatch — look up `eq` candidates by argument
|
||||||
|
type, pick the unique class instance, fail closed on ambiguity.
|
||||||
|
Once shipped, two libraries can each declare `class Eq` with their
|
||||||
|
own `eq`. Carries its own DESIGN spec: inference rules, ambiguity
|
||||||
|
diagnostics, and the canonical-form extension for class-reference
|
||||||
|
fields (`InstanceDef.class`, `SuperclassRef.class`, `Constraint.class`)
|
||||||
|
that the canonical-type-names milestone explicitly out-of-scoped.
|
||||||
|
- context: `docs/specs/2026-05-10-canonical-type-names.md` "Out of
|
||||||
|
scope: Class names" — the workaround is named there so it stays
|
||||||
|
visible until this milestone retires it.
|
||||||
- [ ] **\[todo\]** Boehm full retirement — remove the transitional
|
- [ ] **\[todo\]** Boehm full retirement — remove the transitional
|
||||||
Boehm GC path now that RC + uniqueness is the canonical memory
|
Boehm GC path now that RC + uniqueness is the canonical memory
|
||||||
story.
|
story.
|
||||||
|
|||||||
Reference in New Issue
Block a user