Skip to content
This repository has been archived by the owner on Jul 15, 2023. It is now read-only.

Releases: microsoft/CodeContracts

DotNet CodeContracts v.1.10.20606.1-rc2

06 Jun 21:49
Compare
Choose a tag to compare
Pre-release

Summary

Second community-driven release of the DotNet CodeContracts that is mostly focused on minor bug fixes.

Nuget Package

DotNet.CodeContracts at nuget.org

Bug fixes

  • #221 - [VS2015] ccrewrite fails with CC1004: Malformed contract. Found Requires after assignment in method
  • #339 - string.IsNullOrWhiteSpace() not considered Pure by Requires() or Invariant() when running on .NET 4.6.1
  • #340 - ccrewrite fails to read assembly that has non-escaped comma in nested type names
  • #346 - Invalid contract for System.Xml.Schema.XmlSchemaSet
  • #349 - Possible invalid contract in System.Linq.Expression.NewExpression
  • #351 - Invalid contract for System.Dynamic.BindingRestrictions
  • #352 - Add contracts for System.Drawing.Imaging.EncoderParameters
  • #365 - Access to instance members in async postconditions lead to invalid IL
  • #410 - For 64-bit assemblies, preserve the imagebase value when rewriting.
  • #414 - BCL: System.Type.GetMethods() is missing on ensures
  • #424 - Static checker cannot prove compiler-generated Expressions are created safely.
  • #423 - cccheck: Cached analysis gets horrendously slow over time

Acknowledgements

Thank you goes to all of the following users, who contributed feedback, bug reports, code submissions, testing, and reviews which helped in this release. In alphabetical order by username.

DotNet CodeContracts v.1.10.10126.2-rc1

26 Jan 23:33
Compare
Choose a tag to compare
Pre-release

Summary

This is the first major community-driven release of the DotNet CodeContracts. This release addresses a lot of pending issues with installer, new IL patterns introduced by Roslyn Csc compiler, and more reasonable implementation of the postconditions in async methods, a lot of changes in the BCL contracts and more.

Nuget Package

DotNet.CodeContracts at nuget.org

Improvements and new features

  • Proper implementation of async methods postconditions. Now async postconditions are implemented via call to ContinueWith method that checks a postcondition only when task finishes successfully (more details at #278).
  • Postcondition for async method now runs synchronously to reduce additional overhead (#275).

Updated contracts for BCL types

  • Added missing contracts in System.Linq.Expressions.Expression (#171)
  • Contracts for System.Reflection.CustomAttributeExtensions (#180)
  • String.IndexOfAny contract incorrect (#200)
  • False contract assumption encountered on System.Decimal.op_Explicit (#203)
  • Added missing contracts in Directory class (#251)
  • Add missing contracts in System.Windows.Input.InputManager (#285)
  • Add missing contracts in System.Windows.Data.MultiMinding (#286)
  • Extend postcondition on Path.GetTempFileName (#305)
  • Contracts for System.Version (#318)
  • Contract reference assemblies for .NET Framework (#291)
  • Update System.Threading.Tasks.Task for NET4.5/4.6 (#296)
  • Add contracts for System.OperatingSystem (#306)

Bug fixes

Installation + VS Integration issues

  • Update/uninstall leaves VS2013 extension behind (#7)
  • Installer creates a C:\VS11Root folder (#8)
  • Static checker warnings showing in the wrong pane is VS2015 (#166)

Async + Iterators + VS2015 issues

  • Async/iterator issue in async without await (#172)
  • Static checker: recognizing cached anonymous delegate fields produced by Roslyn (#182)
  • ccrewrite produces an incorrect type name in
  • Static checker can't prove ForAll on Roslyn-compiled inline arrays (#204)
  • BadImageFormatException when using Contract.Ensures in async method, that returns task without any await (#235)
  • NullReferenceException in ccrewrite-generated code (#191)
  • Contract.Require(x != null) gets translated in!(x <= null)` in the documentation rewritten by CC (#307)
  • Using capturing precondition in async method in struct lead to invalid IL (#168)

Other bug fixes

  • Sql exceptions: String or binary data would be truncated (#165)
  • Malformed Contract. Found Requires after assignment (#29)
  • Bad application of visibility rules on method parameter attribute (#273)

Misc

  • Code was reformatted to follow well-known .NET coding conventions using StyleCopAnalyzers
  • All unit tests were migrated from MS Test to Xunit
  • CodeContracts as NugetPackage (#13)

Acknowledgements

Thank you goes to all of the following users, who contributed feedback, bug reports, code submissions, testing, and reviews which helped in this release. In alphabetical order by username.

Code Contracts with VS2015 Support

14 Jul 18:20
Compare
Choose a tag to compare

Features

  • Code Contracts support for VS2010-2015
    Long-expected version of the Code Contracts tools that works with VS2015.
  • Code Contracts Editor Extensions support for VS2010-2015
    Long-expected version of the Editor Extensions with support for VS2013 and VS2015.

Bugfixes

  • #112 - "Malformed contract section" when rewriting async methods.
  • #133 - [VS2015] ccrewrite fails when Expression is used in a precondition
  • #33 - "Unknown custom metadata item kind: 7"
  • #38 - CCRewriter produces invalid IL on async method or iterator blocks.
  • #55 - Fix for generic type parameters used as constraints for another type parameter.
  • #84, #85 - Fixes for a lot's of system contracts.

Many other fixes were made to support new Roslyn-based compiler that introduced new IL-patterns for non-capturing lambda expressions.

P.S. Thanks a lot for all community members who did astonishing job by fixing bugs and implementing very useful features!

VS2015 support with async fixes

11 Jul 01:06
Compare
Choose a tag to compare
Pre-release

Features

  • Code Contracts support for VS2010-2015
    Long-expected version of the Code Contracts tools that works with VS2015.
  • Code Contracts Editor Extensions support for VS2010-2015
    Long-expected version of the Editor Extensions with support for VS2013 and VS2015.

Bugfixes

  • #112 - "Malformed contract section" when rewriting async methods.
  • #33 - "Unknown custom metadata item kind: 7"
  • #38 - CCRewriter produces invalid IL on async method or iterator blocks.
  • #55 - Fix for generic type parameters used as constraints for another type parameter.
  • #84, #85 - Fixes for a lot's of system contracts.

Many other fixes were made to support new Roslyn-based compiler that introduced new IL-patterns for non-capturing lambda expressions.

P.S. Thanks a lot for all community members who did astonishing job by fixing bugs and implementing very useful features!

[Obsolete] VS2015 support

10 Jul 05:44
Compare
Choose a tag to compare
Pre-release

This release is obsolete! Please use updated one at https://github.com/Microsoft/CodeContracts/releases/tag/v1.9.10710.1.

Features

  • Code Contracts support for VS2010-2015
    Long-expected version of the Code Contracts tools that works with VS2015.
  • Code Contracts Editor Extensions support for VS2010-2015
    Long-expected version of the Editor Extensions with support for VS2013 and VS2015.

Bugfixes

  • #38 - CCRewriter produces invalid IL on async method or iterator blocks.
  • #55 - Fix for generic type parameters used as constraints for another type parameter.
  • #84, #85 - Fixes for a lot's of system contracts.

Many other fixes were made to support new Roslyn-based compiler that introduced new IL-patterns for non-capturing lambda expressions.

P.S. Thanks a lot for all community members who did astonishing job by fixing bugs and implementing very useful features!