Siegfried Pammer
d28ecf1b50
Add TransformAsyncHelpersAwaitToAwait to EarlyExpressionTransforms.
...
Convert `call System.Runtime.CompilerServices.AsyncHelpers.Await(value)`
to the IL Await instruction whenever DecompilerSettings.RuntimeAsync is
enabled. The state-machine async pipeline (AsyncAwaitDecompiler) already
produces the IL Await for downstream transforms (UsingTransform's
MatchDisposeBlock pattern-matches on it via UnwrapAwait); doing the
conversion in EarlyExpressionTransforms gives the runtime-async output
the same canonical shape before any consumer runs.
2 months ago
Peter Crabtree
e1e16b64f5
dev: Strip BOM mark from text files
10 months ago
Siegfried Pammer
7218a63a46
#3367 : Extend range check to support negative integers.
1 year ago
Siegfried Pammer
b9f50901a4
Fix #3367 : Add extra validation to TransformDecimalCtorToConstant to prevent crashes with obfuscated assemblies.
2 years ago
Siegfried Pammer
e193b838da
Move TransformDecimalCtorToConstant to EarlyExpressionTransforms
3 years ago
Siegfried Pammer
15d74751f4
Fix #2459 , fix #2460 : Make sure that LdObjToLdLoc and StObjToStLoc preserve the result type, if the source variable has an unknown type.
5 years ago
Siegfried Pammer
dbbcbb87fe
Make pattern matching transform a simple ILTransform for both reference and value types. Check that the true branch dominates all uses of the pattern variable.
5 years ago
Daniel Grunwald
80cf72e498
#2182 : Move "Transform call to struct constructor" from EarlyExpressionTransforms to ILReader.
...
This fixes the evaluation order for such calls (and an assertion in StObj.CheckTargetSlot).
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
Daniel Grunwald
57b725df79
Fix #1655 : Incorrect pointer cast when calling method on integer constant
7 years ago
Siegfried Pammer
19a7898786
Add addressof(ldloc) => ldloca transform to EarlyExpressionTransforms
7 years ago
Siegfried Pammer
c1fca21e8a
Make ILRange field private - introduce public API for IL range manipulation.
7 years ago
Daniel Grunwald
ba0a3af3c4
#1195 : Fix several issues decompiling SharpSvn.dll (C++/CLI)
8 years ago
Chicken-Bones
f539bee362
Move binary->logical AND to ExpressionTransforms and use SemanticHelper.IsPure
8 years ago
Chicken-Bones
fe6a85fa68
Reverse Roslyn optimisation to favour && over & on boolean operands.
8 years ago
Siegfried Pammer
60894a02a4
Fix missing ILStackWasEmpty-flag on call after conversion to newobj
9 years ago
Daniel Grunwald
f6ab796ba7
Add ldobj(ldloca) -> ldloc transform; and remove special case in ProxyCallReplacer.
9 years ago
Daniel Grunwald
39bb6856b7
Fix various bugs with compound assignments.
9 years ago