1377 Commits (22c98016a97bee5d1aee15b019bcd34f2ae51144)

Author SHA1 Message Date
Siegfried Pammer 7f4653c274 Add support for tuple deconstruction 5 years ago
Siegfried Pammer 442f6f90b7 Implement deconstruction discards 5 years ago
Siegfried Pammer 9cb3fe3484 Add support for basic deconstruction conversions 5 years ago
Siegfried Pammer b435c07f4d Added support for deconstruction assignments to properties 5 years ago
Siegfried Pammer a0d9410f67 Fix build. 5 years ago
Siegfried Pammer 05c988c5df Revert "#2098: CallBuilder: Fix named argument handling in TI" 5 years ago
Siegfried Pammer eea4b7701c #2098: CallBuilder: Fix named argument handling in TI 5 years ago
Daniel Grunwald f5409ebe31 Fix re-pinning getting confused about which variant of the pinned local to use when the new re-pinned reference depends on the old pinned reference. 5 years ago
Daniel Grunwald 4b716e2db5 Fix #2056: "remove branch into body" must be executed before the clone cleanup 5 years ago
Daniel Grunwald c9f65d3b5e Fix #1555: Eliminate value-type temporaries emitted by mcs on field reads. 5 years ago
Daniel Grunwald bd4e565b93 Ensure all pinned regions variables are converted to VariableKind.PinnedRegionLocal 5 years ago
Daniel Grunwald ddff831cf0 #1292: Fix some more problems with pinned locals. 5 years ago
Siegfried Pammer e7d49b2305 Fix #2079: Allow variables generated from state-machine fields to be propagated in TDCU. 5 years ago
Daniel Grunwald cc850c27aa Add "Aggressive inlining" option 5 years ago
Daniel Grunwald 5bd47c171f Don't require a definition for the task builder type, also accept an UnknownType. 5 years ago
Daniel Grunwald b6b5f1e8e6 #2092: ILFunction.Parameters / ILFunction.ReturnType should never be null. 5 years ago
Daniel Grunwald 1a997fdb60 Enable aggressive inlining into switch expressions. 5 years ago
Daniel Grunwald abb9d49a0f Add support for C# 8 switch expressions. 5 years ago
Siegfried Pammer 8d72672e6c Reimplement DecompilerSettings.StaticLocalFunctions (was lost in the refactoring in #2077) 5 years ago
Siegfried Pammer c9df069526 Add minimal test case + DecompilerSettings.Deconstruction setting 5 years ago
Siegfried Pammer 3f10294a72 Add DeconstructionTransform + implement DeconstructInstruction in ExpressionBuilder 5 years ago
Siegfried Pammer b01e9484d5 Fix bugs in ILAst 5 years ago
Siegfried Pammer 6bb6097ad4 Extended DeconstructInstruction.CheckInvariant 5 years ago
Siegfried Pammer acea95d0a1 Properly rename LocalFunctionMethod.Name on all instructions 5 years ago
Siegfried Pammer 18ace00266 Refactor LocalFunctionDeclarationStatement + LocalFunctionMethod 5 years ago
Daniel Grunwald cda56e7f7e #2048: Pattern matching: documentation and invariants for MatchInstruction. 5 years ago
Daniel Grunwald bdea1950a8 Add `#if !NETCORE` around extension methods that are included with .NET Core 3 5 years ago
Daniel Grunwald fc51dd17a5 Remove outdated comment. The `PickExitPoint` heuristic is no longer using "amount of code" but the IL block order. 5 years ago
Daniel Grunwald c647016bfb #2070: Allow `PickExitPoint` heuristic to choose a `return;`/`yield break;` that is part of a condition block. 5 years ago
Daniel Grunwald 2acc4339df #2058: Mark most transforms as public to help users that use the ILAst directly without decompiling to C#. 5 years ago
Daniel Grunwald 3409ffca25 Fix #2073: Ensure the startOffsetVar actually appears in the expected instruction, not somewhere else. 5 years ago
Siegfried Pammer 95f2ae7aef Add ILAst base for Deconstruction and Pattern Matching 5 years ago
Daniel Grunwald e0fd0bba32 Allow inlining constants into expression trees. 5 years ago
Daniel Grunwald c63e14e805 Move some special cases from ILInlining.FindLoadInNext to the individual ILInstructions. 5 years ago
Daniel Grunwald fe2143b41f Validate code movement performed by IndexRangeTransform. 5 years ago
Daniel Grunwald 7d3dfc3b81 Remove the hack where IndexRangeTransform looks at instructions prior to startPos. 5 years ago
Daniel Grunwald 1b2874eb5d Use `nint` type for local IntPtr variables if arithmetic is performed on them. 5 years ago
Siegfried Pammer 5da3b87845 Fix #2060: Add support for alternate code patterns in TransformDisplayClassUsage.ValidateConstructor 5 years ago
Daniel Grunwald 1d684102ac Support compound assignment for native integers. 5 years ago
Daniel Grunwald 59be020dea Fix pointer arithmetic with `nint*`/`nuint*`. 5 years ago
Daniel Grunwald 3a4db502bc Add support for arithmetic using C# 9 native integer types. 5 years ago
Daniel Grunwald 12094a8376 Support extraction out of control-flow IfInstruction even if it isn't using a Block as TrueInst/FalseInst. 5 years ago
Daniel Grunwald 417a2c3391 Revert the InvertIf change; it causes too many issues for the following transforms. 5 years ago
Daniel Grunwald e083d43fb9 Fix ReduceNestingTransform 5 years ago
Daniel Grunwald 016d9f8f4d Fix #1903: un-inline argument of unsupported `isinst` instructions. 5 years ago
Daniel Grunwald 696fdca923 Always create a block when inverting an if. 5 years ago
Daniel Grunwald b18ed89b67 #2050: Add assertion to check that no transform uses StObj.TargetSlot incorrectly. 5 years ago
Daniel Grunwald 81d9eda332 I just discovered that we do have un-inlining implemented... let's mention it where it's more likely to be found in the future. 5 years ago
Daniel Grunwald ef47a8bdf6 #2058: Avoid NullReferenceException when DecompileRun is not provided. 5 years ago
Daniel Grunwald 62fcab8d99 #2050: Allow inlining into the StObj target slot when this is possible without changing the program semantics. 5 years ago