Rant after trying Rust a bit

deadalnix via Digitalmars-d digitalmars-d at puremagic.com
Fri Jul 24 15:14:48 PDT 2015


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.


More information about the Digitalmars-d mailing list