import std.traits; void foo(int) { } void bar(ref int) { } void main() { pragma(msg, ParameterTypeTuple!foo); // (int) pragma(msg, ParameterTypeTuple!bar); // (ref int) static assert(is(ParameterTypeTuple!foo == ParameterTypeTuple!bar)); // pass } If the storage classes are not compared, then ParameterTypeTuple should not keep them around. We have ParameterStorageClassTuple for that (which is itself full of bugs too).
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/phobos/issues/9915 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB