47 Commits
Author SHA1 Message Date
Siegfried Pammer ca78d4a14d Use MetadataFile instead of PEFile in TypeSystem. 2024-03-24 15:35:13 +01:00
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.
2023-05-29 16:38:44 +02:00
Siegfried Pammer 619d2af9b2 Add GetNamespaceByFullName and use it to speed up AssignVariableNames.CollectAllLowerCaseTypeNames 2022-12-02 19:41:30 +01:00
Siegfried Pammer bde782e4f5 Fix #2806: Do not use implicitly typed out variables, if argument and parameter types do not match exactly. 2022-10-27 19:16:05 +02:00
Siegfried Pammer b87f3753e2 Fix #2786: Structs with static reference type fields not recognized as unmanaged 2022-10-04 22:37:18 +02:00
Siegfried Pammer 583f661153 Work on #1204: Add optimized implementation of HasAttribute and GetAttribute to IEntity. 2022-08-24 12:05:09 +02:00
Siegfried Pammer 48a8351e27 Use Unsafe.SizeOf when taking the size of a managed type. 2022-07-16 16:39:48 +02:00
Siegfried Pammer 26183f798b #2397: Add TypeSystemExtensions.IsUnmanagedType 2021-12-26 01:25:38 +01:00
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.
2021-05-07 22:23:09 +02:00
Daniel Grunwald d9874380cd Records: support generic records 2020-12-29 18:26:30 +01:00
Daniel Grunwald d13a8bb64d Support ldftn in the context of a function pointer. 2020-09-06 18:59:07 +02:00
dotnet format 0d9f871a4f #2128: Reformat the whole code base. 2020-08-28 01:05:38 +02:00
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.
2020-08-07 00:03:07 +02:00
Siegfried Pammer aef5fc1bce Fix #1785: Only use System.MathF, if it is available in the used framework. 2019-12-18 14:26:46 +01:00
Siegfried Pammer 8706fe284a Fix #1818: Assembly-level TypeForwardedTo not displaying unresolved generics properly 2019-11-30 17:57:14 +01:00
Siegfried Pammer e211b01595 Fix CA1507:UseNameofInPlaceOfString, adjust formatting of some older source files copied from NRefactory. 2019-11-04 20:40:21 +01:00
Daniel Grunwald cb301bb0e2 Merge pull request #1730 from icsharpcode/async-streams
C# 8.0 Async streams
2019-11-04 18:39:20 +01:00
Siegfried Pammer 941906e8db Fix #1699: Auto properties without getter are not properly decompiled
Also fixes wrong decompilation of auto properties modified by Fody.
2019-10-01 22:09:47 +02:00
Daniel Grunwald 5d337aa655 TypeInference: add support for nullability annotated types 2019-09-29 16:12:39 +02:00
Daniel Grunwald ccdabf2325 Fix a bunch of XmlDoc compiler warnings. 2019-07-17 19:15:43 +02:00
Siegfried Pammer d965e6aa9e Fix #1547: Fully qualify attached properties in styles. 2019-06-14 09:17:13 +02:00
Siegfried Pammer 982c71efb2 Fix implementation of CallBuilder.IsOptionalArgument by converting the ResolveResult to the parameter type. 2018-11-24 13:12:05 +01:00
Siegfried Pammer 892a4da6cc Fix #1287: Analysis 'applied to' of Attribute not working on special attributes 2018-11-01 13:17:41 +01:00
Siegfried Pammer 88781ddafd Add IAttribute.GetAttribute/IAttribute.HasAttribute extensions 2018-07-23 22:36:57 +02:00
Siegfried Pammer 71ffb0183b Fix #1103: Deactivating "Insert using declarations" now uses fully qualified types everywhere. 2018-07-20 19:57:00 +02:00
Daniel Grunwald 238d2900a8 Merge branch 'split-variables' 2018-07-15 16:34:31 +02:00
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.
2018-07-13 22:20:49 +02:00
Daniel Grunwald b149238777 Introduce IType.IsByRefLike. 2018-07-13 21:01:33 +02:00
Daniel Grunwald ee3a76bc67 Remove more dead code. 2018-07-10 23:31:20 +02:00
Daniel Grunwald 0f71b65b53 Remove unresolved TS interfaces. 2018-07-10 23:25:31 +02:00
Daniel Grunwald 4ec0028356 Don't cache attributes in the type system. 2018-07-01 16:53:57 +02:00
Daniel Grunwald ee3012281d Implement MetadataEvent and re-work the representation of attribute arguments. 2018-06-26 23:19:58 +02:00
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).
2018-06-24 19:47:14 +02:00
Daniel Grunwald 909df643b5 Remove dead NRefactory code: DomRegion + IUnresolvedFile 2018-06-02 13:07:02 +02:00
Siegfried Pammer f7e4258d12 Merge branch 'master' of https://github.com/icsharpcode/ILSpy into srm 2018-05-15 22:47:50 +02:00
Daniel Grunwald 0b48439170 Remove dead code from type system (CSharpConstantValue). 2018-05-12 21:14:17 +02:00
Siegfried Pammer 5d8ddeff0e Merge branch 'master' of github.com:icsharpcode/ILSpy into srm 2018-03-28 02:43:22 +02:00
Siegfried Pammer adca1f8867 Port ILFunction and SequencePointBuilder 2018-03-28 01:14:36 +02:00
Daniel Grunwald 4c45a41fdb Remove more dead TypeSystem code: ISymbolReference 2018-03-18 18:59:02 +01:00
Pent Ploompuu 48dc32163e Reduced allocations 2018-03-10 23:58:21 +02:00
Daniel Grunwald da6b371dd3 Remove some dead code in the type system. 2018-03-09 22:47:37 +01:00
Daniel Grunwald 4d00c65608 Use IReadOnlyList<T> instead of IList<T> in the resolved type system. 2018-03-09 00:04:20 +01:00
Siegfried Pammer b33bb70dcb Fix #1044: Spelling: GetTopLevelTypeDefinitons 2018-01-24 20:30:31 +01:00
Daniel Grunwald fe84ea9730 WIP: yield return decompiler 2016-12-20 21:55:28 +01:00
Siegfried Pammer 840ec04fde Namespace adjustments for Syntax classes 2016-11-26 12:06:58 +01:00
Christoph Wille 1ce8349dd9 Adjust namespaces 2016-11-26 11:12:53 +01:00
Siegfried Pammer 284ddfadf1 Phase 2: Merge ICSharpCode.NRefactory into ICSharpCode.Decompiler 2016-11-26 00:26:27 +01:00