sort Default Implementations section contents when rendering #1272
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.
Bug/issue #, if applicable: rdar://156311548
Summary
If there are multiple default implementations for a protocol method (currently happening in Swift symbol graphs due a bug when such methods are overloaded), the listed methods are unordered on the final rendered page. This can result in rendered content differing between builds, even when using the same build of DocC and the same content.
This PR enforces an order by sorting symbols via their topic reference URL before rendering.
Dependencies
None
Testing
As this is a nondeterminism bug, testing can be difficult and requires repeated executions for comparison. The unit test included in this PR only erratically would pass or fail, and required repeated attempts to ensure resolution.
Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.
./bin/test
script and it succeeded