Repository navigation
Complete deriving diagnostics and fundep suite coverage #98
Copy link
Copy link
Closed
Labels
area:frontendFrontend: syntax, resolution, kinds, types, classesFrontend: syntax, resolution, kinds, types, classesenhancementNew feature or requestNew feature or requestgate:L2Blocks module, import, export and name resolution (D-04 L2)Blocks module, import, export and name resolution (D-04 L2)gate:L5Blocks type classes and instances (D-04 L5)Blocks type classes and instances (D-04 L5)gate:L6/M7Blocks runtime and the standard library (D-04 L6, M7)Blocks runtime and the standard library (D-04 L6, M7)gate:M8Blocks the warning and optimization gates (D-04 M8-W, M8-O)Blocks the warning and optimization gates (D-04 M8-W, M8-O)
Milestone
Description
Part of #77 (Phase 4). The M5 derivation group, plus the class rows the corpus exercises that we have not covered.
Deriving
CannotDeriveInvalidConstructorArg— 7 corpus cases, the largest single deriving group. NeedsGeneric/Repsupport to determine whether a constructor's field type admits the derived representation.CannotDeriveNewtypeForData— 1 case.PossiblyInfiniteCoercibleInstance— 1 case.
FE-16 already covers role inference, Coercible solving, derive newtype adapters, and the Eq/Ord/Functor/Bifunctor/Contravariant derivings with Wasmtime evidence. What is missing is Generic-driven derivation for the remaining upstream classes and the diagnostics that say a derivation is impossible.
Also here
- Fundep ambiguity and consistency — FE-15 is
Partialonly on official-suite coverage.AmbiguousConstraintandFundepConflictneed theirpurscounterparts chosen (Map TypeCheckErrorKind to official errorCodes #81 defers the mapping decision). - Method-local class constraints — FE-14 records that scoped method-local constraints have rank-N evidence but no suite agreement.
- FE-15 remaining advanced class forms — multi-parameter classes are done; quantify what is left and land it.
Acceptance
The 7+1+1 deriving cases agree, FE-15's fundep rows have official-suite evidence, and FE-14/FE-15/FE-16 each state a concrete remaining gap rather than "reconcile official-suite coverage".
Metadata
Metadata
Assignees
Labels
area:frontendFrontend: syntax, resolution, kinds, types, classesFrontend: syntax, resolution, kinds, types, classesenhancementNew feature or requestNew feature or requestgate:L2Blocks module, import, export and name resolution (D-04 L2)Blocks module, import, export and name resolution (D-04 L2)gate:L5Blocks type classes and instances (D-04 L5)Blocks type classes and instances (D-04 L5)gate:L6/M7Blocks runtime and the standard library (D-04 L6, M7)Blocks runtime and the standard library (D-04 L6, M7)gate:M8Blocks the warning and optimization gates (D-04 M8-W, M8-O)Blocks the warning and optimization gates (D-04 M8-W, M8-O)
Activity
biuld commentedon Oct 22, 2026
L5 is 101/101, including CannotDeriveInvalidConstructorArg 7/7, InvalidNewtypeInstance 6/6 and CannotDeriveNewtypeForData 1/1. Fundep, method-local constraints and deriving differential/execution evidence pass; broader feature rows remain explicitly Partial.
Verified by PR #164 (41a16e2): formatting, default Clippy, full workspace (2331 passed, zero failed), five separately executed frontend boards, all 22 official purs differential tests, and the complete serial runtime board (297/340; 25 FFI exclusions; every agreeing exit zero). Required Wasmtime CI execution check 119961920075 completed successfully. The three losses versus the older board reproduce on the unmodified starting HEAD; BigFunction remains an explicit incomplete compiler verdict.
Evidence: Phase 4 acceptance review.