Skip to content

10.x: map each translator operand from its declared type, and sweep for it (port of #295) #433

Closed

Description

@CaffeinatedCoder

Problem

The fix for #295 is on main (PR #432, merged as 9caa202) but not on release/10.x. There the translators still map an operand from what it isn't: a RangeSet operand that is neither the multirange nor the element becomes a range, a value set call's second operand a set, a factory's bounds the element, and an aggregate's source ranges. That's right for every overload that exists today, but an overload added later with another operand type would be translated wrongly, without an error. And nothing on this line would notice: 10.x has no TranslatorDispatchSweepTests.

#408 puts #295 ahead of #405, #406 and #191, so their 10.x cherry-picks are written under the sweep too.

Change

Cherry-pick 9caa202's commit with -x into a PR against release/10.x:

  • MissingArm and the four translator changes (ValueRangesMethodCallTranslator, ValueSetsMethodCallTranslator, ValueRangesAggregateMethodCallTranslator, ValueSetsMemberTranslator).
  • TranslatorDispatchSweepTests (conventions), MissingArmTests (EF translation tests), the oracle entry, the seed rangeset-overload-without-translator-arm.patch, the docs/oracles.md paragraph and the AGENTS.md lines.
  • QueryMembers.Close/Mentions, which the 10.x translation-support port (10.x: translation-support inventory, every public query member classified and probed (port of #384) #430) also has.

Done when

On release/10.x, the sweep and MissingArmTests pass, the seed fails the sweep and leaves the EF translation tests green, and the four translators reverted make MissingArmTests fail. Checked on the EF floor and the newest-patch leg.

Release

Internal: no answer changes for any existing overload, and no public API change. Fixed only on release/10.x, so close it by hand.

Activity

  1. added this to the 10.3.0 milestone on Oct 25, 2026
  2. added
    testsAdds or changes tests only (oracles, harnesses); no library code
    area/rangesRange unions, variants and the shape engines
    area/range-setRangeSet and multirange algebra
    area/value-setsValue set families and wrapper arities
    package/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQL
    package/efcore-nodatimeAffects CodoMetis.ValueRanges.EFCore.PostgreSQL.NodaTime
    on Oct 25, 2026
  3. CaffeinatedCoder commented on Oct 25, 2026

    @CaffeinatedCoder
    OwnerAuthor

    PR #435.

  4. CaffeinatedCoder commented on Oct 25, 2026

    @CaffeinatedCoder
    OwnerAuthor

    Fixed on release/10.x by PR #435 (merged as 893c632). The translators map each operand from its declared type on this line too, and TranslatorDispatchSweepTests holds it. Closed by hand, because Closes #n acts only on main.

  5. added a commit that references this issue on Oct 25, 2026
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/range-setRangeSet and multirange algebraarea/rangesRange unions, variants and the shape enginesarea/value-setsValue set families and wrapper aritiespackage/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQLpackage/efcore-nodatimeAffects CodoMetis.ValueRanges.EFCore.PostgreSQL.NodaTimetestsAdds or changes tests only (oracles, harnesses); no library code

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions