I suggest to remove a feature from the D2 language, "Typesafe Variadic Functions" for class objects: http://www.digitalmars.com/d/2.0/function.html This is the example in the docs: class Foo { int x; char[] s; this(int x, char[] s) { this.x = x; this.s = s; } } void test(int x, Foo f ...); ... Foo g = new Foo(3, "abc"); test(1, g); // ok, since g is an instance of Foo test(1, 4, "def"); // ok test(1, 5); // error, no matching constructor for Foo In the last years I have never used this feature, so I think it's not useful often enough. Once the feature is missing you have to replace code like this: test(1, 4, "def"); With: test(1, new Foo(4, "def")); So it doesn't seem a significant loss.
It's definitely a weird feature I've never seen used before. What was the rationale for adding this? Is it some feature ported from another language?
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/18324 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB