Siegfried Pammer
d2f7258347
Fix #1681 : Use discard assignment, if possible.
6 years ago
Siegfried Pammer
51b48b9332
Fix #1685 : Add "Always show enum values" setting.
6 years ago
Siegfried Pammer
be887d0ea6
#1674 : Add DebugInfoProvider to WholeProjectDecompiler API.
6 years ago
Siegfried Pammer
b6c7a25edf
Fix #1661 : Ignore casts on this/base ctor calls, if base type cannot be found.
6 years ago
Daniel Grunwald
8c4066d471
Fix #1614 : Don't suppress all casts to unknown types
...
Just those where we don't even know the name of the unknown type.
6 years ago
Daniel Grunwald
ab993fc6c6
Fix invalid code generated for impossible casts.
6 years ago
Daniel Grunwald
57b725df79
Fix #1655 : Incorrect pointer cast when calling method on integer constant
6 years ago
Daniel Grunwald
3c2a26325e
Fix #1659 : Missing annotation on generic nullable reference types.
6 years ago
Siegfried Pammer
8d2e8cc267
Fix #1628 : Preserve order of child nodes in PatternStatementTransform.VisitBinaryOperatorExpression.
7 years ago
Daniel Grunwald
c1510027df
Show attributes on type parameter constraints in C# decompilation.
7 years ago
Daniel Grunwald
7afa86d90c
Add support for "where T : notnull" constraint.
7 years ago
Siegfried Pammer
84b9f1c4f4
Fix #1514 : Allow StackType.I8 and StackType.I4 in HandleManagedPointerArithmetic (ref [+-] int).
7 years ago
Siegfried Pammer
13fa499c35
Fix #1630 : Do not convert while to for statement, if any iterator variables are to be declared in the loop body. This causes problems with ref-typed variables.
7 years ago
Siegfried Pammer
f49cc11c76
Fix #1627 : Allow constants as targets of dynamic calls.
7 years ago
Siegfried Pammer
e1bc205d3a
Add support for strong-name keys in WholeProjectDecompiler and RoundtripAssembly tests.
7 years ago
Siegfried Pammer
6ecd99f893
Fix #1618 : Unwrap in-arguments, when converting method calls to operators.
7 years ago
Daniel Grunwald
62a0046043
Fix #1371 : assertion on invalid I4->O conversion.
7 years ago
Siegfried Pammer
fa7c1f574a
Do not convert simple LINQ method calls to LINQ expressions. Closes #1501 .
7 years ago
Siegfried Pammer
9358ea6d73
Fix ReadCodeMappingInfo for delegates that are embedded in the declaring type, not a nested type.
7 years ago
Siegfried Pammer
6526363cb3
#1349 : Fix exception in HandleDelegateConstruction, if the target of NewObj is not a delegate.
7 years ago
Siegfried Pammer
c148ba6609
Fix build.
7 years ago
Siegfried Pammer
1531302c8d
Fix #1611 : Always remove the initializedObj dummy expression in CallBuilder.BuildDictionaryInitializerExpression
7 years ago
Siegfried Pammer
dbd70d1879
#1025 : Extend GetSymbol(this AstNode) to support LdVirtDelegate
7 years ago
Siegfried Pammer
423e553c6a
Fix #545 : Add hyperlink to ctor method on parentheses in attributes
7 years ago
Siegfried Pammer
ec18094c65
Implement transformation of delegate construction with ldvirtftn.
7 years ago
Daniel Grunwald
e4b15256ab
#1025 : Fix method groups not being clickable.
7 years ago
Siegfried Pammer
2e6a4988d3
Fix #1594 : Use Equals to compare generic IMethods.
7 years ago
Daniel Grunwald
5c18c9e945
Floating-point arithmetic isn't affected by checked/unchecked blocks; so avoid forcing it into an unchecked block.
7 years ago
Daniel Grunwald
903544598a
Add comments about expected result after a ConvertTo() call.
...
This method has grown a few cases where it doesn't actually convert.
7 years ago
Siegfried Pammer
7d4b4c6433
Implement NullCoalescingTransform with value types.
7 years ago
Siegfried Pammer
2b6c0c3892
Fix formatting in ExpressionBuilder.
7 years ago
Daniel Grunwald
60422a0f7e
Fix ResolveResult on typeof() expression.
7 years ago
Siegfried Pammer
25f625af99
Move copy propagation after expression and statement transforms.
7 years ago
Siegfried Pammer
3067aa5519
FlattenSwitchBlocks: include local function and out var declarations in the list of exceptions.
7 years ago
Siegfried Pammer
91af32ef94
Do not wrap local functions in checked blocks.
7 years ago
Siegfried Pammer
129fd876d4
Use extension method syntax only if the extension method is eligible.
7 years ago
Siegfried Pammer
911a92f3f9
Basic test for ref reassignment.
7 years ago
Daniel Grunwald
d99f6c81a5
Fix #1595 : preserve C# type for field and tuple element access
7 years ago
Siegfried Pammer
36afa0857d
Add tests for ref, out and in parameters.
7 years ago
Siegfried Pammer
9c1bf7fbdf
Introduce ReferenceKind in IParameter and ByReferenceResolveResult.
7 years ago
Siegfried Pammer
860f9db950
Extend type inference to allow ref return types.
7 years ago
Daniel Grunwald
42eafb587f
Fix #684 : Improve detection of variable type for stack slots.
7 years ago
Daniel Grunwald
7e3b36aaa7
#1563 : Where possible, replace an explicit interface implementation call with a call to the interface member.
7 years ago
Siegfried Pammer
3d60c7bd70
Fix #1590 : Cast from override method to Delegate is not properly simplified
7 years ago
Daniel Grunwald
7223806967
Disable resolver log again.
7 years ago
Daniel Grunwald
b75c252193
Upgrade C# 8.0 nullability support for Roslyn 3.2.0-beta4.
7 years ago
Daniel Grunwald
539e3a906d
Fix #1552 : user-defined and decimal increments
...
For user-defined increments, there were problems with Roslyn was optimizing out one of the stores.
The new transform FixRemainingIncrements now takes increments/decrements that were not detected by TransformAssignment and introduces a temporary variable that can be incremented.
This sometimes requires un-inlining via the new ILInstruction.Extract() operation.
Extract() is not supported in all possible contexts, so it is possible but unlikely that some op_Increment calls remain.
For decimals, the situation is different: legacy csc actually was optimizing "d + 1m" to "op_Increment(d)", so we can get rid of any left-over increments by undoing this optimization. This now happens in ReplaceMethodCallsWithOperators.
7 years ago
Siegfried Pammer
01b8b83360
Fix CSharpDecompiler.ReadCodeMappingInfo not taking generic lambdas into account.
7 years ago
Daniel Grunwald
c56714c607
Fix assertion with async lambdas; fix async local functions.
7 years ago
Siegfried Pammer
a63e94e5b4
Refactor Solution decompilation to use Language instead of AssemblyTreeNode.
7 years ago