Siegfried Pammer
1f0f6404e0
Fix #2231 : Add support for ldloca; dup; initobj pattern used by Roslyn.
4 years ago
Daniel Grunwald
685a79dc31
DetectExitPoints: introduce exit points for loops+switch
...
This allows reverting the changes to HighLevelLoopTransform+ReduceNestingTransform from the previous commit, which fixes a bug in loop detection (the previous commit did not handle loops where the loop BlockContainer didn't have a Block as parent).
4 years ago
Siegfried Pammer
62fc4bc1a3
Fix #1858 , Fix #2188 : Remove variables that contain copies of display-class variables.
4 years ago
Daniel Grunwald
6757295b3b
Fix #2379 : Keep `return` statements around in original form for ConditionDetection, only transform to fall-through block-exit at the end of the transform pipeline.
...
This fixes an issue where `return` statements within try-blocks could turn into `goto` statements.
4 years ago
Siegfried Pammer
584d1847df
Fix #2405 : Assertion fail in TDCU
4 years ago
Siegfried Pammer
2d65deffda
Fix frontends.sln build.
4 years ago
Siegfried Pammer
ba39dd5c55
Fix #2354 : decompilation of unary and binary operators with nullable value types.
4 years ago
Daniel Grunwald
407ec6be5b
Adjust AsyncAwaitDecompiler to Roslyn 3.9.0.
4 years ago
Siegfried Pammer
d92dd153fc
#2390 : Make sure all unused captured variables are removed even in lambdas.
4 years ago
Siegfried Pammer
e20ace0098
Fix build.
4 years ago
Siegfried Pammer
d54016ce8f
#2390 : Add support for generic object initializers.
4 years ago
Daniel Grunwald
bd9aabeae2
Update to dotnet-format 5.1.225507.
...
This makes the formatting expected by our CI consistent with that generated by VS2019.9.
4 years ago
Siegfried Pammer
7211587b45
Fix #2366 : NRE in AwaitInCatchTransform.MatchAwaitCatchHandler() and pattern errors when dealing with a switch-based jump table in AwaitInCatchTransform
4 years ago
Siegfried Pammer
76227af89d
Fix #1749 , fix #2339 , fix #2353 : Add support for rethrow in async exception handlers, fix await catch/finally patterns for complex methods.
4 years ago
Siegfried Pammer
d2fc380e0e
Fix #2349 : Use proper ExpressionType with DynamicCompoundAssign.
4 years ago
Siegfried Pammer
d60f158dfd
Fix #2342 : Do not generate empty names for foreach loop variables.
4 years ago
Siegfried Pammer
4ae41a855e
Fix #2321 : Missing readonly modifier for ref local
4 years ago
Daniel Grunwald
eec24ee6bb
Fix #2311 : Handle additional `comp` instruction in `IsNullSafeArrayToPointerNotNullBlock`
4 years ago
Daniel Grunwald
f726a0b73e
#nullable enable for typesystem and ILInstruction base class
4 years ago
Siegfried Pammer
67be41a998
#2294 : Fix potential NRE: finalStore is accessed before null check.
4 years ago
文煌
581a1de185
fix https://github.com/icsharpcode/ILSpy/issues/2288
4 years ago
Daniel Grunwald
6951ccb1a2
Fix #2260 : switch(string) transform: handle empty cases where the C# compiler optimizes out the `if`
...
e.g.
```
switch (<PrivateImplementationDetails>.ComputeStringHash(text2))
{
case 1288728352u:
_ = text2 == "rowno";
break;
...
```
5 years ago
Siegfried Pammer
669fe6417e
Fix #2280 : Add additional checks to GenerateVariableName
5 years ago
Siegfried Pammer
66850e4725
Fix #2270 : I love deleting code that causes problems and no longer makes any sense at all!
5 years ago
Siegfried Pammer
288c6a75e7
Use ToLower instead of ToLowerInvariant.
5 years ago
Siegfried Pammer
dd84f17ea1
#2263 : Fix IsLowerCase to take script without upper/lower case distinction into account.
5 years ago
Siegfried Pammer
06bae54b91
Fix #2263 : Add lower-case type and member names to the list of existing names, to prevent collisions.
5 years ago
Siegfried Pammer
3676107379
Fix #2266 : Failed to decompile complex expression tree.
5 years ago
Siegfried Pammer
3df82cf33b
Add support for 'with' expressions
5 years ago
Siegfried Pammer
9932b5d9f2
Fix #2230 : do not emit directly consecutive null propagation operators.
5 years ago
Siegfried Pammer
c986dbe889
Fixes #2232 : We only need a small percentage of features provided by Humanizer. Therefore we copy the relevant parts and remove the dependency in order to avoid such problems in the future.
5 years ago
Siegfried Pammer
d0d8299ef5
Use Name from DynamicInvokeMemberInstruction when inferring variable names.
5 years ago
Daniel Grunwald
6e8c1b3117
ILReader: support comparison between StackType.Ref and StackType.I
...
Update Unsafe.il tests to .NET 5.0 version.
5 years ago
Daniel Grunwald
782e4ae88c
Fix #2215 : Use `Unsafe` intrinsics for `ldobj`/`stobj` instructions.
...
Use `Unsafe.As` to adjust the type of a managed reference if necessary (without converting to a pointer type).
This also adds support for the `ReadUnaligned`/`WriteUnaligned` intrinsics.
5 years ago
Siegfried Pammer
b7d2eec41d
#2199 : Add support for VB cached delegate initialization
5 years ago
Siegfried Pammer
d3b0e4cd72
Fix #2196 : Add support for extern local functions.
5 years ago
Siegfried Pammer
a7f58e8657
Fix build and use specific version of dotnet-format.
5 years ago
Siegfried Pammer
3a7c69e5b9
Fix #2192 : Add support for VB.NET delegate construction
5 years ago
Siegfried Pammer
be57dc454c
Run tests with different versions of Roslyn
5 years ago
Daniel Grunwald
80cf72e498
#2182 : Move "Transform call to struct constructor" from EarlyExpressionTransforms to ILReader.
...
This fixes the evaluation order for such calls (and an assertion in StObj.CheckTargetSlot).
5 years ago
Siegfried Pammer
2530c9a2ce
#2182 : Do not inline switch value, in case variable is reused.
5 years ago
Daniel Grunwald
47685c4b57
Fix weird casts to `nint` when writing to fields of unknown type.
5 years ago
Siegfried Pammer
2612a06a11
Fix #2174 : Some compilers produce display class ctors with unused local variables
...
(cherry picked from commit 71b54e87a0
)
5 years ago
Siegfried Pammer
71b54e87a0
Fix #2174 : Some compilers produce display class ctors with unused local variables
5 years ago
Daniel Grunwald
8573c5282e
Avoid code duplication when disassembling signature headers.
5 years ago
Daniel Grunwald
9381be2280
#2158 : Fix decompilation of arithmetic on managed pointers after ConversionKind.StartGCTracking.
5 years ago
Daniel Grunwald
e8b35a481a
Fix #2156 : range syntax not being detected correctly in some cases
5 years ago
Siegfried Pammer
41edef710e
Fix build.
5 years ago
Siegfried Pammer
0b0a6d94a8
Add support for local function pointers.
5 years ago
Daniel Grunwald
0e1c24464f
Fix #2148 : Don't attempt to detect `fixed` statement for pinned value types
5 years ago