Siegfried Pammer
343694c549
Generalize progress reporting for decompilation and PDB generation.
3 years ago
Siegfried Pammer
9017592d1d
Fix #2764 : Move constant field initializers regardless of whether the other field initializers can be moved.
3 years ago
Siegfried Pammer
e8c4f29738
#2797 : Clarify exception message, if type is not found in the module being decompiled.
3 years ago
Siegfried Pammer
47250d670b
Fix #2791 : Ensure that the capture scope used is either a loop or the ILFunction root container.
3 years ago
ElektroKill
1447038ce1
Fix #2736
3 years ago
Siegfried Pammer
a3191f19e2
Fix #2763 : Improve decompilation of switch-on-enum by preserving enum type information when inlining local variables into SwitchInstruction.Value.
3 years ago
Daniel Grunwald
503048b314
Prevent the early ILInlining pass from creating `addressof` instructions
3 years ago
Daniel Grunwald
0fbbb6d95e
Fix #2777 : StackOverflowException with recursive delegates
3 years ago
hexafluoride
fc6ae4c645
Add option to always fully qualify type names with global::
3 years ago
Daniel Grunwald
8b906f5c65
Fix unnecessary dict creation in TSAB constructor.
3 years ago
Siegfried Pammer
583f661153
Work on #1204 : Add optimized implementation of HasAttribute and GetAttribute to IEntity.
3 years ago
Daniel Grunwald
b4b070468f
Revert "Performance Optimization: Do no longer collect all lower case type and member names."
...
This reverts commit 6584a2f576
.
3 years ago
Siegfried Pammer
6584a2f576
Performance Optimization: Do no longer collect all lower case type and member names.
3 years ago
Siegfried Pammer
48a8351e27
Use Unsafe.SizeOf when taking the size of a managed type.
3 years ago
Siegfried Pammer
2ed9ad6b51
Add support for C# 11 scoped parameter modifier.
3 years ago
Siegfried Pammer
5f324de10b
Add support for ref fields.
3 years ago
Siegfried Pammer
1f1e95d7a1
Update RecordDecompiler for Roslyn 4.3.0.
3 years ago
Daniel Grunwald
21c3ec046f
Output attributes on lambda expressions
3 years ago
Siegfried Pammer
5046e4cf60
Fix #2718 , Fix #2719 , Fix #2725 : Remove WPF compiler-generated code.
3 years ago
Daniel Grunwald
08ceffc3ad
Upgrade dotnet-format from version 5 to the version included with the .NET (6) SDK.
3 years ago
Siegfried Pammer
f695bbcf3a
Add support for DefaultInterpolatedStringHandler
3 years ago
Siegfried Pammer
fbafc0289b
Fix #2741 : CallBuilder produces invalid invocation target when disambiguating calls to protected methods.
3 years ago
Siegfried Pammer
5078796b17
Add support for string format alignment.
3 years ago
Siegfried Pammer
d3f8912d53
Handle special-cases with addressof:
...
- Never introduce casts for ldobj-address-chains
- Add special-case to TransformExpressionTrees: transform addressof(ldloc) to ldloca
- Classify foreach and using variables as readonly lvalues
3 years ago
Siegfried Pammer
8dd721aee3
Fix #2706 : Filenames and directories truncated to 30 characters.
...
With the built-in support for long paths in .NET 6.0, we no longer need to check for the registry key. The only limitation that remains is maxSegmentLength, which seems to be 255 on all commonly used file systems/all platforms. Also there is no need to differentiate between Windows and other platforms.
- Windows Explorer in Windows 10 seems to be fine with files generated by ILSpy that have names longer than 260 characters.
- Notepad++ and other applications seem to use 8.3 path syntax to access the file.
- Visual Studio 2022 does not like the long path names, affected users should raise an issue with MS. ILSpy generates proper paths.
3 years ago
Siegfried Pammer
702a7da2c3
Fix #2714 : Force inlining of call targets in ctor initializers.
3 years ago
Siegfried Pammer
7ce453c73d
Fix #2710 : enhanced using statements are not allowed as embedded statements.
3 years ago
Andrii Kurdiumov
a2e9a2f5d8
Allow decompile C++/CLI assemblies
...
When C++/CLI project produce assembly it generates target attribute like this
```
[assembly: TargetFramework(".NETCoreApp,Version=7.0", FrameworkDisplayName = "")]
```
when C# generates `TargetFrameworkAttribute` it produce slightly different format
```
[assembly: TargetFramework(".NETCoreApp,Version=v7.0", FrameworkDisplayName = "")]
```
3 years ago
Siegfried Pammer
11468135b4
Add special-case for non-primary record struct constructors
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
Daniel Grunwald
d6d0392d2f
Fix crash when IL byte code unexpectedly ends in the middle of an operand.
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
40ffc1e90e
Remove backing fields of auto properties and events.
...
The previous commit started decompiling backing fields because they are still needed prior to the C# transforms.
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
73f2493644
Fix #2629 : Indentation of method-call chains.
3 years ago
Siegfried Pammer
9e462b53ad
Add support for C# 11 parameter null checks
3 years ago
Siegfried Pammer
6a27959cbc
Improve decompilation of delegate references of extension methods.
3 years ago
Siegfried Pammer
0bc11d05d3
Fix #2634 : target expressions of delegate references were not decompiled correctly
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
2e31427d56
Fix nullability warnings in AstNode and XmlDocumentationElement.
3 years ago
Daniel Grunwald
a9f4694563
Add test for C# 11 generic attribute
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
db034d3048
Remove incomplete/wrong support for null-forgiving operator.
3 years ago