int[][][][] multiArray; void main() { foreach (one, two; multiArray) // ok { } foreach (one, two, three; multiArray) // fail { } } test.d(13): Error: cannot infer type for two test.d(13): Error: cannot infer type for three Same thing happens with hashes as well. Is this a limitation in the language or a bug?