New Language Features
- C# 7.0: Deconstruction
- C# 8.0:
await foreach
- C# 8.0: Disposable
ref struct
s - C# 8.0: Enhanced
using
statements - C# 8.0:
switch
expressions - C# 9.0:
init
accessors - C# 9.0: Lambda parameter discards
General
- Add an option to enable aggressive inlining of expressions.
- 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)
UI Improvements
- Updated Chinese translation (by @maikebing, @Berrysoft, @yyjdelete, see #2066)
- Fix #2107: Add ScrollViewer around DisplaySettingsPanel
Bug fixes
- 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).
- And many other fixes, for a full list click here.