Siegfried Pammer
faeae3f083
Fix #1682 , fix #1949 , fix #2394 and fix #3684 : Added basic algorithm of IsAccessorInterfaceImplementationRuntimeHelper
1 month ago
Siegfried Pammer
ade13f848e
Apply suggestions from Claude code review
1 month ago
Siegfried Pammer
98d764a169
Add a treenode and decompiler APIs for extensions.
1 month ago
Siegfried Pammer
0ed123af07
#3621 : Fix NRE when switching language version to C# 8.0 or lower.
5 months ago
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
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
6 months ago
Siegfried Pammer
f6c763e7bb
Add tests for ExtensionEncodingV1 and ExtensionEncodingV2.
6 months ago
Siegfried Pammer
732f285c41
Rename KnownAttributes.RequiredAttribute to KnownAttributes.Required
8 months ago
Siegfried Pammer
48ff85178d
#3545 : Properties must have a getter for covariant returns to be applicable.
8 months ago
Siegfried Pammer
3442fad4a0
Fix #3545 : Covariant return not detected for abstract override property
8 months ago
Daniel Grunwald
dd4bf7d8a4
Fix #3518 by replacing `FixLoneIsInst` with an inlining restriction.
...
This way we avoid having to extract later, as we will never inline if the `isinst` argument if this could result in it being unrepresentable in C#.
This commit also refactors inlining restrictions to avoid requiring special cases in ILInlining itself.
But when making this change, I discovered that this broke our pattern-matching tests, and that the weird IL with double `isinst` is indeed generated by the C# compiler for `if (genericParam is StringComparison.Ordinal)` style code. So instead we also allow `isinst` with a `box(expr-without-side-effects)` argument to be represented with the `expr is T ? (T)expr : null` emulation.
8 months ago
Siegfried Pammer
f8dcd95b31
Add support for extensions in CSharpDecompiler
9 months ago
lordmilko
9498c8d3d9
Allow specifying an IDecompilerTypeSystem rather than a DecompilerTypeSystem to CSharpDecompiler
9 months ago
Siegfried Pammer
9dde97414a
Rename ResolvedUsingScope to UsingScope
9 months ago
Siegfried Pammer
c9e3790adc
Remove UnresolvedUsingScope
9 months ago
Siegfried Pammer
34490587d9
Hide compiler-generated InlineArray types.
10 months ago
Siegfried Pammer
978c31ca5e
Add PropertyAndEventBackingFieldLookup to improve performance of MemberIsHidden.
11 months ago
Siegfried Pammer
6c72d1c5f0
Add transform to remove unconstrained generic reference type check.
1 year ago
ds5678
7f024de786
Don't include generic constraints in generated explicit overrides
1 year ago
Siegfried Pammer
96caa4ecb7
Fix : #3407 Add "private protected" feature for 7.2 decompiler options
1 year ago
Siegfried Pammer
ffcd468d22
Fix #1572 : parameters of lambdas and local functions are renamed, if there are with names from outer scopes collisions.
1 year ago
Siegfried Pammer
8b76879493
Fix #2716 : Add an option to allow sorting custom attributes
1 year ago
박성원
2f53f69799
Fix #3355 : Insert missing DecompilerSettings
1 year ago
Siegfried Pammer
2043e5dd6f
Add support for C# 12 primary constructors.
2 years ago
Daniel Grunwald
8e7e4ba856
Revert "Add support for C# 11 parameter null checks"
...
This reverts commit 9e462b53ad .
2 years ago
Siegfried Pammer
4bf9487ecd
Remove IsRef, IsOut and IsIn flags from IParameter and Replace ParameterModifiers with ReferenceKind.
2 years ago
Daniel Grunwald
d48df11133
Remove unused transforms: DecimalConstantTransform and ParameterNullCheckTransform
2 years ago
Siegfried Pammer
ca78d4a14d
Use MetadataFile instead of PEFile in TypeSystem.
2 years ago
Siegfried Pammer
95108c967a
Fix #3108 : illegal nested classes in enums throw off EnumValueDisplayMode handling.
3 years ago
Siegfried Pammer
0fc003459f
Fix #3079 : Replace parameter names that consist of only whitespace
3 years ago
Siegfried Pammer
591ab6b75d
Implement support for explicit interface implementation of operators and operator uses.
3 years ago
Siegfried Pammer
e8c1270b92
Fix duplicate ILFunction annotations.
3 years ago
Siegfried Pammer
d57b08c79d
Fix #3010 : Remove compiler-generated attributes for required members with custom ctors.
3 years ago
Daniel Grunwald
32fafeb9a1
Add support for user-defined checked operators.
3 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.
3 years ago
Siegfried Pammer
263360f3f3
Add RemoveCompilerFeatureRequiredAttribute
3 years ago
Siegfried Pammer
caec6a6a83
Fix #2945 : Do not treat arbitrary method references pointing to members of the current type definition as part of the method. Only do so for compiler-generated methods.
3 years ago
ElektroKill
28e9123634
Fix removal of attributes injected by the legacy VB compiler
3 years ago
ElektroKill
b110d5c2dc
Implement support for Visual Basic yield return state machines
3 years ago
ElektroKill
feb736a0d5
Fix empty parameter names in delegate declarations ( fixes #2908 )
3 years ago
ElektroKill
a5febb3e4f
Add support for VB.NET automatic events
3 years ago
Daniel Grunwald
f3013010cd
Add support for C# 11 required members.
4 years ago
Siegfried Pammer
e8c4f29738
#2797 : Clarify exception message, if type is not found in the module being decompiled.
4 years ago
Daniel Grunwald
503048b314
Prevent the early ILInlining pass from creating `addressof` instructions
4 years ago
hexafluoride
fc6ae4c645
Add option to always fully qualify type names with global::
4 years ago
Siegfried Pammer
583f661153
Work on #1204 : Add optimized implementation of HasAttribute and GetAttribute to IEntity.
4 years ago
Siegfried Pammer
5046e4cf60
Fix #2718 , Fix #2719 , Fix #2725 : Remove WPF compiler-generated code.
4 years ago
Siegfried Pammer
f695bbcf3a
Add support for DefaultInterpolatedStringHandler
4 years ago
Siegfried Pammer
d248867302
Add support for C# 10 record structs.
4 years ago
Siegfried Pammer
7e08c348b5
#2685 : Emit 'override' without 'newslot' as 'virtual' if there is no (known) method to override.
4 years ago