Siegfried Pammer
591ab6b75d
Implement support for explicit interface implementation of operators and operator uses.
2 years ago
Siegfried Pammer
6172d63ff3
Support virtual modifier on static abstract interface members.
2 years ago
Siegfried Pammer
4893c58ac0
#1806 : Use NormalizeTypeVisitor.TypeErasure.EquivalentTypes in DebugInfoGenerator.HandleMethodBody to fix false positives in assertion.
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
3de29c8d74
Fix #2891 Populate framework_dirs with the correct values depending on the current host runtime.
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
Christoph Wille
50c2398227
8.1 will be the next release
2 years ago
Daniel Grunwald
99d5e94a62
Allow inlining value type temporaries into constrained call.
2 years ago
Siegfried Pammer
e8c1270b92
Fix duplicate ILFunction annotations.
2 years ago
Kirill Osenkov
7992d148e8
Generate sequence points for expression-bodied properties and indexers
2 years ago
Lucas Trzesniewski
bf69531216
Fix #3025 : Annotate nested types
2 years ago
James May
bce0f7b23b
Add CustomDebugInformation kind EncStateMachineStateMap
3 years ago
Andrew Crawley (US - DIAGNOSTICS)
7451b21650
Fix decompilation of record with missing base type
This commit updates `RecordDecompiler` to avoid a null ref when the
decompiler is unable to determine the base type of a record (e.g.
because the base type is defined in another assembly that is not
loaded).
2 years ago
Siegfried Pammer
d57b08c79d
Fix #3010 : Remove compiler-generated attributes for required members with custom ctors.
2 years ago
Siegfried Pammer
05281e7732
Code cleanup.
2 years ago
Siegfried Pammer
5e55f5b701
Strip AddMetadata API.
2 years ago
Siegfried Pammer
efce9193c6
Remove binary formatter logic.
2 years ago
Siegfried Pammer
f0e3277d05
Fix performance of WriteNiceBase64.
2 years ago
ElektroKill
915c0310c4
Add support for MSC 2.6.4 pinned region with string variable
2 years ago
Siegfried Pammer
13227e433e
Fix compound assignments with local variables.
2 years ago
Daniel Grunwald
b80d20b15d
Add support for calling `operator checked`.
2 years ago
Daniel Grunwald
32fafeb9a1
Add support for user-defined checked operators.
2 years ago
Daniel Grunwald
a2019c5d78
Avoid using `>>>` operator when the context expects a cast to unsigned anyway.
2 years ago
Daniel Grunwald
8b9ba20847
Builtin unsigned right shift operator.
2 years ago
Daniel Grunwald
3c46271a11
Add support for unsigned right shift.
Only for user-defined operators so far; builtin right shifts still cast to the appropriate type.
2 years ago
Daniel Grunwald
768cb02f0b
Fix #2964 : Better error message when a method only contains a single ret instruction.
2 years ago
Daniel Grunwald
94d2ce0fcf
Fix crash when control flow reaches end of method.
2 years ago
Daniel Grunwald
b9ce8490f5
Remove hack that prevented inlining of the first instruction in each block.
Now that ILReader already creates the basic blocks and BlockBuilder only arranges them in containers, this code is no longer necessary.
2 years ago
Daniel Grunwald
b93e65cdad
Fix #901 : Refactor ILReader: only read reachable code + support reimports
This makes our logic more similar to that used by the dotnet runtime. This lets us infer correct stack types in edge cases such as #2401 . It also improves support for obfuscated control flow such as #2878 .
2 years ago
Daniel Grunwald
72a895f64f
#nullable enable for ILReader
2 years ago
Daniel Grunwald
6d671071c1
Fix #2851 : assertion after cloning a block with expected result type
2 years ago
Daniel Grunwald
4fc8f4e66e
Fix #2913 : ArgumentException when generic class is missing `1 suffix.
2 years ago
Daniel Grunwald
94ee5ed216
Fix assertion: UnknownType for unresolved reference can still be nullable; only the SpecialType.Unknown cannot.
2 years ago
Daniel Grunwald
9bfec8cf98
Fix #2860
2 years ago
Daniel Grunwald
3dc2f3d5b6
Rename lifetime annotation to `ScopedRef`
2 years ago