Siegfried Pammer
03aecf047d
Add VariableScope and rework AssignVariableNames step to support renaming parameters of nested ILFunctions in the future.
10 months ago
Siegfried Pammer
a599aae54d
#1572 : Do not generate variable names that match C# keywords.
10 months ago
Siegfried Pammer
73e9771d3c
Fix #2269 : LocalFunctionDecompiler misplaces nested local functions in ctors
10 months ago
Siegfried Pammer
49942382d1
Fix #3432 : Do not include delegate construction use-sites in DetermineCaptureAndDeclarationScopes.
10 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`.
10 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`.
10 months ago
Siegfried Pammer
f0f95efa05
Fix StateRangeAnalysis to handle changes in yield return codegen in Roslyn 4.13.
10 months ago
ds5678
3a13d5a698
Allow explicit null termination character
10 months ago
Siegfried Pammer
38cdf6d50a
Avoid transforming sub pattern of cpblk stackalloc initializer
10 months ago
Siegfried Pammer
bd0fd8db1f
Small refactorings:
...
- extract common code
- reduce nesting
10 months ago
ds5678
b0d6fa2276
Add support for array initialization based on RuntimeHelpers.CreateSpan<T>
10 months ago
Siegfried Pammer
5b90dbdabf
Fix #3385 : Allow address uses of structs in using transform, if the reference is passed to an in parameter.
11 months ago
Siegfried Pammer
202c5e22e3
Fix #3383 : more aggressively transform object initializers on structs
11 months ago
Siegfried Pammer
906d248403
Fix #3392 : uses of init-setters must use object-initializer syntax.
11 months ago
Siegfried Pammer
7218a63a46
#3367 : Extend range check to support negative integers.
12 months ago
Siegfried Pammer
b9f50901a4
Fix #3367 : Add extra validation to TransformDecimalCtorToConstant to prevent crashes with obfuscated assemblies.
12 months ago
Siegfried Pammer
e1e2f739f6
Fix switch-on-string transform for optimized Roslyn.
1 year ago
Siegfried Pammer
f66ccea9ef
Fix #3296 : Ensure unknown types are wrapped properly in "Convert Expression Tree"
1 year ago
Siegfried Pammer
966b99a7f9
Fix #3278 : Missing variable declaration in nested for-loop after many other loops
1 year ago
Siegfried Pammer
58e993d71d
Fix #3272 : Missing variable declarations in repeated nested for-loops
1 year ago
Siegfried Pammer
6cee0cdc4b
Fix #3258 : Move GraphVizGraph and friends to ILSpy and remove InternalsVisibleTo.
1 year ago
Siegfried Pammer
2e7991eee3
TransformDisplayClassUsage: Fix #3233 by ignoring nullability annotations, when trying to find a variable to reuse/propagate.
1 year ago
Siegfried Pammer
2ca5b5affe
Rewrite AssignVariableNames algorithm to use variable usages instead of the list of variables.
1 year ago
Daniel Grunwald
8e7e4ba856
Revert "Add support for C# 11 parameter null checks"
...
This reverts commit 9e462b53ad .
1 year ago
Siegfried Pammer
c67d086e2f
Add test cases for naming conflicts related to foreach, using and fixed variables. Remove unnecessary ConflictWithLocal check in AssignVariableNames.
1 year ago
Siegfried Pammer
3fb153940b
AssignVariableNames: Handle fixed statement special cases
1 year ago
Daniel Grunwald
aa914058ce
Fix #3237 : Use `ref readonly` locals for `readonly.ldelema`
1 year ago
Siegfried Pammer
7b1f8a305c
Implemented support for string concatenation compound assignments involving ReadOnlySpan<char>.
1 year ago
Siegfried Pammer
1c71f6ad46
Support concatenation involving arguments of type ReadOnlySpan<char>.
1 year ago
Siegfried Pammer
03a20f3494
Support ILInlining for in parameters
1 year ago
Siegfried Pammer
28aa88bfb8
Make NullableLiftingTransform handle the case where ExpressionTransforms.VisitComp already lifted a nullable comparison with constant.
1 year ago
Siegfried Pammer
9d22e3ab41
NullableLiftingTransform: Undo new compiler optimization (omitting get_HasValue for comparisions with constants)
1 year ago
Siegfried Pammer
427fbcd8c0
Fix general using statement pattern
1 year ago
Siegfried Pammer
dab256ceb0
Update stackalloc initializer patterns for Roslyn 4.10.0.
1 year ago
Siegfried Pammer
a5ed5ec5cb
Support types that provide DisposeAsync without implementing IAsyncDisposable.
1 year ago
Siegfried Pammer
5d36732fcf
Remove ApplyPdbLocalTypeInfoTypeVisitor (merge it into ApplyAttributeTypeVisitor)
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
Daniel Grunwald
fa19470435
Fix #3218 : Avoid exceptions when IL is invalid due to unexpected end-of-method-body.
2 years ago
Siegfried Pammer
401cb77ae3
Fix #3189 : Support primitive types in Expression.Constant(object) pattern.
2 years 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 .
2 years ago
Siegfried Pammer
969e3e546a
Add support for switch on (ReadOnly)Span<char> using a compiler-generated hash function.
2 years ago
Siegfried Pammer
9ba47db69b
Add new a.GetValueOrDefault(b) -> a ?? b transform for side-effect-free default values.
2 years ago
Siegfried Pammer
ca78d4a14d
Use MetadataFile instead of PEFile in TypeSystem.
2 years ago
Siegfried Pammer
942131f487
#3068 : Introduce MetadataFile for pure ECMA-335 streams and as base class for PEFile
2 years ago
ElektroKill
38019ad5bf
Introduce `PdbExtraTypeInfo` struct and adjusted `IDebugInfoProvider`
2 years ago
Siegfried Pammer
566af5c2fb
Fix #3113 : Remove GetAlternativeName and instead reuse existing names, if there are no conflicts.
2 years ago
ElektroKill
5b526cfeac
Read and use tuple element names and dynamic type information from PDBs
2 years ago
Daniel Grunwald
c12187277c
Also use GraphTraversal.DepthFirstSearch for dominance calculation.
2 years ago
Daniel Grunwald
d58576f409
Fix #3075 : eliminate recursion in TopologicalSort and BlockTransform.
2 years ago