873 Commits (5d80c56189a140b0a10cd03805a0fce3825b3b96)

Author SHA1 Message Date
Daniel Grunwald 6c0216bbb9 Fix assertion in ReduceNestingTransform: after copying the exitInst, it was possible that the old copy of the exitInst became unreachable. 7 years ago
Daniel Grunwald 8117dfff4a Fix #1242: Discard unreachable code. 7 years ago
Daniel Grunwald c3037afa70 Fix #1352: Assertion in NullableLiftingTransform.DoLift 7 years ago
Daniel Grunwald 539e3a906d Fix #1552: user-defined and decimal increments 7 years ago
Siegfried Pammer 61231b7725 Fix #1593: TransformCollectionAndObjectInitializers uses nested indexer call as target of object initializer. 7 years ago
Daniel Grunwald 856cedc95e #1456: add test case; add additional checks to ensure we only transform normal locals into using/foreach-locals 7 years ago
Daniel Grunwald beed6b5e24 Remove MarkGeneratedVariables() step in AsyncAwaitDecompiler. 7 years ago
Siegfried Pammer f10ab69328 Improve local-function detection to minimize false positives. 7 years ago
Siegfried Pammer a109b77858 Refactor LocalFunctionDecompiler to allow mutually recursive local functions to be decompiled correctly. 7 years ago
Siegfried Pammer e215f69b2d Extend description of LocalFunctionDecompiler 7 years ago
Siegfried Pammer 37e14f43e3 Refactor/Clean up local functions representation in type system. 7 years ago
Daniel Grunwald 33c7425fa2 Fix several bugs with compound assignments on indexers. 7 years ago
Siegfried Pammer f3f38783df ICSharpCode.Decompiler roundtrip test now completes 7 years ago
Daniel Grunwald ccdabf2325 Fix a bunch of XmlDoc compiler warnings. 7 years ago
Daniel Grunwald b32cae412a Eliminate BlockKind.PostfixOperator. 7 years ago
Daniel Grunwald f2151972a0 Redesign CompoundAssignmentInstruction to support an 'Address' mode where we don't implicitly turn an LdObj into an StObj, but instead directly operate on an address. 7 years ago
Siegfried Pammer 19a7898786 Add addressof(ldloc) => ldloca transform to EarlyExpressionTransforms 7 years ago
Siegfried Pammer 01e42b772c Fix local functions inside lambdas. 7 years ago
Siegfried Pammer b83cb41f2e Add pretty tests for local functions. 7 years ago
Siegfried Pammer 305b47245e Refactor representation of local functions in ILAst. 7 years ago
Siegfried Pammer b42d4963e7 Fix assertions in TransformExpressionTrees. 7 years ago
Siegfried Pammer 16d6e16da7 Add support for local function references and recursive local functions. 7 years ago
Daniel Grunwald a6def4cdf5 Fix incorrect type for numeric.compound.assign when the pointer type is incompatible with the store type. 7 years ago
Daniel Grunwald ed5d71b365 Fix #1537: KeyNotFoundException in ReduceNestingTransform.ReduceSwitchNesting() 7 years ago
Siegfried Pammer 119c679fad Add addressof(ldloc V) => ldloca V transform for read access on value types. 7 years ago
Siegfried Pammer 8d1522f387 Transform display classes used in local functions. 7 years ago
Daniel Grunwald 3314f3f37a Fix #1571: Expression transforms not running for values of inline assignments. 7 years ago
Siegfried Pammer 15488acdc7 Fix #1559: switch on string inside try block. 7 years ago
Siegfried Pammer 6d05f36821 Fix #1562: Do not transform display class initialization to object initializer. 7 years ago
Siegfried Pammer b4a59ae4dd Remove obsolete code from DelegateConstruction.cs 7 years ago
Siegfried Pammer c1ac461c26 Enable MCS yield return pretty tests. 7 years ago
Siegfried Pammer 7f8856b10f Fix #1026: Improve support for mcs in TransformDisplayClassUsage 7 years ago
Siegfried Pammer 6a1229028c Only try to inline stackalloc Span<T> if the next statement is a plain assignment. 7 years ago
Siegfried Pammer 9590cfbf59 Update tests to latest Roslyn implementation. 7 years ago
Siegfried Pammer 5a2302089b Refactor TransformDisplayClassUsage into separate transform. 7 years ago
Siegfried Pammer bd77b8301f Basic implementation of local functions. 7 years ago
Siegfried Pammer cf7deca7e1 Fix build. 7 years ago
Siegfried Pammer 34098b16e8 Fix #1548: Detection of lambdas. 7 years ago
Daniel Grunwald ab4e05f783 Don't perform DetectCatchWhenConditionBlocks transform when catchBlock.Variable.Type setter would throw an exception due to differing stack types. 7 years ago
Daniel Grunwald 877780beb5 Fix ReduceNestingTransform bug introduced in commit 7f27768ff9 7 years ago
Daniel Grunwald 7f27768ff9 Fix #1391, #1393, #1458: Fix ReduceNestingTransform modifying the Blocks collection while iterating over it. 7 years ago
Siegfried Pammer f7641037a2 Fix #1526: Roslyn-optimized switch at end of method uses leave instead of br. 7 years ago
Siegfried Pammer 0e638dcb28 Fix #1524: Adjust expression trees transform to work with async code as well. 7 years ago
Siegfried Pammer c6f4f77b57 Reorder code in NullCoalescingTransform.cs 7 years ago
Daniel Grunwald 961923f4fd #1499, #1240: Translate pointer arithmetic on managed pointers (ref T) using the System.Runtime.CompilerServices.Unsafe intrinsics 7 years ago
Siegfried Pammer 7a976f197f Fix #1500: anonymous type creation expression cannot have an object initializer. 7 years ago
Siegfried Pammer edcf4931d0 Fix #1489: ArgumentNullException in SwitchOnStringTransform.SimplifyCascadingIfStatements 7 years ago
Siegfried Pammer 8dc80583ec #1485: Fix decompilation of TypeAs with Nullable<T> in expression trees 7 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. 7 years ago
Siegfried Pammer 63646b0ace Fix #1472: Apply ExpressionTransforms after CombineExitsTransform to "canonicalize logic and/or" 7 years ago