Siegfried Pammer
2e7991eee3
TransformDisplayClassUsage: Fix #3233 by ignoring nullability annotations, when trying to find a variable to reuse/propagate.
1 year ago
Siegfried Pammer
ca78d4a14d
Use MetadataFile instead of PEFile in TypeSystem.
1 year ago
ElektroKill
b110d5c2dc
Implement support for Visual Basic yield return state machines
3 years ago
Siegfried Pammer
f801059659
TDCU: make sure that copies of display-class variables are validated as well.
4 years ago
Siegfried Pammer
e1ca4db851
Fix #2527 : Support skip locals init
4 years ago
Siegfried Pammer
62fc4bc1a3
Fix #1858 , Fix #2188 : Remove variables that contain copies of display-class variables.
4 years ago
Siegfried Pammer
584d1847df
Fix #2405 : Assertion fail in TDCU
4 years ago
Siegfried Pammer
d92dd153fc
#2390 : Make sure all unused captured variables are removed even in lambdas.
4 years ago
Siegfried Pammer
3a7c69e5b9
Fix #2192 : Add support for VB.NET delegate construction
5 years ago
Siegfried Pammer
2612a06a11
Fix #2174 : Some compilers produce display class ctors with unused local variables
(cherry picked from commit 71b54e87a0
)
5 years ago
Siegfried Pammer
71b54e87a0
Fix #2174 : Some compilers produce display class ctors with unused local variables
5 years ago
Siegfried Pammer
5d244efab6
Fix #2149 : handle uninitialized fields of display classes as variables with HasInitialValue = true. Might happen in obfuscated code.
5 years ago
Siegfried Pammer
c74680df33
Fix #1781 : TDCU: Support methods without .locals init
5 years ago
Siegfried Pammer
52263da8df
#2129 : prevent state-machines from being treated as display classes.
5 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
5 years ago
Siegfried Pammer
e7d49b2305
Fix #2079 : Allow variables generated from state-machine fields to be propagated in TDCU.
5 years ago
Daniel Grunwald
2acc4339df
#2058 : Mark most transforms as public to help users that use the ILAst directly without decompiling to C#.
5 years ago
Siegfried Pammer
5da3b87845
Fix #2060 : Add support for alternate code patterns in TransformDisplayClassUsage.ValidateConstructor
5 years ago
Daniel Grunwald
80063e3c15
Fix TDCU's version of copy propagation being too aggressive.
5 years ago
Siegfried Pammer
fcc910cb4d
Cleanup and refactoring after code review
5 years ago
Siegfried Pammer
0b8824ca84
Fix two small bugs in TDCU
5 years ago
Siegfried Pammer
101aba3362
Validate uses of display-class variable copies before removing them
5 years ago
Siegfried Pammer
d4fd92bf0f
Fix initializer block detection of display structs.
5 years ago
Siegfried Pammer
ab336cdc94
Fix build.
5 years ago
Siegfried Pammer
d457ef38f4
Make ValidateConstructor safe
5 years ago
Siegfried Pammer
f1cbc7c8db
Add AggressiveScalarReplacementOfAggregates option
5 years ago
Siegfried Pammer
53c593af0b
Fixed all TDCU related tests.
5 years ago
Siegfried Pammer
b6259b7dca
Fix #1981 : Ensure correctness of TDCU
5 years ago
Siegfried Pammer
69ac54fbb6
Fix #1879 : Do not remove variables that look like display class variables, but are used in other patterns as well.
5 years ago
Siegfried Pammer
5ee172d4c4
Fix #1900 : RemoveDeadVariableInit.ResetHasInitialValueFlag should handle local functions
5 years ago
Siegfried Pammer
bef75321fb
#1913 : Do not destroy control-flow by removing return statements
6 years ago
Siegfried Pammer
73e0f7c3ac
Fix #1936 : TransformDisplayClassUsage should remove copies of display-class references.
6 years ago
Siegfried Pammer
d8a08822b7
Fix #1879 : Incorrectly detected display class.
6 years ago
Siegfried Pammer
f831e4713f
Fix #1867 : Captures of copies of this are not properly handled by the decompiler
6 years ago
SilverFox
33f96fd888
Fix tests `LocalFunctions.NestedCapture1`
6 years ago
Siegfried Pammer
9bb2ea872c
Fix #1773 : Remove copies of parameter values only if the types match exactly.
6 years ago
Siegfried Pammer
413c9eba2c
#1759 : Follow-up: Handle nested generic arguments as well.
6 years ago
Siegfried Pammer
6330be36b3
Fix #1759 : Substitute display-class type parameters with method type parameters in TransformDisplayClassUsage.
6 years ago
Siegfried Pammer
b8ee3d4183
Respect decompiler settings in TransformDisplayClassUsage.
6 years ago
Siegfried Pammer
7c8458dfa3
Refactor TransformDisplayClassUsage
6 years ago
Siegfried Pammer
81e702f840
#1638 : Make TransformDisplayClassUsage.IsPotentialClosure less aggressive
6 years ago
Siegfried Pammer
0ca5ace524
#1349 : Fix assertions triggered by incorrect local function decompilation.
6 years ago
Siegfried Pammer
2ca8c31d8e
Fix ArgumentException: ignore duplicate keys after variable splitting in TransformDisplayClassUsage
6 years ago
Siegfried Pammer
7d62a7e032
Reset HasInitialValue flag after TransformDisplayClassUsage.
6 years ago
Siegfried Pammer
e5f95143cf
TransformDisplayClassUsage: set HasInitialValue = true for newly introduced locals.
6 years ago
Siegfried Pammer
f10ab69328
Improve local-function detection to minimize false positives.
6 years ago
Siegfried Pammer
a109b77858
Refactor LocalFunctionDecompiler to allow mutually recursive local functions to be decompiled correctly.
6 years ago
Daniel Grunwald
33c7425fa2
Fix several bugs with compound assignments on indexers.
Closes #1580 .
6 years ago
Siegfried Pammer
f3f38783df
ICSharpCode.Decompiler roundtrip test now completes
6 years ago
Daniel Grunwald
f2151972a0
Redesign CompoundAssignmentInstruction to support an 'Address' mode where we don't implicitly turn an LdObj into an StObj, but instead directly operate on an address.
This means we can get rid of the special case in TransformDisplayClassUsage, as compound.assign can now also be used with the address of a local variable.
6 years ago