Index: lib/src/call_chain_visitor.dart |
diff --git a/lib/src/call_chain_visitor.dart b/lib/src/call_chain_visitor.dart |
index 29c04fb28ea4216473b8f780289ee99cc9fcc620..e1fec05eb675af1069817456b3920b1372b864a3 100644 |
--- a/lib/src/call_chain_visitor.dart |
+++ b/lib/src/call_chain_visitor.dart |
@@ -317,7 +317,7 @@ class CallChainVisitor { |
// If the expression ends in an argument list, base the splitting on the |
// last argument. |
- var argumentList; |
+ ArgumentList argumentList; |
if (expression is MethodInvocation) { |
argumentList = expression.argumentList; |
} else if (expression is InstanceCreationExpression) { |
@@ -331,7 +331,9 @@ class CallChainVisitor { |
if (argumentList.arguments.isEmpty) return true; |
var argument = argumentList.arguments.last; |
- if (argument is NamedExpression) argument = argument.expression; |
+ if (argument is NamedExpression) { |
+ argument = (argument as NamedExpression).expression; |
+ } |
// TODO(rnystrom): This logic is similar (but not identical) to |
// ArgumentListVisitor.hasBlockArguments. They overlap conceptually and |
@@ -399,7 +401,10 @@ class CallChainVisitor { |
_endSpan(); |
} |
- _visitor.visit(invocation.argumentList); |
+ _visitor.builder.nestExpression(); |
+ _visitor.visit(invocation.typeArguments); |
+ _visitor.visitArgumentList(invocation.argumentList, nestExpression: false); |
+ _visitor.builder.unnest(); |
} |
void _writeBlockCall(MethodInvocation invocation) { |