https://issues.dlang.org/show_bug.cgi?id=20428
--- Comment #2 from FeepingCreature <default_357-l...@yahoo.de> --- Just to make it clearer: interface I { void foo(int i) in (i < 10); } This means that for any implementation of I, foo() *has to* take all i < 10. But it can always *choose* to additionally take i >= 10. And by default, if you specify no in-condition in C : I {}, it does. --