Sample code:
----
template TypeTuple(T...){ alias T TypeTuple; }
struct tuple
{
TypeTuple!(int, int) field;
alias field this;
}
auto front(T)(ref T arr){ return arr[0]; }
void main() {
auto bars = [tuple(0, 0), tuple(1, 1)];
auto spam = bars.front[1..2]; //
}
Output:
----
Error: variable __tup3 used before set
Tuple indexing has same problem.
template TypeTuple(T...){ alias T TypeTuple; }
struct tuple
{
TypeTuple!(int, int) field;
alias field this;
}
auto front(T)(ref T arr){ return arr[0]; }
void main() {
auto bars = [tuple(0, 0), tuple(1, 1)];
auto spam1 = bars.front[1]; // indexing
auto spam2 = bars.front[1..2]; // slicing
}