is this a bug?
the call to join invalidates the "name" field of A:
----
import std.array;
import std.stdio;
class A{
string name;
alias name this;
~this(){
writeln("deleting");
}
}
void main(){
auto a=[new A(`foo`)];
assert(a[0].length);
writeln("1");
auto temp=a.join(" ");
writeln("2");
assert(!a[0].length); //a[0] is now empty!
}