Siegfried Pammer
2ca5b5affe
Rewrite AssignVariableNames algorithm to use variable usages instead of the list of variables.
10 months ago
Siegfried Pammer
c67d086e2f
Add test cases for naming conflicts related to foreach, using and fixed variables. Remove unnecessary ConflictWithLocal check in AssignVariableNames.
10 months ago
Siegfried Pammer
3fb153940b
AssignVariableNames: Handle fixed statement special cases
10 months ago
Daniel Grunwald
aa914058ce
Fix #3237 : Use `ref readonly` locals for `readonly.ldelema`
10 months ago
Siegfried Pammer
7b1f8a305c
Implemented support for string concatenation compound assignments involving ReadOnlySpan<char>.
10 months ago
Siegfried Pammer
1c71f6ad46
Support concatenation involving arguments of type ReadOnlySpan<char>.
10 months ago
Siegfried Pammer
9548a11d37
Use ILSpyHelper_AsRefReadOnly to ensure that overload resolution can pick the correct overload using 'in'.
10 months ago
Siegfried Pammer
03a20f3494
Support ILInlining for in parameters
10 months ago
Siegfried Pammer
fd1de09489
Avoid using operator + for string concatenation when ref-like types are involved.
10 months ago
Siegfried Pammer
e6004e5f26
Handle ReferenceKind.RefReadOnly in a few more cases
10 months ago
Siegfried Pammer
28aa88bfb8
Make NullableLiftingTransform handle the case where ExpressionTransforms.VisitComp already lifted a nullable comparison with constant.
10 months ago
Siegfried Pammer
9d22e3ab41
NullableLiftingTransform: Undo new compiler optimization (omitting get_HasValue for comparisions with constants)
10 months ago
Siegfried Pammer
cf5f10067e
CallBuilder: Extract handling of interpolated string pattern into separate method.
10 months ago
Siegfried Pammer
427fbcd8c0
Fix general using statement pattern
10 months ago
Siegfried Pammer
dab256ceb0
Update stackalloc initializer patterns for Roslyn 4.10.0.
10 months ago
Siegfried Pammer
a5ed5ec5cb
Support types that provide DisposeAsync without implementing IAsyncDisposable.
10 months ago
Siegfried Pammer
783c934bfd
Transform RequiresLocationAttribute to 'ref readonly' on function pointers.
10 months ago
Siegfried Pammer
02d2a8c1f8
Add metadata processing for C# 12 'ref readonly' parameters
10 months ago
Siegfried Pammer
5d36732fcf
Remove ApplyPdbLocalTypeInfoTypeVisitor (merge it into ApplyAttributeTypeVisitor)
10 months ago
Siegfried Pammer
4bf9487ecd
Remove IsRef, IsOut and IsIn flags from IParameter and Replace ParameterModifiers with ReferenceKind.
10 months ago
Daniel Grunwald
ce8fb83c52
Forgot to commit some files
10 months ago
Daniel Grunwald
d48df11133
Remove unused transforms: DecimalConstantTransform and ParameterNullCheckTransform
10 months ago
Daniel Grunwald
fa19470435
Fix #3218 : Avoid exceptions when IL is invalid due to unexpected end-of-method-body.
11 months ago
Siegfried Pammer
6c08851cb0
#3209 : Only add imports for extension methods.
11 months ago
Siegfried Pammer
972354913e
Fix #3209 : Ensure using directives are added for extension methods in higher level patterns such as: foreach -> GetEnumerator(), collection initializer -> Add() and deconstruction -> Deconstruct().
11 months ago
Siegfried Pammer
401cb77ae3
Fix #3189 : Support primitive types in Expression.Constant(object) pattern.
12 months ago
Siegfried Pammer
77b237d5a4
Fix mysteriously deleted issue #3197 : Skip file formats that currently can only be loaded from a file when dealing with a file from a bundle or package.
12 months ago
Christoph Wille
f996283233
Update NuGet packages
12 months ago
Christoph Wille
b1a4ab15c4
Fix NETCORE to NET8(or newer) directive
1 year ago
Daniel Grunwald
38e7ab4373
Fix #3110 : Add support for MCS 2.6.4 pinned region with array variable
...
* Added additional code to remove the conv instruction present in the initialization part of the pinned region.
* Extended the code responsible for removing the unpin stloc to correctly match the inverted condition found in MCS 2.6.4 compiled code.
* Enabled already present correctness test to run for MCS 2.6.4.
This is a more generalized version of the fix on PR #3110 proposed by @ElektroKill .
1 year ago
Siegfried Pammer
1fca3da27b
Fix #3072 : Ignore resources have the same name as a namespace.
1 year ago
Siegfried Pammer
963ff7cb3d
Fix #3151 : Make IProjectFileWriter API public
1 year ago
Siegfried Pammer
969e3e546a
Add support for switch on (ReadOnly)Span<char> using a compiler-generated hash function.
1 year ago
Siegfried Pammer
9ba47db69b
Add new a.GetValueOrDefault(b) -> a ?? b transform for side-effect-free default values.
1 year ago
Siegfried Pammer
2d90c457c8
Lift some artificial restrictions to PEFile in WholeProjectDecompiler and ReflectionDisassembler.
1 year ago
Siegfried Pammer
921bf36261
Add WebCIL support
1 year ago
Siegfried Pammer
ca78d4a14d
Use MetadataFile instead of PEFile in TypeSystem.
1 year ago
Siegfried Pammer
3e9e7a3b55
Add intentation level to make it easier to see custom attributes belonging to interface implementations.
1 year ago
Siegfried Pammer
89d97b99a0
#3177 : Print metadata token of custom attribute in IL output.
1 year ago
Siegfried Pammer
2e777201f3
Fix bug in UnknownType: FullName of nested unknown types did not contain the outer type name(s), but only namespace and nested type name.
1 year ago
James May
63224425fe
Add ModuleReferences
1 year ago
Siegfried Pammer
514551ef9f
Add exported types
1 year ago
Siegfried Pammer
dbb834022f
Add treenode for MemberReferences.
1 year ago
James May
2a6e141465
add "Referenced Types" under References
1 year ago
Siegfried Pammer
cfb4f0f312
Fix #3153 : Always use SHA1 for public key tokens. According to ECMA-335, the hash algorithm stored in the assembly metadata is intended for file content verification purposes, not identification purposes.
1 year ago
Siegfried Pammer
1370b999fe
Fix #2893 : Add option to disable automatic assembly loading.
...
This setting is honored by all functionality that triggers a decompilation run. It is ignored by features that load assemblies as their primary function. For example, using the "Load Dependencies" feature will still resolve and load assemblies from the file-system. The same happens when you double-click on an assembly reference in the tree view. It will be resolved and loaded.
Note that disabling automatic assembly load will cause the decompiler to potentially not be able to resolve types from references that have not been added manually and the quality of the decompiled code will be inferior as a result.
1 year ago
Siegfried Pammer
12cbf14106
Clean up node classes.
1 year ago
Siegfried Pammer
942131f487
#3068 : Introduce MetadataFile for pure ECMA-335 streams and as base class for PEFile
1 year ago
ElektroKill
38019ad5bf
Introduce `PdbExtraTypeInfo` struct and adjusted `IDebugInfoProvider`
1 year ago
Siegfried Pammer
566af5c2fb
Fix #3113 : Remove GetAlternativeName and instead reuse existing names, if there are no conflicts.
1 year ago