Daniel Grunwald
71d3120b94
#2552 : Initial support for null coalescing assignment (`??=`).
4 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.
4 months ago
Siegfried Pammer
f8dcd95b31
Add support for extensions in CSharpDecompiler
5 months ago
lordmilko
9498c8d3d9
Allow specifying an IDecompilerTypeSystem rather than a DecompilerTypeSystem to CSharpDecompiler
5 months ago
Siegfried Pammer
9dde97414a
Rename ResolvedUsingScope to UsingScope
5 months ago
Siegfried Pammer
c9e3790adc
Remove UnresolvedUsingScope
5 months ago
Siegfried Pammer
34490587d9
Hide compiler-generated InlineArray types.
6 months ago
Siegfried Pammer
978c31ca5e
Add PropertyAndEventBackingFieldLookup to improve performance of MemberIsHidden.
7 months ago
Siegfried Pammer
6c72d1c5f0
Add transform to remove unconstrained generic reference type check.
9 months ago
ds5678
7f024de786
Don't include generic constraints in generated explicit overrides
9 months ago
Siegfried Pammer
96caa4ecb7
Fix : #3407 Add "private protected" feature for 7.2 decompiler options
10 months ago
Siegfried Pammer
ffcd468d22
Fix #1572 : parameters of lambdas and local functions are renamed, if there are with names from outer scopes collisions.
10 months ago
Siegfried Pammer
8b76879493
Fix #2716 : Add an option to allow sorting custom attributes
11 months ago
박성원
2f53f69799
Fix #3355 : Insert missing DecompilerSettings
1 year ago
Siegfried Pammer
2043e5dd6f
Add support for C# 12 primary constructors.
1 year ago
Daniel Grunwald
8e7e4ba856
Revert "Add support for C# 11 parameter null checks"
...
This reverts commit 9e462b53ad .
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
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.
2 years ago
Siegfried Pammer
0fc003459f
Fix #3079 : Replace parameter names that consist of only whitespace
2 years ago
Siegfried Pammer
591ab6b75d
Implement support for explicit interface implementation of operators and operator uses.
2 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.
3 years ago
Siegfried Pammer
e8c4f29738
#2797 : Clarify exception message, if type is not found in the module being decompiled.
3 years ago
Daniel Grunwald
503048b314
Prevent the early ILInlining pass from creating `addressof` instructions
3 years ago
hexafluoride
fc6ae4c645
Add option to always fully qualify type names with global::
3 years ago
Siegfried Pammer
583f661153
Work on #1204 : Add optimized implementation of HasAttribute and GetAttribute to IEntity.
3 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
Siegfried Pammer
c66eb7bbef
#2685 : Hide ctors from ComImport classes.
...
#2685 : Remove logic added in previous commit, as it breaks our ILPretty tests.
4 years ago
Siegfried Pammer
3e05a8d763
#2685 : Emit 'override' without 'newslot' as 'virtual' if there is no (known) method to override.
4 years ago
Siegfried Pammer
54a3bba820
#2685 : Do not add interface impl helper for extern methods.
4 years ago
Siegfried Pammer
e043f43925
Ignore local functions when collecting used members.
...
This is necessary because LocalFunctionMethod.DeclaringTypeDefinition points to the current type.
4 years ago
Siegfried Pammer
b7edf2eb59
Detect compiler-generated code that is still needed after decompilation.
4 years ago
Siegfried Pammer
1532d2fc29
Refactor DoDecompile(ITypeDefinition): Extract handling of members and types into local function. Order of output no longer depends on the order of decompilation, which will become relevant in the next commit.
4 years ago
Siegfried Pammer
9e462b53ad
Add support for C# 11 parameter null checks
4 years ago
Zachary Northrup
9c17029702
Fix the ordering of COM interface methods and properties to appear in their originally defined order. This was resulting in fatal crashes while running decompiled COM interop code.
4 years ago
Siegfried Pammer
9935f51b96
Fix #2646 : Missing values for enums with skipped or duplicate items
4 years ago