Daniel Grunwald
877780beb5
Fix ReduceNestingTransform bug introduced in commit 7f27768ff9
7 years ago
Daniel Grunwald
7f27768ff9
Fix #1391 , #1393 , #1458 : Fix ReduceNestingTransform modifying the Blocks collection while iterating over it.
7 years ago
Siegfried Pammer
f7641037a2
Fix #1526 : Roslyn-optimized switch at end of method uses leave instead of br.
7 years ago
Siegfried Pammer
0e638dcb28
Fix #1524 : Adjust expression trees transform to work with async code as well.
7 years ago
Siegfried Pammer
c6f4f77b57
Reorder code in NullCoalescingTransform.cs
7 years ago
Daniel Grunwald
961923f4fd
#1499 , #1240 : Translate pointer arithmetic on managed pointers (ref T) using the System.Runtime.CompilerServices.Unsafe intrinsics
7 years ago
Siegfried Pammer
7a976f197f
Fix #1500 : anonymous type creation expression cannot have an object initializer.
7 years ago
Siegfried Pammer
edcf4931d0
Fix #1489 : ArgumentNullException in SwitchOnStringTransform.SimplifyCascadingIfStatements
7 years ago
Siegfried Pammer
8dc80583ec
#1485 : Fix decompilation of TypeAs with Nullable<T> in expression trees
7 years ago
Siegfried Pammer
b03aa488aa
Performance: Cache ChainedConstructorCallILOffset in ILFunction to avoid having to scan the method body in every inlining step. Take a shortcut for static ctors, as there cannot be chained ctor calls in static ctors.
7 years ago
Siegfried Pammer
63646b0ace
Fix #1472 : Apply ExpressionTransforms after CombineExitsTransform to "canonicalize logic and/or"
7 years ago
Daniel Grunwald
8d99af14c5
Add support for 'ref readonly' return type.
7 years ago
Daniel Grunwald
416425b681
Readonly struct method calls on readonly lvalues don't generate temporaries.
7 years ago
Daniel Grunwald
52e6717faf
Fix #1452 : Avoid NullReferenceException when accessing SlotInfo property on the root node
7 years ago
Daniel Grunwald
f18ed5a418
Fix #1453 : Incorrect assert in IL Conv for R4 -> R8
7 years ago
Siegfried Pammer
d4d647bbad
Fix #1455 : NRE in MatchRoslynSwitchOnNullable
7 years ago
Daniel Grunwald
4ad4f6a232
Fix #882 : Don't inline value-type temporaries for setter calls.
7 years ago
Daniel Grunwald
a5505ab00d
Expose IMethod.AccessorKind. This makes it easier to determine if a method is a setter, particular in generic classes where "m.AccessorOwner?.Setter == m" ended up being wrong.
7 years ago
Siegfried Pammer
eed690a0fc
Fix #1449 : Fix error message typo.
7 years ago
Siegfried Pammer
d83f6e6ec0
Remove unused code.
7 years ago
Daniel Grunwald
40b6f0c7bf
Use appropriate type for helper variables introduced for named arguments.
7 years ago
Siegfried Pammer
b0309ca9e3
Fix #1180 : Fix generation of Windows Forms InitializeComponent.
7 years ago
Daniel Grunwald
4987f78d21
Limit the number of instructions validated for the $"{transform.GetType().Name} modified an instruction before pos" assertion; this makes debug-mode performance less horrible.
7 years ago
Daniel Grunwald
eb942b4a21
Fix #1430 : Improve performance in ILInlining.
7 years ago
Siegfried Pammer
1c261c6170
Optimize ProxyCallReplacer: ignore calls to static methods as those can never be a call to a proxy.
...
Enable FixProxyCalls test for rosyln+opt
7 years ago
Siegfried Pammer
5dfc6132d9
Fix #1443 : ProxyCallReplacer replacing non-proxy-calls with arbitrary calls.
7 years ago
Siegfried Pammer
7671ac6fe4
Fix switch on nullable for Roslyn. Ignore switch on bool because it is indistinguishable from if (bool).
7 years ago
Siegfried Pammer
6e49efd5aa
Extend ILInlining to work with StringToInt instructions inside Switch instruction.
7 years ago
Siegfried Pammer
9c62f11e51
Add new switch(string) pattern for Roslyn.
7 years ago
Siegfried Pammer
80bc89f606
Fix SwitchOnStringTransform.SimplifyCascadingIfStatements to handle newer Roslyn code-gen correctly.
7 years ago
Siegfried Pammer
d42cf99a8c
Fix dynamic transforms because https://github.com/dotnet/roslyn/issues/27800 was fixed.
7 years ago
Daniel Grunwald
72508b5777
Add test for C# 8 nullable reference types; and fix some bugs.
7 years ago
Siegfried Pammer
94cd891609
Add support for ReadOnlySpan<T> initialization pattern.
7 years ago
Siegfried Pammer
0758c7ea32
Fix #1424 : Complex from/where contains compiler generated names
7 years ago
Siegfried Pammer
00d6c6175a
#1049 : Check decompiler settings in TransformAssignment.HandleCompoundAssign as well.
7 years ago
Siegfried Pammer
087cb2489d
Fix #1049 : Unimplemented decompiler settings
7 years ago
Siegfried Pammer
29527b804e
Fix #1392 : LoopDetection should take switch block containers into account in IncludeNestedContainers.
7 years ago
Siegfried Pammer
ab55086cd7
Use ILRange API in AsyncAwaitDecompiler.
7 years ago
Siegfried Pammer
c1fca21e8a
Make ILRange field private - introduce public API for IL range manipulation.
7 years ago
Daniel Grunwald
f1c8142ce2
PDB generator now can emit "method stepping information" for async functions.
7 years ago
Siegfried Pammer
4e290b545a
Merge ILRanges of DelegateConstruction newobj + ldftn into ILFunction.
7 years ago
Daniel Grunwald
763683748b
Emit debug info for display class locals, so that the debugger can show the values of captured variables.
7 years ago
Siegfried Pammer
84cf4ea6a1
Cleanup and fix ILRanges in DelegateConstruction.
7 years ago
Daniel Grunwald
9188a682e7
Add some steps to DelegateConstruction
7 years ago
Daniel Grunwald
f6aae1f97d
Fix #1386 : MoveArrayToPointerToPinnedRegionInit: Only consider the pinned variable uses within the PinnedRegion
...
This also makes CleanUpTryFinallyAroundPinnedRegion() redundant as it is no longer necessary to trigger the array-to-pointer transform; so the normal elimination of pinned variable resets is sufficient.
7 years ago
Daniel Grunwald
1ab11ba7ce
DetectPinnedRegions: also add debug step for failed CreatePinnedRegion() calls
7 years ago
Daniel Grunwald
bb3b50d1af
Allow recombining of captured variables.
7 years ago
Daniel Grunwald
da5693e605
Fix #1339 : fixed statement not decompiled correctly when pinned variable is reset in finally block
7 years ago
Siegfried Pammer
d9952a7e10
#1388 : Fix ArgumentOutOfRangeException in AsyncAwaitDecompiler.AnalyzeAwaitBlock.
7 years ago
Daniel Grunwald
47ca51a769
Clarify the meaning of ILVariable.Index
7 years ago