Prevent PrintOptions from being implicitly copied #82008
Merged
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.
NFC except that I noticed a bug by inspection where we suppress
@escaping
when print enum element types. Since this affects recursive positions, we end up suppressing@escaping
in places we shouldn't. This is unlikely to affect much real code, but should still obviously be fixed.The new design is a little sketchy in that we're using
const
to prevent direct use (and allow initialization ofconst &
parameters) but still relying on modification of the actual object. Essentially, we are treating theconst
-ness of the reference as a promise to leave the original value in the object after computation rather than a guarantee of not modifying the object. This is okay --- a temporary bound to aconst
reference is still a non-const
object formally and can be modified without invoking UB --- but makes me a little uncomfortable.