Siegfried Pammer
785e36712d
Enable nullable reference types across the C# transforms
...
Turn on #nullable enable across the AST transform pipeline, ahead of
annotating the slot properties themselves. TransformContext now exposes the
nullable CurrentMember/CurrentTypeDefinition/CurrentModule contract already
declared by ITypeResolveContext, and the generated pattern-to-node conversion
returns a non-null node so patterns can be used in collection initializers
without warnings. No IL changes.
Assisted-by: Claude:claude-opus-4-8:Claude Code
2 weeks ago
Siegfried Pammer
77d57b91dc
Drop token nodes and move comments and directives to trivia
...
Comments and preprocessor directives were positional children interleaved
into the child list, and punctuation, keywords and operators were token-node
children. Add a leading/trailing trivia side-channel for comments and
directives, emit it from the output visitor, and re-home every comment
receiver onto it (including inside-block comments as comment-only empty
statements and undecodable attribute arguments as an ErrorExpression). With
locations and sequence points no longer sourced from token nodes, stop
reconstructing them on the locations path and delete CSharpTokenNode,
CSharpModifierToken and InsertSpecialsDecorator. The AST no longer carries
token children or positional comments; output is byte-identical.
Assisted-by: Claude:claude-opus-4-8:Claude Code
2 weeks ago
mmusu3
88b2c437a7
Address PR review feedback
8 months ago
mmusu3
22ceb6e7d1
Fix remaining cases with changes to IntroduceUsingDeclarations.
8 months ago
Peter Crabtree
e1e16b64f5
dev: Strip BOM mark from text files
10 months ago
Siegfried Pammer
9dde97414a
Rename ResolvedUsingScope to UsingScope
11 months ago
Siegfried Pammer
c9e3790adc
Remove UnresolvedUsingScope
11 months ago
Siegfried Pammer
6c08851cb0
#3209 : Only add imports for extension methods.
2 years ago
Siegfried Pammer
972354913e
Fix #3209 : Ensure using directives are added for extension methods in higher level patterns such as: foreach -> GetEnumerator(), collection initializer -> Add() and deconstruction -> Deconstruct().
2 years ago
Siegfried Pammer
ee160b4e2a
#3075 : Improve performance of CSharpResolver.LookupSimpleNameOrTypeName in cases with a large number of local variables.
3 years ago
hexafluoride
fc6ae4c645
Add option to always fully qualify type names with global::
4 years ago
Siegfried Pammer
a655e35799
Fix ArgumentNullException in IntroduceUsingDeclarations: ignore unnamed variables for the purpose of conflict resolving.
5 years ago
Siegfried Pammer
f245d93fef
#2128 : Adjust formatting settings used in tests to match our new style.
6 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
6 years ago
Siegfried Pammer
df84ab8f6b
Fix #1882 : Provide a setting to desugar X? into Nullable<X> for value types
6 years ago
Siegfried Pammer
83c525c1c2
Fix #1758 : Input var name conflicting with framework class name
7 years ago
Siegfried Pammer
71ffb0183b
Fix #1103 : Deactivating "Insert using declarations" now uses fully qualified types everywhere.
8 years ago
Daniel Grunwald
b396d203bd
Merge IDecompilerTypeSystem with ICompilation.
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
c7c3801ff1
Add TypeSystemAstBuilder.ConvertAttributeType, which deals with all the special cases when referring to attribute types in attribute context.
8 years ago
Siegfried Pammer
023282a50d
#1180 : Add IsWindowsFormsInitializeComponentMethod and disable some transforms when processing a Windows Forms InitializeComponent method.
8 years ago
Siegfried Pammer
a06a04d48b
#1080 : Add ILTransformContext.RequiredNamespacesSuperset
8 years ago
Siegfried Pammer
cdd12ba33b
Fix #962 : NullReferenceException when setting FullyQualifyAmbiguousTypeNames=false
9 years ago
Daniel Grunwald
7cacd005a6
When decompiling a single method, don't fully-qualify type names in the current namespace.
9 years ago
Siegfried Pammer
9ab7651201
Fix #895 : Wrong decompilation of references to inner struct in class.
9 years ago
Siegfried Pammer
112142f147
Handle Settings.UsingDeclarations and Settings.FullyQualifyAmbiguousTypeNames correctly.
9 years ago
Siegfried Pammer
dc0a3d0703
Add IntroduceExtensionMethods transform
9 years ago
Daniel Grunwald
b254ff667f
Remove special case always adding 'using System;'
10 years ago
Siegfried Pammer
d8a2d41e83
Added support for ConditionalAttribute
10 years ago
Siegfried Pammer
840ec04fde
Namespace adjustments for Syntax classes
10 years ago
Christoph Wille
1ce8349dd9
Adjust namespaces
10 years ago
Daniel Grunwald
d4d871631c
Fix disambiguation of type names.
10 years ago
Siegfried Pammer
bed48beb3d
fix unit tests
11 years ago
Siegfried Pammer
5ef12f60c8
simplify FullyQualifyAmbiguousTypeNamesVisitor
11 years ago
Siegfried Pammer
80cebbe448
fix bug in IntroduceUsingDeclarations: use matching ITypeResolveContext for each namespace and type
11 years ago
Siegfried Pammer
f554a26a2b
replace ambiguous type names with FQNs
11 years ago
Daniel Grunwald
08a5e81517
Re-enable IntroduceUsingDeclarations
12 years ago
Daniel Grunwald
fffa297b8f
Use ResolveResults as annotations.
12 years ago
Daniel Grunwald
e0a1666547
Add back AST transform infrastructure
12 years ago
Daniel Grunwald
f12371e0e1
Consistently use the full MIT license header on source files.
15 years ago
Daniel Grunwald
094f42ac83
Improved disambiguation of type references.
15 years ago
Daniel Grunwald
6229a1dba8
Fix unit tests.
15 years ago
Daniel Grunwald
6cb77e63e9
Fully qualify ambiguous type names.
15 years ago
Daniel Grunwald
d91b56b033
Add support for pre- and post-increment of dereferenced pointers "(*ptr)++".
16 years ago
Daniel Grunwald
8770d54506
Don't use checked/unchecked expressions within an ExpressionStatement ( #90 )
16 years ago
Daniel Grunwald
18fde488f1
Fixed crash in AddCheckedBlocks.
16 years ago
Daniel Grunwald
8e3f62ba14
Fix issues with 'DeclareVariables' and adjust 'foreach' pattern to the new variable handling.
16 years ago
Daniel Grunwald
c7bbdcd0cb
Improved variable placement.
...
The variable placement step now happens much later in the decompiler pipeline, which simplifies some AST transforms.
16 years ago
Daniel Grunwald
3211ccbf6a
Introduce using declarations in decompiled code.
16 years ago