diff options
author | Daniel Grunwald <daniel@danielgrunwald.de> | 2016-07-02 23:23:53 +0300 |
---|---|---|
committer | Daniel Grunwald <daniel@danielgrunwald.de> | 2016-07-09 19:00:18 +0300 |
commit | 0254d4899eb45422ecca76fdb41c356976f720d5 (patch) | |
tree | df0c46c80f23c6ab7a8576b189de3715565fc757 | |
parent | 96c2f37d23dac28119efa02920aaf2c88c4fdcad (diff) |
Even in readability mode, don't parenthesize casts of casts
-rw-r--r-- | ICSharpCode.NRefactory.CSharp/OutputVisitor/InsertParenthesesVisitor.cs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ICSharpCode.NRefactory.CSharp/OutputVisitor/InsertParenthesesVisitor.cs b/ICSharpCode.NRefactory.CSharp/OutputVisitor/InsertParenthesesVisitor.cs index 6a4274dc..4528a5f9 100644 --- a/ICSharpCode.NRefactory.CSharp/OutputVisitor/InsertParenthesesVisitor.cs +++ b/ICSharpCode.NRefactory.CSharp/OutputVisitor/InsertParenthesesVisitor.cs @@ -167,7 +167,10 @@ namespace ICSharpCode.NRefactory.CSharp public override void VisitCastExpression(CastExpression castExpression) { - ParenthesizeIfRequired(castExpression.Expression, InsertParenthesesForReadability ? Primary : Unary); + // Even in readability mode, don't parenthesize casts of casts. + if (!(castExpression.Expression is CastExpression)) { + ParenthesizeIfRequired(castExpression.Expression, InsertParenthesesForReadability ? Primary : Unary); + } // There's a nasty issue in the C# grammar: cast expressions including certain operators are ambiguous in some cases // "(int)-1" is fine, but "(A)-b" is not a cast. UnaryOperatorExpression uoe = castExpression.Expression as UnaryOperatorExpression; |