I have hit multiple cases that seem to be a pattern:
Contract.Ensures(Contract.Result<BlahType>() != null);
...
BlahType Blah = new BlahType();
...
...
return Blah;
and it gripes.
In all cases the field is private and nothing else in the method messes with it. (These are all lazy initializations as the data must come from the disk.)
Of course I could add a Contract.Assume here but I don't like that kind of answer.