Derived members succeed other givens in cycle test #23898
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.
Sibling givens are always eligible for derived members,
which are appended to the enclosing template.
Fixes #23897
Why was the ticket worth tackling?
The behavior change is a regression that makes
derived
less intuitive.User-written code is logically antecedent to synthetic derived code.
How I fixed it
I merely confirmed the diagnosis by @mrdziuban on the ticket.
Instead of fiddling with positions, the fix takes
derived
members as a special case,where derived members always follow other members.
Perhaps all definitions with a synthetic, zero-extent span deserve the same consideration.
Why is this PR worth reviewing?
It is one LOC that is easy to review if the premise is agreed upon in principle.
What's the worse that could happen?
Existing code that relies on the changed behavior may break.