Siegfried Pammer
2ea569b005
Enable nullable reference types across the C# AST consumers
...
Turn on #nullable enable across the AST consumer layer: the output visitor, the
IL-to-C# builders (statement, call and expression builders, CSharpDecompiler,
TypeSystemAstBuilder), the translation-result wrappers, the sequence-point and
required-namespace collectors, and the annotation helpers. Optional inputs,
fields and returns are typed nullable, detector out-parameters use
[NotNullWhen(true)], and structurally-guaranteed dereferences use the
null-forgiving operator. A few public parameters that already tolerate null are
widened to match their downstream callers. The annotations emit no IL, so the
Pretty suite stays byte-identical.
Assisted-by: Claude:claude-opus-4-8:Claude Code
2 weeks ago
Siegfried Pammer
98d764a169
Add a treenode and decompiler APIs for extensions.
4 months ago
Peter Crabtree
e1e16b64f5
dev: Strip BOM mark from text files
10 months ago
Siegfried Pammer
ca78d4a14d
Use MetadataFile instead of PEFile in TypeSystem.
2 years ago
ElektroKill
cd3d23e406
Include property and event return types in `RequiredNamespaceCollector`
4 years ago
Daniel Grunwald
d6d0392d2f
Fix crash when IL byte code unexpectedly ends in the middle of an operand.
4 years ago
Daniel Grunwald
b8796908f6
Fix some type inference issues with pointer types.
6 years ago
Daniel Grunwald
3831b42197
Properly support `calli` instruction and its interaction with function pointer types.
6 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
6 years ago
Siegfried Pammer
431bbaa489
RequiredNamespaceCollector: properly handle parts of methods
6 years ago
Siegfried Pammer
5459d6b022
#2064 : Improve performance of RequiredNamespaceCollector by skipping repeated IType.GetAllBaseTypes() calls.
6 years ago
Siegfried Pammer
d0f32b93c1
Make sure mappingInfo is not null when passed to typedefs, methoddefs, properties and events.
7 years ago
SilverFox
8c8dcf5630
Fix issue #1762
7 years ago
Siegfried Pammer
59b7e0c986
Include namespaces of all known types used by the decompiler in the required namespaces super-set.
7 years ago
Siegfried Pammer
1e3b3090e0
Make RequiredNamespaceCollector an instance
7 years ago
Siegfried Pammer
bf72999f36
Fix #1487 : Include base types in namespace-set approximation.
7 years ago
Siegfried Pammer
f43e26f87c
Fix #1329 : AssertionFailedException: Should not insert using declaration for namespace that is missing from the superset: System.Windows.Markup
8 years ago
Daniel Grunwald
61698b615d
Fix #1232 : BadImageFormatException: Invalid SEH header
...
This makes the decompiler and a bunch of analyzers more robust against invalid assemblies.
8 years ago
Siegfried Pammer
0e10290b0f
Fix #1215 : Add namespaces of type parameter constraints to superset.
8 years ago
Daniel Grunwald
4e8ebbf7f4
Fix #1189 : Avoid crashing on invalid IL bytes.
8 years ago
Daniel Grunwald
08e8091336
Fix #1211 : Handle BadImageFormatException on invalid local signatures.
8 years ago
Daniel Grunwald
2d04f24670
Fix stack overflow in RequiredNamespaceCollector.
8 years ago
Daniel Grunwald
1f3916d554
Use the resolve methods in MetadataModule, and remove the wrappers in DecompilerTypeSystem.
8 years ago
Daniel Grunwald
c54632e7cb
Fix some type system bugs.
8 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.
8 years ago
Siegfried Pammer
27cf62d710
Move CodeMappingInfo to Decompiler.
8 years ago
Siegfried Pammer
78dab4f44b
Cleanup
8 years ago
Siegfried Pammer
0377f406f8
Remove some NotImplementedExceptions/NotSupportedExceptions
8 years ago
Daniel Grunwald
3be697eadf
Rewrite MinimalCorlib without using the unresolved TS.
8 years ago
Daniel Grunwald
4ec0028356
Don't cache attributes in the type system.
8 years ago
Siegfried Pammer
076c0b49e7
RequiredNamespaceCollector: Add support for method signatures.
8 years ago
Siegfried Pammer
e33d1ddce3
Fix #1183 : Assertion Failed in IntroduceUsingDeclarations on Property
8 years ago
Siegfried Pammer
0c6236ed7e
Collect namespaces of assembly and module attributes
8 years ago
Daniel Grunwald
ee3012281d
Implement MetadataEvent and re-work the representation of attribute arguments.
8 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).
8 years ago
Daniel Grunwald
98d00415d1
Fix tuple types.
8 years ago
Daniel Grunwald
9a74f018b5
Decode metadata signatures directly into IType; without going through ITypeReference.
8 years ago
Siegfried Pammer
7298592df7
Fix stack overflow in RequiredNamespaceCollector
8 years ago
Siegfried Pammer
47788a38de
WIP
8 years ago
Siegfried Pammer
458f448fae
Avoid unnecessary allocations of MetadataReader and clean up Dom structs a bit.
8 years ago
Siegfried Pammer
9680abdf0e
RequiredNamespaceCollector: Fix missing imports on generic parameters.
8 years ago
Siegfried Pammer
3167834f30
Add missing type handling in RequiredNamespaceCollector
8 years ago
Siegfried Pammer
5eea974e7b
Fix some NotImplementedExceptions in RequiredNamespaceCollector
8 years ago
Siegfried Pammer
6b195b870b
Partially rewrite RequiredNamespaceCollector
8 years ago
Siegfried Pammer
450cdcebb7
Add AstTypeBuilder and RequiredNamespaceCollector
8 years ago