Siegfried Pammer
94050a4aca
Rewrite TransformFieldAndConstructorInitializers from a step-by-step AST-based analysis to an analysis that tracks the whole constructor body.
5 months ago
ds5678
ad4a87b9a3
Improve inlining of boxed values
5 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
5 months ago
Siegfried Pammer
f6c763e7bb
Add tests for ExtensionEncodingV1 and ExtensionEncodingV2.
5 months ago
ds5678
dc3ed43dd8
Do not create object initializers for tuples
6 months ago
ds5678
6fb6b63a2c
Fix ugly test
6 months ago
ds5678
c54318173b
Fix lower case type name conflicting with variable name
6 months ago
ds5678
1d964bce8e
Fix regression in decompiling local functions with default parameters
7 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
7 months ago
Daniel Grunwald
89083eaf48
Fix #3344 : Add support for the `ckfinite` opcode.
8 months ago
Siegfried Pammer
052466fce7
Add test case
8 months ago
Christoph Wille
afcdcec146
Update for .NET 10 Preview 7 packages ( #3537 )
...
* Update NUnit (was: 4.3.2) to 4.4 and MTP (was: 1.7.3) to 1.8.1 (had to add VSTestBridge explicitly to override ref complaints by compiler)
* Update to .NET 10 Preview 7 NuGet packages
* Update dotnet-format
8 months ago
Maximilian Schmöcker
43bfaba7e0
Add ExpandParamsArguments DecompilerSettings
8 months ago
Maximilian Schmöcker
850ffe593d
Fix methods with mandatory arguments ignore disabled OptionalArguments setting
8 months ago
Siegfried Pammer
685f21edb5
C# 14 extensions: Add initial test case
8 months ago
Daniel Grunwald
90cd265e89
Update System.Reflection.Metadata dependency to 9.0.0.
...
Add explicit System.Security.Cryptography.Pkcs dependency to avoid security vulnerability warning in ILSpyCmd.
Suppress security vulnerability warnings in test projects.
8 months ago
Siegfried Pammer
f0c80e4a80
Silence NU1510
8 months ago
Siegfried Pammer
ddb7171a2a
Fix #3524 : Property without backing field cannot have an initializer.
8 months ago
Jan Jones
4c08359a6a
Support `byreflike` constraint
8 months ago
Siegfried Pammer
4203a681d8
Extend test cases
9 months ago
DoctorKrolic
47eeacd7aa
Add an option to not transform `Activator.CreateInstance<T>()` to `new T()`
9 months ago
Christoph Wille
1a41fd857e
Centralize EnableNUnitRunner, remove obsolete property TestingPlatformDotnetTestSupport
9 months ago
Christoph Wille
7598a43d3a
.NET 10 MTP dotnet test
9 months ago
Siegfried Pammer
cc4588db4b
Add a test case
9 months ago
ds5678
586c04d081
Support params keyword on non-array collections
9 months ago
Siegfried Pammer
e4ebe20602
Upgrade dotnet target framework to net10
9 months ago
Siegfried Pammer
79f7a188b0
Add support for C# 12 inline array expressions
10 months ago
ds5678
4e21aedce7
Emit property in project file
10 months ago
ds5678
361bb17618
Add configuration option to check for overflow and underflow
10 months ago
Jeremy Pritts
0261ca3ae8
Fix stack overflow exception in CSharpResolver ( #3471 )
...
* Fix stack overflow exception in CSharpResolver
* lhs and rhs
11 months ago
Jeremy Pritts
aff9649711
Parenthesize interpolations containing `global::` ( #3463 )
...
* Parenthesize interpolations containing global::
* Improvements:
* Cleaner output
* More unit testing
* More efficient tree search
* Implement revisions
* Update Lambda1 to be invariant
* Visit descendents before deciding whether or not to parenthesize an interpolation expression
* Rename local function
* Remove branch for conditional expressions
* Handle Lambda expressions without a block body
* Check for parenthesized expressions
* `NET60` instead of `!NET40`
11 months ago
ds5678
fb180b0010
Add tests
1 year ago
Siegfried Pammer
6c72d1c5f0
Add transform to remove unconstrained generic reference type check.
1 year ago
Siegfried Pammer
9f77f8a919
Prevent inlining of call arguments when doing so would change order of evaluation with regards to the implicit ldobj performed by a constrained.callvirt.
1 year ago
ds5678
d75da053a8
Use type hint in pointer arithmetic when appropriate
1 year ago
Siegfried Pammer
453fc06e02
Fix #3406 : Wrong decompilation of record struct without primary constructor.
1 year ago
ds5678
7f024de786
Don't include generic constraints in generated explicit overrides
1 year ago
Siegfried Pammer
7d0262d779
Fix #3439 : Regressed decompilation of variables in lambda scope
1 year ago
ds5678
a1b3b14b0b
Add test
1 year ago
Siegfried Pammer
2c419f68cf
Fix #3322 : Add missing checks for equality comparison
1 year ago
Siegfried Pammer
fa50e8d8b3
Add non-embedded attributes to all tests that use older framework versions.
1 year ago
Christoph Wille
4137a04569
Switch from FA to Shouldly
1 year ago
Siegfried Pammer
f9ae51b12a
Fix #3001 : Support new resources format in ResourcesFile/ResXResourceWriter
2 years ago
Siegfried Pammer
3fb153940b
AssignVariableNames: Handle fixed statement special cases
2 years ago
Siegfried Pammer
783c934bfd
Transform RequiresLocationAttribute to 'ref readonly' on function pointers.
2 years ago
Siegfried Pammer
3b2affa13b
Add new language versions to DefineConstants in Decompiler.Tests
2 years ago
Christoph Wille
17a6197a6a
Add TestsAssemblyTempPath to enable the ability to redirect to a central location
2 years ago
Christoph Wille
c940cbc1d9
Add TestsAssemblyOutput, keep existing behavior of output assembly locations
2 years ago
Christoph Wille
7e1523111a
Set RuntimeIdentifier based on OS architecture
2 years ago
Siegfried Pammer
400481418c
Disable CS8981 in ICSharpCode.Decompiler.Tests: The type name '<identifier>' only contains lower-cased ascii characters. Such names may become reserved for the language. If our test-cases break when Roslyn is introducing new keywords, that's no problem.
2 years ago