1576 Commits (e4ebe2060213fa071b80d8289e00c6c0f1214be7)

Author SHA1 Message Date
Siegfried Pammer 5d36732fcf Remove ApplyPdbLocalTypeInfoTypeVisitor (merge it into ApplyAttributeTypeVisitor) 1 year ago
Siegfried Pammer 4bf9487ecd Remove IsRef, IsOut and IsIn flags from IParameter and Replace ParameterModifiers with ReferenceKind. 1 year ago
Daniel Grunwald d48df11133 Remove unused transforms: DecimalConstantTransform and ParameterNullCheckTransform 1 year ago
Daniel Grunwald fa19470435 Fix #3218: Avoid exceptions when IL is invalid due to unexpected end-of-method-body. 1 year ago
Siegfried Pammer 401cb77ae3 Fix #3189: Support primitive types in Expression.Constant(object) pattern. 1 year ago
Daniel Grunwald 38e7ab4373 Fix #3110: Add support for MCS 2.6.4 pinned region with array variable 1 year ago
Siegfried Pammer 969e3e546a Add support for switch on (ReadOnly)Span<char> using a compiler-generated hash function. 1 year ago
Siegfried Pammer 9ba47db69b Add new a.GetValueOrDefault(b) -> a ?? b transform for side-effect-free default values. 1 year ago
Siegfried Pammer ca78d4a14d Use MetadataFile instead of PEFile in TypeSystem. 1 year ago
Siegfried Pammer 942131f487 #3068: Introduce MetadataFile for pure ECMA-335 streams and as base class for PEFile 2 years ago
ElektroKill 38019ad5bf
Introduce `PdbExtraTypeInfo` struct and adjusted `IDebugInfoProvider` 2 years ago
Siegfried Pammer 566af5c2fb Fix #3113: Remove GetAlternativeName and instead reuse existing names, if there are no conflicts. 2 years ago
ElektroKill 5b526cfeac
Read and use tuple element names and dynamic type information from PDBs 2 years ago
Daniel Grunwald c12187277c Also use GraphTraversal.DepthFirstSearch for dominance calculation. 2 years ago
Daniel Grunwald d58576f409 Fix #3075: eliminate recursion in TopologicalSort and BlockTransform. 2 years ago
Siegfried Pammer d5cec0ab37 Fix #3103: unaligned.stobj cannot be transformed into inline assignment 2 years ago
Daniel Grunwald 5a5be026d0 Avoid reference count temporarily dropping to zero while ConditionDetection moves instructions to other blocks. 2 years ago
Daniel Grunwald ea5adf8e01 Make `ILVariableEqualityComparer.GetHashCode` structurally more similar to the Equals implementation 2 years ago
Siegfried Pammer cef99dc140 #3075: Fix ILVariableEqualityComparer.GetHashCode 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
Daniel Grunwald d2d1c3326f Fix #3070 stack order on block reimport 2 years ago
Daniel Grunwald 5206aef4ce Fix #3071 BlockBuilder assertion for unreachable try-block 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
Daniel Grunwald 9becae2de7 Fix #3051: "InvalidOperationException: Stack empty" when decompiling reference assembly with empty method bodies 2 years ago
Siegfried Pammer bf96482d56 Support decimal constants in pattern matching 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 3218a06396 Add support for string constant patterns. 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
ElektroKill 915c0310c4
Add support for MSC 2.6.4 pinned region with string variable 2 years ago
Daniel Grunwald b80d20b15d Add support for calling `operator checked`. 2 years ago
Daniel Grunwald 8b9ba20847 Builtin unsigned right shift operator. 2 years ago
Daniel Grunwald 3c46271a11 Add support for unsigned right shift. 2 years ago
Daniel Grunwald 768cb02f0b Fix #2964: Better error message when a method only contains a single ret instruction. 2 years ago