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
Siegfried Pammer
e3dd2f6d86
LookupIndexers should ignore explicit interface implementations.
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
db47643a41
Interface implementations in TS
7 years ago
Daniel Grunwald
da06a48851
Implement more of the new metadata TS.
7 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.
7 years ago
Daniel Grunwald
802f6e54fd
Refactor DecompilerTypeSystem.ResolveMethod().
7 years ago
Daniel Grunwald
fa2df4df26
Clean up type system interfaces.
7 years ago
Siegfried Pammer
eafce7d6cf
Fix documentation comment on DynamicInvocationType.ObjectCreation
8 years ago
Daniel Grunwald
810adea8b4
#1083 : Initial implementation of named arguments.
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
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
d78d423d10
Add tuple types to type system and syntax tree.
8 years ago
Siegfried Pammer
b500b24548
SRM WIP basic implementation of DecompilerTypeSystem
8 years ago
Daniel Grunwald
4c45a41fdb
Remove more dead TypeSystem code: ISymbolReference
8 years ago
Daniel Grunwald
bd85b7644b
Add MetadataToken property to type system.
8 years ago
Daniel Grunwald
828fe58a5b
Fix NullReferenceException in OverloadResolution with parameterized UnknownType.
8 years ago
Daniel Grunwald
c869a4fc16
Fix #1085 : The type system can now parameterize not just type definitions, but also unknown types.
...
This improves decompilation when references assemblies cannot be found.
8 years ago
Daniel Grunwald
da6b371dd3
Remove some dead code in the type system.
8 years ago
Daniel Grunwald
4d00c65608
Use IReadOnlyList<T> instead of IList<T> in the resolved type system.
8 years ago
Daniel Grunwald
2d29a933d5
Preparation for non-trailing named arguments
8 years ago
Siegfried Pammer
049cff2324
Add unit tests, directly use ILFunction instead of NewObj(ILFunction) for expression trees.
8 years ago
Siegfried Pammer
2ca7ea87f1
Fix #955 : Ambiguous decompilation of anonymous delegates
8 years ago
Siegfried Pammer
818a90af95
#918 : CallBuilder: Add fix-up logic for lambda expressions with anonymous parameter types to ensure the correct overload is called after removing the 'implicit' call to 'new Nullable<T>(T value)'.
8 years ago
Daniel Grunwald
236c7c28b4
Remove redundant lambda casts.
8 years ago
Daniel Grunwald
b5e8571382
[nullables] Support lifting calls to user-defined operators.
...
Not yet handled: op_Equality and op_Inequality.
8 years ago
Daniel Grunwald
1bcc255004
Remove a bunch of obsolete NRefactory code.
8 years ago
Siegfried Pammer
5ad1bcdfd3
Fix bug in OverloadResolution: Use tie-breaking rules iff parameter types of both candidates are equal.
8 years ago
Daniel Grunwald
1695474bfc
Delete a bunch of dead code.
8 years ago
Daniel Grunwald
4c77022988
Improve decompiler performance.
8 years ago
Siegfried Pammer
0524b4a353
Remove unused usings in solution; remove dead code; unify namespaces
9 years ago
Siegfried Pammer
840ec04fde
Namespace adjustments for Syntax classes
9 years ago
Christoph Wille
1ce8349dd9
Adjust namespaces
9 years ago
Siegfried Pammer
5bedb80a78
Phase 1: merge parts of ICSharpCode.NRefactory.CSharp into ICSharpCode.Decompiler
9 years ago