Releases: microsoft/CodeContracts
DotNet CodeContracts v.1.10.20606.1-rc2
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
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 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.
Code Contracts with VS2015 Support
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
VS2015 support with async fixes
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
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!