Siegfried Pammer
59b7e0c986
Include namespaces of all known types used by the decompiler in the required namespaces super-set.
6 years ago
Siegfried Pammer
d6144af26d
Fix regression introduced by 7553c120a5
6 years ago
Daniel Grunwald
961923f4fd
#1499 , #1240 : Translate pointer arithmetic on managed pointers (ref T) using the System.Runtime.CompilerServices.Unsafe intrinsics
6 years ago
Siegfried Pammer
906f69fd45
#1499 : Add missing required parentheses around ref expressions.
6 years ago
Siegfried Pammer
7553c120a5
Fix #1497 : do not insert newlines inside string interpolation expressions.
6 years ago
Siegfried Pammer
d0f42fb178
CombineQueryExpressions: Add missing transparent-identifier pattern.
6 years ago
Siegfried Pammer
c2b55869cd
#1501 : IntroduceQueryExpressions.MatchSimpleLambda: Remove hack from the early days of newdecompiler.
6 years ago
Siegfried Pammer
1e3b3090e0
Make RequiredNamespaceCollector an instance
6 years ago
Siegfried Pammer
bf72999f36
Fix #1487 : Include base types in namespace-set approximation.
6 years ago
Siegfried Pammer
ceefac6ddc
Fix #1490 : NRE in MemberLookup.AddMembers
6 years ago
Siegfried Pammer
65dfeb03f7
#1485 : Fix indentation bug if member reference expression is not wrapped in invocation expression.
6 years ago
Siegfried Pammer
3abb548e1e
Fix #1479 : Unable to cast object of type 'System.Int32' to type 'System.Single'
6 years ago
MCpiroman
5b41cc2b60
Fix TryUniteEqualityOperandType
6 years ago
MCpiroman
ff4812dda8
Fix #1462 : Inconsistent enum flag check
6 years ago
Siegfried Pammer
6f5284c4ae
WholeProjectDecompiler: Add <Prefer32Bit>True</Prefer32Bit>, if CorFlags.Prefers32Bit is set.
6 years ago
Siegfried Pammer
6c8a55a0af
Fix #1467 : Update WholeProjectDecompiler.GetPlatformName to match Language.GetPlatformDisplayName
6 years ago
Daniel Grunwald
8d99af14c5
Add support for 'ref readonly' return type.
6 years ago
Siegfried Pammer
b0cb976357
Fix #1454 : Name collision after converting for-over-array to foreach.
6 years ago
Daniel Grunwald
a5505ab00d
Expose IMethod.AccessorKind. This makes it easier to determine if a method is a setter, particular in generic classes where "m.AccessorOwner?.Setter == m" ended up being wrong.
6 years ago
Daniel Grunwald
ae2824af99
Fix #617 : Incorrect C# translation when `callvirt` is used to invoke base constructor
6 years ago
Daniel Grunwald
f7f657204e
Fix #1447 : Assertion on `numeric.compound.add.old(..., ldc.i8 1)`
6 years ago
Siegfried Pammer
d9fba190ce
Add missing documentation to Annotations.cs.
6 years ago
Siegfried Pammer
d83f6e6ec0
Remove unused code.
6 years ago
Siegfried Pammer
a23c192324
Add missing documentation in CSharpDecompiler.
6 years ago
Siegfried Pammer
b0309ca9e3
Fix #1180 : Fix generation of Windows Forms InitializeComponent.
6 years ago
Siegfried Pammer
859eb623b8
Fix #1439 : Add DecompilerSettings.UseLambdaSyntax
6 years ago
Siegfried Pammer
d42cf99a8c
Fix dynamic transforms because https://github.com/dotnet/roslyn/issues/27800 was fixed.
6 years ago
Daniel Grunwald
72508b5777
Add test for C# 8 nullable reference types; and fix some bugs.
6 years ago
Daniel Grunwald
3fac3c07a2
Upgrade Roslyn for tests to 3.0.0-beta3.
...
Remove the committed .il files: these were originally intended to prevent test failures due to differences in the C# compiler on the system.
But legacy csc stopped changing long ago; and roslyn is tested via NuGet package, so everyone is using the same version.
Interestingly enough, avoiding the roundtrip through ildasm/ilasm caused some test failures due to changes in the order of top-level types.
So I've started sorting the types by name to ensure consistency in the tests. This required adjusting some existing tests.
6 years ago
Daniel Grunwald
113acd48c1
Improve decompiler behavior is System.ValueTuple exists in multiple referenced assemblies.
...
This can happen if an application is compiled for .NET 4.6.2 and references
System.ValueTuple.dll; but ILSpy loads the latest mscorlib (e.g. .NET 4.7)
which also contains struct System.ValueTuple.
6 years ago
Siegfried Pammer
f05c1bb466
Fix build break; only escape _ if it is a type name. Add basic Discards tests.
6 years ago
Daniel Grunwald
d677ee6254
Escape identifier "_" to avoid ambiguities with discard patterns.
6 years ago
Daniel Grunwald
2f35374d7d
Support "where T : unmanaged" constraints.
6 years ago
Siegfried Pammer
27efe1b61c
Fix #1429 : Optimize ExpressionBuilder.TranslateArrayInitializer by applying optimizations suggested in #1202 .
6 years ago
Siegfried Pammer
5962d4675f
Add IL tests for basic isinst patterns. Undo change mentioned in 54ff546221 (commitcomment-32359757)
6 years ago
Siegfried Pammer
545be6d133
Fix CSharpDecompiler.SetNewModifier: follow rules stated in the language specification.
6 years ago
Siegfried Pammer
d9b7df637b
Apply expression-body transform to indexers as well.
6 years ago
Siegfried Pammer
d17fbd3d59
Add pattern matching support in ParameterDeclaration.
6 years ago
Siegfried Pammer
78cf5f0ec0
Add support for expression bodies to IndexerDeclaration.
6 years ago
Siegfried Pammer
54ff546221
Fix deactivated Generics pretty tests: remove redundant boxing conversion from is-expressions.
6 years ago
Siegfried Pammer
6f3230af48
Add ununsed CustomAttributes test.
...
Fix CalculatedGetterOnlyPropertyPattern for properties with attributes.
6 years ago
Daniel Grunwald
06cf9c1747
Avoid exceptions on IType->ArrayType or IType->ITypeParameter casts due to NullabilityAnnotatedType decorator.
6 years ago
Daniel Grunwald
bbbfe81c25
Nullability of type parameters "where T : class?"
6 years ago
Siegfried Pammer
c1fca21e8a
Make ILRange field private - introduce public API for IL range manipulation.
6 years ago
Daniel Grunwald
6a47826fe2
Add sequence point on closing brace if there's an implicit void return.
6 years ago
Daniel Grunwald
f9f9d57398
#1386 : Fix fixed-statement detection when fixed statement contains "return" and the method has multiple return statements.
6 years ago
Daniel Grunwald
2eafa0c695
Fix #1389 : Translation of "isinst" was incorrect for value types was causing an assertion.
6 years ago
Daniel Grunwald
976565264f
Don't use casts for implicit conversions to bool in conditional contexts.
6 years ago
Siegfried Pammer
b7fc830faa
Fix #1406 : Use IEnumerable<T> instead of IList<T> in CSharpDecompiler.Decompile and DecompileAsString.
6 years ago
Siegfried Pammer
b3b0cbf2b0
Fix build.
6 years ago