Daniel Grunwald
385433aff4
Add MetadataMethod.
8 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).
8 years ago
Daniel Grunwald
96e3b23ab3
Fix crash in ProxyCallReplacer
8 years ago
Daniel Grunwald
9a74f018b5
Decode metadata signatures directly into IType; without going through ITypeReference.
8 years ago
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