Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/NRefactory.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Grunwald <daniel@danielgrunwald.de>2016-07-02 23:23:53 +0300
committerDaniel Grunwald <daniel@danielgrunwald.de>2016-07-09 19:00:18 +0300
commit0254d4899eb45422ecca76fdb41c356976f720d5 (patch)
treedf0c46c80f23c6ab7a8576b189de3715565fc757
parent96c2f37d23dac28119efa02920aaf2c88c4fdcad (diff)
Even in readability mode, don't parenthesize casts of casts
-rw-r--r--ICSharpCode.NRefactory.CSharp/OutputVisitor/InsertParenthesesVisitor.cs5
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;