I was just messing around to answer someone's question here on Stack Overflow, when I noticed a static verification warning from inside my Visual Studio (2008):
string[] source = { "1", "A", "B" };
var sourceObjects = Array.ConvertAll(source, c => new Source(c)).ToArray();
I'm getting the message requires unproven source != null. It seems pretty obvious to me that this is not the case. This is just one example of course. On the other side, some pretty nifty stuff seems to be working fairly well.
I'm using the 1.2.20518.12 release (May 18th). I find code contracts very interesting, but has anyone else had cases like this? Do you consider the current implementation usable in practice, or would you consider them purely academic at this point?
I've made this a community wiki, but I'd like to hear some opinions :)