ILSpy v6.2 Release Notes

Release Date: 2020-09-24 // over 3 years ago
  • ๐Ÿ†• New Language Features

    • C# 7.0: Deconstruction
    • C# 8.0: await foreach
    • C# 8.0: Disposable ref structs
    • C# 8.0: Enhanced using statements
    • C# 8.0: switch expressions
    • C# 9.0: init accessors
    • ๐Ÿ‘€ C# 9.0: function pointers (see #2150)
    • C# 9.0: foreach with GetEnumerator extension methods
    • C# 9.0: Lambda parameter discards

    General

    • โž• Add an option to enable aggressive inlining of expressions
    • โž• Add option for string.Concat decompilation
    • โž• Add an option to always qualify member references (by @Pathoschild, see #2114)
    • ๐Ÿ‘€ ReadyToRun: Variable tracking in output (by @edkazcarlson, see #2067)
    • โšก๏ธ ReadyToRun: Optimized debug info output (by @cshung, see #2113)
    • ๐Ÿ‘€ Work on unifying the code formatting (see #2128)
    • โฌ†๏ธ Tests upgraded to Roslyn 3.8.0-3.final

    ๐Ÿ’ป UI Improvements

    • ๐Ÿ‘Œ Improve performance of Metadata DataGridCell (see #2151)
    • ๐Ÿ›  Fix #2107: Add ScrollViewer around DisplaySettingsPanel
    • ๐Ÿ“‡ Metadata: Improvements/fixes by @srutzky, see #2134, #2135, #2145, #2147 and #2153
    • โšก๏ธ Updated Chinese translation

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fix #2129: be more flexible about the initialization order for the async state machine
    • ๐Ÿ›  Fix #2140: ILSpy 6.2p1 no longer respects "use discards" setting
    • ๐Ÿ›  Fix #2139: ArgumentOutOfRangeException for some xmldoc
    • ๐Ÿ›  Fix #2039: Code generated by VB's On Error Resume Next causes "unassigned variable" compile errors
    • ๐Ÿ›  Fix #2156: range syntax not being detected correctly in some cases
    • BAML decompiler: #2109 and #2106
    • ๐Ÿ›  Fix #2086: Check that window belongs to ILSpy before sending it a WM_COPYDATA message.
    • ๐Ÿ›  Fix #2090: ignore mscorlib references without public key token, when trying to resolve mscorlib. This will automatically fallback to .NET 4.0's mscorlib.dll.
    • ๐Ÿ“Œ #1292: Fix some more problems with pinned locals.
    • ๐Ÿ›  Fix #1555: Eliminate value-type temporaries emitted by mcs on field reads.
    • ๐Ÿ›  Fix #2056: "remove branch into body" must be executed before the clone cleanup
    • ๐Ÿ›  Fix #2101: reset removeExtraLoad flag if keepAssignmentBefore is set; implement simple case-de-duplication: abort if there are any duplicate cases.
    • ๐Ÿ›  Fix #2100: 'value'-named auto property could not be recognized correctly.
    • ๐Ÿ›  Fix #1441: Decompose flags enum values starting from the value with the highest Hamming Weight (popcount).