116 Commits (9d22e3ab41f5817c98262a6120b04eb7c41c7a68)

Author SHA1 Message Date
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
Daniel Grunwald 9479e8af13 Support overloaded operator &&/||. 7 years ago
Chicken-Bones f539bee362 Move binary->logical AND to ExpressionTransforms and use SemanticHelper.IsPure 7 years ago