#listmerge
: Fix post-sort with templates
#24
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.
Motivation
The
#listfilter
,#listmap
,#listunique
, and#listmerge
functions. take a list, and return a new list, doing a specific operation using a pattern or template.Since they operate in the list from left to right, a
sortmode
parameter can be provided to sort the list before (sortmode = presort
), after (sortmode = postsort
), or both before and after (sortmode = pre/postsort
) the operation is applied.However, when given a template, the
#listmerge
function does not try to sort values after having applied its template, so thepostsort
option has no effect andpre/postsort
works aspresort
. This is not the case when a pattern is provided instead, see the associated test case.Proposed changes
Add a post-sorting step to
#listmerge
when templates are used for matching/merging values.