@@ -81,7 +81,7 @@ Literal _literal(value) {
8181}
8282
8383/// Implements much of [ExpressionBuilder] .
84- abstract class AbstractExpressionMixin extends TopLevelMixin implements ExpressionBuilder {
84+ abstract class AbstractExpressionMixin implements ExpressionBuilder {
8585 @override
8686 ExpressionBuilder operator * (ExpressionBuilder other) {
8787 return new _AsBinaryExpression (
@@ -118,6 +118,15 @@ abstract class AbstractExpressionMixin extends TopLevelMixin implements Expressi
118118 );
119119 }
120120
121+ @override
122+ ExpressionBuilder and (ExpressionBuilder other) {
123+ return new _AsBinaryExpression (
124+ this ,
125+ other,
126+ $and,
127+ );
128+ }
129+
121130 @override
122131 StatementBuilder asAssert () => new _AsAssert (this );
123132
@@ -221,6 +230,15 @@ abstract class AbstractExpressionMixin extends TopLevelMixin implements Expressi
221230 );
222231 }
223232
233+ @override
234+ ExpressionBuilder or (ExpressionBuilder other) {
235+ return new _AsBinaryExpression (
236+ this ,
237+ other,
238+ $or,
239+ );
240+ }
241+
224242 @override
225243 ExpressionBuilder parentheses () => new _ParenthesesExpression (this );
226244
@@ -243,13 +261,17 @@ abstract class ExpressionBuilder
243261 /// Returns as an [ExpressionBuilder] dividing by [other] .
244262 ExpressionBuilder operator / (ExpressionBuilder other);
245263
264+ /// Returns as an [ExpressionBuilder] `&&` [other] .
265+ ExpressionBuilder and (ExpressionBuilder other);
266+
246267 /// Return as a [StatementBuilder] that `assert` s this expression.
247268 StatementBuilder asAssert ();
248269
249270 /// Returns as a [StatementBuilder] that assigns to an existing [variable] .
250271 ///
251272 /// If [target] is specified, determined to be `{target}.{variable}` .
252- StatementBuilder asAssign (String variable, {ExpressionBuilder target, bool nullAware});
273+ StatementBuilder asAssign (String variable,
274+ {ExpressionBuilder target, bool nullAware});
253275
254276 /// Returns as a [StatementBuilder] that assigns to a new `const` [variable] .
255277 StatementBuilder asConst (String variable, [TypeBuilder type]);
@@ -311,6 +333,9 @@ abstract class ExpressionBuilder
311333 /// Returns as an [ExpressionBuilder] comparing using `!=` against [other] .
312334 ExpressionBuilder notEquals (ExpressionBuilder other);
313335
336+ /// Returns as an [ExpressionBuilder] `||` [other] .
337+ ExpressionBuilder or (ExpressionBuilder other);
338+
314339 /// Returns as an [ExpressionBuilder] wrapped in parentheses.
315340 ExpressionBuilder parentheses ();
316341
@@ -363,7 +388,8 @@ class _AsStatement extends TopLevelMixin implements StatementBuilder {
363388 }
364389}
365390
366- class _MemberExpression extends Object with AbstractExpressionMixin , TopLevelMixin {
391+ class _MemberExpression extends Object
392+ with AbstractExpressionMixin , TopLevelMixin {
367393 final String _name;
368394 final ExpressionBuilder _target;
369395
@@ -382,7 +408,8 @@ class _MemberExpression extends Object with AbstractExpressionMixin, TopLevelMix
382408 }
383409}
384410
385- class _LiteralExpression extends Object with AbstractExpressionMixin , TopLevelMixin {
411+ class _LiteralExpression extends Object
412+ with AbstractExpressionMixin , TopLevelMixin {
386413 final Literal _literal;
387414
388415 _LiteralExpression (this ._literal);
@@ -394,7 +421,8 @@ class _LiteralExpression extends Object with AbstractExpressionMixin, TopLevelMi
394421 Expression buildExpression ([_]) => _literal;
395422}
396423
397- class _ParenthesesExpression extends Object with AbstractExpressionMixin , TopLevelMixin {
424+ class _ParenthesesExpression extends Object
425+ with AbstractExpressionMixin , TopLevelMixin {
398426 final ExpressionBuilder _expression;
399427
400428 _ParenthesesExpression (this ._expression);
@@ -422,7 +450,8 @@ ExpressionBuilder _expressionify(v) {
422450 throw new ArgumentError ('Could not expressionify $v ' );
423451}
424452
425- class _TypedListExpression extends Object with AbstractExpressionMixin , TopLevelMixin {
453+ class _TypedListExpression extends Object
454+ with AbstractExpressionMixin , TopLevelMixin {
426455 static List <ExpressionBuilder > _toExpression (Iterable values) {
427456 return values.map (_expressionify).toList ();
428457 }
@@ -457,7 +486,8 @@ class _TypedListExpression extends Object with AbstractExpressionMixin, TopLevel
457486 }
458487}
459488
460- class _TypedMapExpression extends Object with AbstractExpressionMixin , TopLevelMixin {
489+ class _TypedMapExpression extends Object
490+ with AbstractExpressionMixin , TopLevelMixin {
461491 static Map <ExpressionBuilder , ExpressionBuilder > _toExpression (Map values) {
462492 return new Map <ExpressionBuilder , ExpressionBuilder >.fromIterable (
463493 values.keys,
0 commit comments