diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/AstNode.cs b/ICSharpCode.Decompiler/CSharp/Syntax/AstNode.cs
index 75a1d5e94..0f5666c8e 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/AstNode.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/AstNode.cs
@@ -37,7 +37,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public abstract partial class AstNode : AbstractAnnotatable, IFreezable, INode, ICloneable
{
// the Root role must be available when creating the null nodes, so we can't put it in the Roles class
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/AstType.cs b/ICSharpCode.Decompiler/CSharp/Syntax/AstType.cs
index 7447c8710..9766e0d77 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/AstType.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/AstType.cs
@@ -28,7 +28,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// A type reference in the C# AST.
///
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public abstract partial class AstType : AstNode
{
#region PatternPlaceholder
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/CSharpModifierToken.cs b/ICSharpCode.Decompiler/CSharp/Syntax/CSharpModifierToken.cs
index 6ca9ce12d..d295a515b 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/CSharpModifierToken.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/CSharpModifierToken.cs
@@ -31,7 +31,7 @@ using ICSharpCode.Decompiler.CSharp.OutputVisitor;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class CSharpModifierToken : CSharpTokenNode
{
Modifiers modifier;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/CSharpTokenNode.cs b/ICSharpCode.Decompiler/CSharp/Syntax/CSharpTokenNode.cs
index 19f5ef080..00107dde9 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/CSharpTokenNode.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/CSharpTokenNode.cs
@@ -34,7 +34,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// In all non null c# token nodes the Role of a CSharpToken must be a TokenRole.
///
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class CSharpTokenNode : AstNode
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/ComposedType.cs b/ICSharpCode.Decompiler/CSharp/Syntax/ComposedType.cs
index 70650fbc7..335ed8982 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/ComposedType.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/ComposedType.cs
@@ -34,7 +34,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ComposedType : AstType
{
public static readonly Role AttributeRole = EntityDeclaration.AttributeRole;
@@ -231,7 +231,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// [,,,]
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ArraySpecifier : AstNode
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/DocumentationReference.cs b/ICSharpCode.Decompiler/CSharp/Syntax/DocumentationReference.cs
index 44af88489..f677ccb62 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/DocumentationReference.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/DocumentationReference.cs
@@ -23,7 +23,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Represents a 'cref' reference in XML documentation.
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class DocumentationReference : AstNode
{
public static readonly Role DeclaringTypeRole = new Role("DeclaringType", AstType.Null);
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs
index 30c52c986..96a20ab85 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs
@@ -32,7 +32,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// [async] delegate(Parameters) {Body}
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class AnonymousMethodExpression : Expression
{
public readonly static TokenRole DelegateKeywordRole = new TokenRole("delegate");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs
index c2793c3f8..f154fe88c 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// new { [ExpressionList] }
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class AnonymousTypeCreateExpression : Expression
{
public readonly static TokenRole NewKeywordRole = new TokenRole("new");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs
index 84d583916..dbc2f7910 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs
@@ -22,7 +22,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// new Type[Dimensions]
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ArrayCreateExpression : Expression
{
public readonly static TokenRole NewKeywordRole = new TokenRole("new");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs
index 0bf14651c..c56d3c4f5 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// { Elements }
///
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class ArrayInitializerExpression : Expression
{
///
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs
index 06c64f84c..522691d7c 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Expression as TypeReference
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class AsExpression : Expression
{
public readonly static TokenRole AsKeywordRole = new TokenRole("as");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs
index af6ac366a..5f14cc6e2 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs
@@ -33,7 +33,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Left Operator= Right
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class AssignmentExpression : Expression
{
// reuse roles from BinaryOperatorExpression
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs
index 48bab380f..6c785e64b 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// base
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class BaseReferenceExpression : Expression
{
public TextLocation Location {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs
index 09e414199..6f08b6e28 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs
@@ -32,7 +32,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Left Operator Right
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class BinaryOperatorExpression : Expression
{
public readonly static TokenRole BitwiseAndRole = new TokenRole("&");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CastExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CastExpression.cs
index 670154e06..729f703a0 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CastExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CastExpression.cs
@@ -28,7 +28,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// (CastTo)Expression
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class CastExpression : Expression
{
public CSharpTokenNode LParToken {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CheckedExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CheckedExpression.cs
index 098f1d44f..d13774e51 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CheckedExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CheckedExpression.cs
@@ -29,7 +29,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// checked(Expression)
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class CheckedExpression : Expression
{
public readonly static TokenRole CheckedKeywordRole = new TokenRole("checked");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ConditionalExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ConditionalExpression.cs
index 33ff6906f..5a0fe3edc 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ConditionalExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ConditionalExpression.cs
@@ -28,7 +28,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Condition ? TrueExpression : FalseExpression
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ConditionalExpression : Expression
{
public readonly static Role ConditionRole = Roles.Condition;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DeclarationExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DeclarationExpression.cs
index 5254405fb..b657c9a59 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DeclarationExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DeclarationExpression.cs
@@ -23,7 +23,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// TypeName VariableDesignation
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class DeclarationExpression : Expression
{
public AstType Type {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DefaultValueExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DefaultValueExpression.cs
index b11368059..da7376f1a 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DefaultValueExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DefaultValueExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// default(Type)
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class DefaultValueExpression : Expression
{
public readonly static TokenRole DefaultKeywordRole = new TokenRole("default");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DirectionExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DirectionExpression.cs
index f675384ac..faac5001d 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DirectionExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DirectionExpression.cs
@@ -38,7 +38,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// ref Expression
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class DirectionExpression : Expression
{
public readonly static TokenRole RefKeywordRole = new TokenRole("ref");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ErrorExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ErrorExpression.cs
index 4314e12db..3536fd897 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ErrorExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ErrorExpression.cs
@@ -25,7 +25,7 @@
// THE SOFTWARE.
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ErrorExpression : Expression
{
public TextLocation Location { get; set; }
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/Expression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/Expression.cs
index f8f3cf139..54c5bfb5e 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/Expression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/Expression.cs
@@ -27,7 +27,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// This class is useful even though it doesn't provide any additional functionality:
/// It can be used to communicate more information in APIs, e.g. "this subnode will always be an expression"
///
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public abstract partial class Expression : AstNode
{
#region PatternPlaceholder
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IdentifierExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IdentifierExpression.cs
index 45d7a2694..ba3bbdf0e 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IdentifierExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IdentifierExpression.cs
@@ -26,7 +26,7 @@
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class IdentifierExpression : Expression
{
public IdentifierExpression()
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IndexerExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IndexerExpression.cs
index 5d083c0b7..4952df1b7 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IndexerExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IndexerExpression.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Target[Arguments]
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class IndexerExpression : Expression
{
public Expression Target {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InterpolatedStringExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InterpolatedStringExpression.cs
index 621faccb7..bc82afb08 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InterpolatedStringExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InterpolatedStringExpression.cs
@@ -4,7 +4,7 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class InterpolatedStringExpression : Expression
{
public static readonly TokenRole OpenQuote = new TokenRole("$\"");
@@ -46,7 +46,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public abstract partial class InterpolatedStringContent : AstNode
{
public new static readonly Role Role = new Role("InterpolatedStringContent", Syntax.InterpolatedStringContent.Null);
@@ -57,7 +57,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// { Expression , Alignment : Suffix }
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class Interpolation : InterpolatedStringContent
{
public static readonly TokenRole LBrace = new TokenRole("{");
@@ -114,7 +114,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class InterpolatedStringText : InterpolatedStringContent
{
public string Text { get; set; }
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InvocationExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InvocationExpression.cs
index 3e5804fe6..dd7a299c7 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InvocationExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InvocationExpression.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Target(Arguments)
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class InvocationExpression : Expression
{
public Expression Target {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IsExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IsExpression.cs
index 158e709fc..089e4ebd2 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IsExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IsExpression.cs
@@ -28,7 +28,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Expression is Type
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class IsExpression : Expression
{
public readonly static TokenRole IsKeywordRole = new TokenRole("is");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/LambdaExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/LambdaExpression.cs
index ca5e8724a..9874fd622 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/LambdaExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/LambdaExpression.cs
@@ -29,7 +29,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// [async] Parameters => Body
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class LambdaExpression : Expression
{
public static readonly Role AttributeRole = new Role("Attribute", null);
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/MemberReferenceExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/MemberReferenceExpression.cs
index a816a4322..4c6251aa2 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/MemberReferenceExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/MemberReferenceExpression.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Target.MemberName
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class MemberReferenceExpression : Expression
{
public Expression Target {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedArgumentExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedArgumentExpression.cs
index c1121f03a..b1fc18231 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedArgumentExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedArgumentExpression.cs
@@ -23,7 +23,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// Represents a named argument passed to a method or attribute.
/// name: expression
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class NamedArgumentExpression : Expression
{
public NamedArgumentExpression()
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedExpression.cs
index 64438c19a..bdf5cb68d 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedExpression.cs
@@ -32,7 +32,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// This isn't the same as 'assign' even though it has the same syntax.
/// This expression is used in object initializers and for named attribute arguments [Attr(FieldName = value)].
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class NamedExpression : Expression
{
public NamedExpression()
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NullReferenceExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NullReferenceExpression.cs
index c2f2bbaa1..14c4e1483 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NullReferenceExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NullReferenceExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// null
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class NullReferenceExpression : Expression
{
TextLocation location;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ObjectCreateExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ObjectCreateExpression.cs
index 4729341f0..da2f559ae 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ObjectCreateExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ObjectCreateExpression.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// new Type(Arguments) { Initializer }
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ObjectCreateExpression : Expression
{
public readonly static TokenRole NewKeywordRole = new TokenRole("new");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/OutVarDeclarationExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/OutVarDeclarationExpression.cs
index 70cc5f21b..d00d9bce1 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/OutVarDeclarationExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/OutVarDeclarationExpression.cs
@@ -21,7 +21,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// out type expression
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class OutVarDeclarationExpression : Expression
{
public readonly static TokenRole OutKeywordRole = DirectionExpression.OutKeywordRole;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ParenthesizedExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ParenthesizedExpression.cs
index f08490a0a..394b43b90 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ParenthesizedExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ParenthesizedExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// ( Expression )
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ParenthesizedExpression : Expression
{
public CSharpTokenNode LParToken {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PointerReferenceExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PointerReferenceExpression.cs
index 1aa8f5592..635d975b9 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PointerReferenceExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PointerReferenceExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Target->MemberName
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class PointerReferenceExpression : Expression
{
public readonly static TokenRole ArrowRole = new TokenRole("->");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs
index ddf82ffc0..f53f0525f 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs
@@ -46,7 +46,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Represents a literal value.
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class PrimitiveExpression : Expression
{
public static readonly object AnyValue = new object();
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/QueryExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/QueryExpression.cs
index e3708a69f..c0d5f6636 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/QueryExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/QueryExpression.cs
@@ -18,7 +18,7 @@
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class QueryExpression : Expression
{
public static readonly Role ClauseRole = new Role("Clause", null);
@@ -74,7 +74,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// new QuerySelectClause(e)
/// }
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class QueryContinuationClause : QueryClause
{
public static readonly Role PrecedingQueryRole = new Role("PrecedingQuery", QueryExpression.Null);
@@ -124,7 +124,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class QueryFromClause : QueryClause
{
public static readonly TokenRole FromKeywordRole = new TokenRole("from");
@@ -184,7 +184,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class QueryLetClause : QueryClause
{
public readonly static TokenRole LetKeywordRole = new TokenRole("let");
@@ -238,7 +238,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class QueryWhereClause : QueryClause
{
public readonly static TokenRole WhereKeywordRole = new TokenRole("where");
@@ -277,7 +277,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Represents a join or group join clause.
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class QueryJoinClause : QueryClause
{
public static readonly TokenRole JoinKeywordRole = new TokenRole("join");
@@ -388,7 +388,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class QueryOrderClause : QueryClause
{
public static readonly TokenRole OrderbyKeywordRole = new TokenRole("orderby");
@@ -424,7 +424,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class QueryOrdering : AstNode
{
public readonly static TokenRole AscendingKeywordRole = new TokenRole("ascending");
@@ -477,7 +477,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
Descending
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class QuerySelectClause : QueryClause
{
public readonly static TokenRole SelectKeywordRole = new TokenRole("select");
@@ -513,7 +513,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class QueryGroupClause : QueryClause
{
public static readonly TokenRole GroupKeywordRole = new TokenRole("group");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/RecursivePatternExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/RecursivePatternExpression.cs
index f0f7a1d25..85aa497ec 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/RecursivePatternExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/RecursivePatternExpression.cs
@@ -20,7 +20,7 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class RecursivePatternExpression : Expression
{
public static readonly Role SubPatternRole = new Role("SubPattern", Syntax.Expression.Null);
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SizeOfExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SizeOfExpression.cs
index 6a3acb9c7..cb5df44f1 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SizeOfExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SizeOfExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// sizeof(Type)
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class SizeOfExpression : Expression
{
public readonly static TokenRole SizeofKeywordRole = new TokenRole("sizeof");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/StackAllocExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/StackAllocExpression.cs
index 0ea2cdf13..67e87d087 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/StackAllocExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/StackAllocExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// stackalloc Type[Count]
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class StackAllocExpression : Expression
{
public readonly static TokenRole StackallocKeywordRole = new TokenRole("stackalloc");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SwitchExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SwitchExpression.cs
index c1af952a0..1565ba8ed 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SwitchExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SwitchExpression.cs
@@ -22,7 +22,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Expression switch { SwitchSections }
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class SwitchExpression : Expression
{
public static readonly TokenRole SwitchKeywordRole = new TokenRole("switch");
@@ -74,7 +74,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Pattern => Expression
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class SwitchExpressionSection : AstNode
{
public static readonly Role PatternRole = new Role("Pattern", Expression.Null);
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThisReferenceExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThisReferenceExpression.cs
index 4eb91600e..e105d6008 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThisReferenceExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThisReferenceExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// this
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ThisReferenceExpression : Expression
{
public TextLocation Location {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThrowExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThrowExpression.cs
index 4a3db6ac0..9810e6466 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThrowExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThrowExpression.cs
@@ -21,7 +21,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// throw Expression
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ThrowExpression : Expression
{
public static readonly TokenRole ThrowKeywordRole = ThrowStatement.ThrowKeywordRole;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TupleExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TupleExpression.cs
index 4840266c0..c9d21a0b2 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TupleExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TupleExpression.cs
@@ -20,7 +20,7 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class TupleExpression : Expression
{
public AstNodeCollection Elements {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeOfExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeOfExpression.cs
index 02ec435ef..230691a83 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeOfExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeOfExpression.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// typeof(Type)
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class TypeOfExpression : Expression
{
public readonly static TokenRole TypeofKeywordRole = new TokenRole("typeof");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeReferenceExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeReferenceExpression.cs
index 5395e3665..12bb73297 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeReferenceExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeReferenceExpression.cs
@@ -23,7 +23,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// Represents an AstType as an expression.
/// This is used when calling a method on a primitive type: "int.Parse()"
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class TypeReferenceExpression : Expression
{
public AstType Type {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UnaryOperatorExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UnaryOperatorExpression.cs
index 71ce2714a..ae06ee368 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UnaryOperatorExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UnaryOperatorExpression.cs
@@ -32,7 +32,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Operator Expression
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class UnaryOperatorExpression : Expression
{
public readonly static TokenRole NotRole = new TokenRole("!");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UncheckedExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UncheckedExpression.cs
index 1ff20d9a0..5261ad54e 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UncheckedExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UncheckedExpression.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// unchecked(Expression)
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class UncheckedExpression : Expression
{
public readonly static TokenRole UncheckedKeywordRole = new TokenRole("unchecked");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UndocumentedExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UndocumentedExpression.cs
index 31d6c1528..1f127e816 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UndocumentedExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UndocumentedExpression.cs
@@ -39,7 +39,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Represents undocumented expressions.
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class UndocumentedExpression : Expression
{
public readonly static TokenRole ArglistKeywordRole = new TokenRole("__arglist");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/WithInitializerExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/WithInitializerExpression.cs
index b616f3f06..3a7fd75ea 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/WithInitializerExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/WithInitializerExpression.cs
@@ -23,7 +23,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Expression with Initializer
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class WithInitializerExpression : Expression
{
public readonly static TokenRole WithKeywordRole = new TokenRole("with");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/FunctionPointerAstType.cs b/ICSharpCode.Decompiler/CSharp/Syntax/FunctionPointerAstType.cs
index 71dca2f48..b75a39807 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/FunctionPointerAstType.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/FunctionPointerAstType.cs
@@ -31,7 +31,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class FunctionPointerAstType : AstType
{
public static readonly TokenRole PointerRole = new TokenRole("*");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Attribute.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Attribute.cs
index c7b4e7617..6a7e780c0 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Attribute.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Attribute.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Attribute(Arguments)
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class Attribute : AstNode
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/AttributeSection.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/AttributeSection.cs
index 26113d93c..be9928e4f 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/AttributeSection.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/AttributeSection.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// [AttributeTarget: Attributes]
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class AttributeSection : AstNode
{
#region PatternPlaceholder
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Comment.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Comment.cs
index d9d00f958..d14628202 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Comment.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Comment.cs
@@ -51,7 +51,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
MultiLineDocumentation
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class Comment : AstNode
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Constraint.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Constraint.cs
index 9111b74a1..1f88c072e 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Constraint.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Constraint.cs
@@ -33,7 +33,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// new(), struct and class constraints are represented using a PrimitiveType "new", "struct" or "class"
///
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class Constraint : AstNode
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/DelegateDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/DelegateDeclaration.cs
index 975e461e3..0ddf262c7 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/DelegateDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/DelegateDeclaration.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// delegate ReturnType Name<TypeParameters>(Parameters) where Constraints;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class DelegateDeclaration : EntityDeclaration
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/ExternAliasDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/ExternAliasDeclaration.cs
index a1031ce48..8c21fc39e 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/ExternAliasDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/ExternAliasDeclaration.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// extern alias IDENTIFIER;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ExternAliasDeclaration : AstNode
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NamespaceDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NamespaceDeclaration.cs
index 5446cadc7..34b1590c0 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NamespaceDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NamespaceDeclaration.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// namespace Name { Members }
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class NamespaceDeclaration : AstNode
{
public static readonly Role MemberRole = SyntaxTree.MemberRole;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/PreProcessorDirective.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/PreProcessorDirective.cs
index 05170720f..81a850fed 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/PreProcessorDirective.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/PreProcessorDirective.cs
@@ -46,7 +46,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
Line = 12
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class LinePreprocessorDirective : PreProcessorDirective
{
public int LineNumber {
@@ -68,7 +68,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class PragmaWarningPreprocessorDirective : PreProcessorDirective
{
public static readonly Role WarningRole = new Role("Warning", null);
@@ -127,7 +127,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class PreProcessorDirective : AstNode
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeDeclaration.cs
index 6d2e99d5c..7c90d7294 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeDeclaration.cs
@@ -47,7 +47,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// class Name<TypeParameters> : BaseTypes where Constraints;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class TypeDeclaration : EntityDeclaration
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeParameterDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeParameterDeclaration.cs
index 8c5305c48..4f65c7d55 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeParameterDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeParameterDeclaration.cs
@@ -27,7 +27,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// Note: mirroring the C# syntax, constraints are not part of the type parameter declaration, but belong
/// to the parent type or method.
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class TypeParameterDeclaration : AstNode
{
public static readonly Role AttributeRole = EntityDeclaration.AttributeRole;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingAliasDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingAliasDeclaration.cs
index 9f1668526..12a69b56a 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingAliasDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingAliasDeclaration.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// using Alias = Import;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class UsingAliasDeclaration : AstNode
{
public static readonly TokenRole UsingKeywordRole = new TokenRole("using");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingDeclaration.cs
index bd978ca3d..f0cbacf54 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingDeclaration.cs
@@ -32,7 +32,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// using Import;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class UsingDeclaration : AstNode
{
public static readonly TokenRole UsingKeywordRole = new TokenRole("using");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Identifier.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Identifier.cs
index 887a1ca42..8d884f470 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Identifier.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Identifier.cs
@@ -28,7 +28,7 @@ using System;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class Identifier : AstNode
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/InvocationAstType.cs b/ICSharpCode.Decompiler/CSharp/Syntax/InvocationAstType.cs
index 7c19e40f8..c83d314c6 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/InvocationAstType.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/InvocationAstType.cs
@@ -27,7 +27,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// BaseType "(" Argument { "," Argument } ")"
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class InvocationAstType : AstType
{
public AstNodeCollection Arguments {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/MemberType.cs b/ICSharpCode.Decompiler/CSharp/Syntax/MemberType.cs
index a72d94e6b..bcb46d976 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/MemberType.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/MemberType.cs
@@ -32,7 +32,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class MemberType : AstType
{
public static readonly Role TargetRole = new Role("Target", AstType.Null);
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/PrimitiveType.cs b/ICSharpCode.Decompiler/CSharp/Syntax/PrimitiveType.cs
index 2e1e54cf0..fa600eee6 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/PrimitiveType.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/PrimitiveType.cs
@@ -33,7 +33,7 @@ using ICSharpCode.Decompiler.TypeSystem.Implementation;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class PrimitiveType : AstType
{
TextLocation location;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/SimpleType.cs b/ICSharpCode.Decompiler/CSharp/Syntax/SimpleType.cs
index 6b8ac0c0b..b86342ddd 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/SimpleType.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/SimpleType.cs
@@ -32,7 +32,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class SimpleType : AstType
{
public SimpleType()
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/BlockStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/BlockStatement.cs
index 98b8cfbc3..032bcb7e5 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/BlockStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/BlockStatement.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// { Statements }
///
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class BlockStatement : Statement, IEnumerable
{
public static readonly Role StatementRole = new Role("Statement", Statement.Null);
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/BreakStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/BreakStatement.cs
index 89f96a886..8bb7127e5 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/BreakStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/BreakStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// break;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class BreakStatement : Statement
{
public static readonly TokenRole BreakKeywordRole = new TokenRole("break");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/CheckedStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/CheckedStatement.cs
index e70642fc3..286301d90 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/CheckedStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/CheckedStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// checked BodyBlock
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class CheckedStatement : Statement
{
public static readonly TokenRole CheckedKeywordRole = new TokenRole("checked");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ContinueStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ContinueStatement.cs
index 9d955f833..8d2011abf 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ContinueStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ContinueStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// continue;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ContinueStatement : Statement
{
public static readonly TokenRole ContinueKeywordRole = new TokenRole("continue");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/DoWhileStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/DoWhileStatement.cs
index ab90c2022..59a6e43aa 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/DoWhileStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/DoWhileStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// "do EmbeddedStatement while(Condition);"
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class DoWhileStatement : Statement
{
public static readonly TokenRole DoKeywordRole = new TokenRole("do");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/EmptyStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/EmptyStatement.cs
index c1f5e0e18..41168a8e0 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/EmptyStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/EmptyStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// ;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class EmptyStatement : Statement
{
public TextLocation Location {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ExpressionStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ExpressionStatement.cs
index f62adb0b4..f5149d576 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ExpressionStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ExpressionStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Expression;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ExpressionStatement : Statement
{
public Expression Expression {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/FixedStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/FixedStatement.cs
index 6f0b7f0d3..76abd6c0c 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/FixedStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/FixedStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// fixed (Type Variables) EmbeddedStatement
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class FixedStatement : Statement
{
public static readonly TokenRole FixedKeywordRole = new TokenRole("fixed");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForStatement.cs
index 564099a28..030a59dc8 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// for (Initializers; Condition; Iterators) EmbeddedStatement
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ForStatement : Statement
{
public static readonly TokenRole ForKeywordRole = new TokenRole("for");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForeachStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForeachStatement.cs
index 52bf294fe..4abb0a936 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForeachStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForeachStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// foreach (Type VariableName in InExpression) EmbeddedStatement
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ForeachStatement : Statement
{
public static readonly TokenRole AwaitRole = UnaryOperatorExpression.AwaitRole;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/GotoStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/GotoStatement.cs
index 4a8edede1..0f9b373f1 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/GotoStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/GotoStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// "goto Label;"
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class GotoStatement : Statement
{
public static readonly TokenRole GotoKeywordRole = new TokenRole("goto");
@@ -89,7 +89,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// or "goto case LabelExpression;"
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class GotoCaseStatement : Statement
{
public static readonly TokenRole GotoKeywordRole = new TokenRole("goto");
@@ -140,7 +140,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// or "goto default;"
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class GotoDefaultStatement : Statement
{
public static readonly TokenRole GotoKeywordRole = new TokenRole("goto");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/IfElseStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/IfElseStatement.cs
index 983edb058..dd85ad91d 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/IfElseStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/IfElseStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// if (Condition) TrueStatement else FalseStatement
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class IfElseStatement : Statement
{
public readonly static TokenRole IfKeywordRole = new TokenRole("if");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LabelStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LabelStatement.cs
index fe95941c3..d9b34f059 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LabelStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LabelStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Label:
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class LabelStatement : Statement
{
public string Label {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LocalFunctionDeclarationStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LocalFunctionDeclarationStatement.cs
index e98b7afd1..20b8939fc 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LocalFunctionDeclarationStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LocalFunctionDeclarationStatement.cs
@@ -20,7 +20,7 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class LocalFunctionDeclarationStatement : Statement
{
public static readonly Role MethodDeclarationRole = new Role("Method", null);
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LockStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LockStatement.cs
index fc3ccc4a8..d6defd83f 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LockStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/LockStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// lock (Expression) EmbeddedStatement;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class LockStatement : Statement
{
public static readonly TokenRole LockKeywordRole = new TokenRole("lock");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ReturnStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ReturnStatement.cs
index d16609501..a68c96b32 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ReturnStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ReturnStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// return Expression;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ReturnStatement : Statement
{
public static readonly TokenRole ReturnKeywordRole = new TokenRole("return");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/Statement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/Statement.cs
index 8bc13c65f..7767a5590 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/Statement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/Statement.cs
@@ -27,7 +27,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// This class is useful even though it doesn't provide any additional functionality:
/// It can be used to communicate more information in APIs, e.g. "this subnode will always be a statement"
///
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public abstract partial class Statement : AstNode
{
#region PatternPlaceholder
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/SwitchStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/SwitchStatement.cs
index ce0a1b358..cc40c653d 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/SwitchStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/SwitchStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// switch (Expression) { SwitchSections }
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class SwitchStatement : Statement
{
public static readonly TokenRole SwitchKeywordRole = new TokenRole("switch");
@@ -87,7 +87,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class SwitchSection : AstNode
{
#region PatternPlaceholder
@@ -174,7 +174,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class CaseLabel : AstNode
{
public static readonly TokenRole CaseKeywordRole = new TokenRole("case");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ThrowStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ThrowStatement.cs
index 9f6b9b846..e5f19aef9 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ThrowStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/ThrowStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// throw Expression;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ThrowStatement : Statement
{
public static readonly TokenRole ThrowKeywordRole = new TokenRole("throw");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/TryCatchStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/TryCatchStatement.cs
index 534d2de11..b6ae5db04 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/TryCatchStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/TryCatchStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// try TryBlock CatchClauses finally FinallyBlock
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class TryCatchStatement : Statement
{
public static readonly TokenRole TryKeywordRole = new TokenRole("try");
@@ -86,7 +86,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// catch (Type VariableName) { Body }
///
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class CatchClause : AstNode
{
public static readonly TokenRole CatchKeywordRole = new TokenRole("catch");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UncheckedStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UncheckedStatement.cs
index a74cf056b..5f5197bbf 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UncheckedStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UncheckedStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// unchecked BodyBlock
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class UncheckedStatement : Statement
{
public static readonly TokenRole UncheckedKeywordRole = new TokenRole("unchecked");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UnsafeStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UnsafeStatement.cs
index db4dc067a..d0b5a7a72 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UnsafeStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UnsafeStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// unsafe { Body }
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class UnsafeStatement : Statement
{
public static readonly TokenRole UnsafeKeywordRole = new TokenRole("unsafe");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UsingStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UsingStatement.cs
index 45c0d5369..d900c3a22 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UsingStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/UsingStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// [ await ] using (ResourceAcquisition) EmbeddedStatement
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class UsingStatement : Statement
{
public static readonly TokenRole UsingKeywordRole = new TokenRole("using");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/VariableDeclarationStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/VariableDeclarationStatement.cs
index 8d4daa5b0..b9ed5d164 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/VariableDeclarationStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/VariableDeclarationStatement.cs
@@ -27,7 +27,7 @@
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class VariableDeclarationStatement : Statement
{
public static readonly Role ModifierRole = EntityDeclaration.ModifierRole;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/WhileStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/WhileStatement.cs
index 33d01c4a9..8bdcd5f25 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/WhileStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/WhileStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// "while (Condition) EmbeddedStatement"
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class WhileStatement : Statement
{
public static readonly TokenRole WhileKeywordRole = new TokenRole("while");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldBreakStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldBreakStatement.cs
index 96cec086b..5a45f6d3f 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldBreakStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldBreakStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// yield break;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class YieldBreakStatement : Statement
{
public static readonly TokenRole YieldKeywordRole = new TokenRole("yield");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldReturnStatement.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldReturnStatement.cs
index d562f1859..fa25ddbe1 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldReturnStatement.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldReturnStatement.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// yield return Expression;
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class YieldReturnStatement : Statement
{
public static readonly TokenRole YieldKeywordRole = new TokenRole("yield");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/SyntaxTree.cs b/ICSharpCode.Decompiler/CSharp/Syntax/SyntaxTree.cs
index 1187e8e4e..bde54a30b 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/SyntaxTree.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/SyntaxTree.cs
@@ -30,7 +30,7 @@ using ICSharpCode.Decompiler.Util;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class SyntaxTree : AstNode
{
public static readonly Role MemberRole = new Role("Member", AstNode.Null);
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TupleAstType.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TupleAstType.cs
index 73fcb8e8d..fcdaacc64 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TupleAstType.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TupleAstType.cs
@@ -25,7 +25,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class TupleAstType : AstType
{
public static readonly Role ElementRole = new Role("Element", TupleTypeElement.Null);
@@ -63,7 +63,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class TupleTypeElement : AstNode
{
public AstType Type {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/Accessor.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/Accessor.cs
index 2d76d17a2..d7197858c 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/Accessor.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/Accessor.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// get/set/init/add/remove
///
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class Accessor : EntityDeclaration
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ConstructorDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ConstructorDeclaration.cs
index 7456972cb..883e6cf68 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ConstructorDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ConstructorDeclaration.cs
@@ -28,7 +28,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ConstructorDeclaration : EntityDeclaration
{
public static readonly Role InitializerRole = new Role("Initializer", ConstructorInitializer.Null);
@@ -93,7 +93,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
This
}
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class ConstructorInitializer : AstNode
{
public static readonly TokenRole BaseKeywordRole = new TokenRole("base");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/DestructorDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/DestructorDeclaration.cs
index d43276938..ac3657e59 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/DestructorDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/DestructorDeclaration.cs
@@ -28,7 +28,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class DestructorDeclaration : EntityDeclaration
{
public static readonly TokenRole TildeRole = new TokenRole("~");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/EnumMemberDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/EnumMemberDeclaration.cs
index a3726e150..ab6f0e3c1 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/EnumMemberDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/EnumMemberDeclaration.cs
@@ -28,7 +28,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class EnumMemberDeclaration : EntityDeclaration
{
public static readonly Role InitializerRole = new Role("Initializer", Expression.Null);
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/EventDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/EventDeclaration.cs
index 24a752831..0a5bc1b50 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/EventDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/EventDeclaration.cs
@@ -31,7 +31,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class EventDeclaration : EntityDeclaration
{
public static readonly TokenRole EventKeywordRole = new TokenRole("event");
@@ -85,7 +85,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class CustomEventDeclaration : EntityDeclaration
{
public static readonly TokenRole EventKeywordRole = new TokenRole("event");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FieldDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FieldDeclaration.cs
index 553b241bf..840743e82 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FieldDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FieldDeclaration.cs
@@ -31,7 +31,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class FieldDeclaration : EntityDeclaration
{
public override SymbolKind SymbolKind {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FixedFieldDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FixedFieldDeclaration.cs
index 9694d54fa..1ed741e24 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FixedFieldDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FixedFieldDeclaration.cs
@@ -27,7 +27,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class FixedFieldDeclaration : EntityDeclaration
{
public static readonly TokenRole FixedKeywordRole = new TokenRole("fixed");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FixedVariableInitializer.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FixedVariableInitializer.cs
index 8fe3fc4b5..08b9938cd 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FixedVariableInitializer.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/FixedVariableInitializer.cs
@@ -30,7 +30,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Name [ CountExpression ]
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class FixedVariableInitializer : AstNode
{
public override NodeType NodeType {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/IndexerDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/IndexerDeclaration.cs
index ead89ba5e..c3ad4ea6c 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/IndexerDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/IndexerDeclaration.cs
@@ -31,7 +31,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class IndexerDeclaration : EntityDeclaration
{
public static readonly TokenRole ThisKeywordRole = new TokenRole("this");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/MethodDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/MethodDeclaration.cs
index 27d213f81..0c3fc1149 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/MethodDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/MethodDeclaration.cs
@@ -28,7 +28,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class MethodDeclaration : EntityDeclaration
{
public override SymbolKind SymbolKind {
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/OperatorDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/OperatorDeclaration.cs
index 7694d05f4..85719e5b7 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/OperatorDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/OperatorDeclaration.cs
@@ -76,7 +76,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
CheckedExplicit
}
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class OperatorDeclaration : EntityDeclaration
{
public static readonly TokenRole OperatorKeywordRole = new TokenRole("operator");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ParameterDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ParameterDeclaration.cs
index fe1eb1ade..3394aa94d 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ParameterDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ParameterDeclaration.cs
@@ -30,7 +30,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ParameterDeclaration : AstNode
{
public static readonly Role AttributeRole = EntityDeclaration.AttributeRole;
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/PropertyDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/PropertyDeclaration.cs
index f4e5d8ddc..daa35edb0 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/PropertyDeclaration.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/PropertyDeclaration.cs
@@ -28,7 +28,7 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class PropertyDeclaration : EntityDeclaration
{
public static readonly TokenRole GetKeywordRole = new TokenRole("get");
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/VariableInitializer.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/VariableInitializer.cs
index 626c4c03d..efdb31317 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/VariableInitializer.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/VariableInitializer.cs
@@ -27,7 +27,7 @@
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public partial class VariableInitializer : AstNode
{
#region PatternPlaceholder
diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/VariableDesignation.cs b/ICSharpCode.Decompiler/CSharp/Syntax/VariableDesignation.cs
index 2292a6094..2fa76e8c7 100644
--- a/ICSharpCode.Decompiler/CSharp/Syntax/VariableDesignation.cs
+++ b/ICSharpCode.Decompiler/CSharp/Syntax/VariableDesignation.cs
@@ -20,7 +20,7 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
- [DecompilerAstNode(true)]
+ [DecompilerAstNode(hasNullNode: true)]
public abstract partial class VariableDesignation : AstNode
{
public override NodeType NodeType => NodeType.Unknown;
@@ -29,7 +29,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// Identifier
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class SingleVariableDesignation : VariableDesignation
{
public string Identifier {
@@ -66,7 +66,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
///
/// ( VariableDesignation (, VariableDesignation)* )
///
- [DecompilerAstNode(false)]
+ [DecompilerAstNode(hasNullNode: false)]
public partial class ParenthesizedVariableDesignation : VariableDesignation
{