1066 Commits (50e62acbd28053b504400d894efa4cff42535166)

Author SHA1 Message Date
Daniel Grunwald 5a5be026d0 Avoid reference count temporarily dropping to zero while ConditionDetection moves instructions to other blocks. 2 years ago
Siegfried Pammer 0a2037ae1f #3075: Avoid processing already-transformed blocks by introducing BlockTransformContext.IndexOfFirstAlreadyTransformedInstruction, which allows us to track already transformed instructions after a block has been merged into another by ConditionDetection. 2 years ago
Siegfried Pammer 9e168224dd Fix #3091: extension methods named "Add" were skipping some checks in AccessPathElement.IsMethodApplicable. 2 years ago
Siegfried Pammer 0fc003459f Fix #3079: Replace parameter names that consist of only whitespace 2 years ago
Siegfried Pammer 4ca9fddd6f Fix #3069: Reuse SwitchAnalysis instead of MatchIfElseOnCharBlock 2 years ago
Siegfried Pammer 70616b301c Implement support for C# 11 switch on (ReadOnly)Span<char>. 2 years ago
Siegfried Pammer e193b838da Move TransformDecimalCtorToConstant to EarlyExpressionTransforms 2 years ago
Siegfried Pammer 688474facd Add missing DecompilerSettings for new language features 2 years ago
Siegfried Pammer 8e63d92886 Add null and not null patterns for nullable value types 2 years ago
Siegfried Pammer 800067e488 Pattern Matching: Ensure that we always return a non-null instruction after successfully matching a pattern. 2 years ago
Siegfried Pammer cb62cac9d3 Add support for nullable int const patterns 2 years ago
Siegfried Pammer a93731ad3a Add support for nullable structs 2 years ago
Siegfried Pammer 1cb4e77f06 Refactor sub pattern detection into loop to allow continuations of outer patterns. 2 years ago
Siegfried Pammer 8cb3a67c0c Support recursive pattern for value types 2 years ago
Siegfried Pammer e475af7822 Support null check without type check in sub patterns. 2 years ago
Siegfried Pammer 51a8eb28f1 Add support for var sub patterns. 2 years ago
Siegfried Pammer 4e62fea07a Fix pattern matching with fields and value types. 2 years ago
Siegfried Pammer 65b4c928c0 Add support for simple constant patterns. 2 years ago
Siegfried Pammer f7343c75d0 Add support for simple recursive patterns where the sub pattern is a simple type pattern. 2 years ago
Siegfried Pammer 3d8cda5f88 Fix #2613: Detect pattern matching on variables of generic type with value types. 2 years ago
Siegfried Pammer 32e04eaf12 Implement Roslyn 4.6 pattern for C# switch on string: match by length and unique characters first. 2 years ago
Daniel Grunwald 99d5e94a62 Allow inlining value type temporaries into constrained call. 2 years ago
Daniel Grunwald b80d20b15d Add support for calling `operator checked`. 2 years ago
Daniel Grunwald 3c46271a11 Add support for unsigned right shift. 2 years ago
Daniel Grunwald f568123704 Add support for UTF8 string literals 2 years ago
Daniel Grunwald 475f2b3c28 Fix "ref readonly" fields. 2 years ago
Daniel Grunwald b823955ad6 Fix mcs-5 foreach/using pattern when C# 7 (pattern matching) is not enabled. 2 years ago
Daniel Grunwald f04acbdd74 Simplify `IsImplicitTruncation` by using an enum with 3 options instead of a pair of bools. 2 years ago
ElektroKill ea1f6e7c25
Fixed compound assignment and post/pre increment for pointer dereference 2 years ago
Siegfried Pammer 29ca38d338 Fix handling of recombined variables and nested functions in IntroduceNativeIntTypeOnLocals and IntroduceDynamicTypeOnLocals. 2 years ago
Siegfried Pammer 539925f259 Fix #2983: display-class locals should be named uniquely per top-level ILFunction. Add assertion to ResolveCollisions: ensure that colliding/merged variables have the same type. 2 years ago
ElektroKill f9c7b6b66e
Extend `EliminateRedundantTryFinally` in `ReduceNestingTransform` 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
Siegfried Pammer 7e1e9d65fd Fix #2922: Invalid object initializer ILAst, when expression tree contains get-accessor in Expression.Bind. Because either one of the accessors is used by Expression.Bind to determine the property, we can safely use the set-accessor instead. 2 years ago
ElektroKill b110d5c2dc
Implement support for Visual Basic yield return state machines 2 years ago
ElektroKill 25873a68e0
Improve support for post-increment/decrement on pointers 3 years ago
Siegfried Pammer 619d2af9b2 Add GetNamespaceByFullName and use it to speed up AssignVariableNames.CollectAllLowerCaseTypeNames 3 years ago
ElektroKill b193c2a6a2
Add support for rare VB cached delegate construction pattern with return 3 years ago
ElektroKill ea19843fbd
Fix `CachedDelegateInitializationVBWithClosure` stack slot check 3 years ago
ElektroKill 00e7524780
Fix`CachedDelegatenitializationVB` pattern 3 years ago
ElektroKill c8fd044706
Fix `UsingTranform` for inlined `isinst` variation (refs #2199) 3 years ago
ElektroKill cdad14b685
Add support for `lock` statements within yield return state machines 3 years ago
ElektroKill 7c73517892
Fix formatting 3 years ago
ElektroKill a979f0fdfa
Add support for VB.NET cached delegate initialization with closures 3 years ago
Daniel Grunwald d3919aa99a Support native ints in "Combine bit.and into shift" transform 3 years ago
Siegfried Pammer bde782e4f5 Fix #2806: Do not use implicitly typed out variables, if argument and parameter types do not match exactly. 3 years ago
Siegfried Pammer ac6a2e54ca Use IsAccessor again. 3 years ago
Siegfried Pammer 927b46b17d Fix #2787: Enable NRT in TransformCollectionAndObjectInitializers and fix problems. 3 years ago
Siegfried Pammer 1ac1bd6eab Remove context field from TransformCollectionAndObjectInitializers, inline DoTransform. 3 years ago