Changelog History
-
v1.10.20606.1 Changes
June 06, 2016Summary
๐ 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.
-
v1.10.10126.2 Changes
January 26, 2016Summary
๐ 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 usingContract.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.
- Proper implementation of async methods postconditions. Now async postconditions are implemented via call to
-
v1.9.10714.2 Changes
July 14, 2015๐ 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!
- Signed version of Code Contracts at VS Gallery: https://visualstudiogallery.msdn.microsoft.com/1ec7db13-3363-46c9-851f-1ce455f66970
- Signed version of Code Contracts Editor Extensions at VS Gallery: https://visualstudiogallery.msdn.microsoft.com/02de7066-b6ca-42b3-8b3c-2562c7fa024f
- ๐ Code Contracts support for VS2010-2015
-
v1.9.10710.1 Changes
July 11, 2015๐ 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!
- ๐ Code Contracts support for VS2010-2015
-
v1.9.10709.0 Changes
July 10, 2015๐ 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!
- ๐ Code Contracts support for VS2010-2015