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