Daniel Grunwald
|
ab4e05f783
|
Don't perform DetectCatchWhenConditionBlocks transform when catchBlock.Variable.Type setter would throw an exception due to differing stack types.
|
7 years ago |
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
|
8 years ago |
Siegfried Pammer
|
8dc80583ec
|
#1485: Fix decompilation of TypeAs with Nullable<T> in expression trees
|
8 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.
|
8 years ago |
Siegfried Pammer
|
63646b0ace
|
Fix #1472: Apply ExpressionTransforms after CombineExitsTransform to "canonicalize logic and/or"
|
8 years ago |
Daniel Grunwald
|
8d99af14c5
|
Add support for 'ref readonly' return type.
|
8 years ago |
Daniel Grunwald
|
416425b681
|
Readonly struct method calls on readonly lvalues don't generate temporaries.
|
8 years ago |
Siegfried Pammer
|
d4d647bbad
|
Fix #1455: NRE in MatchRoslynSwitchOnNullable
|
8 years ago |
Daniel Grunwald
|
4ad4f6a232
|
Fix #882: Don't inline value-type temporaries for setter calls.
|
8 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.
|
8 years ago |
Siegfried Pammer
|
eed690a0fc
|
Fix #1449: Fix error message typo.
|
8 years ago |
Daniel Grunwald
|
40b6f0c7bf
|
Use appropriate type for helper variables introduced for named arguments.
|
8 years ago |
Siegfried Pammer
|
b0309ca9e3
|
Fix #1180: Fix generation of Windows Forms InitializeComponent.
|
8 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.
|
8 years ago |
Daniel Grunwald
|
eb942b4a21
|
Fix #1430: Improve performance in ILInlining.
|
8 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
|
8 years ago |
Siegfried Pammer
|
5dfc6132d9
|
Fix #1443: ProxyCallReplacer replacing non-proxy-calls with arbitrary calls.
|
8 years ago |
Siegfried Pammer
|
7671ac6fe4
|
Fix switch on nullable for Roslyn. Ignore switch on bool because it is indistinguishable from if (bool).
|
8 years ago |
Siegfried Pammer
|
6e49efd5aa
|
Extend ILInlining to work with StringToInt instructions inside Switch instruction.
|
8 years ago |
Siegfried Pammer
|
9c62f11e51
|
Add new switch(string) pattern for Roslyn.
|
8 years ago |
Siegfried Pammer
|
80bc89f606
|
Fix SwitchOnStringTransform.SimplifyCascadingIfStatements to handle newer Roslyn code-gen correctly.
|
8 years ago |
Siegfried Pammer
|
d42cf99a8c
|
Fix dynamic transforms because https://github.com/dotnet/roslyn/issues/27800 was fixed.
|
8 years ago |
Daniel Grunwald
|
72508b5777
|
Add test for C# 8 nullable reference types; and fix some bugs.
|
8 years ago |
Siegfried Pammer
|
94cd891609
|
Add support for ReadOnlySpan<T> initialization pattern.
|
8 years ago |
Siegfried Pammer
|
0758c7ea32
|
Fix #1424: Complex from/where contains compiler generated names
|
8 years ago |
Siegfried Pammer
|
00d6c6175a
|
#1049: Check decompiler settings in TransformAssignment.HandleCompoundAssign as well.
|
8 years ago |
Siegfried Pammer
|
087cb2489d
|
Fix #1049: Unimplemented decompiler settings
|
8 years ago |
Siegfried Pammer
|
c1fca21e8a
|
Make ILRange field private - introduce public API for IL range manipulation.
|
8 years ago |
Siegfried Pammer
|
4e290b545a
|
Merge ILRanges of DelegateConstruction newobj + ldftn into ILFunction.
|
8 years ago |
Daniel Grunwald
|
763683748b
|
Emit debug info for display class locals, so that the debugger can show the values of captured variables.
|
8 years ago |
Siegfried Pammer
|
84cf4ea6a1
|
Cleanup and fix ILRanges in DelegateConstruction.
|
8 years ago |
Daniel Grunwald
|
9188a682e7
|
Add some steps to DelegateConstruction
|
8 years ago |
Daniel Grunwald
|
da5693e605
|
Fix #1339: fixed statement not decompiled correctly when pinned variable is reset in finally block
|
8 years ago |
Daniel Grunwald
|
47ca51a769
|
Clarify the meaning of ILVariable.Index
|
8 years ago |
Siegfried Pammer
|
40bbb24675
|
CombineExitsTransform: Remove unnecessary checks, add both ILRanges to combinedLeave instruction.
|
8 years ago |
Siegfried Pammer
|
d22e2ac677
|
Add header and comments describing transformation.
Add missing ILRanges.
|
8 years ago |
Siegfried Pammer
|
deeb603fd7
|
Fix #1395: do-while loop missing entry-point label.
|
8 years ago |
Siegfried Pammer
|
ecde53969c
|
Add IsInConstructorInitializer case to ILInlining.OptionsForBlock.
|
8 years ago |
Siegfried Pammer
|
99fc57c6be
|
CachedDelegateInitialization: Do not lose IL range by creating a new store instruction, reuse existing instruction instead.
|
8 years ago |
Siegfried Pammer
|
238b5ac092
|
Fix CombineExitsTransform
|
8 years ago |
Siegfried Pammer
|
3d5b300602
|
Improve TransformArrayInitializers: allow default entries at the end of a dimension > 0.
|
8 years ago |
Siegfried Pammer
|
46b56f8482
|
Fix #1382: Do not reuse index instructions in TransformArrayInitializers
|
8 years ago |
Siegfried Pammer
|
37a8156dab
|
Fix #1383: NRE in TransformArrayInitializers.
|
8 years ago |