Browse Source

Fix output of space before array initializer expression.

pull/927/head
Siegfried Pammer 8 years ago
parent
commit
e1baac3a9c
  1. 13
      ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpOutputVisitor.cs

13
ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpOutputVisitor.cs

@ -90,6 +90,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor @@ -90,6 +90,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
Space(policy.SpaceBeforeBracketComma);
// TODO: Comma policy has changed.
writer.WriteToken(Roles.Comma, ",");
isAfterSpace = false;
Space(!noSpaceAfterComma && policy.SpaceAfterBracketComma);
// TODO: Comma policy has changed.
}
@ -194,6 +195,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor @@ -194,6 +195,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
#region Write tokens
protected bool isAtStartOfLine = true;
protected bool isAfterSpace;
/// <summary>
/// Writes a keyword, and all specials up to
@ -207,18 +209,21 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor @@ -207,18 +209,21 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
{
writer.WriteKeyword(tokenRole, token);
isAtStartOfLine = false;
isAfterSpace = false;
}
protected virtual void WriteIdentifier(Identifier identifier)
{
writer.WriteIdentifier(identifier);
isAtStartOfLine = false;
isAfterSpace = false;
}
protected virtual void WriteIdentifier(string identifier)
{
AstType.Create(identifier).AcceptVisitor(this);
isAtStartOfLine = false;
isAfterSpace = false;
}
protected virtual void WriteToken(TokenRole tokenRole)
@ -230,6 +235,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor @@ -230,6 +235,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
{
writer.WriteToken(tokenRole, token);
isAtStartOfLine = false;
isAfterSpace = false;
}
protected virtual void LPar()
@ -260,8 +266,9 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor @@ -260,8 +266,9 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
/// </summary>
protected virtual void Space(bool addSpace = true)
{
if (addSpace) {
if (addSpace && !isAfterSpace) {
writer.Space();
isAfterSpace = true;
}
}
@ -269,6 +276,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor @@ -269,6 +276,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
{
writer.NewLine();
isAtStartOfLine = true;
isAfterSpace = false;
}
protected virtual void OpenBrace(BraceStyle style)
@ -278,7 +286,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor @@ -278,7 +286,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
case BraceStyle.EndOfLine:
case BraceStyle.BannerStyle:
if (!isAtStartOfLine)
writer.Space();
Space();
writer.WriteToken(Roles.LBrace, "{");
break;
case BraceStyle.EndOfLineWithoutSpace:
@ -937,6 +945,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor @@ -937,6 +945,7 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
{
StartNode(primitiveExpression);
writer.WritePrimitiveValue(primitiveExpression.Value, primitiveExpression.UnsafeLiteralValue);
isAfterSpace = false;
EndNode(primitiveExpression);
}
#endregion

Loading…
Cancel
Save