Siegfried Pammer
ad06a01441
Fix #1117 : NullReferenceException at Transforms.PatternStatementTransform.TransformForeachOnArray
8 years ago
Siegfried Pammer
bd15d69ada
Add test cases for #1138
8 years ago
Siegfried Pammer
5290677f80
Fix #1138 : Array-index out of bounds crash in TransformArrayInitializers.HandleSimpleArrayInitializer
8 years ago
Daniel Grunwald
92b72c9570
Type system: add support for tuple conversions.
8 years ago
Daniel Grunwald
469501210c
Add support for C# 7 tuple types:
...
* Use tuple literals instead of calling 'new ValueTuple<..>' constructor
* Where available, use element names for field access
* Make CallBuilder aware of tuple-name/dynamic type erasure, to avoid introducing casts when the types differ only in the tuple element names.
* Make CallBuilder provide a ResolveResult with the correct C# return type for the resulting expression.
Previously we were using the type-erased return type from the IL.
* Fix a bug that caused us to introduce returning casts when accessing an indexer.
8 years ago
Daniel Grunwald
395bc185a3
Decompile TupleElementNamesAttribute into tuple type syntax.
8 years ago
Daniel Grunwald
d78d423d10
Add tuple types to type system and syntax tree.
8 years ago
Daniel Grunwald
7757d98672
Remove unused IProjectContent+ISolutionSnapshot from type system.
8 years ago
Daniel Grunwald
61cbdd6f01
Removed unused TS code: IType.ToTypeReference()
8 years ago
Daniel Grunwald
0b48439170
Remove dead code from type system (CSharpConstantValue).
8 years ago
Daniel Grunwald
182ce2a7c3
Remove unused JsonWriter.
8 years ago
Siegfried Pammer
c53b898b55
Fix #1122 : Error decompiling dictionary initializer referencing parameter variable
8 years ago
Siegfried Pammer
ceb4e3eed0
Add C# 7.3 to language version dropdown.
8 years ago
Siegfried Pammer
69fdc55b41
Add support for C# 7.3 Attributes on backing fields: Allows [field: …] attributes on an auto-implemented property to target its backing field.
8 years ago
Daniel Grunwald
f4bbd100b9
Fix user-defined op_Addition 'p += 1;' being turned into 'p++;'
8 years ago
Siegfried Pammer
504fe200b6
Fix #1131 : Add a few safety null checks in TransformForeachOnMultiDimArray
8 years ago
Siegfried Pammer
644941d25b
Fix C# 1.0 switch on string transform and add tests
8 years ago
Daniel Grunwald
0552b335c9
Implement InferType() for ldelema.
...
This improves decompilation of compound assignment on array elements.
8 years ago
Daniel Grunwald
f021ec4383
NumericCompoundAssign: implement ILiftableInstruction
8 years ago
Daniel Grunwald
3956fa685d
Refactor TransformAssignment to reduce code duplication.
8 years ago
Siegfried Pammer
110d4592a6
Add delayed type inference step for stack slots (in RemoveDeadVariableInit).
8 years ago
Siegfried Pammer
9ebfbe57dd
Add transforms for userdef compound assignment
...
fix bugs in other transforms
8 years ago
Siegfried Pammer
845c620a9f
Implement UserDefinedCompoundAssign
...
rename CompoundAssignmentInstruction -> NumericCompoundAssign
8 years ago
Siegfried Pammer
e7c38b6cbd
Fix bug in PrettifyAssignments: did not convert +=/-= 1 on non-int expressions.
8 years ago
Daniel Grunwald
25706f2a39
Support logic.and/etc. in IsImplicitTruncation().
8 years ago
Daniel Grunwald
75a627d40b
Don't use compound assignment when the RHS value does not fit into the LHS type.
8 years ago
Daniel Grunwald
1df05e09e9
Fix base constructor calls.
8 years ago
Daniel Grunwald
d87820e226
Avoid redundant explicit boxing casts
8 years ago
Daniel Grunwald
80e191ae03
Fix missing 'base.' qualifier on non-virtual call to virtual base method.
8 years ago
Chicken-Bones
dc58a1b40c
Include "base." qualifier as needed ( fixes #1123 )
...
Adds BaseReferenceExpression to ThisReferenceExpression target required checks
8 years ago
Pent Ploompuu
a63e65fae8
Reduced allocations in ILInlining
8 years ago
Siegfried Pammer
3eb694baee
Fix #1107 : bug in mcs switch on string detection.
8 years ago
Siegfried Pammer
271379ec27
#1088 : Add workaround for exception from Cecil
8 years ago
Siegfried Pammer
deb1b6918f
Fix bug and typo in IsInConstructorInitializer
8 years ago
Siegfried Pammer
e9d3f42695
Improvements in CollectNamespacesForDecompilation
8 years ago
Siegfried Pammer
51549134d6
Do never add casts to 'void'.
8 years ago
Siegfried Pammer
96eb7e07dc
Force ILInlining to aggressively inline constructor initializer statements.
8 years ago
Siegfried Pammer
57d59a703e
Fix await in finally pattern with using statement.
8 years ago
Siegfried Pammer
2d427cf534
Relax rules for object and collection initializer detection to properly decompile query expressions.
8 years ago
Siegfried Pammer
f31d5b4da5
ExpressionTrees: Add support for NewArrayInit with zero length arrays.
8 years ago
Siegfried Pammer
a951e566c0
Fix detection of anonymous types for some strange compiler... (not mcs)
8 years ago
Siegfried Pammer
cdecc09fba
ProxyCallReplacer: Do not analyze method calls that are not defined in the current typedef hierarchy.
8 years ago
Siegfried Pammer
f5e44b0f16
CollectNamespacesForDecompilation:
...
- support for marshal info
- support for secdecls
- add base types of referenced types as well, to cover all possible casts that are implicit in IL, but need to be explicit in C#.
8 years ago
Siegfried Pammer
d60618691c
CollectNamespacesForDecompilation: add support for security declarations
8 years ago
Daniel Grunwald
935575859f
Fix NullReferenceException in TransformDelegateConstruction()
8 years ago
Daniel Grunwald
0e9a163345
Improve on #1085 by setting UnknownType.IsReferenceType in more cases.
8 years ago
Daniel Grunwald
ec86ba2dad
Fix some bugs introduced by nested type lazy-loading.
8 years ago
Siegfried Pammer
b9a6df374d
Fix #1101 : Error decompiling System.Threading.Tasks.Task System.Net.WebSockets.ClientWebSocket::ConnectAsyncCore(System.Uri,System.Threading.CancellationToken)
8 years ago
Siegfried Pammer
5b671e44b4
Optimize IsSpecialConstant: directly use ConstantResolveResult instead of resolving the expression representing +Infty, -Infty and NaN of float and double.
8 years ago
Daniel Grunwald
52670e004b
Use lazy-loading for nested types.
...
Because IAssembly.ResolveTypeDefToken() instantiates all nested types early to build the lookup,
this change is important to get the type system initialization time back down to an acceptable level.
8 years ago