@ -502,7 +502,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
/// </remarks>
/// </remarks>
protected virtual void WriteEmbeddedStatement ( Statement embeddedStatement , NewLinePlacement nlp = NewLinePlacement . NewLine )
protected virtual void WriteEmbeddedStatement ( Statement embeddedStatement , NewLinePlacement nlp = NewLinePlacement . NewLine )
{
{
if ( embeddedStatement . IsN ull)
if ( embeddedStatement is n ull )
{
{
NewLine ( ) ;
NewLine ( ) ;
return ;
return ;
@ -531,7 +531,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
protected virtual void WriteMethodBody ( BlockStatement body , BraceStyle style , bool newLine = true )
protected virtual void WriteMethodBody ( BlockStatement body , BraceStyle style , bool newLine = true )
{
{
if ( body is null | | body . IsNull )
if ( body is null )
{
{
Semicolon ( ) ;
Semicolon ( ) ;
}
}
@ -552,7 +552,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
protected virtual void WritePrivateImplementationType ( AstType privateImplementationType )
protected virtual void WritePrivateImplementationType ( AstType privateImplementationType )
{
{
if ( privateImplementationType is not null & & ! privateImplementationType . IsNull )
if ( privateImplementationType is not null )
{
{
privateImplementationType . AcceptVisitor ( this ) ;
privateImplementationType . AcceptVisitor ( this ) ;
WriteToken ( Roles . Dot ) ;
WriteToken ( Roles . Dot ) ;
@ -611,7 +611,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
{
{
StartNode ( arrayCreateExpression ) ;
StartNode ( arrayCreateExpression ) ;
WriteKeyword ( ArrayCreateExpression . NewKeywordRole ) ;
WriteKeyword ( ArrayCreateExpression . NewKeywordRole ) ;
arrayCreateExpression . Type . AcceptVisitor ( this ) ;
arrayCreateExpression . Type ? . AcceptVisitor ( this ) ;
if ( arrayCreateExpression . Arguments . Count > 0 )
if ( arrayCreateExpression . Arguments . Count > 0 )
{
{
WriteCommaSeparatedListInBrackets ( arrayCreateExpression . Arguments ) ;
WriteCommaSeparatedListInBrackets ( arrayCreateExpression . Arguments ) ;
@ -765,7 +765,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
public virtual void VisitBinaryOperatorExpression ( BinaryOperatorExpression binaryOperatorExpression )
public virtual void VisitBinaryOperatorExpression ( BinaryOperatorExpression binaryOperatorExpression )
{
{
StartNode ( binaryOperatorExpression ) ;
StartNode ( binaryOperatorExpression ) ;
binaryOperatorExpression . Left . AcceptVisitor ( this ) ;
binaryOperatorExpression . Left ? . AcceptVisitor ( this ) ;
bool spacePolicy ;
bool spacePolicy ;
switch ( binaryOperatorExpression . Operator )
switch ( binaryOperatorExpression . Operator )
{
{
@ -823,7 +823,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
WriteToken ( tokenRole ) ;
WriteToken ( tokenRole ) ;
}
}
Space ( spacePolicy ) ;
Space ( spacePolicy ) ;
binaryOperatorExpression . Right . AcceptVisitor ( this ) ;
binaryOperatorExpression . Right ? . AcceptVisitor ( this ) ;
EndNode ( binaryOperatorExpression ) ;
EndNode ( binaryOperatorExpression ) ;
}
}
@ -1361,7 +1361,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
StartNode ( queryFromClause ) ;
StartNode ( queryFromClause ) ;
WriteKeyword ( QueryFromClause . FromKeywordRole ) ;
WriteKeyword ( QueryFromClause . FromKeywordRole ) ;
Space ( ) ;
Space ( ) ;
queryFromClause . Type . AcceptVisitor ( this ) ;
queryFromClause . Type ? . AcceptVisitor ( this ) ;
Space ( ) ;
Space ( ) ;
WriteIdentifier ( queryFromClause . IdentifierToken ) ;
WriteIdentifier ( queryFromClause . IdentifierToken ) ;
Space ( ) ;
Space ( ) ;
@ -1397,7 +1397,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
{
{
StartNode ( queryJoinClause ) ;
StartNode ( queryJoinClause ) ;
WriteKeyword ( QueryJoinClause . JoinKeywordRole ) ;
WriteKeyword ( QueryJoinClause . JoinKeywordRole ) ;
queryJoinClause . Type . AcceptVisitor ( this ) ;
queryJoinClause . Type ? . AcceptVisitor ( this ) ;
Space ( ) ;
Space ( ) ;
WriteIdentifier ( queryJoinClause . JoinIdentifierToken ) ;
WriteIdentifier ( queryJoinClause . JoinIdentifierToken ) ;
Space ( ) ;
Space ( ) ;
@ -1523,7 +1523,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
WriteAttributes ( delegateDeclaration . Attributes ) ;
WriteAttributes ( delegateDeclaration . Attributes ) ;
WriteModifiers ( delegateDeclaration . Modifiers ) ;
WriteModifiers ( delegateDeclaration . Modifiers ) ;
WriteKeyword ( Roles . DelegateKeyword ) ;
WriteKeyword ( Roles . DelegateKeyword ) ;
delegateDeclaration . ReturnType . AcceptVisitor ( this ) ;
delegateDeclaration . ReturnType ? . AcceptVisitor ( this ) ;
Space ( ) ;
Space ( ) ;
WriteIdentifier ( delegateDeclaration . NameToken ) ;
WriteIdentifier ( delegateDeclaration . NameToken ) ;
WriteTypeParameters ( delegateDeclaration . TypeParameters ) ;
WriteTypeParameters ( delegateDeclaration . TypeParameters ) ;
@ -2416,7 +2416,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
WriteAttributes ( eventDeclaration . Attributes ) ;
WriteAttributes ( eventDeclaration . Attributes ) ;
WriteModifiers ( eventDeclaration . Modifiers ) ;
WriteModifiers ( eventDeclaration . Modifiers ) ;
WriteKeyword ( EventDeclaration . EventKeywordRole ) ;
WriteKeyword ( EventDeclaration . EventKeywordRole ) ;
eventDeclaration . ReturnType . AcceptVisitor ( this ) ;
eventDeclaration . ReturnType ? . AcceptVisitor ( this ) ;
Space ( ) ;
Space ( ) ;
WriteCommaSeparatedList ( eventDeclaration . Variables ) ;
WriteCommaSeparatedList ( eventDeclaration . Variables ) ;
Semicolon ( ) ;
Semicolon ( ) ;
@ -2429,7 +2429,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
WriteAttributes ( customEventDeclaration . Attributes ) ;
WriteAttributes ( customEventDeclaration . Attributes ) ;
WriteModifiers ( customEventDeclaration . Modifiers ) ;
WriteModifiers ( customEventDeclaration . Modifiers ) ;
WriteKeyword ( CustomEventDeclaration . EventKeywordRole ) ;
WriteKeyword ( CustomEventDeclaration . EventKeywordRole ) ;
customEventDeclaration . ReturnType . AcceptVisitor ( this ) ;
customEventDeclaration . ReturnType ? . AcceptVisitor ( this ) ;
Space ( ) ;
Space ( ) ;
WritePrivateImplementationType ( customEventDeclaration . PrivateImplementationType ) ;
WritePrivateImplementationType ( customEventDeclaration . PrivateImplementationType ) ;
WriteIdentifier ( customEventDeclaration . NameToken ) ;
WriteIdentifier ( customEventDeclaration . NameToken ) ;
@ -2452,7 +2452,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
StartNode ( fieldDeclaration ) ;
StartNode ( fieldDeclaration ) ;
WriteAttributes ( fieldDeclaration . Attributes ) ;
WriteAttributes ( fieldDeclaration . Attributes ) ;
WriteModifiers ( fieldDeclaration . Modifiers ) ;
WriteModifiers ( fieldDeclaration . Modifiers ) ;
fieldDeclaration . ReturnType . AcceptVisitor ( this ) ;
fieldDeclaration . ReturnType ? . AcceptVisitor ( this ) ;
Space ( ) ;
Space ( ) ;
WriteCommaSeparatedList ( fieldDeclaration . Variables ) ;
WriteCommaSeparatedList ( fieldDeclaration . Variables ) ;
Semicolon ( ) ;
Semicolon ( ) ;
@ -2466,7 +2466,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
WriteModifiers ( fixedFieldDeclaration . Modifiers ) ;
WriteModifiers ( fixedFieldDeclaration . Modifiers ) ;
WriteKeyword ( FixedFieldDeclaration . FixedKeywordRole ) ;
WriteKeyword ( FixedFieldDeclaration . FixedKeywordRole ) ;
Space ( ) ;
Space ( ) ;
fixedFieldDeclaration . ReturnType . AcceptVisitor ( this ) ;
fixedFieldDeclaration . ReturnType ? . AcceptVisitor ( this ) ;
Space ( ) ;
Space ( ) ;
WriteCommaSeparatedList ( fixedFieldDeclaration . Variables ) ;
WriteCommaSeparatedList ( fixedFieldDeclaration . Variables ) ;
Semicolon ( ) ;
Semicolon ( ) ;
@ -2477,7 +2477,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
{
{
StartNode ( fixedVariableInitializer ) ;
StartNode ( fixedVariableInitializer ) ;
WriteIdentifier ( fixedVariableInitializer . NameToken ) ;
WriteIdentifier ( fixedVariableInitializer . NameToken ) ;
if ( ! fixedVariableInitializer . CountExpression . IsN ull)
if ( fixedVariableInitializer . CountExpression is not n ull )
{
{
WriteToken ( Roles . LBracket ) ;
WriteToken ( Roles . LBracket ) ;
Space ( policy . SpacesWithinBrackets ) ;
Space ( policy . SpacesWithinBrackets ) ;
@ -2493,7 +2493,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
StartNode ( indexerDeclaration ) ;
StartNode ( indexerDeclaration ) ;
WriteAttributes ( indexerDeclaration . Attributes ) ;
WriteAttributes ( indexerDeclaration . Attributes ) ;
WriteModifiers ( indexerDeclaration . Modifiers ) ;
WriteModifiers ( indexerDeclaration . Modifiers ) ;
indexerDeclaration . ReturnType . AcceptVisitor ( this ) ;
indexerDeclaration . ReturnType ? . AcceptVisitor ( this ) ;
Space ( ) ;
Space ( ) ;
WritePrivateImplementationType ( indexerDeclaration . PrivateImplementationType ) ;
WritePrivateImplementationType ( indexerDeclaration . PrivateImplementationType ) ;
WriteKeyword ( IndexerDeclaration . ThisKeywordRole ) ;
WriteKeyword ( IndexerDeclaration . ThisKeywordRole ) ;
@ -2538,7 +2538,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
StartNode ( methodDeclaration ) ;
StartNode ( methodDeclaration ) ;
WriteAttributes ( methodDeclaration . Attributes ) ;
WriteAttributes ( methodDeclaration . Attributes ) ;
WriteModifiers ( methodDeclaration . Modifiers ) ;
WriteModifiers ( methodDeclaration . Modifiers ) ;
methodDeclaration . ReturnType . AcceptVisitor ( this ) ;
methodDeclaration . ReturnType ? . AcceptVisitor ( this ) ;
Space ( ) ;
Space ( ) ;
WritePrivateImplementationType ( methodDeclaration . PrivateImplementationType ) ;
WritePrivateImplementationType ( methodDeclaration . PrivateImplementationType ) ;
WriteIdentifier ( methodDeclaration . NameToken ) ;
WriteIdentifier ( methodDeclaration . NameToken ) ;
@ -2568,7 +2568,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
}
}
else
else
{
{
operatorDeclaration . ReturnType . AcceptVisitor ( this ) ;
operatorDeclaration . ReturnType ? . AcceptVisitor ( this ) ;
}
}
Space ( ) ;
Space ( ) ;
WritePrivateImplementationType ( operatorDeclaration . PrivateImplementationType ) ;
WritePrivateImplementationType ( operatorDeclaration . PrivateImplementationType ) ;
@ -2583,7 +2583,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
| | operatorDeclaration . OperatorType = = OperatorType . CheckedExplicit
| | operatorDeclaration . OperatorType = = OperatorType . CheckedExplicit
| | operatorDeclaration . OperatorType = = OperatorType . Implicit )
| | operatorDeclaration . OperatorType = = OperatorType . Implicit )
{
{
operatorDeclaration . ReturnType . AcceptVisitor ( this ) ;
operatorDeclaration . ReturnType ? . AcceptVisitor ( this ) ;
}
}
else
else
{
{
@ -2658,7 +2658,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
StartNode ( propertyDeclaration ) ;
StartNode ( propertyDeclaration ) ;
WriteAttributes ( propertyDeclaration . Attributes ) ;
WriteAttributes ( propertyDeclaration . Attributes ) ;
WriteModifiers ( propertyDeclaration . Modifiers ) ;
WriteModifiers ( propertyDeclaration . Modifiers ) ;
propertyDeclaration . ReturnType . AcceptVisitor ( this ) ;
propertyDeclaration . ReturnType ? . AcceptVisitor ( this ) ;
Space ( ) ;
Space ( ) ;
WritePrivateImplementationType ( propertyDeclaration . PrivateImplementationType ) ;
WritePrivateImplementationType ( propertyDeclaration . PrivateImplementationType ) ;
WriteIdentifier ( propertyDeclaration . NameToken ) ;
WriteIdentifier ( propertyDeclaration . NameToken ) ;
@ -2682,7 +2682,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
}
}
}
}
CloseBrace ( isSingleLine ? BraceStyle . EndOfLine : policy . PropertyBraceStyle , unindent : ! isSingleLine ) ;
CloseBrace ( isSingleLine ? BraceStyle . EndOfLine : policy . PropertyBraceStyle , unindent : ! isSingleLine ) ;
if ( ! propertyDeclaration . Initializer . IsN ull)
if ( propertyDeclaration . Initializer is not n ull )
{
{
Space ( policy . SpaceAroundAssignment ) ;
Space ( policy . SpaceAroundAssignment ) ;
WriteToken ( Roles . Assign ) ;
WriteToken ( Roles . Assign ) ;
@ -2752,7 +2752,9 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
public virtual void VisitSimpleType ( SimpleType simpleType )
public virtual void VisitSimpleType ( SimpleType simpleType )
{
{
StartNode ( simpleType ) ;
StartNode ( simpleType ) ;
WriteIdentifier ( simpleType . IdentifierToken ) ;
// An unbound generic type argument (the '' in 'typeof(List<>)') is a nameless SimpleType.
if ( simpleType . IdentifierToken is not null )
WriteIdentifier ( simpleType . IdentifierToken ) ;
WriteTypeArguments ( simpleType . TypeArguments ) ;
WriteTypeArguments ( simpleType . TypeArguments ) ;
EndNode ( simpleType ) ;
EndNode ( simpleType ) ;
}
}
@ -2956,10 +2958,6 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
WriteIdentifier ( identifier ) ;
WriteIdentifier ( identifier ) ;
}
}
void IAstVisitor . VisitNullNode ( AstNode nullNode )
{
}
void IAstVisitor . VisitErrorNode ( AstNode errorNode )
void IAstVisitor . VisitErrorNode ( AstNode errorNode )
{
{
StartNode ( errorNode ) ;
StartNode ( errorNode ) ;