On Friday, 24 July 2015 at 19:10:33 UTC, Walter Bright wrote:
On 7/24/2015 11:42 AM, Jacob Carlborg wrote:
I don't see the difference compared to a regular parameter. If
you don't specify
any constraints/traits/whatever it like using "Object" for all
your parameter
types in Java.
So constraints then will be an all-or-nothing proposition? I
believe that would make them essentially useless.
I suspect I am not getting across the essential point. If I
have a call tree, and at the bottom I add a call to interface
X, then I have to add a constraint that additionally specifies
X on each function up the call tree to the root. That is
antiethical to writing generic code, and will prove to be more
of a nuisance than an asset.
Exactly what sunk Exception Specifications.
But thats exactly how normal interfaces work...
eg:
interface Iface{ void foo(){} }
void func1(Iface x){ func2(x); }
void func2(Iface x){ func3(x); }
void func3(Iface x){ x.bar(); } // ERROR no bar in Iface
Only options here are A: update Iface to have bar() or B: make a
new interface and change it on the whole tree. The same "problem"
would exist for the concepts, but its the reason why people want
it.