You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* An append onto the same content is AlreadyApplied
A multi-targeted project transitioning to inline snapshots fails the same
call site under every framework, and each one queues an append. Accepting
the first writes the literal the rest are still carrying, so the second
accept found a Snapshot call in the way and refused - reporting a failure
over a source file that was already right, and sending the reader off to
re-run a test with nothing left to say.
TryAppend now reads the chained call's argument before refusing. Same
content is AlreadyApplied; different content is still NotFound, since that
one genuinely cannot say what it wants until it has been re-run against the
literal now in the source. Compared by value rather than by text, so a
literal written in another shape still counts and F# answers as C# does
despite the layout of its triple quoted literal.
WalkChain reports the position of the call it found rather than the fact of
it, because a caller deciding what to do about one has to read its argument.
* Move the AlreadyApplied paragraph into inline.source.md
docs/inline.md is generated, so the paragraph was written into the output
and the next build stripped it back out. It belongs in the mdsource the
generator reads; the generated file is unchanged either way.
* Update Directory.Build.props
Copy file name to clipboardExpand all lines: docs/inline.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -211,6 +211,8 @@ For the staging fallback, where no viewer could be resolved and the patch is a f
211
211
212
212
`Apply` returns `Applied`, `AlreadyApplied` (the literal already matches), `NotFound` (the source changed since the test run — tell the user to re-run rather than retrying), or a failure with a message (locked file, unreadable source), which is retryable.
213
213
214
+
`AlreadyApplied` covers an `Append` onto a call that already has a `Snapshot` call holding this same content, which is what a multi-targeted project transitioning to inline meets: every framework fails the call site and queues an append, and whichever is accepted first writes the literal the rest are carrying. Only a chained call holding *different* content is `NotFound` — that one genuinely cannot say what it wants until it has been re-run against the literal now in the source. Accepting one framework's append before the others have run does mean the queue never sees them together, so a real disagreement between frameworks is reported as that `NotFound` rather than as a conflict to pick from.
215
+
214
216
`Remove` mode patches are configuration changes with nothing to review: apply them directly; `AddInlineAsync` refuses them.
Copy file name to clipboardExpand all lines: docs/mdsource/inline.source.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -204,6 +204,8 @@ For the staging fallback, where no viewer could be resolved and the patch is a f
204
204
205
205
`Apply` returns `Applied`, `AlreadyApplied` (the literal already matches), `NotFound` (the source changed since the test run — tell the user to re-run rather than retrying), or a failure with a message (locked file, unreadable source), which is retryable.
206
206
207
+
`AlreadyApplied` covers an `Append` onto a call that already has a `Snapshot` call holding this same content, which is what a multi-targeted project transitioning to inline meets: every framework fails the call site and queues an append, and whichever is accepted first writes the literal the rest are carrying. Only a chained call holding *different* content is `NotFound` — that one genuinely cannot say what it wants until it has been re-run against the literal now in the source. Accepting one framework's append before the others have run does mean the queue never sees them together, so a real disagreement between frameworks is reported as that `NotFound` rather than as a conflict to pick from.
208
+
207
209
`Remove` mode patches are configuration changes with nothing to review: apply them directly; `AddInlineAsync` refuses them.
0 commit comments