Skip to content

Pin the #757 generic-instantiated-ctor-field runtime deferral with an assertion #760

Description

@aallan

Follow-up from the test-coverage review of PR #756 (#747). The two deferred runtime-guard residuals are tracked asymmetrically in the suite: #754 (effect-operation argument) has a dedicated assertion-bearing pin (test_non_let_tier3_narrowing_warns_unguarded asserts tier3_unguarded + E504), but the #757 generic-instantiated constructor-field deferral is pinned only in prose (a docstring note in test_overall_tier_counts), with no assertion that the runtime guard is absent today.

Add a small codegen test asserting the current deferral: Some(0 - 5) building an Option<Nat> compiles and runs without trapping — the generic field instantiated to @Nat is statically obligated (E503) but carries no per-field mono metadata, so no guard is emitted. When #757 lands, that test flips to a trap and becomes the regression pin — symmetric with how #754 is pinned.

Surfaced by the multi-agent review of PR #756.

Metadata

Metadata

Assignees

No one assigned

    Labels

    testingTest suite structure and coverage

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions