[5.9] Slightly clean up FixIt.Change
and FixIt.Changes
#1496
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Cherry-pick #1460 to release/5.9
The existing API with
FixIt.Change
andFixIt.Changes
and the fact that we passed[FixIt.Changes]
around what fairly weird.Ideally, we would only have
FixIt.Change
and make it powerful enough to represent all the trivia transfer thatFixIt.Changes
is doing. But given that that will be a larger effort, let’s make some smaller changes now that reduce the badness of the public API impact:FixIt.Changes
toSwiftParserDiagnostics
, make it internal and rename it toMultiNodeChange
. That way this type is no longer exposed in the public API, so we can iterate on it or remove it without breaking clients. The only thing that remains exposed isFixIt.Change
, which we want to continue to support. We will probably add more cases to it in the future.FixIt.Changes
no longer conform toExpressibleByArrayLiteral
. That just makes everything a lot more explicit and easier to follow.FixIt.Changes
whereFixIt.Change
was sufficient.presence
onTokenSyntax
settable so you can dotoken.with(\.presence, .missing)