Daniel Grunwald
c79b29ab41
AstTypeBuilder: Distribute type arguments on outer types and nested type.
8 years ago
Daniel Grunwald
f86bec4e0c
Move named arguments to its own transform.
...
Like other statement transforms that build inline blocks, it's
important that the named argument transform runs after the
ExpressionTransforms.
8 years ago
Daniel Grunwald
ca09f09222
Don't use named arguments when IL stack is empty after the stloc.
...
An empty stack indicates the statement is complete, so the code
is usually more readable if we keep the local variable.
8 years ago
Daniel Grunwald
21d3881e37
Introduce named arguments only in the statement transform.
...
Don't use extension method syntax when 'this' parameter of
extension method is named.
8 years ago
Daniel Grunwald
810adea8b4
#1083 : Initial implementation of named arguments.
8 years ago
Daniel Grunwald
bcc1586f72
ILAst transform for named arguments.
8 years ago
Daniel Grunwald
243a347da1
Revert "#1083: Add ArgumentToParameterMap to CallInstruction, in ILAst output call arguments are now prefixed with the parameter index they correspond to, if the mapping is different from the default."
...
This reverts commit 60ace84f26 .
8 years ago
Siegfried Pammer
b3db473211
Fix bug in AssignVariableNames: The first parameter of indexer getters was not properly handled.
8 years ago
Siegfried Pammer
9443983819
Fix #1144 : MatchRoslynCaseBlockHead did not handle inverse conditions properly.
8 years ago
Siegfried Pammer
60ace84f26
#1083 : Add ArgumentToParameterMap to CallInstruction, in ILAst output call arguments are now prefixed with the parameter index they correspond to, if the mapping is different from the default.
8 years ago
Daniel Grunwald
50509c4985
Fix #1140 : Fix assertion when finally block unconditionally throws an exception.
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
Siegfried Pammer
bb67948844
Fix remaining compile errors after merge.
8 years ago
Siegfried Pammer
458f448fae
Avoid unnecessary allocations of MetadataReader and clean up Dom structs a bit.
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
0b48439170
Remove dead code from type system (CSharpConstantValue).
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
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
Siegfried Pammer
cbb1f204e1
Rename DynamicAwareTypeReference to DynamicTypeReference
8 years ago
Siegfried Pammer
ce894c4ad4
Add IDebugInfoProvider implementations to ILSpy
8 years ago
Siegfried Pammer
4aafe2db69
Remove the last traces of Mono.Cecil in ICSharpCode.Decompiler and ILSpy.
8 years ago
Siegfried Pammer
592935537a
Migrate AsyncAwaitDecompiler and YieldReturnDecompiler to SRM.
8 years ago
Siegfried Pammer
fb41cfe4f8
Fix bugs when dealing with pinned local vars and varargs methods
8 years ago
Pent Ploompuu
a63e65fae8
Reduced allocations in ILInlining
8 years ago
Siegfried Pammer
5e7d2cc1df
Fix bugs in ILReader
8 years ago
Siegfried Pammer
3eb694baee
Fix #1107 : bug in mcs switch on string detection.
8 years ago
Siegfried Pammer
61eead50c7
Fix TypeSystemLoaderTests
8 years ago
Siegfried Pammer
5d5fa23709
Port AssignVariableNames
8 years ago
Siegfried Pammer
0fec0c683a
Fix mismerged code
8 years ago
Siegfried Pammer
b311ba5a44
Port DelegateConstruction and TransformArrayInitializers
8 years ago
Siegfried Pammer
a2e27dd7ed
Port ProxyCallReplacer and TextTokenWriter to SRM
8 years ago
Siegfried Pammer
f8446e113a
WIP on MetadataLoader, ILReader and DecompilerTypeSystem
8 years ago
Siegfried Pammer
fa57b9769f
Port AsyncAwaitDecompiler.IsCompilerGeneratedMainMethod
8 years ago
Siegfried Pammer
adca1f8867
Port ILFunction and SequencePointBuilder
8 years ago
Siegfried Pammer
deb1b6918f
Fix bug and typo in IsInConstructorInitializer
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
cdecc09fba
ProxyCallReplacer: Do not analyze method calls that are not defined in the current typedef hierarchy.
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