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
Daniel Grunwald
d166101387
Allow splitting variables that have their address taken.
...
This works if all addresses are immediately used in calls (as common with method calls on value-type,
which take 'this' by-reference); as long as the call doesn't return the reference again.
Closes #1136 .
7 years ago
Daniel Grunwald
b149238777
Introduce IType.IsByRefLike.
7 years ago
Siegfried Pammer
ce855885b1
Implement new declsec parser in ReflectionDisassembler + added unit tests.
7 years ago
Siegfried Pammer
bf8bd6b597
Add missing ApplyAttributesToType in MetadataAssembly.ResolveMethodSpecification.
7 years ago
Daniel Grunwald
2fa2eb9d18
Remove some of the old TS implementations.
7 years ago
Daniel Grunwald
3be697eadf
Rewrite MinimalCorlib without using the unresolved TS.
7 years ago
Daniel Grunwald
8f588208b9
Fix tuple type in 'new List<(int, string)>'.
7 years ago
Siegfried Pammer
bcfb3742eb
Clean up PEFile, move Pdb related types to DebugInfo namespace
7 years ago
Daniel Grunwald
4ec0028356
Don't cache attributes in the type system.
7 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.
7 years ago
Daniel Grunwald
97fc614db5
Remove unimplemented IMember.IsShadowing and IField.IsFixed.
7 years ago
Daniel Grunwald
078b638149
Adjust Issue982.cs to [IndexerName]
7 years ago
Daniel Grunwald
c85927b579
Add support for IndexerNameAttribute.
7 years ago
Siegfried Pammer
9d2957372b
Undo reordering of base types
7 years ago
Siegfried Pammer
7d7b7b7d98
Fix order of DirectBaseTypes and typo in SpecializedParameter
7 years ago
Siegfried Pammer
2953c913d3
Fix handling of extension methods
7 years ago
Siegfried Pammer
4cca07aeb3
TransformExpressionTrees: Fix bug in Expression.Quote handling
7 years ago
Daniel Grunwald
db47643a41
Interface implementations in TS
7 years ago
Daniel Grunwald
ee3012281d
Implement MetadataEvent and re-work the representation of attribute arguments.
7 years ago
Siegfried Pammer
10a0c9093c
Do not convert extension method syntax to LINQ, if the null conditional operator is used on the target, as this introduces a syntax error.
7 years ago
Daniel Grunwald
da06a48851
Implement more of the new metadata TS.
7 years ago
Daniel Grunwald
385433aff4
Add MetadataMethod.
7 years ago
Daniel Grunwald
0f8c310de2
Started work on new resolved TS implementation that directly uses SRM.
...
This is a work-in-progress; ILSpy is not functional with this commit.
The old code path still exists but is broken because some classes were modified for the new system.
The new system is still highly incomplete (types only have fields, but no methods).
7 years ago
Daniel Grunwald
96e3b23ab3
Fix crash in ProxyCallReplacer
7 years ago