Skip to content

Complete deriving diagnostics and fundep suite coverage #98

Closed

Description

@biuld

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. Needs Generic/Rep support 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 Partial only on official-suite coverage. AmbiguousConstraint and FundepConflict need their purs counterparts 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".

Activity

  1. added
    area:frontendFrontend: syntax, resolution, kinds, types, classes
    gate:L2Blocks module, import, export and name resolution (D-04 L2)
    gate:L5Blocks type classes and instances (D-04 L5)
    gate:L6/M7Blocks runtime and the standard library (D-04 L6, M7)
    gate:M8Blocks the warning and optimization gates (D-04 M8-W, M8-O)
    on Oct 1, 2026
  2. biuld commented on Oct 22, 2026

    @biuld
    OwnerAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:frontendFrontend: syntax, resolution, kinds, types, classesenhancementNew feature or requestgate:L2Blocks module, import, export and name resolution (D-04 L2)gate:L5Blocks type classes and instances (D-04 L5)gate:L6/M7Blocks runtime and the standard library (D-04 L6, M7)gate:M8Blocks the warning and optimization gates (D-04 M8-W, M8-O)

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions