Daniel Grunwald
787621fb51
Revert "Use Nop instead of InvalidExpression to hold the "goto from catch-block to try-block" comment"
...
This reverts commit 77dcbbee86 .
5 years ago
Daniel Grunwald
77dcbbee86
Use Nop instead of InvalidExpression to hold the "goto from catch-block to try-block" comment
5 years ago
Daniel Grunwald
f104233e78
Fix #2388 : Add support for branch from catch-block to try-block (VB `On Error Resume Next`)
5 years ago
Daniel Grunwald
040ab41c69
Initial implementation of the pattern matching transform.
5 years ago
Daniel Grunwald
245261a1e5
#nullable enable for Instructions.tt
5 years ago
Daniel Grunwald
0414e7f8e9
Fix potential NRE in ILFunction.RegisterVariable()
5 years ago
Daniel Grunwald
5fb2f7a22f
#nullable enable for ILAst (except for generated code)
5 years ago
Daniel Grunwald
6757295b3b
Fix #2379 : Keep `return` statements around in original form for ConditionDetection, only transform to fall-through block-exit at the end of the transform pipeline.
...
This fixes an issue where `return` statements within try-blocks could turn into `goto` statements.
5 years ago
Siegfried Pammer
ba39dd5c55
Fix #2354 : decompilation of unary and binary operators with nullable value types.
5 years ago
Siegfried Pammer
e20ace0098
Fix build.
5 years ago
Siegfried Pammer
d54016ce8f
#2390 : Add support for generic object initializers.
5 years ago
Daniel Grunwald
bd9aabeae2
Update to dotnet-format 5.1.225507.
...
This makes the formatting expected by our CI consistent with that generated by VS2019.9.
5 years ago
Daniel Grunwald
f726a0b73e
#nullable enable for typesystem and ILInstruction base class
6 years ago
Siegfried Pammer
3df82cf33b
Add support for 'with' expressions
6 years ago
Daniel Grunwald
3831b42197
Properly support `calli` instruction and its interaction with function pointer types.
6 years ago
Siegfried Pammer
549f7fb44d
Fix #2143 : Missing `this.` qualification in lambda
6 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
6 years ago
Siegfried Pammer
dab70964a5
Add support for C# 8.0 disposable ref structs
6 years ago
Siegfried Pammer
1ecf489597
Add support for deconstruction to fields
6 years ago
Siegfried Pammer
a549b03bea
Implement ref local assignments
6 years ago
Siegfried Pammer
7f4653c274
Add support for tuple deconstruction
6 years ago
Siegfried Pammer
442f6f90b7
Implement deconstruction discards
6 years ago
Siegfried Pammer
9cb3fe3484
Add support for basic deconstruction conversions
6 years ago
Siegfried Pammer
b435c07f4d
Added support for deconstruction assignments to properties
6 years ago
Daniel Grunwald
b6b5f1e8e6
#2092 : ILFunction.Parameters / ILFunction.ReturnType should never be null.
6 years ago
Daniel Grunwald
abb9d49a0f
Add support for C# 8 switch expressions.
6 years ago
Siegfried Pammer
b01e9484d5
Fix bugs in ILAst
6 years ago
Siegfried Pammer
6bb6097ad4
Extended DeconstructInstruction.CheckInvariant
6 years ago
Daniel Grunwald
cda56e7f7e
#2048 : Pattern matching: documentation and invariants for MatchInstruction.
6 years ago
Daniel Grunwald
bdea1950a8
Add `#if !NETCORE` around extension methods that are included with .NET Core 3
6 years ago
Siegfried Pammer
95f2ae7aef
Add ILAst base for Deconstruction and Pattern Matching
6 years ago
Daniel Grunwald
e0fd0bba32
Allow inlining constants into expression trees.
6 years ago
Daniel Grunwald
c63e14e805
Move some special cases from ILInlining.FindLoadInNext to the individual ILInstructions.
6 years ago
Daniel Grunwald
1d684102ac
Support compound assignment for native integers.
6 years ago
Daniel Grunwald
b18ed89b67
#2050 : Add assertion to check that no transform uses StObj.TargetSlot incorrectly.
6 years ago
Daniel Grunwald
62fcab8d99
#2050 : Allow inlining into the StObj target slot when this is possible without changing the program semantics.
6 years ago
Daniel Grunwald
d8e837ef47
Fix #1772 : Support EnumeratorCancellationAttribute
...
With this change, the async decompiler no longer gets confused by the logic disposing `this.<>x__combinedTokens`.
6 years ago
Daniel Grunwald
925a4e1e65
#2050 : Don't put ldflda/ldelema with immediate exceptions into StObj.TargetSlot.
...
The C# translation of StObj will always apply delayed exceptions in these two cases, so putting an instruction with delayed exceptions in that slot would change program semantics.
6 years ago
Daniel Grunwald
2c0554f129
Fix #1963 : Support decompiling `calli` instructions into C# 9 function pointer syntax.
6 years ago
Siegfried Pammer
bcd7219535
Adjust CapturedVariables collection in ReplaceDelegateTargetVisitor and in TransformExpressionTrees
6 years ago
Siegfried Pammer
3436ac3246
Fix #2018 : Improve tooltips in IL/IL with C#/R2R view to show full member signatures
6 years ago
Siegfried Pammer
0fa04a5248
Fix build.
6 years ago
Siegfried Pammer
1c7d9705da
Add Validation of delegate target instructions.
6 years ago
Siegfried Pammer
6042819117
Implement Block.CheckInvariant for BlockKind.ArrayInitializer, BlockKind.CollectionInitializer and BlockKind.ObjectInitializer
6 years ago
Siegfried Pammer
f1cbc7c8db
Add AggressiveScalarReplacementOfAggregates option
6 years ago
Siegfried Pammer
4f7ca65408
Fix #1913 : Make sure to declare local variables captured by local functions before the first invocation of the local function.
6 years ago
Siegfried Pammer
83e8049114
Add ILVariable.IsDead property
6 years ago
Siegfried Pammer
2601d17919
Add clarifying comment to ExceptionSpecifierILRange
6 years ago
Siegfried Pammer
c293613a56
Add ExceptionSpecifierILRange to TryCatchHandler
7 years ago
Jackson Davis
6ab1f98fa3
Expand the range of sequence points out the closest empty ilstack
...
or implicit sequence point without creating overlapping sequence points.
If such a location cannot be found do, nothing. Fill in the
gaps with hidden sequence points.
Also emit a sequence point for
the prolog to account for seqeunce point there emitted by the C#
compiler. Without this, the debugger can stop there on a step in
using the original pdb, then decompile resulting in a no-code at this
location failure.
7 years ago