public static BoundUnaryExpression Unary(SyntaxNode syntax, SyntaxKind kind, BoundExpression expr) { var op = BoundUnaryOperator.Bind(kind, expr.Type) !; return(new BoundUnaryExpression(syntax, op, expr)); }
private BoundExpression Negate(BoundExpression condition) { if (condition is BoundLiteralExpression literal) { var value = (bool)literal.Value; return(new BoundLiteralExpression(condition.Syntax, !value)); } var op = BoundUnaryOperator.Bind(SyntaxKind.ExmToken, BuiltinTypes.Bool) !; return(new BoundUnaryExpression(condition.Syntax, op, condition)); }