Siegfried Pammer
75c3103450
Suppress warnings in "invalid" test cases.
7 years ago
Siegfried Pammer
b18653ba82
Fix #1319 : Property name collides with variable name
7 years ago
Daniel Grunwald
3cbadb7134
Fix #1301 : casts were unnecessarily marked as unchecked
7 years ago
Daniel Grunwald
0a9df3d373
Fix #1252 : Incorrect comparison type for lifted comparisons in expression trees.
7 years ago
Daniel Grunwald
b33d338558
Fix #1308 : Consider type hint in ldc.i8 translation.
7 years ago
Daniel Grunwald
35a0ee2263
Fix #1309 : Decompilation of dynamic casts.
7 years ago
Daniel Grunwald
e041454987
Add pretty tests for "yield return" and fix some minor bugs:
...
* remove redundant casts on yield-return-expression
* keep variable name from metadata for foreach loops
* fix 'yield break;' in nested try-finally sometimes causing a decompiler error
7 years ago
Siegfried Pammer
ee584f3260
Fix bug in string interpolation handling.
7 years ago
Daniel Grunwald
ef866040b4
Update to SRM 1.6.0 and Roslyn 2.9. Adjust decompiler to new code pattern used for lifted nullable comparisons.
7 years ago
Chicken-Bones
ab9397d099
Add ReduceNestingTransform
7 years ago
Siegfried Pammer
6719dacabd
Fix #1279 : Event fields in object initializers
7 years ago
Chicken-Bones
481e05eabb
Better shortcircuit detection to avoid single condition switch statements
8 years ago
Chicken-Bones
d8244e347b
Select outer-loop continue branches as break targets for switches in nested loops
8 years ago
Chicken-Bones
d86f4b4132
Prefer simple if statements over switch with single case block
8 years ago
Chicken-Bones
52a279f861
Restore HighLevelLoopTransform pattern match for loop contents within if body
8 years ago
Chicken-Bones
7017d998d0
Improve switch decompilation in loops via early detection of continue blocks.
8 years ago
Chicken-Bones
1a021635cc
Fix detection of switch statements with cases containing a single break;
...
Remedy incorrect assumption that the default case was special.
8 years ago
Chicken-Bones
cb4fa90545
Add IL ordering based hint to UseCSharpSwitch
8 years ago
Chicken-Bones
62b2ad4f8d
Improve UseCSharpSwitch to reduce over-aggressive use of switch producing poor quality code.
8 years ago
Chicken-Bones
9a3914fca9
Handle roslyn generated sub instructions in partitioned C# switch statements
8 years ago
Siegfried Pammer
a9c1b9d515
Fix #1250 : Missing enum to int cast in object initializer
8 years ago
Siegfried Pammer
9e01b3b5e1
Add test case.
8 years ago
Siegfried Pammer
4fab913bf6
Fix #1249 : Bug in detection of multiple nested expression trees in query expressions.
8 years ago
Siegfried Pammer
8d028b57ec
Add test cases.
8 years ago
Siegfried Pammer
4047c5c159
Add test case for #1224
8 years ago
Siegfried Pammer
0fc5c8b988
Add support for FormattableString patterns.
8 years ago
Siegfried Pammer
9ed65dc780
Add more tests, fix typo.
8 years ago
Andrey Shchekin
d15fe0f254
Fixed bug with decimal optional parameters not being resolved correctly.
...
Added option to uglify presentation of decimal constants (show `[DecimalConstant(...)]`).
8 years ago
Daniel Grunwald
dd5845e83d
Support short-circuiting operators with dynamic. (e.g. "if (x.A && x.B)" where "x" is dynamic)
8 years ago
Siegfried Pammer
82dcc09acf
#1083 : Add support for optional arguments to constructors and refactor CallBuilder a bit.
8 years ago
Chicken-Bones
5ed5ea0e0f
Improve block ordering in ConditionDetection using the ILOffsets of Leave instruction arguments
8 years ago
Daniel Grunwald
9479e8af13
Support overloaded operator &&/||.
8 years ago
Siegfried Pammer
080506bcbe
Add more tests.
8 years ago
Siegfried Pammer
f956e16f58
Add basic support for C# 4 optional arguments.
8 years ago
Siegfried Pammer
f1f70d0ded
Fix #1148 : Do not use hexadecimal display in enums if the value is negative.
8 years ago
Siegfried Pammer
39a9efde29
Fix #1220 : Auto Property named 'Item' decompiled as an invalid indexer
8 years ago
Siegfried Pammer
7df1ff3f93
Add more test cases to PropertiesAndEvents.
8 years ago
Siegfried Pammer
99f9ecadd3
Fix #1221 : Private setter-only properties are not decompiled correctly
8 years ago
Chicken-Bones
fe6a85fa68
Reverse Roslyn optimisation to favour && over & on boolean operands.
8 years ago
Daniel Grunwald
bafb6d1d49
Fix #1194 : empty if statements are decompiled into goto statements
8 years ago
Daniel Grunwald
d8c8a75c2e
Fix #1154 : Decompilation of fixed statement when pointer variable is unused
8 years ago
Daniel Grunwald
4580eab7ab
Disable ref inline assignments.
...
This increases the chances that we'll avoid CS8174: A declaration of a by-reference variable must have an initializer.
8 years ago
Daniel Grunwald
7ee686cb67
Allow splitting a variable even if it has its address taken and stored in a ref-local.
...
The currently implementation is somewhat minimal and only works in a very limited set of circumstances:
* the ref local is single-assignment
* the ref local is initialized directly with 'ldloca target; stloc ref_local',
not a derived pointer (e.g. 'ldloca target; ldflda F; stloc ref_local').
* all uses of the ref_local are immediately consuming the address
This improves variable splitting cases where the compiler re-uses a stack slot containing a reference,
e.g. in some cases of '?.' on Nullable<T>.
8 years ago
Daniel Grunwald
33ef82f75c
Fix #1082 : Add support for compound assignment with string.Concat().
...
Currently only supports the binary overloads of string.Concat().
8 years ago
Daniel Grunwald
b149238777
Introduce IType.IsByRefLike.
8 years ago
Siegfried Pammer
bf8bd6b597
Add missing ApplyAttributesToType in MetadataAssembly.ResolveMethodSpecification.
8 years ago
Daniel Grunwald
8f588208b9
Fix tuple type in 'new List<(int, string)>'.
8 years ago
Daniel Grunwald
64547de4a0
foreach loops now use "var" if the element type is a tuple and can be inferred from the collection type.
...
Additionally, the tuple element names inferred from the collection type are now used when translating the foreach body.
8 years ago
Daniel Grunwald
c85927b579
Add support for IndexerNameAttribute.
8 years ago
Siegfried Pammer
4cca07aeb3
TransformExpressionTrees: Fix bug in Expression.Quote handling
8 years ago