..because aaApply and aaApply2 aren't implemented. Simple test case: static assert({ int[int] aa = [58: 17, 45:6]; int valsum = 0; int keysum = 0; foreach(m; aa) { //aaApply valsum += m; } assert(valsum == 17+6); valsum = 0; foreach(n, m; aa) { //aaApply2 valsum += m; keysum += n; } assert(valsum == 17+6); assert(keysum == 58+45); // Check empty AA valsum = 0; int[int] bb; foreach(m; bb) { ++valsum; } assert(valsum == 0); return true; }());
https://github.com/D-Programming-Language/dmd/commit/61ea0ca9cc8a0220830318bc1b66f0788db65818 https://github.com/D-Programming-Language/dmd/commit/c9bdc18bd85a0b2b5f3b2dc741b45c739e611c5a