Daniel Grunwald
c26d9ad6f1
Mark stack slot for aggressive removal in InfeasiblePathTransform
...
This helps with pattern matching in short circuiting operators.
4 years ago
Siegfried Pammer
c641072685
Translate MatchInstruction to BinaryOperatorExpression with BinaryOperatorType.IsPattern.
4 years ago
Daniel Grunwald
040ab41c69
Initial implementation of the pattern matching transform.
4 years ago
Christoph Wille
6e4566d224
Add back DebugSymbols to csproj
4 years ago
Christoph Wille
b95f3aa1d2
Switch release and debug to embedded debug info
4 years ago
Christoph Wille
648fe32aa0
Reproducible builds, see https://devblogs.microsoft.com/dotnet/producing-packages-with-source-link/ and https://github.com/dotnet/reproducible-builds (for Release only)
4 years ago
Siegfried Pammer
ec1b9a4ccd
Fix #2443 : do not use this()-ctor initializers by accident if base type is unknown.
4 years ago
Siegfried Pammer
8eafbb3d90
Fix #2092 : aggressively inline code in compiler-generated lambdas and expression trees.
4 years ago
Siegfried Pammer
164c8880af
#2092 : Make TransformExpressionTrees.MatchGetTypeFromHandle and TransformExpressionTrees.MatchGetContructorFromHandle use IType.FullName instead of actual IType instances, so we can better handle assemblies processed by tools like ILMerge, where there might be used multiple versions of mscorlib in one assembly.
4 years ago
Siegfried Pammer
bc5d078feb
Fix #1698 : Readonly auto properties from VB.NET are not properly decompiled
4 years ago
Siegfried Pammer
35ad7f3074
Update build tools used by ILSpy to use .NET 5.0 instead of .NET Core 3.1
4 years ago
Daniel Grunwald
ffed8ea2c8
#nullable enable for AstNode
4 years ago
Daniel Grunwald
245261a1e5
#nullable enable for Instructions.tt
4 years ago
Daniel Grunwald
bd29ed5981
Revert CSharpPrimitiveCast.cs: its used in Conversions.cs test case and thus must be compatible with old C# compiler versions
4 years ago
Daniel Grunwald
0414e7f8e9
Fix potential NRE in ILFunction.RegisterVariable()
4 years ago
Siegfried Pammer
c22977e1be
Fix #2390 : Extend variable splitting to treat stobj as immediate address use.
4 years ago
Daniel Grunwald
5fb2f7a22f
#nullable enable for ILAst (except for generated code)
4 years ago
Daniel Grunwald
b9eee606af
#nullable enable for most files in ICSharpCode.Decompiler/Util
4 years ago
Daniel Grunwald
109b6d073a
Allow detecting exit points across multiple levels of containers.
4 years ago
Daniel Grunwald
2419c2641a
StatementBuilder.TransformToForeach: allow both `break;` and `return;` within the using body
4 years ago
Daniel Grunwald
a716828065
Remove redundant code from RemoveRedundantReturn.cs
4 years ago
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
Daniel Grunwald
bbaddf84cc
Fix #2424 : Suppress the string==null special-case within the string class itself.
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
Anders Hörnfeldt
9747a2b359
Escape identifiers containing repeating dots
4 years ago
Anders Hörnfeldt
b45c0099ef
Refactor for readability
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
ce199fad13
Fixed regression around foreach-on-string introduced in 16134e52e4
4 years ago
Siegfried Pammer
ba39dd5c55
Fix #2354 : decompilation of unary and binary operators with nullable value types.
4 years ago
Daniel Grunwald
715968e02a
Fix potential NullReferenceException in UniversalAssemblyResolver
4 years ago
Daniel Grunwald
7f36cc3e50
#nullable enable for UniversalAssemblyResolver
4 years ago
Daniel Grunwald
55ab2a1739
Adjust RecordDecompiler to changes in Roslyn 3.10.0
4 years ago
Daniel Grunwald
407ec6be5b
Adjust AsyncAwaitDecompiler to Roslyn 3.9.0.
4 years ago
Siegfried Pammer
c90c0786b6
Do not add readonly modifier to accessors/properties/events if TSAB.ShowModifiers is false.
4 years ago
Siegfried Pammer
0ae95333e5
Fix bug in DotNetCorePathFinder on Unix systems: realpath always returned garbage.
4 years ago
Daniel Grunwald
108c5f643e
Fix #2413 : Avoid global state in `TokenRole`.
...
We can already compactly store a `TokenRole` via the index+lookup in the `Role` base class.
The lookup in the base class is thread-safe; the one removed here was not.
4 years ago
Daniel Grunwald
f327668928
Fix #2407 : Operator '-' cannot be applied to operand of type 'nuint'
4 years ago
SilverFox
65ea2e7af6
Fix #2406 : for readonly property with only getter, move readonly to property instead of getter
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
Siegfried Pammer
16134e52e4
Fix #2395 : Do not use for->foreach transform if collection is not an array.
4 years ago
Siegfried Pammer
aa147870a2
Fix #2389 : missing extern keyword for properties and events.
4 years ago
Daniel Grunwald
710c17fee2
switch expressions: use same brace style as object initializers
4 years ago
Daniel Grunwald
d917a3706b
Fix #2396 : Extend the #1903 workaround to unconstrained generic types.
...
The logic in the `FixLoneIsInst` transform already handled this correctly, it's just the check in the `isinst` translation that handled the `IsReferenceType == null` case incorrectly.
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
Daniel Grunwald
1292ff70d9
Fix #2391 : mark method as unsafe when passing `null` to a parameter of pointer type.
4 years ago