https://issues.dlang.org/show_bug.cgi?id=20138
--- Comment #4 from Manu <turkey...@gmail.com> --- Is this another construction of the same issue, or is it a similar but unrelated issue? T fun(T)(shared(T) a) { return a; } shared const int[] x; pragma(msg, typeof(fun(x))); > const(shared(int)[]) !!! `T` should be typeof(x) but with shared peeled away: const(int[]) --