956 Commits (b42d4963e7be04a23a8039c04c4a7b8534d87bc4)

Author SHA1 Message Date
Siegfried Pammer b42d4963e7 Fix assertions in TransformExpressionTrees. 6 years ago
Siegfried Pammer 16d6e16da7 Add support for local function references and recursive local functions. 6 years ago
Siegfried Pammer 119c679fad Add addressof(ldloc V) => ldloca V transform for read access on value types. 6 years ago
Siegfried Pammer 8d1522f387 Transform display classes used in local functions. 6 years ago
Siegfried Pammer 15488acdc7 Fix #1559: switch on string inside try block. 6 years ago
Siegfried Pammer 6d05f36821 Fix #1562: Do not transform display class initialization to object initializer. 6 years ago
Siegfried Pammer b4a59ae4dd Remove obsolete code from DelegateConstruction.cs 6 years ago
Siegfried Pammer c1ac461c26 Enable MCS yield return pretty tests. 6 years ago
Siegfried Pammer 7f8856b10f Fix #1026: Improve support for mcs in TransformDisplayClassUsage 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
Siegfried Pammer 5a2302089b Refactor TransformDisplayClassUsage into separate transform. 6 years ago
Siegfried Pammer bd77b8301f Basic implementation of local functions. 6 years ago
Siegfried Pammer cf7deca7e1 Fix build. 6 years ago
Siegfried Pammer 34098b16e8 Fix #1548: Detection of lambdas. 6 years ago
Daniel Grunwald ab4e05f783 Don't perform DetectCatchWhenConditionBlocks transform when catchBlock.Variable.Type setter would throw an exception due to differing stack types. 6 years ago
Daniel Grunwald 877780beb5 Fix ReduceNestingTransform bug introduced in commit 7f27768ff9 6 years ago
Daniel Grunwald 7f27768ff9 Fix #1391, #1393, #1458: Fix ReduceNestingTransform modifying the Blocks collection while iterating over it. 6 years ago
Siegfried Pammer f7641037a2 Fix #1526: Roslyn-optimized switch at end of method uses leave instead of br. 6 years ago
Siegfried Pammer 0e638dcb28 Fix #1524: Adjust expression trees transform to work with async code as well. 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 7a976f197f Fix #1500: anonymous type creation expression cannot have an object initializer. 6 years ago
Siegfried Pammer edcf4931d0 Fix #1489: ArgumentNullException in SwitchOnStringTransform.SimplifyCascadingIfStatements 6 years ago
Siegfried Pammer 8dc80583ec #1485: Fix decompilation of TypeAs with Nullable<T> in expression trees 6 years ago
Siegfried Pammer b03aa488aa Performance: Cache ChainedConstructorCallILOffset in ILFunction to avoid having to scan the method body in every inlining step. Take a shortcut for static ctors, as there cannot be chained ctor calls in static ctors. 6 years ago
Siegfried Pammer 63646b0ace Fix #1472: Apply ExpressionTransforms after CombineExitsTransform to "canonicalize logic and/or" 6 years ago
Daniel Grunwald 8d99af14c5 Add support for 'ref readonly' return type. 6 years ago
Daniel Grunwald 416425b681 Readonly struct method calls on readonly lvalues don't generate temporaries. 6 years ago
Daniel Grunwald 52e6717faf Fix #1452: Avoid NullReferenceException when accessing SlotInfo property on the root node 6 years ago
Daniel Grunwald f18ed5a418 Fix #1453: Incorrect assert in IL Conv for R4 -> R8 6 years ago
Siegfried Pammer d4d647bbad Fix #1455: NRE in MatchRoslynSwitchOnNullable 6 years ago
Daniel Grunwald 4ad4f6a232 Fix #882: Don't inline value-type temporaries for setter calls. 6 years ago
Daniel Grunwald a5505ab00d Expose IMethod.AccessorKind. This makes it easier to determine if a method is a setter, particular in generic classes where "m.AccessorOwner?.Setter == m" ended up being wrong. 6 years ago
Siegfried Pammer eed690a0fc Fix #1449: Fix error message typo. 6 years ago
Siegfried Pammer d83f6e6ec0 Remove unused code. 6 years ago
Daniel Grunwald 40b6f0c7bf Use appropriate type for helper variables introduced for named arguments. 6 years ago
Siegfried Pammer b0309ca9e3 Fix #1180: Fix generation of Windows Forms InitializeComponent. 6 years ago
Daniel Grunwald 4987f78d21 Limit the number of instructions validated for the $"{transform.GetType().Name} modified an instruction before pos" assertion; this makes debug-mode performance less horrible. 6 years ago
Daniel Grunwald eb942b4a21 Fix #1430: Improve performance in ILInlining. 6 years ago
Siegfried Pammer 1c261c6170 Optimize ProxyCallReplacer: ignore calls to static methods as those can never be a call to a proxy. 6 years ago
Siegfried Pammer 5dfc6132d9 Fix #1443: ProxyCallReplacer replacing non-proxy-calls with arbitrary calls. 6 years ago
Siegfried Pammer 7671ac6fe4 Fix switch on nullable for Roslyn. Ignore switch on bool because it is indistinguishable from if (bool). 6 years ago
Siegfried Pammer 6e49efd5aa Extend ILInlining to work with StringToInt instructions inside Switch instruction. 6 years ago
Siegfried Pammer 9c62f11e51 Add new switch(string) pattern for Roslyn. 6 years ago
Siegfried Pammer 80bc89f606 Fix SwitchOnStringTransform.SimplifyCascadingIfStatements to handle newer Roslyn code-gen correctly. 6 years ago
Siegfried Pammer d42cf99a8c Fix dynamic transforms because https://github.com/dotnet/roslyn/issues/27800 was fixed. 6 years ago
Daniel Grunwald 72508b5777 Add test for C# 8 nullable reference types; and fix some bugs. 6 years ago
Siegfried Pammer 94cd891609 Add support for ReadOnlySpan<T> initialization pattern. 6 years ago
Siegfried Pammer 0758c7ea32 Fix #1424: Complex from/where contains compiler generated names 6 years ago
Siegfried Pammer 00d6c6175a #1049: Check decompiler settings in TransformAssignment.HandleCompoundAssign as well. 6 years ago