This code fails to compile, but it shouldn't. void foo1(Object[] a){} void foo2()(Object[] a){} void foo3(T)(T[] a){} void bar1(Object[][] a){} void bar2()(Object[][] a){} void bar3(T)(T[][] a){} void main() { foo1([]); // OK foo2([]); // NG foo3([]); // OK, T == void bar1([[]]); // OK bar2([[]]); // NG bar3([[]]); // OK, T == void }
*** This issue has been marked as a duplicate of issue 4953 ***