@@ -23,6 +23,7 @@ part 'expression/assert.dart';
2323part 'expression/assign.dart' ;
2424part 'expression/await.dart' ;
2525part 'expression/cascade.dart' ;
26+ part 'expression/cast.dart' ;
2627part 'expression/index.dart' ;
2728part 'expression/invocation.dart' ;
2829part 'expression/negate.dart' ;
@@ -216,15 +217,18 @@ abstract class AbstractExpressionMixin implements ExpressionBuilder {
216217
217218 @override
218219 InvocationBuilder call (
219- Iterable <ExpressionBuilder > positionalArguments, [
220- Map <String , ExpressionBuilder > namedArguments = const {},
221- ] ) {
220+ Iterable <ExpressionBuilder > positionalArguments, {
221+ Map <String , ExpressionBuilder > namedArguments: const {},
222+ } ) {
222223 final invocation = new InvocationBuilder ._(this );
223224 positionalArguments.forEach (invocation.addPositionalArgument);
224225 namedArguments.forEach (invocation.addNamedArgument);
225226 return invocation;
226227 }
227228
229+ @override
230+ ExpressionBuilder castAs (TypeBuilder type) => new _AsCast (this , type);
231+
228232 @override
229233 ExpressionBuilder cascade (
230234 Iterable <ExpressionBuilder > create (ExpressionBuilder self),
@@ -261,10 +265,15 @@ abstract class AbstractExpressionMixin implements ExpressionBuilder {
261265 @override
262266 InvocationBuilder invoke (
263267 String method,
264- Iterable <ExpressionBuilder > positionalArguments, [
265- Map <String , ExpressionBuilder > namedArguments = const {},
266- ]) {
267- final invocation = new InvocationBuilder ._on (this , method);
268+ Iterable <ExpressionBuilder > positionalArguments, {
269+ Iterable <TypeBuilder > genericTypes: const [],
270+ Map <String , ExpressionBuilder > namedArguments: const {},
271+ }) {
272+ final invocation = new InvocationBuilder ._on (
273+ this ,
274+ method,
275+ genericTypes.toList (),
276+ );
268277 positionalArguments.forEach (invocation.addPositionalArgument);
269278 namedArguments.forEach (invocation.addNamedArgument);
270279 return invocation;
@@ -381,9 +390,12 @@ abstract class ExpressionBuilder
381390
382391 /// Returns as an [InvocationBuilder] with arguments added.
383392 InvocationBuilder call (
384- Iterable <ExpressionBuilder > positionalArguments, [
393+ Iterable <ExpressionBuilder > positionalArguments, {
385394 Map <String , ExpressionBuilder > namedArguments,
386- ]);
395+ });
396+
397+ /// Returns the expression casted as [type] .
398+ ExpressionBuilder castAs (TypeBuilder type);
387399
388400 /// Return as an [ExpressionBuilder] with `..` appended.
389401 ExpressionBuilder cascade (
@@ -405,9 +417,10 @@ abstract class ExpressionBuilder
405417 /// Returns as an [InvocationBuilder] on [method] of this expression.
406418 InvocationBuilder invoke (
407419 String method,
408- Iterable <ExpressionBuilder > positionalArguments, [
420+ Iterable <ExpressionBuilder > positionalArguments, {
421+ Iterable <TypeBuilder > genericTypes,
409422 Map <String , ExpressionBuilder > namedArguments,
410- ] );
423+ } );
411424
412425 /// Returns as an [ExpressionBuilder] negating using the `!` operator.
413426 ExpressionBuilder negate ();
0 commit comments