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
Peter Crabtree
e1e16b64f5
dev: Strip BOM mark from text files
10 months ago
Siegfried Pammer
485ca1d69a
Fix #3353 : Normal method is decompiled as lambda expression.
1 year ago
Siegfried Pammer
ca78d4a14d
Use MetadataFile instead of PEFile in TypeSystem.
2 years ago
Siegfried Pammer
d3b0e4cd72
Fix #2196 : Add support for extern local functions.
6 years ago
Siegfried Pammer
a7f58e8657
Fix build and use specific version of dotnet-format.
6 years ago
Siegfried Pammer
3a7c69e5b9
Fix #2192 : Add support for VB.NET delegate construction
6 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
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
fcc910cb4d
Cleanup and refactoring after code review
6 years ago
Siegfried Pammer
bcd7219535
Adjust CapturedVariables collection in ReplaceDelegateTargetVisitor and in TransformExpressionTrees
6 years ago
Siegfried Pammer
1c7d9705da
Add Validation of delegate target instructions.
6 years ago
Siegfried Pammer
0d1b6203df
#1981 : Refactor LocalFunctionDecompiler: Propagate closure parameter arguments, so that all arguments can be stripped from use-sites.
6 years ago
Siegfried Pammer
e748e71b56
Implement workaround for #1961
6 years ago
SilverFox
22daaa3572
Enable static local functions and update related tests, since roslyn 3.4.0-beta3 is available for tests
7 years ago
Siegfried Pammer
679623e4c3
Fix #1609 : Decompilation of cached delegate-construction with unknown delegate type.
7 years ago
Siegfried Pammer
a109b77858
Refactor LocalFunctionDecompiler to allow mutually recursive local functions to be decompiled correctly.
7 years ago
Siegfried Pammer
37e14f43e3
Refactor/Clean up local functions representation in type system.
7 years ago
Siegfried Pammer
16d6e16da7
Add support for local function references and recursive local functions.
7 years ago
Siegfried Pammer
8d1522f387
Transform display classes used in local functions.
7 years ago
Siegfried Pammer
b4a59ae4dd
Remove obsolete code from DelegateConstruction.cs
7 years ago
Siegfried Pammer
5a2302089b
Refactor TransformDisplayClassUsage into separate transform.
...
Make display class detection pattern-based instead of name-based. Fixes #1554
7 years ago
Siegfried Pammer
bd77b8301f
Basic implementation of local functions.
7 years ago
Siegfried Pammer
cf7deca7e1
Fix build.
7 years ago
Siegfried Pammer
34098b16e8
Fix #1548 : Detection of lambdas.
7 years ago
Siegfried Pammer
c1fca21e8a
Make ILRange field private - introduce public API for IL range manipulation.
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
Siegfried Pammer
008a3c71e5
DelegateConstruction:
...
- add support for unknown delegate construction pattern. The method is compiler-generated, but has no compiler-generated name, we should be able to infer lambda usage from anonymous types used in the signature (i. e., the method can only be used as lambda, because that's where type names are optional).
- Add CombineExitsTransform in DelegateConstruction: this allows combining lambdas with multiple return statements into a single expression (as it is expected by query expressions).
8 years ago
Siegfried Pammer
1854a33749
Fix #1340 : infinite recursion in DelegateConstruction due to recursive local function being mistreated as delegate construction.
8 years ago
Wenxuan Zhao
3e937cf7cb
Fix delegate in yield return issue for assembly compiled with Mono
8 years ago
Daniel Grunwald
90d866d78a
Fix #1193 : Performance issues with deeply nested block structures
8 years ago
Daniel Grunwald
1f3916d554
Use the resolve methods in MetadataModule, and remove the wrappers in DecompilerTypeSystem.
8 years ago
Daniel Grunwald
c54632e7cb
Fix some type system bugs.
8 years ago
Daniel Grunwald
107fe5eb1c
Eliminate SpecializingDecompilerTypeSystem and use GenericContext instead.
8 years ago
Siegfried Pammer
78dab4f44b
Cleanup
8 years ago
Siegfried Pammer
51c62353bd
Replace exception with assertion in DelegateConstruction.
8 years ago
Siegfried Pammer
bcfb3742eb
Clean up PEFile, move Pdb related types to DebugInfo namespace
8 years ago
Siegfried Pammer
5e4b571a62
Add DynamicCallSiteTransform
8 years ago
Siegfried Pammer
845c620a9f
Implement UserDefinedCompoundAssign
...
rename CompoundAssignmentInstruction -> NumericCompoundAssign
8 years ago
Siegfried Pammer
b311ba5a44
Port DelegateConstruction and TransformArrayInitializers
8 years ago
Daniel Grunwald
935575859f
Fix NullReferenceException in TransformDelegateConstruction()
8 years ago
Daniel Grunwald
7c91d48d68
#980 : Fix type substitution for lambdas.
8 years ago
Siegfried Pammer
1a0052a345
Cache UsingScope during decompiler run.
8 years ago
Siegfried Pammer
a06a04d48b
#1080 : Add ILTransformContext.RequiredNamespacesSuperset
8 years ago
Siegfried Pammer
25eecb90e1
Rename ExpressionTreeType to DelegateType and use ILFunction.DelegateType instead of the NewObj(LdNull, ILFunction) pattern in DelegateConstruction and ExpressionTrees
9 years ago
Siegfried Pammer
f8afa6051d
Fix another instance of #951 : Incorrect decompilation of anonymous delegate
9 years ago
Siegfried Pammer
8135157e95
Fix #951 : Incorrect decompilation of anonymous delegate
9 years ago