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

Loading…
Cancel
Save