code_builder
code_builder copied to clipboard
Allow omitting parentheses for Expression.asA(Expression other)
Expression.asA(Expression other) always wraps the code into parentheses. While this is a good default it is not always necessary. The problem for me is that the generated code triggers the linter rule unnecessary_parenthesis in our CI. Unfortunately dart_style auto fixes does not support the removal of unnecessary parenthesis.
My suggestion would be to have an optional parameter. the following:
https://github.com/dart-lang/code_builder/blob/006790d8f3245124cc322bdf50376536ba28d85c/lib/src/specs/expression.dart#L68-L73
becomes
Expression asA(Expression other, { bool parenthesized = true }) {
final exp = BinaryExpression._( expression, other, 'as'));
return parenthesized
? ParenthesizedExpression._(exp)
: exp
}