tuple subscripts as overload, always generate TupAt for gear3 #346
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.
refs #269
Gear3 anonymizes the tuple fields according to their indexes, so
TupAt
is generated from tuple dot fields and converted back into a dot field in gear3, rather than the other way around. An alternative would be an alternativedot
tag like(tdot tup.0 fld.0 +123)
where the final integer is the offset but this may be excessive.Since static params are not fully implemented, the index being a compile time value has to be enforced manually in the magic for now, and typed template/generic params cannot really be used as the index, only worked around here in
[]=
by the fact that the tuple type is a typevar and so we don't have to fully semcheck it.We could also implement this as builtin subscript behavior rather than an overload in the worst case.