23 Commits
Author SHA1 Message Date
Siegfried Pammer 688474facd Add missing DecompilerSettings for new language features 2023-08-05 14:33:47 +02:00
Siegfried Pammer 8e63d92886 Add null and not null patterns for nullable value types 2023-08-05 14:33:47 +02:00
Siegfried Pammer 800067e488 Pattern Matching: Ensure that we always return a non-null instruction after successfully matching a pattern. 2023-08-05 14:33:47 +02:00
Siegfried Pammer cb62cac9d3 Add support for nullable int const patterns 2023-08-05 14:33:47 +02:00
Siegfried Pammer a93731ad3a Add support for nullable structs 2023-08-05 14:33:47 +02:00
Siegfried Pammer 1cb4e77f06 Refactor sub pattern detection into loop to allow continuations of outer patterns. 2023-08-05 14:33:47 +02:00
Siegfried Pammer 8cb3a67c0c Support recursive pattern for value types 2023-08-05 14:33:47 +02:00
Siegfried Pammer e475af7822 Support null check without type check in sub patterns. 2023-08-05 14:33:47 +02:00
Siegfried Pammer 51a8eb28f1 Add support for var sub patterns. 2023-08-05 14:33:47 +02:00
Siegfried Pammer 4e62fea07a Fix pattern matching with fields and value types. 2023-08-04 17:53:58 +02:00
Siegfried Pammer 65b4c928c0 Add support for simple constant patterns. 2023-08-04 16:48:02 +02:00
Siegfried Pammer f7343c75d0 Add support for simple recursive patterns where the sub pattern is a simple type pattern. 2023-08-04 16:28:13 +02:00
Siegfried Pammer 3d8cda5f88 Fix #2613: Detect pattern matching on variables of generic type with value types. 2023-08-04 11:44:43 +02:00
Siegfried Pammer 22c98016a9 Fix #2530: ArgumentOutOfRangeException in PatternMatchRefTypes 2021-11-06 13:08:45 +01:00
Siegfried Pammer 665c731cfc Move PatternMatchingTransform after LoopDetection. 2021-10-03 19:49:40 +02:00
Siegfried Pammer 55f1125f94 Ensure that pattern locals get distinct variable names. 2021-10-03 19:05:10 +02:00
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. 2021-09-05 18:46:03 +02:00
Siegfried Pammer 2b26e5013b Add Roslyn 2.x pattern for value type pattern matching. 2021-07-25 16:25:27 +02:00
Siegfried Pammer 5fa8201533 Added support for isinst-unbox.any pattern with generic reference types and simplified value types pattern detection. 2021-07-25 15:05:44 +02:00
Siegfried Pammer 83727ea4b0 Add support for value type patterns 2021-07-25 13:58:23 +02:00
Siegfried Pammer 357d55d2ad Add support for old roslyn pattern matching pattern. 2021-07-25 10:12:10 +02:00
Siegfried Pammer c641072685 Translate MatchInstruction to BinaryOperatorExpression with BinaryOperatorType.IsPattern. 2021-07-18 20:57:33 +02:00
Daniel Grunwald 040ab41c69 Initial implementation of the pattern matching transform. 2021-07-17 15:01:12 +02:00