diff --git a/CHANGELOG.md b/CHANGELOG.md
index 58bbc3a..d71f499 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,9 @@
 # 1.0.4-dev
+
 * Ensure formatter throws an exception instead of introducing non-whitespace
-  changes.
+  changes. This sanity check ensures the formatter does not erase user code
+  when the formatter itself contains a bug.
+* Preserve type arguments in function expression invocations (#621).
 
 # 1.0.3
 
diff --git a/lib/src/source_visitor.dart b/lib/src/source_visitor.dart
index 213f7a4..f78627e 100644
--- a/lib/src/source_visitor.dart
+++ b/lib/src/source_visitor.dart
@@ -1151,8 +1151,16 @@
   }
 
   visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
+    // Try to keep the entire invocation one line.
+    builder.startSpan();
+    builder.nestExpression();
+
     visit(node.function);
-    visit(node.argumentList);
+    visit(node.typeArguments);
+    visitArgumentList(node.argumentList, nestExpression: false);
+
+    builder.unnest();
+    builder.endSpan();
   }
 
   visitFunctionTypeAlias(FunctionTypeAlias node) {
diff --git a/test/regression/0600/0621.stmt b/test/regression/0600/0621.stmt
new file mode 100644
index 0000000..08cb930
--- /dev/null
+++ b/test/regression/0600/0621.stmt
@@ -0,0 +1,8 @@
+>>>
+var x = (f as dynamic)<int>(40, 2);
+<<<
+var x = (f as dynamic)<int>(40, 2);
+>>>
+var y = (f as dynamic)<String>('hi', '!');
+<<<
+var y = (f as dynamic)<String>('hi', '!');
\ No newline at end of file
diff --git a/test/splitting/type_arguments.stmt b/test/splitting/type_arguments.stmt
index 2ba351a..9675153 100644
--- a/test/splitting/type_arguments.stmt
+++ b/test/splitting/type_arguments.stmt
@@ -65,4 +65,33 @@
 {
   <int>[];
   <int>[];
-}
\ No newline at end of file
+}
+>>> type arguments on invocation expressions, all on one line
+(fn)<T, S>(1, 2);
+<<<
+(fn)<T, S>(1, 2);
+>>> type arguments on invocation, prefer to not split at type args
+(longFunction)<TypeArgument>(valueArgument);
+<<<
+(longFunction)<TypeArgument>(
+    valueArgument);
+>>> type arguments on invocation expressions split both type and value arguments
+(longFunction)<First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth>(first, second, third, fourth, fifth, sixth, seventh, eighth);
+<<<
+(longFunction)<
+        First,
+        Second,
+        Third,
+        Fourth,
+        Fifth,
+        Sixth,
+        Seventh,
+        Eighth>(
+    first,
+    second,
+    third,
+    fourth,
+    fifth,
+    sixth,
+    seventh,
+    eighth);
\ No newline at end of file
