Read a specification step that names a value the specification holds - #2451
Read a specification step that names a value the specification holds#2451woksin wants to merge 3 commits into
Conversation
A step states what it is about by constructing it, and a specification routinely puts that construction in a member and names the member in the step instead - the same event is stated once and asserted on later, or the command is built where the values it needs already are. Reading only what is written inline left every such scenario out whole. The member is followed one hop, to the single place it was put together. Given in two places, or given under a condition, it held different values in different runs and the source does not say which one the step saw - so it stays unread and the scenario is left out with SP0039, the same as any other conditional step. A '= null!' declaration is not one of those places; it satisfies the compiler and states no value. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JfEAq3cyHk3mrWpo8QA9db
|
Reviewer notes. What changed. The discipline, deliberately kept narrow. Following is refused when:
All three keep reporting One non-obvious carve-out. Spec churn worth looking at. Verification. Not verified. The issue's estimate of ~77 recovered scenarios on the reference application — I have no checkout of it, so that number is unconfirmed. Worth measuring before closing #2412 if the count matters. |
WithDefaults ran twice on the way through a generation - once in the generator against the assembly being analyzed, once again in the emitter against the domain of the model - and the two fallbacks are different questions that only happen to agree today. A host calling Emit directly therefore behaved subtly differently from the same model reached through a generation. Resolved options now answer with themselves, so whichever entry point sees them first decides the fallback and the other half reads that decision rather than working one out again. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JfEAq3cyHk3mrWpo8QA9db
Both change the Screenplay generator and this repository ships related work as one pull request; keeping them apart would split one release note across two PRs carrying different semver labels.
|
CI note. A red Consolidation. #2452 (Screenplay options resolved once, #2401 item 7) was folded in here rather than shipped separately, since both change the Screenplay generator and this repository ships related work as one PR. Its commit Verification of the merged branch. |
|
Heads-up: #2522 just merged and it touches More important than the conflict is why that file changed. The fix routes those reads through When resolving the conflict, please keep the |
Changed
Fixed