On Friday, 24 July 2015 at 21:27:09 UTC, Tofu Ninja wrote:
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.

C: do a runtime check or downcast.

Reply via email to