In debug builds gets rewritten as: int max(in int x, in int y) { if (x <= y) throw new AssertError("..."); return x; }
Sorry, I meant: In debug builds gets rewritten as: int max(in int x, in int y) { if (x <= y) throw new AssertError("..."); return (x > y) ? x : y; } Bye, bearophile