Siegfried Pammer
1f8c0ff289
Fix a few warnings
2 months ago
Siegfried Pammer
b1a617c827
AssignVariableNames: Fix ArgumentException
2 months ago
Siegfried Pammer
6c72d1c5f0
Add transform to remove unconstrained generic reference type check.
3 months ago
Siegfried Pammer
9f77f8a919
Prevent inlining of call arguments when doing so would change order of evaluation with regards to the implicit ldobj performed by a constrained.callvirt.
3 months ago
Siegfried Pammer
485ca1d69a
Fix #3353 : Normal method is decompiled as lambda expression.
3 months ago
Siegfried Pammer
7d0262d779
Fix #3439 : Regressed decompilation of variables in lambda scope
3 months ago
Siegfried Pammer
349a89c1fa
Fix #3436 : Duplicate naming of local functions
3 months ago
Siegfried Pammer
355a039b59
Sightly improve variable naming of known types such as EventArgs and Exceptions
3 months ago
Siegfried Pammer
8a67f48e4e
Fix #1956 : Adapt previous fix for variable names that have a number as suffix.
3 months ago
Siegfried Pammer
ffcd468d22
Fix #1572 : parameters of lambdas and local functions are renamed, if there are with names from outer scopes collisions.
3 months ago
Siegfried Pammer
03aecf047d
Add VariableScope and rework AssignVariableNames step to support renaming parameters of nested ILFunctions in the future.
3 months ago
Siegfried Pammer
a599aae54d
#1572 : Do not generate variable names that match C# keywords.
3 months ago
Siegfried Pammer
73e9771d3c
Fix #2269 : LocalFunctionDecompiler misplaces nested local functions in ctors
3 months ago
Siegfried Pammer
49942382d1
Fix #3432 : Do not include delegate construction use-sites in DetermineCaptureAndDeclarationScopes.
3 months ago
ds5678
e4000c8a5c
Enhance null handling in switch transformations
...
- Updated `Issue3421.cs`.
- Updated `MatchLegacySwitchOnStringWithDict` to check for `leaveContainer` and handle null sections accordingly.
- Introduced an overload for `AddNullSection` to accept `ILInstruction` as the body, improving flexibility.
- Modified existing `AddNullSection` to utilize the new overload, allowing for varied body types in `SwitchSection`.
3 months ago
ds5678
cbe8dd43d7
Fix null check in MatchLegacySwitchOnStringWithDict
...
Updated the condition for `nullValueCaseBlock` to ensure it is not null and not equal to `defaultBlock`.
4 months ago
ds5678
3a13d5a698
Allow explicit null termination character
4 months ago
Siegfried Pammer
38cdf6d50a
Avoid transforming sub pattern of cpblk stackalloc initializer
4 months ago
Siegfried Pammer
bd0fd8db1f
Small refactorings:
...
- extract common code
- reduce nesting
4 months ago
ds5678
b0d6fa2276
Add support for array initialization based on RuntimeHelpers.CreateSpan<T>
4 months ago
Siegfried Pammer
5b90dbdabf
Fix #3385 : Allow address uses of structs in using transform, if the reference is passed to an in parameter.
4 months ago
Siegfried Pammer
202c5e22e3
Fix #3383 : more aggressively transform object initializers on structs
4 months ago
Siegfried Pammer
906d248403
Fix #3392 : uses of init-setters must use object-initializer syntax.
4 months ago
Siegfried Pammer
7218a63a46
#3367 : Extend range check to support negative integers.
5 months ago
Siegfried Pammer
b9f50901a4
Fix #3367 : Add extra validation to TransformDecimalCtorToConstant to prevent crashes with obfuscated assemblies.
5 months ago
Siegfried Pammer
e1e2f739f6
Fix switch-on-string transform for optimized Roslyn.
6 months ago
Siegfried Pammer
f66ccea9ef
Fix #3296 : Ensure unknown types are wrapped properly in "Convert Expression Tree"
9 months ago
Siegfried Pammer
966b99a7f9
Fix #3278 : Missing variable declaration in nested for-loop after many other loops
9 months ago
Siegfried Pammer
58e993d71d
Fix #3272 : Missing variable declarations in repeated nested for-loops
9 months ago
Siegfried Pammer
2e7991eee3
TransformDisplayClassUsage: Fix #3233 by ignoring nullability annotations, when trying to find a variable to reuse/propagate.
11 months ago
Siegfried Pammer
2ca5b5affe
Rewrite AssignVariableNames algorithm to use variable usages instead of the list of variables.
11 months ago
Siegfried Pammer
c67d086e2f
Add test cases for naming conflicts related to foreach, using and fixed variables. Remove unnecessary ConflictWithLocal check in AssignVariableNames.
11 months ago
Siegfried Pammer
3fb153940b
AssignVariableNames: Handle fixed statement special cases
11 months ago
Daniel Grunwald
aa914058ce
Fix #3237 : Use `ref readonly` locals for `readonly.ldelema`
11 months ago
Siegfried Pammer
7b1f8a305c
Implemented support for string concatenation compound assignments involving ReadOnlySpan<char>.
11 months ago
Siegfried Pammer
1c71f6ad46
Support concatenation involving arguments of type ReadOnlySpan<char>.
11 months ago
Siegfried Pammer
03a20f3494
Support ILInlining for in parameters
11 months ago
Siegfried Pammer
28aa88bfb8
Make NullableLiftingTransform handle the case where ExpressionTransforms.VisitComp already lifted a nullable comparison with constant.
11 months ago
Siegfried Pammer
9d22e3ab41
NullableLiftingTransform: Undo new compiler optimization (omitting get_HasValue for comparisions with constants)
11 months ago
Siegfried Pammer
427fbcd8c0
Fix general using statement pattern
11 months ago
Siegfried Pammer
dab256ceb0
Update stackalloc initializer patterns for Roslyn 4.10.0.
11 months ago
Siegfried Pammer
a5ed5ec5cb
Support types that provide DisposeAsync without implementing IAsyncDisposable.
11 months ago
Siegfried Pammer
4bf9487ecd
Remove IsRef, IsOut and IsIn flags from IParameter and Replace ParameterModifiers with ReferenceKind.
11 months ago
Daniel Grunwald
d48df11133
Remove unused transforms: DecimalConstantTransform and ParameterNullCheckTransform
11 months ago
Siegfried Pammer
401cb77ae3
Fix #3189 : Support primitive types in Expression.Constant(object) pattern.
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
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
ca78d4a14d
Use MetadataFile instead of PEFile in TypeSystem.
1 year ago
Siegfried Pammer
566af5c2fb
Fix #3113 : Remove GetAlternativeName and instead reuse existing names, if there are no conflicts.
2 years ago