Chicken-Bones
ab9397d099
Add ReduceNestingTransform
7 years ago
Siegfried Pammer
6719dacabd
Fix #1279 : Event fields in object initializers
7 years ago
Eugene
57cea66ee1
Fix new line
7 years ago
Eugene
a80672ba42
Change rules for VisitUnboxAny & fix issue https://github.com/icsharpcode/ILSpy/issues/1256
7 years ago
Chicken-Bones
481e05eabb
Better shortcircuit detection to avoid single condition switch statements
7 years ago
Chicken-Bones
d8244e347b
Select outer-loop continue branches as break targets for switches in nested loops
7 years ago
Chicken-Bones
d86f4b4132
Prefer simple if statements over switch with single case block
7 years ago
Chicken-Bones
52a279f861
Restore HighLevelLoopTransform pattern match for loop contents within if body
7 years ago
Chicken-Bones
7017d998d0
Improve switch decompilation in loops via early detection of continue blocks.
7 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.
7 years ago
Chicken-Bones
cb4fa90545
Add IL ordering based hint to UseCSharpSwitch
7 years ago
Chicken-Bones
62b2ad4f8d
Improve UseCSharpSwitch to reduce over-aggressive use of switch producing poor quality code.
7 years ago
Chicken-Bones
9a3914fca9
Handle roslyn generated sub instructions in partitioned C# switch statements
7 years ago
Siegfried Pammer
cf1d05042f
Add detection of local functions, so we do not hide the methods/display classes.
7 years ago
Siegfried Pammer
a9c1b9d515
Fix #1250 : Missing enum to int cast in object initializer
7 years ago
Siegfried Pammer
9e01b3b5e1
Add test case.
7 years ago
Siegfried Pammer
4fab913bf6
Fix #1249 : Bug in detection of multiple nested expression trees in query expressions.
7 years ago
Siegfried Pammer
f33f26fddd
Extend TypeSystem/TypeSystemLoaderTests and CSharpAmbienceTests.
7 years ago
Siegfried Pammer
a7ad5990ac
CSharpAmbience: Add ConversionFlags.ShowParameterModifiers and ShowTypeParameterVarianceModifier to make labels in ILSpy main tree view more concise. + Added Tests.
7 years ago
Siegfried Pammer
23907c8d7d
Use IAmbience API in CSharpLanguage.
7 years ago
Siegfried Pammer
8d028b57ec
Add test cases.
7 years ago
Siegfried Pammer
4047c5c159
Add test case for #1224
7 years ago
Siegfried Pammer
0fc5c8b988
Add support for FormattableString patterns.
7 years ago
Siegfried Pammer
9ed65dc780
Add more tests, fix typo.
7 years ago
Siegfried Pammer
e6fa143ef1
Fix #888 : [3.0 Preview 1] F# code decompiles to ... unoptimal C#
7 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(...)]`).
7 years ago
Daniel Grunwald
dd5845e83d
Support short-circuiting operators with dynamic. (e.g. "if (x.A && x.B)" where "x" is dynamic)
7 years ago
Siegfried Pammer
3377e93628
Add LangVersion support to WholeProjectDecompiler and add NonTrailingNamedArguments setting.
7 years ago
Siegfried Pammer
82dcc09acf
#1083 : Add support for optional arguments to constructors and refactor CallBuilder a bit.
7 years ago
Chicken-Bones
5ed5ea0e0f
Improve block ordering in ConditionDetection using the ILOffsets of Leave instruction arguments
7 years ago
Daniel Grunwald
9479e8af13
Support overloaded operator &&/||.
7 years ago
Siegfried Pammer
080506bcbe
Add more tests.
7 years ago
Siegfried Pammer
f956e16f58
Add basic support for C# 4 optional arguments.
7 years ago
Siegfried Pammer
f1f70d0ded
Fix #1148 : Do not use hexadecimal display in enums if the value is negative.
7 years ago
Siegfried Pammer
39a9efde29
Fix #1220 : Auto Property named 'Item' decompiled as an invalid indexer
7 years ago
Siegfried Pammer
7df1ff3f93
Add more test cases to PropertiesAndEvents.
7 years ago
Siegfried Pammer
99f9ecadd3
Fix #1221 : Private setter-only properties are not decompiled correctly
7 years ago
Chicken-Bones
fe6a85fa68
Reverse Roslyn optimisation to favour && over & on boolean operands.
7 years ago
Siegfried Pammer
c883f68842
Remove unused TypeSystemHelper.cs
7 years ago
Daniel Grunwald
bafb6d1d49
Fix #1194 : empty if statements are decompiled into goto statements
7 years ago
Daniel Grunwald
7f84bcfbb5
Upgrade DiffLib.
...
The old version had a bug that caused tests to fail when the last method in a test file was surrounded by #if/#endif.
7 years ago
Daniel Grunwald
d8c8a75c2e
Fix #1154 : Decompilation of fixed statement when pointer variable is unused
7 years ago
Daniel Grunwald
ab157b2fc0
Add TypeSystemOptions.Uncached.
7 years ago
Daniel Grunwald
b396d203bd
Merge IDecompilerTypeSystem with ICompilation.
7 years ago
Daniel Grunwald
1f3916d554
Use the resolve methods in MetadataModule, and remove the wrappers in DecompilerTypeSystem.
7 years ago
Daniel Grunwald
107fe5eb1c
Eliminate SpecializingDecompilerTypeSystem and use GenericContext instead.
7 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.
7 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>.
7 years ago
Daniel Grunwald
3b46776c5e
Rename IAssembly -> IModule.
...
While support for multi-module assemblies isn't fully working yet; it is clear at this point that we want
to treat each module in a multi-module assembly separately for the purposes of the type system.
7 years ago
Daniel Grunwald
33ef82f75c
Fix #1082 : Add support for compound assignment with string.Concat().
...
Currently only supports the binary overloads of string.Concat().
7 years ago