Another idiom I wish were gone from phobos/druntime

Rikki Cattermole via Digitalmars-d digitalmars-d at puremagic.com
Wed Feb 4 16:30:40 PST 2015


On 5/02/2015 1:24 p.m., Andrei Alexandrescu wrote:
> I'm seeing another idiom that seems to become fashionable. Consider this
> excerpt from
> https://github.com/D-Programming-Language/phobos/blob/master/std/algorithm/iteration.d#L407:
>
>
>              auto opSlice(size_t low, size_t high)
>              in
>              {
>                  assert(low <= high);
>              }
>              body
>              {
>                  import std.range : take;
>                  return this[low .. $].take(high - low);
>              }
>
> which of course trivially boils down to:
>
>              auto opSlice(size_t low, size_t high)
>              {
>                  assert(low <= high);
>                  import std.range : take;
>                  return this[low .. $].take(high - low);
>              }
>
> What advantage could possibly be in transforming a 5-liner into a
> 9-liner? Are we really aiming at writing the maximum possible lines of
> code here and using as many language features as possible everywhere?
>
> I think we should dust off that Phobos contributors' guide. Sadly, there
> is little we can do against the more subtle issues.
>
>
> Andrei

So are we recommending against contract based programming for simple 
getter type methods?
Personally I think those auto's are more important to get rid of in this 
code. They actually do harm for anyone reading the docs.


More information about the Digitalmars-d mailing list