Skip to content

Follow OverPy argument shifting for omitted defaulted middle arguments #392

Description

@e54-bot

Goal

Match the pinned OverPy 9.7.10 argument-shifting behavior when a defaulted middle argument is omitted for createBeam, getPlayersInRadius, createHomingProjectile, and createProjectileEffect.

Context

The pinned reference shifts remaining arguments left without type checking and can therefore emit a structurally mistyped Workshop call. opy-rs currently rejects these forms instead of reproducing that output.

The current difference has two owners:

  • OPY argument binding: opy-rs must implement the reference's omitted-middle-argument shift.
  • Canonical Workshop validation: the shifted calls currently fail canonical semantic validation. Any allowance must be defined by workshop-rs narrowly enough that normal validation is not weakened globally.

Until both sides are resolved, the behavior remains an explicit compatibility exception rather than a hidden workaround.

Scope

  • Establish the required workshop-rs contract for admitting exactly the reference-shaped shifted calls without disabling canonical validation for unrelated programs.
  • Change the opy-rs binder to shift omitted defaulted middle arguments for the four functions.
  • Remove the corresponding compatibility exception from docs/architecture/language-core.md and tools/overpy/probe-gaps.json.
  • Update focused tests to require the pinned reference structure.

Non-goals

  • Weakening canonical validation globally.
  • Skipping Workshop validation in opy-rs.
  • Adding per-function validation bypasses owned only by the OPY compiler when the underlying Workshop contract belongs in workshop-rs.
  • Adding or renaming Workshop catalog entries.

Acceptance criteria

  • The four functions compile omitted-middle-argument calls with Workshop structure equal to the pinned OverPy reference.
  • probe-gaps.json no longer lists reference-binds-mistyped-optional.
  • The approved exception in language-core.md is removed or superseded by the implemented contract.
  • Canonical validation remains effective for unrelated invalid programs.
  • Standard repository gates and the builtin compatibility probe pass.

Dependencies / ownership

  • opy-rs: OverPy argument binding and compatibility tests.
  • workshop-rs: canonical validation contract required to represent the shifted reference output safely.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions