#!/usr/bin/rdmd
import std.stdio;
void main() {
float[3] x = [1,1,1]; // ok
float[] y = [5,5,5,5]; // ok
writeln(x[] + x[]); // error (Array operation v1[] + v1[] not implemented)
float[] t1 = x[] + x[]; // ""
float[] t2 = y[] + y[]; // ""
auto t3 = x[] + x[]; // ""
float[] t1b = x[]; // ok
t1b[] += x[]; // still ok
float[3] t2b = y[] + y[]; // ok??? how does this even... appears to give a float[3] array with values of a [0..3] slice of y[] + y[]...
writeln(t2b);
auto t3b = x[]; // ok
t3b[] += x[]; // still ok
writeln(t3b);
x[] = x[] + 4; // ok
writeln(x);
x[] = x[] + x[]; // ok
writeln(x);
y[] = y[] + 4; // ok
writeln(y);
y[] = y[] + y[]; // ok
writeln(y);
float t4[3];
t4 = x[] + y[]; //ok
writeln(t4);
}
IyEvdXNyL2Jpbi9yZG1kCgppbXBvcnQgc3RkLnN0ZGlvOwoKdm9pZCBtYWluKCkgewoJZmxvYXRbM10geCA9IFsxLDEsMV07IC8vIG9rCglmbG9hdFtdIHkgPSBbNSw1LDUsNV07IC8vIG9rCgoJd3JpdGVsbih4W10gKyB4W10pOyAvLyBlcnJvciAoQXJyYXkgb3BlcmF0aW9uIHYxW10gKyB2MVtdIG5vdCBpbXBsZW1lbnRlZCkKCWZsb2F0W10gdDEgPSB4W10gKyB4W107IC8vICIiCglmbG9hdFtdIHQyID0geVtdICsgeVtdOyAvLyAiIgoJYXV0byB0MyA9IHhbXSArIHhbXTsgLy8gIiIKCglmbG9hdFtdIHQxYiA9IHhbXTsgLy8gb2sKCXQxYltdICs9IHhbXTsgLy8gc3RpbGwgb2sKCglmbG9hdFszXSB0MmIgPSB5W10gKyB5W107IC8vIG9rPz8/IGhvdyBkb2VzIHRoaXMgZXZlbi4uLiBhcHBlYXJzIHRvIGdpdmUgYSBmbG9hdFszXSBhcnJheSB3aXRoIHZhbHVlcyBvZiBhIFswLi4zXSBzbGljZSBvZiB5W10gKyB5W10uLi4KCXdyaXRlbG4odDJiKTsKCglhdXRvIHQzYiA9IHhbXTsgLy8gb2sKCXQzYltdICs9IHhbXTsgLy8gc3RpbGwgb2sKCXdyaXRlbG4odDNiKTsKCgl4W10gPSB4W10gKyA0OyAvLyBvawoJd3JpdGVsbih4KTsKCgl4W10gPSB4W10gKyB4W107IC8vIG9rCgl3cml0ZWxuKHgpOwoKCXlbXSA9IHlbXSArIDQ7IC8vIG9rCgl3cml0ZWxuKHkpOwoKCXlbXSA9IHlbXSArIHlbXTsgLy8gb2sKCXdyaXRlbG4oeSk7CgoKCWZsb2F0IHQ0WzNdOwoJdDQgPSB4W10gKyB5W107IC8vb2sKCXdyaXRlbG4odDQpOwp9Cg==