text: Snooping through 3.5 now that its in production I found something I was REALLY hoping to see ... Anyone up for guesses on why Microsoft.Contracts made it into System.Core? :)
  Not ONLY this but parts of the framework (oddly the new parts) ACTUALLY USE the contracts!!!
  [Serializable, StructLayout(LayoutKind.Sequential), Immutable, ComVisible(false)]internal struct BigInteger : IFormattable, IEquatable<BigInteger>, IComparable<BigInteger>, IComparableYes YES YES !!! IMMUTABLE .... mmm so yummy!
  [Pure]public static bool operator >(BigInteger x, BigInteger y){ return (Compare(x, y) > 0);}
  And finally ...
  private static ushort Exponent(byte[] doubleBits){ Contract.Requires(doubleBits.Length == 8); return (ushort) ((((ushort) (doubleBits[7] & 0x7f)) << 4) | (((ushort) (doubleBits & 240)) >> 4));} Somebody at Microsoft has really made my DAY!!!
  Very soon me thinks ... spec# will be coming to a framework near you!!
  [Advertisement]
  Freaking awesome! Too bad they're internal...
  Nice.
  Nick ... can you define "properly"?
  As of now I personally don't like the decisions made by spec# when it comes to pre/post conditions and inheritance. It is quite strict in that I can't strengthen a contract when overriding ... I understand why this decision was made (the contracts should be the same if I am using them in a polymorphic fashion so the prover can actually prove no runtime contract violations) but it doesn't 'feel' natural to me...
  I had seen some of those tools for generating tests automagically ... looks pretty cool.
  ". Now, this makes lots of unit testing (but not all) redundant. Look at your current unit tests. Most will be set up test cases that match the preconditions"
  I have been saying exactly this for a long time (in the code bases I have analyzed generally 60-70% of lines of test code are testing just this). I think however the generation of tests will go away ... I think instead we will try to version our contracts (using some tool) and watch changes in those contracts over time...
  Cheers,
  Greg
  I think what Spec# really needs is framework support. Not just the native types (String, Array), but also stuff like Windows.Forms. I've been experimenting with it for a couple weeks and I find I have to write assume statements all over the place. Its becoming a habit, which means I don't take a moment to think about how the assumption might break the application. I think the value of Spec# is in those moments of thought.
  I found an interesting link today from Mario Gleichmann called Test Driven Development and Design By
  Friday 14th Dutch user Group SDN had a full day meeting. The SDN has a very long history, it started
  On top of things Code Query Language users where asking for, was the condition HasAttribute . I am glad