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
Siegfried Pammer
e4fda5c2e4
Rename HasILRange to ILRangeIsEmpty to properly reflect its implementation.
7 years ago
Daniel Grunwald
a1c211f326
Fix #1794 : Avoid extra cast to double for ulong -> float conversion
7 years ago
Siegfried Pammer
e211b01595
Fix CA1507:UseNameofInPlaceOfString, adjust formatting of some older source files copied from NRefactory.
7 years ago
Siegfried Pammer
cc3a0bef7e
Fix #1745 : Empty string is missing from switch result
7 years ago
Siegfried Pammer
c7f98a4db7
Add support for await using statements.
7 years ago
Daniel Grunwald
be2731c6e6
Handle `if (disposeMode)` in async streams.
7 years ago
Siegfried Pammer
5e6479a5fa
Fix #1636 : Remove assertion that delegates/expression trees must not be top-level expressions.
7 years ago
Daniel Grunwald
57b725df79
Fix #1655 : Incorrect pointer cast when calling method on integer constant
7 years ago
Siegfried Pammer
44c044aa33
Fix #1635 : DynamicInvokeConstructorInstruction Did report the wrong StackType for value types and unknown types.
7 years ago
Daniel Grunwald
84aaaeb84e
Fix #1616 : similar to 3ea2ce4e2d, let `a.Instructions[i] = a.Instructions[i]` refresh that instruction's primary position.
7 years ago
Daniel Grunwald
2b9a40371b
Remove the dead LoopingTransform.
...
Make ILInstruction.IsDirty debug-only, as it is only used for assertions now.
7 years ago
Siegfried Pammer
3ea2ce4e2d
#1349 : Fix assertions triggered by incorrect reset implementation in TransformThrowExpressionsValueTypes. ILInstruction.SetChildInstruction should only return early, if index and parent are still the same.
7 years ago
Siegfried Pammer
7d4b4c6433
Implement NullCoalescingTransform with value types.
7 years ago