Skip to content

Commit 26e4984

Browse files
authored
CSharpExpressionPrinter: Wrap expression in parenthesis
Wrap default parameter expressions in parentheses to ensure whole expressions are casted instead of only the first operand.
1 parent 9923d79 commit 26e4984

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/Generator/Generators/CSharp/CSharpExpressionPrinter.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ public string VisitParameter(Parameter parameter)
2727
if (desugared.IsPrimitiveType() &&
2828
(parameter.DefaultArgument.Declaration != null ||
2929
parameter.DefaultArgument.Class == StatementClass.BinaryOperator))
30-
return $"({desugared.Visit(typePrinter)}) {expression}";
30+
return $"({desugared.Visit(typePrinter)}) ({expression})";
3131
var finalType = (desugared.GetFinalPointee() ?? desugared).Desugar();
3232
if (finalType.TryGetClass(out var @class) && @class.IsInterface)
3333
return $@"({@class.Visit(typePrinter)}) ({
34-
@class.OriginalClass.Visit(typePrinter)}) {expression}";
34+
@class.OriginalClass.Visit(typePrinter)}) ({expression})";
3535
return expression;
3636
}
3737

@@ -88,4 +88,4 @@ public string ToString(Type type)
8888

8989
private readonly TypePrinter typePrinter;
9090
}
91-
}
91+
}

0 commit comments

Comments
 (0)