Siegfried Pammer
04505bbdf2
Highlight and scroll to the changed instruction in the ILAst view
...
The C# debug-steps view highlights and centers the exact AST node a
transform changed; the ILAst view already had the step tree and
replay-at-step but produced no highlight. Bring it to parity.
IL rendering has no token-writer seam like the C# output visitor, so
per-instruction text spans are recorded by bracketing
ILInstruction.WriteTo via a new INodeTrackingOutput. The dominant
inst.ReplaceWith(newInst) transform pattern detaches the instruction
passed to Step, so ILTransformContext gains EndStep to record the
produced instruction; Stepper additionally records the position's
ancestor chain as fallback candidates before the step-limit throw, so
the "show state before" view -- which halts at the selected step --
still resolves to a surviving ancestor (ultimately the ILFunction).
The highlight-range resolver is shared with the C# language.
Assisted-by: Claude:claude-opus-4-8:Claude Code
6 days ago
Siegfried Pammer
98d764a169
Add a treenode and decompiler APIs for extensions.
4 months ago
Siegfried Pammer
0e1478ffce
Fix #3564 : extend TransformDisplayClassUsage.IsPotentialClosure to support sibling DisplayClasses calling each other.
10 months ago
Siegfried Pammer
2461f520ab
Move LocalFunctionDecompiler.GetStatement to Block.GetContainingStatement
1 year ago
Siegfried Pammer
2e7991eee3
TransformDisplayClassUsage: Fix #3233 by ignoring nullability annotations, when trying to find a variable to reuse/propagate.
2 years ago
Siegfried Pammer
ca78d4a14d
Use MetadataFile instead of PEFile in TypeSystem.
2 years 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.
5 years ago
Siegfried Pammer
e1ca4db851
Fix #2527 : Support skip locals init
5 years ago
Siegfried Pammer
62fc4bc1a3
Fix #1858 , Fix #2188 : Remove variables that contain copies of display-class variables.
5 years ago
Siegfried Pammer
584d1847df
Fix #2405 : Assertion fail in TDCU
5 years ago
Siegfried Pammer
d92dd153fc
#2390 : Make sure all unused captured variables are removed even in lambdas.
5 years ago
Siegfried Pammer
3a7c69e5b9
Fix #2192 : Add support for VB.NET delegate construction
6 years ago
Siegfried Pammer
2612a06a11
Fix #2174 : Some compilers produce display class ctors with unused local variables
...
(cherry picked from commit 71b54e87a0 )
6 years ago
Siegfried Pammer
71b54e87a0
Fix #2174 : Some compilers produce display class ctors with unused local variables
6 years ago
Siegfried Pammer
5d244efab6
Fix #2149 : handle uninitialized fields of display classes as variables with HasInitialValue = true. Might happen in obfuscated code.
6 years ago
Siegfried Pammer
c74680df33
Fix #1781 : TDCU: Support methods without .locals init
6 years ago
Siegfried Pammer
52263da8df
#2129 : prevent state-machines from being treated as display classes.
6 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
6 years ago
Siegfried Pammer
e7d49b2305
Fix #2079 : Allow variables generated from state-machine fields to be propagated in TDCU.
6 years ago
Daniel Grunwald
2acc4339df
#2058 : Mark most transforms as public to help users that use the ILAst directly without decompiling to C#.
6 years ago
Siegfried Pammer
5da3b87845
Fix #2060 : Add support for alternate code patterns in TransformDisplayClassUsage.ValidateConstructor
6 years ago
Daniel Grunwald
80063e3c15
Fix TDCU's version of copy propagation being too aggressive.
6 years ago
Siegfried Pammer
fcc910cb4d
Cleanup and refactoring after code review
6 years ago
Siegfried Pammer
0b8824ca84
Fix two small bugs in TDCU
6 years ago
Siegfried Pammer
101aba3362
Validate uses of display-class variable copies before removing them
6 years ago
Siegfried Pammer
d4fd92bf0f
Fix initializer block detection of display structs.
6 years ago
Siegfried Pammer
ab336cdc94
Fix build.
6 years ago
Siegfried Pammer
d457ef38f4
Make ValidateConstructor safe
6 years ago
Siegfried Pammer
f1cbc7c8db
Add AggressiveScalarReplacementOfAggregates option
6 years ago
Siegfried Pammer
53c593af0b
Fixed all TDCU related tests.
6 years ago
Siegfried Pammer
b6259b7dca
Fix #1981 : Ensure correctness of TDCU
6 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.
6 years ago
Siegfried Pammer
5ee172d4c4
Fix #1900 : RemoveDeadVariableInit.ResetHasInitialValueFlag should handle local functions
6 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.
7 years ago
Siegfried Pammer
f831e4713f
Fix #1867 : Captures of copies of this are not properly handled by the decompiler
7 years ago
SilverFox
33f96fd888
Fix tests `LocalFunctions.NestedCapture1`
7 years ago
Siegfried Pammer
9bb2ea872c
Fix #1773 : Remove copies of parameter values only if the types match exactly.
7 years ago
Siegfried Pammer
413c9eba2c
#1759 : Follow-up: Handle nested generic arguments as well.
7 years ago
Siegfried Pammer
6330be36b3
Fix #1759 : Substitute display-class type parameters with method type parameters in TransformDisplayClassUsage.
7 years ago
Siegfried Pammer
b8ee3d4183
Respect decompiler settings in TransformDisplayClassUsage.
7 years ago
Siegfried Pammer
7c8458dfa3
Refactor TransformDisplayClassUsage
7 years ago
Siegfried Pammer
81e702f840
#1638 : Make TransformDisplayClassUsage.IsPotentialClosure less aggressive
7 years ago
Siegfried Pammer
0ca5ace524
#1349 : Fix assertions triggered by incorrect local function decompilation.
7 years ago
Siegfried Pammer
2ca8c31d8e
Fix ArgumentException: ignore duplicate keys after variable splitting in TransformDisplayClassUsage
7 years ago
Siegfried Pammer
7d62a7e032
Reset HasInitialValue flag after TransformDisplayClassUsage.
7 years ago
Siegfried Pammer
e5f95143cf
TransformDisplayClassUsage: set HasInitialValue = true for newly introduced locals.
7 years ago
Siegfried Pammer
f10ab69328
Improve local-function detection to minimize false positives.
7 years ago