ILSpy 8.x is based on .NET 6.0. All artifacts except the self-contained distribution are built framework-dependent, which means .NET 6.0.2 or later must be installed prior to starting ILSpy.
New Language Features
- C# 7.1 Pattern matching with generics
- C# 8.0 Recursive patterns
- C# 9.0 Relational patterns
- C# 9.0
not
patterns - C# 10.0 static abstract members in interfaces
- C# 11.0 switch on
(ReadOnly)Span<char>
Contributions
- Add entry size info (@startewho, #3052)
- Add GC Info to R2R output (@eduardo-vp, #3076)
- Update R2R (@cshung, #3088)
- Reduce "unsafe" by replacing byte* pointer usage with ReadOnlySpan<byte> (@fowl2, #3106 )
Enhancements
- #3090: add support for the
NUGET_PACKAGES
environment variable - Fixed some quirks in our search: #3064, #3065 and #3038
Performance
- #3075: Avoid processing already-transformed blocks by introducing
BlockTransformContext.IndexOfFirstAlreadyTransformedInstruction
, which allows us to track already transformed instructions after a block has been merged into another byConditionDetection
. - #3075: Add
NextSetBit
operation toBitSet
to avoid looking at every store bit individually inReachingDefinitionsVisitor.GetStores()
- #3075: Fix
ILVariableEqualityComparer.GetHashCode
- #3075: Improve performance of
CSharpResolver.LookupSimpleNameOrTypeName
in cases with a large number of local variables. - #3075: Eliminate recursion in some parts of the decompiler engine
- ILSpy UI: #3057 - sub-optimal use of
StringBuilder
when constructing tree-node labels
Bug fixes
- #3061: Handler blocks of exception filter blocks do not have a header.
- #3103: unaligned.stobj cannot be transformed into inline assignment
- #3091: extension methods named
Add
were skipping some checks inAccessPathElement.IsMethodApplicable
. - #3004: MetadataModule.ResolveEntity() returning null for System.IntPtr when C# 11 native integers are enabled.
- #3105 - VS2017-2019 addin didn't properly match subdirectory structure of 2022 addin
- #3014: Missing type information in lambda expressions
And many other fixes, for a full list click here.