element(): support negative indices in tuples #200
Closed
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.
Support was added for negative indices in 7b73cce. This change actually only supports lists, while tuples continued to error. This PR adds the same fix for the tuple branch when calculating the return type.
@apparentlymart - it might be that you actually don't want to support this (since tuples have a concretely known length) but it was super quick for me to raise this to start the discussion. I do note the changelog entry just says the element function now accepts negative numbers without clarification that this is only for lists and not tuples.
From Terraform's perspective, users don't really differentiate between a tuple and a list - they just want to execute element([0, 1, 2], -1) without having to wrap the tuple in a
tolist(...)
call first. I can see arguments for both sides