Siegfried Pammer
c34cc100b6
Records: Exclude static members from copy constructor check
1 month ago
Siegfried Pammer
2bb06709e9
RecordDecompiler: nullable enable
1 month ago
Siegfried Pammer
2271229b23
Fix #3618 : Extend validation of declared members and ctor parameters
1 month ago
mmusu3
88b2c437a7
Address PR review feedback
1 month ago
Siegfried Pammer
45efc732a7
#3614 : Use correct number of type arguments when adding type annotations to generic types with nested types.
1 month ago
mmusu3
22ceb6e7d1
Fix remaining cases with changes to IntroduceUsingDeclarations.
1 month ago
Siegfried Pammer
94050a4aca
Rewrite TransformFieldAndConstructorInitializers from a step-by-step AST-based analysis to an analysis that tracks the whole constructor body.
1 month ago
ds5678
b9d6ba7dff
Remove flags from `box` that indicate memory access and ability to throw
2 months ago
ds5678
ad4a87b9a3
Improve inlining of boxed values
2 months ago
Siegfried Pammer
7a5a2a00a9
#3452 : Transform field initializers in structs only if no record and no primary ctor.
2 months ago
Siegfried Pammer
cb48768b6d
Fix #3610 : Add more primary constructor test cases.
2 months ago
Siegfried Pammer
46c99f1a21
Fix #3452 : More bugs with primary constructors.
2 months ago
Siegfried Pammer
9c8d1e48d9
Many thanks to @sonyps5201314 for providing the test cases and a suggested fix, which inspired these changes.
...
Various improvements regarding primary constructor decompilation, including:
- introduce `HasPrimaryConstructor` property in the AST, as there is a difference between no primary constructor and a parameterless primary constructor
- improved support for inherited records and forwarded ctor calls
- exclude non-public fields and properties in IsPrintedMember
- introduce an option to always make the decompiler emit primary constructors, when possible
2 months ago
Christoph Wille
ac8503c005
.NET 10 RTM Package Update ( #3609 )
2 months ago
sonyps5201314
b63b515a27
Exclude `System.Runtime.CompilerServices.RefSafetyRulesAttribute` from the `module` attribute in the generated `AssemblyInfo.cs`, because including it causes the compiler error: `error CS8335: Do not use 'System.Runtime.CompilerServices.RefSafetyRulesAttribute'. This is reserved for compiler usage.`. ( #3606 )
2 months ago
Siegfried Pammer
1fe8771bc6
Fixed issue described in PR #3596 : Derived record classes do not necessarily declare a ToString override, as the core logic is in PrintMembers.
2 months ago
Siegfried Pammer
588c243929
#3593 : ObjectInitializers: allow castclass instructions wrapping the init instruction to support the pattern used for covariant returns on non-supporting platforms such as .NET 4.x.
2 months ago
Siegfried Pammer
f6c763e7bb
Add tests for ExtensionEncodingV1 and ExtensionEncodingV2.
2 months ago
Jeremy Pritts
2f792f6fb6
Improve Framework Id detection ( #3581 )
...
* Support detecting .NET Core 1.0 and 1.1
* Formatting
* Fix version number
* Add support for using System.Private.CoreLib in version detection
* Move mscorlib for consistency and readability
* Ensure that netstandard is always checked before System.Runtime
* Ensure that System.Runtime is always checked before netstandard
* Formatting
2 months ago
Siegfried Pammer
126e870a5a
Fix #3577 : Properly infer the switch governing type and preserve conversions
3 months ago
Christoph Wille
4f11813829
.NET 10 RC2 packages ( #3599 )
...
Note: transport feed had only 106 for dotnet-format and ILCompiler.Reflection.ReadyToRun.Experimental
3 months ago
Siegfried Pammer
c075f7b9c8
Fix out var for expressions appearing in a lambda and not in a statement.
3 months ago
Siegfried Pammer
d11c40719d
#3569 : Don't move out variable declarations out of lambdas.
3 months ago
Siegfried Pammer
d736b02e2b
Fix #3480 : assert at ExpressionBuilder.BuildArrayInitializerExpression with properties that are not C# indexers, but parameterized properties.
3 months ago
Siegfried Pammer
b403b7bb3d
Fix #3542 : Invalid explicit cast for implicit conversion to generic struct with interface type constraint
3 months ago
Jeremy Pritts
b50f4e1d72
Enable detection of .NET version without TargetFrameworkAttribute ( #3580 )
3 months ago
ds5678
dc3ed43dd8
Do not create object initializers for tuples
3 months ago
Siegfried Pammer
7b03606402
Fix #3575 : Uses of compiler-generated events getting swapped with non-generated events of same type
3 months ago
ds5678
df9cc3dfbe
Null forgiveness for UsingScope
3 months ago
ds5678
c54318173b
Fix lower case type name conflicting with variable name
3 months ago
Siegfried Pammer
61f82d0c2d
Fix #3563 : Add support for ildasm /caverbal format
3 months ago
Siegfried Pammer
0e1478ffce
Fix #3564 : extend TransformDisplayClassUsage.IsPotentialClosure to support sibling DisplayClasses calling each other.
3 months ago
Siegfried Pammer
9b0e3a1605
Fix folding of local functions, if "Fold all braces" is disabled.
3 months ago
ds5678
1d964bce8e
Fix regression in decompiling local functions with default parameters
4 months ago
Siegfried Pammer
7f84d24167
Add support for new extension everything encoding.
4 months ago
Jeremy Pritts
d1dc7b258a
Copy-propagate the stack slot for collection initializers ( #3554 )
...
* Copy-propagate the stack slot for collection initializers
* Use pattern matching
4 months ago
Siegfried Pammer
17a533647b
Add C# 14 ExtensionMarkerAttribute
4 months ago
Siegfried Pammer
732f285c41
Rename KnownAttributes.RequiredAttribute to KnownAttributes.Required
4 months ago
Siegfried Pammer
e34db06a67
Fix #3543 : Missing parentheses around field assignment expression in list initializers
4 months ago
Siegfried Pammer
6aa9bd8e5e
Fix #3549 : Do not crash on encountering nil tokens.
4 months ago
Siegfried Pammer
48ff85178d
#3545 : Properties must have a getter for covariant returns to be applicable.
4 months ago
Siegfried Pammer
3442fad4a0
Fix #3545 : Covariant return not detected for abstract override property
4 months ago
Siegfried Pammer
3d51d8a581
Fix #3547 : Fix duplicate key in PropertyAndEventBackingFieldLookup
4 months ago
Peter Crabtree
e1e16b64f5
dev: Strip BOM mark from text files
4 months ago
Daniel Grunwald
bd9ee28552
Fix #1789 : missing hyperlink for `MethodGroupResolveResult`.
4 months ago
Daniel Grunwald
587a359e8c
Fix #1873 : Clear ILRange in CopyPropagation
...
We are copying an expression from far away, reusing the ILRange would result in incorrect sequence points.
4 months ago
Daniel Grunwald
02d9dc3e85
Fix #3323 : Simplify cleanup in AwaitInFinallyTransform, ensuring that we do not miss any containers.
4 months ago
Daniel Grunwald
c84605a610
Fix #3468 : Try harder to avoid ref locals if `UseRefLocalsForAccurateOrderOfEvaluation` is not enabled.
...
CopyPropagation will replace `ref StructWithStringField reference = ref array[0];` with:
```
var x = array;
var y = 0;
```
and then every use of `reference` is replaced with `x[y]`.
This lets us avoid rough locals while preserving the semantics in every case except that we re-order when a NullReferenceException/IndexOutOfRangeException occurs.
4 months ago
Daniel Grunwald
ec58d57875
#3465 : Fix bugs in `comp.o` handling.
4 months ago
Daniel Grunwald
89083eaf48
Fix #3344 : Add support for the `ckfinite` opcode.
4 months ago