Marco Leise:

Phobos:

   (boxer.d):
   assert (box(1) == box(cast(byte)1));
=> assert (box(1) == box(1b));

   (algorithm.d):
assert(b == [ cast(ubyte) 0, cast(ubyte)2, cast(ubyte)1, cast(ubyte)6, cast(ubyte)5], text(b));
=> assert(b == [ 0ub, 2ub, 1ub, 6ub, 5ub], text(b));

Here b is an ubyte[] of length 5. I think this works:

assert(b == [0, 2, 1, 6, 5], text(b));

Because this works:

void main() {
    ubyte[] a = [1, 2];
    assert(a == [1, 2]);
}



=> a = 5s;

I read that as "5 seconds" :-(



GtkD:

   (Color.d and several other occurences):
   _black = new Color(cast(ubyte)0,cast(ubyte)0,cast(ubyte)0);
=> _black = new Color(0ub,0ub,0ub);

This is a reduction of the Color class of GtkD:

public class Color {
    this(ubyte red, ubyte green, ubyte blue) {}
}

There is no need to use those casts:

void main() {
    auto _black = new Color(0, 0, 0);
}


ScintillaD:

   (SciTEWin.d):
SendMessage(HwndOf(wText), CB_SETEDITSEL, 0, MAKELPARAM(0, cast(ushort)-1)); => SendMessage(HwndOf(wText), CB_SETEDITSEL, 0, MAKELPARAM(0, -1us));

"cast(ushort)-1" isn't a good idiom in D. Better to write "ushort.max".


I don't think your examples justify the increased language complexity.

Bye,
bearophile

Reply via email to