118 Commits (4864ef44621dbcdc6953fac0d5ad9ef69ec3c0d8)

Author SHA1 Message Date
Siegfried Pammer 2ca5b5affe Rewrite AssignVariableNames algorithm to use variable usages instead of the list of variables. 10 months ago
Siegfried Pammer 28aa88bfb8 Make NullableLiftingTransform handle the case where ExpressionTransforms.VisitComp already lifted a nullable comparison with constant. 10 months ago
Siegfried Pammer 9d22e3ab41 NullableLiftingTransform: Undo new compiler optimization (omitting get_HasValue for comparisions with constants) 10 months ago
Siegfried Pammer 9ba47db69b Add new a.GetValueOrDefault(b) -> a ?? b transform for side-effect-free default values. 1 year ago
Siegfried Pammer e193b838da Move TransformDecimalCtorToConstant to EarlyExpressionTransforms 2 years ago
Siegfried Pammer 688474facd Add missing DecompilerSettings for new language features 2 years ago
Daniel Grunwald f568123704 Add support for UTF8 string literals 2 years ago
ElektroKill 01fd6e97f3
Fixed overflow exception and added tests 2 years ago
ElektroKill bf0fe3aa15
Consider constructor type when lifting decimal constants 2 years ago
Daniel Grunwald d3919aa99a Support native ints in "Combine bit.and into shift" transform 3 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. 4 years ago
Siegfried Pammer cd0c76d7b1 Support leave instructions in RemoveInfeasiblePathTransform and transform match(x) ? true : false to match(x). 4 years ago
Siegfried Pammer 76227af89d Fix #1749, fix #2339, fix #2353: Add support for rethrow in async exception handlers, fix await catch/finally patterns for complex methods. 4 years ago
Daniel Grunwald 80cf72e498 #2182: Move "Transform call to struct constructor" from EarlyExpressionTransforms to ILReader. 5 years ago
dotnet format 0d9f871a4f #2128: Reformat the whole code base. 5 years ago
Siegfried Pammer 7ed4a736f3 Fix #2103: Support for `Stackalloc initializers` not working for `byte` 5 years ago
Daniel Grunwald abb9d49a0f Add support for C# 8 switch expressions. 5 years ago
Siegfried Pammer 9c8df1d949 Fix assignment of ILRanges in ExpressionTransforms.TransformCatchVariable 5 years ago
Daniel Grunwald dc6e094a30 Add support for indexing arrays using System.Index 5 years ago
Siegfried Pammer 4db41f69db Fix #1919: Use unmapped IL offsets at the start of a catch-block for the 'exception specifier' sequence point. 5 years ago
Siegfried Pammer ba5c645257 Add TryCatchHandler annotation to CatchClause 5 years ago
SilverFox 5914d5b96b Fix #1854 6 years ago
Daniel Grunwald 93806b46fa Fix compound assignments with type `bool`. 6 years ago
Daniel Grunwald a1c211f326 Fix #1794: Avoid extra cast to double for ulong -> float conversion 6 years ago
Daniel Grunwald f1021cb300 Fix #1643: Handle unbox.any in TransformCatchVariable. 6 years ago
Siegfried Pammer 03151bf37b Remove redundant code in ExpressionTransforms.VisitBlockContainer 6 years ago
Siegfried Pammer 9c06d5c924 Fix #1642: Allow StackTypes I, I4, I8 and Unknown as switch value, convert Unknown and I to I8. 6 years ago
Siegfried Pammer 7502e521c1 Improve documentation of ExpressionTransforms.TransformCatchVariable 6 years ago
Siegfried Pammer 72c3e828f3 Check IsPure before Match. 6 years ago
Siegfried Pammer c477ccf68e Add SemanticHelper.IsPure check as per code-review. 6 years ago
Siegfried Pammer ec18094c65 Implement transformation of delegate construction with ldvirtftn. 6 years ago
Daniel Grunwald 752f0de978 Further adjustments to transforms now that copy propagation no longer runs. 6 years ago
Siegfried Pammer adc443e4e2 Fix dynamic compound assignments 6 years ago
Daniel Grunwald 539e3a906d Fix #1552: user-defined and decimal increments 6 years ago
Siegfried Pammer 19a7898786 Add addressof(ldloc) => ldloca transform to EarlyExpressionTransforms 6 years ago
Siegfried Pammer 119c679fad Add addressof(ldloc V) => ldloca V transform for read access on value types. 6 years ago
Daniel Grunwald 3314f3f37a Fix #1571: Expression transforms not running for values of inline assignments. 6 years ago
Siegfried Pammer 6a1229028c Only try to inline stackalloc Span<T> if the next statement is a plain assignment. 6 years ago
Siegfried Pammer 9590cfbf59 Update tests to latest Roslyn implementation. 6 years ago
Daniel Grunwald 961923f4fd #1499, #1240: Translate pointer arithmetic on managed pointers (ref T) using the System.Runtime.CompilerServices.Unsafe intrinsics 6 years ago
Siegfried Pammer d42cf99a8c Fix dynamic transforms because https://github.com/dotnet/roslyn/issues/27800 was fixed. 6 years ago
Siegfried Pammer 94cd891609 Add support for ReadOnlySpan<T> initialization pattern. 6 years ago
Siegfried Pammer c1fca21e8a Make ILRange field private - introduce public API for IL range manipulation. 6 years ago
Daniel Grunwald 47ca51a769 Clarify the meaning of ILVariable.Index 6 years ago
Siegfried Pammer 112719efaf Extend safety-checks in TransformSpanTCtorContainingStackAlloc. 7 years ago
Siegfried Pammer 0dac55d584 Add transformation for stackalloc to Span<T>. 7 years ago
Daniel Grunwald ef866040b4 Update to SRM 1.6.0 and Roslyn 2.9. Adjust decompiler to new code pattern used for lifted nullable comparisons. 7 years ago
Daniel Grunwald 12e74daf48 Handle Comp in InferType(). 7 years ago
Daniel Grunwald 2f54eee5db #1195: Fix comparison of object reference with ldc.i4 0. 7 years ago
Daniel Grunwald dd5845e83d Support short-circuiting operators with dynamic. (e.g. "if (x.A && x.B)" where "x" is dynamic) 7 years ago