I am finding that the use of contracts in D2 doesn't help to locate bugs. The messages given tell the file and line for the check, but not the offending code. This makes it appear as though the error is the fault of Phobos and not my code (which of course is not the case). Here are a few of errors I've been coming across.
* When Passing Function instead of Delegate to getopt() /usr/local/include/d/phobos2/std/getopt.d(470): Error: static assert "Dunno how to deal with type void function()" * When running a file that doesn't exist with std.process.shell() std.contracts.ErrnoException: std/stdio.d(336): Could not close file `dmd' (No such file or directory) * When calling certain programs with shell() Example output from running writeln(shell("gcc")) gcc: no input files std.contracts.ErrnoException: std/stdio.d(336): Could not close file `gcc' (Success)