Daniel Grunwald
ee3012281d
Implement MetadataEvent and re-work the representation of attribute arguments.
8 years ago
Daniel Grunwald
da06a48851
Implement more of the new metadata TS.
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
0be9e84f1b
Use resolved TS in member filter predicates.
...
This was the last place where the public API of the resolved TS was referencing the unresolved TS.
We could now implement the resolved TS directly using SRM, and remove the whole unresolved TS layer.
8 years ago
Daniel Grunwald
802f6e54fd
Refactor DecompilerTypeSystem.ResolveMethod().
8 years ago
Daniel Grunwald
fa2df4df26
Clean up type system interfaces.
8 years ago
Daniel Grunwald
629e586b25
C# 2.0 mode now disables extension methods.
8 years ago
Daniel Grunwald
98d00415d1
Fix tuple types.
8 years ago
Daniel Grunwald
9a74f018b5
Decode metadata signatures directly into IType; without going through ITypeReference.
8 years ago
Daniel Grunwald
909df643b5
Remove dead NRefactory code: DomRegion + IUnresolvedFile
8 years ago
Daniel Grunwald
c79b29ab41
AstTypeBuilder: Distribute type arguments on outer types and nested type.
8 years ago
Siegfried Pammer
7298592df7
Fix stack overflow in RequiredNamespaceCollector
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
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
Siegfried Pammer
47788a38de
WIP
8 years ago
Daniel Grunwald
5cdd5ecdbc
Use target typing for tuples, where possible.
8 years ago
Daniel Grunwald
926c7850ac
Distinguish between unknown type and no type.
8 years ago
Siegfried Pammer
1646be7482
#1145 : Make type arguments optional in mcs auto event pattern.
8 years ago
Siegfried Pammer
e012fe04be
Fix #1146 : C#3+ property accessor generates bad "[field: " tag on the accessor
8 years ago
Siegfried Pammer
91389245fd
#545 : Add hyperlink on enum values and argument names in attribute declarations.
8 years ago
Siegfried Pammer
ad06a01441
Fix #1117 : NullReferenceException at Transforms.PatternStatementTransform.TransformForeachOnArray
8 years ago
Siegfried Pammer
bb67948844
Fix remaining compile errors after merge.
8 years ago
Siegfried Pammer
ac00b1e42c
Fix implementations of BaseTypesEntryNode and DerivedTypesEntryNode and Language.TypeToString
8 years ago
Siegfried Pammer
458f448fae
Avoid unnecessary allocations of MetadataReader and clean up Dom structs a bit.
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
0b48439170
Remove dead code from type system (CSharpConstantValue).
8 years ago
Siegfried Pammer
d5f7cd46fc
Simplify PEFile API
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
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
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
Siegfried Pammer
56c90bf119
Fix output of generic parameters in AstTypeBuilder and CSharpLanguage.TypeDefinitionToString
8 years ago
Siegfried Pammer
9680abdf0e
RequiredNamespaceCollector: Fix missing imports on generic parameters.
8 years ago
Siegfried Pammer
6601f53a40
Replace Format*Name with *ToString methods. Remove HighlightSearchMatch.
8 years ago
Chicken-Bones
dc58a1b40c
Include "base." qualifier as needed ( fixes #1123 )
...
Adds BaseReferenceExpression to ThisReferenceExpression target required checks
8 years ago
Siegfried Pammer
d10ba668e1
Comment dead code
8 years ago