The compiler's new behavior is correct, it avoids the infamous "array slicing" problem - in this case, it avoids const data being incorrectly typed as immutable.
To fix the example:
void buildPath(C)(const(C)[][] paths...)
becomes:
void buildPath(C)(const(C[])[] paths...)
Comment #2 by k.hara.pg — 2012-01-29T17:28:12Z
(In reply to comment #1)
> The compiler's new behavior is correct, it avoids the infamous "array slicing"
> problem - in this case, it avoids const data being incorrectly typed as
> immutable.
>
> To fix the example:
>
> void buildPath(C)(const(C)[][] paths...)
>
> becomes:
>
> void buildPath(C)(const(C[])[] paths...)
Walter's fix is right, but we should apply the fix to Phobos.
So this issue is still opened, because it is a Phobos issue, not dmd's.