Skip to content

Binder: WithOptions is accepted after binding starts, allowing mixed naming within one envelope #145

Description

@Reefact

Review finding 9/19 · conventional-comment issue · area binder · gate: decide before the v1 API freeze
To add once they exist: label binder; milestone v1. (Already applied: bug.)

Problem

RequestBinder.WithOptions(...) can be called at any point, including after properties have already been bound. Options carry the IArgumentNameProvider, so a binder that binds some properties, swaps the name provider, then binds more, produces argument paths under two different naming policies within the same envelope.

Impact

A single failure envelope can mix, for example, GuestEmail and guest_email paths, so the collect-all output is internally inconsistent and a client cannot rely on one naming policy.

Direction

Either lock the options once the first property is bound and throw on a late WithOptions (a programming error, consistent with the binder's bug channel), or move options to an upstream stage so they can only be set before binding begins.

Context

Surfaced by the RequestBinder review (design spec #126, shipped in #141). Finding 9 of 19.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions