On Saturday, 7 January 2012 at 16:10:32 UTC, Don wrote:
Sorry Andrei, I have to disagree with that in the strongest
possible terms. I would have mentioned AAs as a very strong
argument in the opposite direction!
Amen. AAs are *still* broken from this change. If you
take a look at my cgi.d, you'll find this:
// Referencing this gigantic typeid seems to remind the compiler
// to actually put the symbol in the object file. I guess the
immutable
// assoc array array isn't actually included in druntime
void hackAroundLinkerError() {
writeln(typeid(const(immutable(char)[][])[immutable(char)[]]));
writeln(typeid(immutable(char)[][][immutable(char)[]]));
writeln(typeid(Cgi.UploadedFile[immutable(char)[]]));
writeln(typeid(immutable(Cgi.UploadedFile)[immutable(char)[]]));
writeln(typeid(immutable(char[])[immutable(char)[]]));
// this is getting kinda ridiculous btw. Moving assoc arrays
// to the library is the pain that keeps on coming.
// eh this broke the build on the work server
// writeln(typeid(immutable(char)[][immutable(string[])]));
writeln(typeid(immutable(string[])[immutable(char)[]]));
}
It was never a problem before... but if I take that otherwise
useless function out, it still randomly breaks my builds to
this day.