Christoph Wille
29e05778c6
See #1416 . Also upgraded Cecil to .3 (from .1)
6 years ago
Siegfried Pammer
008a3c71e5
DelegateConstruction:
...
- add support for unknown delegate construction pattern. The method is compiler-generated, but has no compiler-generated name, we should be able to infer lambda usage from anonymous types used in the signature (i. e., the method can only be used as lambda, because that's where type names are optional).
- Add CombineExitsTransform in DelegateConstruction: this allows combining lambdas with multiple return statements into a single expression (as it is expected by query expressions).
7 years ago
Daniel Grunwald
ef866040b4
Update to SRM 1.6.0 and Roslyn 2.9. Adjust decompiler to new code pattern used for lifted nullable comparisons.
7 years ago
Chicken-Bones
ab9397d099
Add ReduceNestingTransform
7 years ago
Siegfried Pammer
cf1d05042f
Add detection of local functions, so we do not hide the methods/display classes.
7 years ago
Siegfried Pammer
23907c8d7d
Use IAmbience API in CSharpLanguage.
7 years ago
Siegfried Pammer
b58c356222
Extend StackAllocExpression: Add support for initializers.
7 years ago
Siegfried Pammer
0fc5c8b988
Add support for FormattableString patterns.
7 years ago
Andrey Shchekin
d677f0dcf1
Fixed thread safety issues as per code review comments.
7 years ago
Andrey Shchekin
d15fe0f254
Fixed bug with decimal optional parameters not being resolved correctly.
...
Added option to uglify presentation of decimal constants (show `[DecimalConstant(...)]`).
7 years ago
Daniel Grunwald
9479e8af13
Support overloaded operator &&/||.
7 years ago
Siegfried Pammer
420ecb5906
Move ILParser to separate file.
7 years ago
Siegfried Pammer
f634710570
Closes #943 ; Use official EmbedAllSources parameter; remove workaround
7 years ago
Daniel Grunwald
107fe5eb1c
Eliminate SpecializingDecompilerTypeSystem and use GenericContext instead.
7 years ago
Daniel Grunwald
fdc109eebd
Fix NullReferenceException in TypeSystemAstBuilder when attribute argument decoding fails.
7 years ago
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
Daniel Grunwald
b149238777
Introduce IType.IsByRefLike.
7 years ago
Siegfried Pammer
27cf62d710
Move CodeMappingInfo to Decompiler.
7 years ago
Siegfried Pammer
01e374fd4f
Add EnumUnderlyingTypeResolveException and clean up exceptions in ReflectionDisassembler: use BadImageFormatException for any unexpected values.
7 years ago
Siegfried Pammer
bc97127d9d
Reorganize extension methods + remove unused/obsolete.
7 years ago
Siegfried Pammer
4f1c6e3509
Remove more dead code.
7 years ago
Daniel Grunwald
ee3a76bc67
Remove more dead code.
7 years ago
Daniel Grunwald
0f71b65b53
Remove unresolved TS interfaces.
7 years ago
Daniel Grunwald
2fa2eb9d18
Remove some of the old TS implementations.
7 years ago
Siegfried Pammer
49127f96ed
Remove dead UnresolvedSecurityDeclarationBlob.cs
7 years ago
Daniel Grunwald
8f588208b9
Fix tuple type in 'new List<(int, string)>'.
7 years ago
Siegfried Pammer
bcfb3742eb
Clean up PEFile, move Pdb related types to DebugInfo namespace
7 years ago
Daniel Grunwald
22f7e34761
Add Mono's ResXResourceWriter, so that we can write serialized objects in resources back out.
7 years ago
Daniel Grunwald
c17c3c739f
Fix #1192 : Use custom ResourcesFile implementation
...
This avoids deserializing objects embedded in .resources files within the ILSpy process.
7 years ago
Siegfried Pammer
9acc372a68
Use TypeSystem for ILSpy UI:
...
Most important tree nodes and search ported,
Currently only ILLanguage is active
7 years ago
Siegfried Pammer
e6e03a40d4
Move PEFile and other classes to different files, cleanup
7 years ago
Siegfried Pammer
d8c1796c4a
Add MetadataTokenHelpers to avoid crashing when dealing with MetadataTokens
7 years ago
Siegfried Pammer
351a99ba32
Remove MetadataLoader
7 years ago
Daniel Grunwald
ee3012281d
Implement MetadataEvent and re-work the representation of attribute arguments.
7 years ago
Daniel Grunwald
bca3191169
Add MetadataProperty.
7 years ago
Daniel Grunwald
385433aff4
Add MetadataMethod.
7 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).
7 years ago
Daniel Grunwald
802f6e54fd
Refactor DecompilerTypeSystem.ResolveMethod().
7 years ago
Daniel Grunwald
629e586b25
C# 2.0 mode now disables extension methods.
7 years ago
Daniel Grunwald
9a74f018b5
Decode metadata signatures directly into IType; without going through ITypeReference.
7 years ago
Siegfried Pammer
c2b1ce4443
Add AnalyzedMethodUsedByTreeNode
7 years ago
Daniel Grunwald
909df643b5
Remove dead NRefactory code: DomRegion + IUnresolvedFile
7 years ago
Daniel Grunwald
9be83b6175
Upgrade to Cecil 0.10.0.
...
Delete the cecil submodule; we're no longer using it.
7 years ago
Siegfried Pammer
18bcba64c3
Add IntroduceDynamicTypeOnLocals transform
7 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.
7 years ago
Siegfried Pammer
5e4b571a62
Add DynamicCallSiteTransform
7 years ago
Daniel Grunwald
5cdd5ecdbc
Use target typing for tuples, where possible.
7 years ago
Siegfried Pammer
bb67948844
Fix remaining compile errors after merge.
7 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.
7 years ago
Daniel Grunwald
d78d423d10
Add tuple types to type system and syntax tree.
7 years ago