1085 Commits (null-coalescing-assignment)

Author SHA1 Message Date
Daniel Grunwald 71d3120b94 #2552: Initial support for null coalescing assignment (`??=`). 1 year ago
Daniel Grunwald 587a359e8c Fix #1873: Clear ILRange in CopyPropagation 1 year ago
Daniel Grunwald c84605a610 Fix #3468: Try harder to avoid ref locals if `UseRefLocalsForAccurateOrderOfEvaluation` is not enabled. 1 year ago
Daniel Grunwald dd4bf7d8a4 Fix #3518 by replacing `FixLoneIsInst` with an inlining restriction. 1 year ago
ds5678 15223daabd WIP preincrement improvements 1 year ago
Siegfried Pammer 9dde97414a Rename ResolvedUsingScope to UsingScope 1 year ago
Siegfried Pammer c9e3790adc Remove UnresolvedUsingScope 1 year ago
Siegfried Pammer d2d9281072 Move CanTransformToExtensionMethodCall to CSharpResolver 1 year ago
Siegfried Pammer f97e59760b Fix #3512: Local function name collides with local variable name 1 year ago
Siegfried Pammer 49368caf1c Rename option to "UseObjectCreationOfGenericTypeParameter" 1 year ago
Siegfried Pammer 51a26180bb Fix #3492: Do not crash, if field used by RuntimeHelpers.InitializeArray is malformed. 1 year ago
Siegfried Pammer fecb10f109 Generalize ILInlining special cases for in arguments of ROS<T> ctors. 1 year ago
Siegfried Pammer 2461f520ab Move LocalFunctionDecompiler.GetStatement to Block.GetContainingStatement 1 year ago
Siegfried Pammer 298c247355 InlineArrayTransform: Add more bounds checking 1 year ago
Siegfried Pammer 47dd905ad0 Make InlineArrayTransform post-order 1 year ago
Siegfried Pammer 79f7a188b0 Add support for C# 12 inline array expressions 1 year ago
Siegfried Pammer cb790c6d38 Allow variable splitting of compiler-generated temporaries for Span<T>/ROS<T> 1 year ago
Daniel Grunwald 7fc9025500 Fix nullability of Extract return type 1 year ago
Siegfried Pammer b1a617c827 AssignVariableNames: Fix ArgumentException 1 year ago
Siegfried Pammer 6c72d1c5f0 Add transform to remove unconstrained generic reference type check. 1 year 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. 1 year ago
Siegfried Pammer 485ca1d69a Fix #3353: Normal method is decompiled as lambda expression. 1 year ago
Siegfried Pammer 7d0262d779 Fix #3439: Regressed decompilation of variables in lambda scope 1 year ago
Siegfried Pammer 349a89c1fa Fix #3436: Duplicate naming of local functions 1 year ago
Siegfried Pammer 355a039b59 Sightly improve variable naming of known types such as EventArgs and Exceptions 2 years ago
Siegfried Pammer 8a67f48e4e Fix #1956: Adapt previous fix for variable names that have a number as suffix. 2 years ago
Siegfried Pammer ffcd468d22 Fix #1572: parameters of lambdas and local functions are renamed, if there are with names from outer scopes collisions. 2 years ago
Siegfried Pammer 03aecf047d Add VariableScope and rework AssignVariableNames step to support renaming parameters of nested ILFunctions in the future. 2 years ago
Siegfried Pammer a599aae54d #1572: Do not generate variable names that match C# keywords. 2 years ago
Siegfried Pammer 73e9771d3c Fix #2269: LocalFunctionDecompiler misplaces nested local functions in ctors 2 years ago
Siegfried Pammer 49942382d1 Fix #3432: Do not include delegate construction use-sites in DetermineCaptureAndDeclarationScopes. 2 years ago
ds5678 e4000c8a5c Enhance null handling in switch transformations 2 years ago
ds5678 cbe8dd43d7 Fix null check in MatchLegacySwitchOnStringWithDict 2 years ago
ds5678 3a13d5a698 Allow explicit null termination character 2 years ago
Siegfried Pammer 38cdf6d50a Avoid transforming sub pattern of cpblk stackalloc initializer 2 years ago
Siegfried Pammer bd0fd8db1f Small refactorings: 2 years ago
ds5678 b0d6fa2276 Add support for array initialization based on RuntimeHelpers.CreateSpan<T> 2 years ago
Siegfried Pammer 5b90dbdabf Fix #3385: Allow address uses of structs in using transform, if the reference is passed to an in parameter. 2 years ago
Siegfried Pammer 202c5e22e3 Fix #3383: more aggressively transform object initializers on structs 2 years ago
Siegfried Pammer 906d248403 Fix #3392: uses of init-setters must use object-initializer syntax. 2 years ago
Siegfried Pammer 7218a63a46 #3367: Extend range check to support negative integers. 2 years ago
Siegfried Pammer b9f50901a4 Fix #3367: Add extra validation to TransformDecimalCtorToConstant to prevent crashes with obfuscated assemblies. 2 years ago
Siegfried Pammer e1e2f739f6 Fix switch-on-string transform for optimized Roslyn. 2 years ago
Siegfried Pammer f66ccea9ef Fix #3296: Ensure unknown types are wrapped properly in "Convert Expression Tree" 2 years ago
Siegfried Pammer 966b99a7f9 Fix #3278: Missing variable declaration in nested for-loop after many other loops 2 years ago
Siegfried Pammer 58e993d71d Fix #3272: Missing variable declarations in repeated nested for-loops 2 years ago
Siegfried Pammer 2e7991eee3 TransformDisplayClassUsage: Fix #3233 by ignoring nullability annotations, when trying to find a variable to reuse/propagate. 2 years ago
Siegfried Pammer 2ca5b5affe Rewrite AssignVariableNames algorithm to use variable usages instead of the list of variables. 2 years ago
Siegfried Pammer c67d086e2f Add test cases for naming conflicts related to foreach, using and fixed variables. Remove unnecessary ConflictWithLocal check in AssignVariableNames. 2 years ago
Siegfried Pammer 3fb153940b AssignVariableNames: Handle fixed statement special cases 2 years ago