On Friday, 5 October 2012 at 13:57:13 UTC, bearophile wrote: > void foo1(C1 c1, C2 c2) > in { > assert(c1 !is null); > assert(c2 !is null); > } body { > ... > } And in public library code, you can't even use assert. You have to throw an error/exception. Runtime checks guaranteed even in release mode.