39 Commits
Author SHA1 Message Date
Siegfried Pammer 921bf36261 Add WebCIL support 2024-03-24 15:35:13 +01:00
Siegfried Pammer cfb4f0f312 Fix #3153: Always use SHA1 for public key tokens. According to ECMA-335, the hash algorithm stored in the assembly metadata is intended for file content verification purposes, not identification purposes. 2024-01-20 15:49:48 +01:00
James May 0bab8a01ef Reduce "unsafe" by replacing byte* pointer usage with ReadOnlySpan<byte> (#3106) 2023-11-01 08:34:36 +01:00
Siegfried Pammer d19c93fc41 Fix #2645: ToPrimitiveTypeCode: return 0, if known type is not primitive. 2022-04-12 08:45:20 +02:00
Siegfried Pammer 6219bb964c Optimize GetFullAssemblyName extension method 2022-03-07 17:49:20 +01:00
Siegfried Pammer f0012cbc1a #2198: Make ILSpy more resilient in case of obfuscated assemblies. 2020-10-25 12:55:33 +01:00
dotnet format 0d9f871a4f #2128: Reformat the whole code base. 2020-08-28 01:05:38 +02:00
Siegfried Pammer 1c563a62a9 Fix #2090: ignore mscorlib references without public key token, when trying to resolve mscorlib. This will automatically fallback to .NET 4.0's mscorlib.dll. 2020-08-07 12:53:46 +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 54a742f3f5 Metadata Explorer: Display blob contents of custom debug information in tooltip. 2020-03-07 19:54:57 +01:00
Siegfried Pammer 475312d5cf Merge branch 'master' of https://github.com/icsharpcode/ILSpy into metadata-explorer 2019-11-23 22:55:11 +01:00
Siegfried Pammer 02c56d631d Merge branch 'master' of https://github.com/icsharpcode/ILSpy into metadata-explorer 2019-09-26 09:42:43 +02:00
Siegfried Pammer 8bf7d3f41c Support for most metadata tables. 2019-09-26 09:38:24 +02:00
Jan Kučera b342dd6b11 Assembly search kind, default to short name 2019-09-23 13:38:37 +01:00
Siegfried Pammer a9bb17aba9 Make it possible to search by full name without including generic type parameters. 2019-08-15 12:10:59 +02:00
Siegfried Pammer f716f4ed9c Fix CSharpLanguage.GetEntityName to return ~TypeName for destructors. 2018-12-30 21:14:42 +01:00
Siegfried Pammer 6a1181c496 Add support for mscorlib: Compact Framework v2.0 and v3.5. 2018-12-21 19:12:47 +01:00
Siegfried Pammer b82f4dd773 Fix #1206: Could not decode attribute arguments. There was a bug in the calculation of public key tokens of assembly definitions. 2018-07-16 17:26:39 +02:00
Daniel Grunwald 1f3916d554 Use the resolve methods in MetadataModule, and remove the wrappers in DecompilerTypeSystem. 2018-07-14 16:12:03 +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
Siegfried Pammer 4540b93e19 Use ArgumentOutOfRangeException or BadImageFormatException in switch-default sections. 2018-07-11 17:18:08 +02:00
Siegfried Pammer bc97127d9d Reorganize extension methods + remove unused/obsolete. 2018-07-11 12:30:24 +02:00
Siegfried Pammer 1f9472e10e Refactor GetDeclaringAssembly + Add support for module references. 2018-07-11 00:33:19 +02:00
Daniel Grunwald 3be697eadf Rewrite MinimalCorlib without using the unresolved TS. 2018-07-10 23:01:33 +02:00
Siegfried Pammer 5645b27ebe Disassembler: Fix generic type arguments and escaping in ToILNameString 2018-07-10 13:37:56 +02:00
Siegfried Pammer 9acc372a68 Use TypeSystem for ILSpy UI:
Most important tree nodes and search ported,
Currently only ILLanguage is active
2018-07-01 12:21:37 +02:00
Siegfried Pammer e6e03a40d4 Move PEFile and other classes to different files, cleanup 2018-06-30 13:55:45 +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 9a74f018b5 Decode metadata signatures directly into IType; without going through ITypeReference. 2018-06-17 19:58:32 +02:00
Siegfried Pammer 1941948a4b Further improvements to MetadataResolver and MainWindow.FindTreeNode 2018-05-15 21:15:53 +02:00
Siegfried Pammer 458f448fae Avoid unnecessary allocations of MetadataReader and clean up Dom structs a bit. 2018-05-14 22:34:10 +02:00
Daniel Grunwald f290d81535 Fix ReflectionDisassembler so that we can re-generate the IL files for the PInvoke test. 2018-05-06 01:00:57 +02:00
Siegfried Pammer 7dd3faeb69 Fix output of qualified type names in IL. 2018-04-14 09:43:18 +02:00
Siegfried Pammer 61eead50c7 Fix TypeSystemLoaderTests 2018-03-29 20:43:59 +02:00
Siegfried Pammer b500b24548 SRM WIP basic implementation of DecompilerTypeSystem 2018-03-18 20:02:37 +01:00
Siegfried Pammer 74e81010b3 Fix handling of type parameters in GetFullTypeName 2018-03-18 16:13:42 +01:00
Siegfried Pammer 6b765f98f0 Fix order of types in full module output 2018-02-18 10:56:14 -03:00
Siegfried Pammer ec91601510 Add ReferenceFolderTreeNode 2018-02-16 18:01:20 -02:00
Siegfried Pammer 87ced033ba Rename Dom -> Metadata; Remove bogus abstraction 2018-02-16 07:22:15 -02:00