1405 Commits (e9a2bf4556592536256180a10087f524a509e87f)

Author SHA1 Message Date
Siegfried Pammer 6a3bb2bbf1 Fix #2655: TranslateArrayInitializer crashes with out of order array init 3 years ago
Siegfried Pammer 9e462b53ad Add support for C# 11 parameter null checks 3 years ago
Siegfried Pammer 93dcba3426 * Rename Metadata.GenericContext to MetadataGenericContext to avoid conflicts with TypeSystem.GenericContext 3 years ago
Siegfried Pammer 4c1931d5c6 Fix NRT warning in GetBlockStateSetMappingForLeave. 3 years ago
Siegfried Pammer a4e2bd7f8f Handle leave instructions in state-range analysis. 3 years ago
Siegfried Pammer 84c15bb24f Fix #2652: AwaitInFinallyTransform: ILAst must form a tree 3 years ago
Daniel Grunwald ced6ed445a Fix #2582: Assertion when using named arguments in a constrained call 3 years ago
Siegfried Pammer a9c8f86abc Make TypeDef-ctor of FindTypeDecoder internal. 3 years ago
Siegfried Pammer 8cc0bf8b49 Generalize FindTypeDecoder 3 years ago
Siegfried Pammer 3c2e52854e DetectPinnedRegions: Inline the stack-slot involved in CustomRefPinPattern so that the following ProcessPinnedRegion call can reuse existing unmanaged pointer variables instead of being forced to create a new variable. 3 years ago
Siegfried Pammer f98012ec16 DetectPinnedRegions: Support special case where pinned pointer is unused and the compiler optimized out the StopGCTracking-conversion. 3 years ago
Siegfried Pammer 5f73bfbb01 Fix Deconstruction for Deconstruct instance methods of value-types. 3 years ago
Siegfried Pammer e726ae28a5 Fix type equality check in TransformCollectionAndObjectInitializers 3 years ago
Siegfried Pammer d98ff730a0 Fix build. 3 years ago
Siegfried Pammer 4aa7f5fc38 Fix #2612 decompilation of newarr with int.MaxValue causes OOME in decompiler. 3 years ago
Daniel Grunwald 787621fb51 Revert "Use Nop instead of InvalidExpression to hold the "goto from catch-block to try-block" comment" 4 years ago
Daniel Grunwald cedd8a6bf6 Fix #2480: Avoid yield-return decompilation if there are unrecognized state assignments in a finally method. 4 years ago
Daniel Grunwald 77dcbbee86 Use Nop instead of InvalidExpression to hold the "goto from catch-block to try-block" comment 4 years ago
Daniel Grunwald f104233e78 Fix #2388: Add support for branch from catch-block to try-block (VB `On Error Resume Next`) 4 years ago
Daniel Grunwald d0012bf7d8 StatementTransform: Run an expensive invariant check slightly less often. 4 years ago
Siegfried Pammer f801059659 TDCU: make sure that copies of display-class variables are validated as well. 4 years ago
Daniel Grunwald 17d323c943 Fix #2557: Remove incorrect assertion from `ReduceNestingTransform` 4 years ago
Siegfried Pammer 35aea3eea7 Slight pattern changes in mcs 5 switch-on-string with case null. 4 years ago
Siegfried Pammer 1826ac031d #2539: Add support for yield state machine pattern used by mcs 5.x 4 years ago
Daniel Grunwald df339e72fb Fix DetectPinnedRegions.SplitBlocksAtWritesToPinnedLocals creating blocks without ILRange. 4 years ago
Daniel Grunwald 583771e012 #2533: Fix bug in CreatePinnedRegion that could cause pinned regions to be created with the wrong entry point if the original IL had blocks in an unusual order 4 years ago
Daniel Grunwald e321fe5f4f Fix compiler warning 4 years ago
Siegfried Pammer 6bc0abc336 Fix #2378: DeconstructionTransform produced invalid ILAst with some optimized deconstruction patterns. 4 years ago
Siegfried Pammer 22c98016a9 Fix #2530: ArgumentOutOfRangeException in PatternMatchRefTypes 4 years ago
Siegfried Pammer 0ed191617e Fix #2528: arbitrary stores preceding switch-on-string confuse the transform, making it pick the wrong variable as switch variable. 4 years ago
Siegfried Pammer 15d74751f4 Fix #2459, fix #2460: Make sure that LdObjToLdLoc and StObjToStLoc preserve the result type, if the source variable has an unknown type. 4 years ago
Siegfried Pammer 936388ba18 Fix #2458: ILExtraction.Extract handles BlockContainer.Kind != Normal. 4 years ago
Siegfried Pammer e1ca4db851 Fix #2527: Support skip locals init 4 years ago
Siegfried Pammer 96db0a5472 Add support for pattern matching in UsingTransform. 4 years ago
Siegfried Pammer 665c731cfc Move PatternMatchingTransform after LoopDetection. 4 years ago
Siegfried Pammer 55f1125f94 Ensure that pattern locals get distinct variable names. 4 years ago
Siegfried Pammer 9d99ee86db Fix #2503: Move correct branch in the case of swapped jump-table conditions. 4 years ago
Siegfried Pammer 1568aeca3e Fix #2506: NamedArgumentTransform loses information, if the original variable is of StackType.Ref 4 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 e50d221e06 Adjust NullableLiftingTransform to match new patterns due to RemoveInfeasiblePathTransform. 4 years ago
Siegfried Pammer 2b26e5013b Add Roslyn 2.x pattern for value type pattern matching. 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 5fa8201533 Added support for isinst-unbox.any pattern with generic reference types and simplified value types pattern detection. 4 years ago
Siegfried Pammer 83727ea4b0 Add support for value type patterns 4 years ago
Siegfried Pammer 357d55d2ad Add support for old roslyn pattern matching pattern. 4 years ago
Daniel Grunwald c26d9ad6f1 Mark stack slot for aggressive removal in InfeasiblePathTransform 4 years ago
Siegfried Pammer c641072685 Translate MatchInstruction to BinaryOperatorExpression with BinaryOperatorType.IsPattern. 4 years ago
Daniel Grunwald 040ab41c69 Initial implementation of the pattern matching transform. 4 years ago
Siegfried Pammer 8eafbb3d90 Fix #2092: aggressively inline code in compiler-generated lambdas and expression trees. 4 years ago
Siegfried Pammer 164c8880af #2092: Make TransformExpressionTrees.MatchGetTypeFromHandle and TransformExpressionTrees.MatchGetContructorFromHandle use IType.FullName instead of actual IType instances, so we can better handle assemblies processed by tools like ILMerge, where there might be used multiple versions of mscorlib in one assembly. 4 years ago