Siegfried Pammer
f695bbcf3a
Add support for DefaultInterpolatedStringHandler
3 years ago
Siegfried Pammer
d248867302
Add support for C# 10 record structs.
3 years ago
Siegfried Pammer
7e08c348b5
#2685 : Emit 'override' without 'newslot' as 'virtual' if there is no (known) method to override.
3 years ago
Siegfried Pammer
c66eb7bbef
#2685 : Hide ctors from ComImport classes.
...
#2685 : Remove logic added in previous commit, as it breaks our ILPretty tests.
3 years ago
Siegfried Pammer
3e05a8d763
#2685 : Emit 'override' without 'newslot' as 'virtual' if there is no (known) method to override.
3 years ago
Siegfried Pammer
54a3bba820
#2685 : Do not add interface impl helper for extern methods.
3 years ago
Siegfried Pammer
e043f43925
Ignore local functions when collecting used members.
...
This is necessary because LocalFunctionMethod.DeclaringTypeDefinition points to the current type.
3 years ago
Siegfried Pammer
b7edf2eb59
Detect compiler-generated code that is still needed after decompilation.
3 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.
3 years ago
Siegfried Pammer
9e462b53ad
Add support for C# 11 parameter null checks
3 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.
3 years ago
Siegfried Pammer
9935f51b96
Fix #2646 : Missing values for enums with skipped or duplicate items
3 years ago
Siegfried Pammer
1ee3384a05
Fix #2640 : Invalid implicit enum value for unordered items
3 years ago
Siegfried Pammer
a0fb71abad
Fix EntityHandle.GetDeclaringType extension and add TypeSpecification.GetGenericType
3 years ago
Siegfried Pammer
00a32e0575
Use AlwaysQualifyMemberReferences = true in Windows Forms InitializeComponent methods.
3 years ago
Siegfried Pammer
2a7e9c1d78
#2590 : Fix printing of "Invalid MethodBodyBlock" comments. Make them appear between the braces of the block.
3 years ago
Siegfried Pammer
15f49c0079
Add basic support for abstract static members in interfaces.
3 years ago
Daniel Grunwald
8fb44414c9
Remove unused GenerateConvHelper
4 years ago
Siegfried Pammer
ec6a9afc57
Fix #2448 : Decompiler shows some enum values as hexdecimal instead of decimal
4 years ago
Siegfried Pammer
ee3aabdc51
Fix #2534 : Handle default implementations of properties and events in interfaces.
4 years ago
Christoph Wille
c68bf60b1b
Wrap DoDecompileEvent(IMethod...)
4 years ago
Christoph Wille
6e5c474dfc
Instrument more DoDecompile methods
4 years ago
Christoph Wille
1b3a73d9e9
Add ETW for event + property decompilation as PoC
4 years ago
Siegfried Pammer
665c731cfc
Move PatternMatchingTransform after LoopDetection.
4 years ago
SilverFox
11b44e53b7
Add support for attributes of field/property in primary ctor of records
4 years ago
Siegfried Pammer
dbbcbb87fe
Make pattern matching transform a simple ILTransform for both reference and value types. Check that the true branch dominates all uses of the pattern variable.
4 years ago
Siegfried Pammer
ed82bff896
Fix #2497 : NRE in covariant returns check on set-only property
4 years ago
Siegfried Pammer
84704a7452
Adds support for C# 9 covariant return types in methods and getter-only properties and indexers.
4 years ago
Siegfried Pammer
83727ea4b0
Add support for value type patterns
4 years ago
Daniel Grunwald
c26d9ad6f1
Mark stack slot for aggressive removal in InfeasiblePathTransform
...
This helps with pattern matching in short circuiting operators.
4 years ago
Siegfried Pammer
c641072685
Translate MatchInstruction to BinaryOperatorExpression with BinaryOperatorType.IsPattern.
4 years ago
Daniel Grunwald
040ab41c69
Initial implementation of the pattern matching transform.
4 years ago
Siegfried Pammer
8eafbb3d90
Fix #2092 : aggressively inline code in compiler-generated lambdas and expression trees.
4 years ago
Siegfried Pammer
bc5d078feb
Fix #1698 : Readonly auto properties from VB.NET are not properly decompiled
4 years ago
Siegfried Pammer
1f0f6404e0
Fix #2231 : Add support for ldloca; dup; initobj pattern used by Roslyn.
4 years ago
Daniel Grunwald
685a79dc31
DetectExitPoints: introduce exit points for loops+switch
...
This allows reverting the changes to HighLevelLoopTransform+ReduceNestingTransform from the previous commit, which fixes a bug in loop detection (the previous commit did not handle loops where the loop BlockContainer didn't have a Block as parent).
4 years ago
Daniel Grunwald
6757295b3b
Fix #2379 : Keep `return` statements around in original form for ConditionDetection, only transform to fall-through block-exit at the end of the transform pipeline.
...
This fixes an issue where `return` statements within try-blocks could turn into `goto` statements.
4 years ago
Siegfried Pammer
aa147870a2
Fix #2389 : missing extern keyword for properties and events.
4 years ago
Siegfried Pammer
8fc64669c2
Add annotations on local function parameter declarations
4 years ago
Siegfried Pammer
5734da4294
Fix #2314 : ILSpy incorrectly resolves a runtime dependency when dll is present in both WindowsDesktop.App and NETCore.App
4 years ago
Siegfried Pammer
afa4db00b6
Fix #2297 : Add an option to disable decompilation of getter-only auto properties.
4 years ago
Siegfried Pammer
34557ab76b
#2294 : Remove redundant condition
4 years ago
Siegfried Pammer
fdda8abd74
Fix #2282 : Finalizers must be void and cannot be declared in interfaces
4 years ago
Siegfried Pammer
a5858f1694
Add support for primary constructor syntax.
4 years ago
Daniel Grunwald
0bf6d552e0
Records: support for fields.
4 years ago
Daniel Grunwald
90ce77f400
Omit EqualityContract if it's automatically generated.
5 years ago
Daniel Grunwald
9e589faeea
Omit members from record definitions if they are always compiler-generated.
5 years ago
Daniel Grunwald
f869756fed
Use "record" instead of "class" for C# 9 record class types.
5 years ago
Siegfried Pammer
3a7c69e5b9
Fix #2192 : Add support for VB.NET delegate construction
5 years ago
Siegfried Pammer
31b4e6ae6a
Fix #2185 : Fix MemberIsHidden-check for local function display structs: Async State Machines that looked like local function display structs were not hidden once local function decompilation was disabled. This led to code duplication in the generated pdb.
5 years ago