Stack-safe implementation of Pretty.break. #495
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.
The motivation for this is #476. I wanted to ensure we had stronger
tests for Pretty.break before refactoring it, and also thought that
this implementation was a little bit nicer.
This PR includes a test for stack-safety, a test to ensure we never
create lines longer than the maximum allowed, and that we can
reassemble the original string from the output. The old code passed
all of these (apart from the stack safety test which it failed), which
helps give confidence and that the new implementation is equivalent.
It also includes a Scaladoc method to explain what the method does.
Thanks to @GytisZ for reporting the issue and providing an initial PR.