Siegfried Pammer
ca78d4a14d
Use MetadataFile instead of PEFile in TypeSystem.
1 year ago
Daniel Grunwald
9abc2b90da
Fix interaction of C# 11 nint==IntPtr with overload resolution.
...
In C# 11+.NET 7 mode, we now always use type nint, never IntPtr, so that overload resolution works as expected.
2 years ago
Siegfried Pammer
619d2af9b2
Add GetNamespaceByFullName and use it to speed up AssignVariableNames.CollectAllLowerCaseTypeNames
2 years ago
Siegfried Pammer
bde782e4f5
Fix #2806 : Do not use implicitly typed out variables, if argument and parameter types do not match exactly.
3 years ago
Siegfried Pammer
b87f3753e2
Fix #2786 : Structs with static reference type fields not recognized as unmanaged
3 years ago
Siegfried Pammer
583f661153
Work on #1204 : Add optimized implementation of HasAttribute and GetAttribute to IEntity.
3 years ago
Siegfried Pammer
48a8351e27
Use Unsafe.SizeOf when taking the size of a managed type.
3 years ago
Siegfried Pammer
26183f798b
#2397 : Add TypeSystemExtensions.IsUnmanagedType
3 years ago
Daniel Grunwald
bd9aabeae2
Update to dotnet-format 5.1.225507.
...
This makes the formatting expected by our CI consistent with that generated by VS2019.9.
4 years ago
Daniel Grunwald
d9874380cd
Records: support generic records
4 years ago
Daniel Grunwald
d13a8bb64d
Support `ldftn` in the context of a function pointer.
5 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
5 years ago
Daniel Grunwald
8061634e67
#1203 , #2092 : New logic for resolving assembly references within the type system.
...
We now avoid the old `IModuleReference` interface which required allocating for every type being resolved.
Instead `MetadataModule.ResolveModule` now combines decoding+resolving assembly references into a single step.
This allows the type system to maintain a cache indexed by row number.
This also changes the behavior of resolving references within a compilation: We now prefer an exact match (name + version + publickeytoken) first; and fall back to a name-only match only if no exact match exists.
This somewhat improves the decompilation of assemblies created by using ilmerge to combine assemblies with different target frameworks.
5 years ago
Siegfried Pammer
aef5fc1bce
Fix #1785 : Only use System.MathF, if it is available in the used framework.
5 years ago
Siegfried Pammer
8706fe284a
Fix #1818 : Assembly-level TypeForwardedTo not displaying unresolved generics properly
6 years ago
Siegfried Pammer
e211b01595
Fix CA1507:UseNameofInPlaceOfString, adjust formatting of some older source files copied from NRefactory.
6 years ago
Siegfried Pammer
941906e8db
Fix #1699 : Auto properties without getter are not properly decompiled
...
Also fixes wrong decompilation of auto properties modified by Fody.
6 years ago
Daniel Grunwald
5d337aa655
TypeInference: add support for nullability annotated types
6 years ago
Daniel Grunwald
ccdabf2325
Fix a bunch of XmlDoc compiler warnings.
6 years ago
Siegfried Pammer
d965e6aa9e
Fix #1547 : Fully qualify attached properties in styles.
6 years ago
Siegfried Pammer
982c71efb2
Fix implementation of CallBuilder.IsOptionalArgument by converting the ResolveResult to the parameter type.
7 years ago
Siegfried Pammer
892a4da6cc
Fix #1287 : Analysis 'applied to' of Attribute not working on special attributes
7 years ago
Siegfried Pammer
88781ddafd
Add IAttribute.GetAttribute/IAttribute.HasAttribute extensions
7 years ago
Siegfried Pammer
71ffb0183b
Fix #1103 : Deactivating "Insert using declarations" now uses fully qualified types everywhere.
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
Daniel Grunwald
ee3a76bc67
Remove more dead code.
7 years ago
Daniel Grunwald
0f71b65b53
Remove unresolved TS interfaces.
7 years ago
Daniel Grunwald
4ec0028356
Don't cache attributes in the type system.
7 years ago
Daniel Grunwald
ee3012281d
Implement MetadataEvent and re-work the representation of attribute arguments.
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
909df643b5
Remove dead NRefactory code: DomRegion + IUnresolvedFile
7 years ago
Daniel Grunwald
0b48439170
Remove dead code from type system (CSharpConstantValue).
7 years ago
Siegfried Pammer
adca1f8867
Port ILFunction and SequencePointBuilder
7 years ago
Daniel Grunwald
4c45a41fdb
Remove more dead TypeSystem code: ISymbolReference
7 years ago
Pent Ploompuu
48dc32163e
Reduced allocations
7 years ago
Daniel Grunwald
da6b371dd3
Remove some dead code in the type system.
7 years ago
Daniel Grunwald
4d00c65608
Use IReadOnlyList<T> instead of IList<T> in the resolved type system.
7 years ago
Siegfried Pammer
b33bb70dcb
Fix #1044 : Spelling: GetTopLevelTypeDefinitons
7 years ago
Daniel Grunwald
fe84ea9730
WIP: yield return decompiler
9 years ago
Siegfried Pammer
840ec04fde
Namespace adjustments for Syntax classes
9 years ago
Christoph Wille
1ce8349dd9
Adjust namespaces
9 years ago
Siegfried Pammer
284ddfadf1
Phase 2: Merge ICSharpCode.NRefactory into ICSharpCode.Decompiler
9 years ago