Test different expressions inside a spread.
diff --git a/test/splitting/lists.stmt b/test/splitting/lists.stmt
index 4b45a1e..bb43056 100644
--- a/test/splitting/lists.stmt
+++ b/test/splitting/lists.stmt
@@ -191,4 +191,34 @@
spread +
expression,
3
+];
+>>> spread cascade
+var list = [1, ...thing..cascade()..another(), 4];
+<<<
+var list = [
+ 1,
+ ...thing
+ ..cascade()
+ ..another(),
+ 4
+];
+>>> spread lambda
+var list = [1, ...() { body; }, 4];
+<<<
+var list = [
+ 1,
+ ...() {
+ body;
+ },
+ 4
+];
+>>> spread immediately invoked lambda
+var list = [1, ...() sync* { yield thing; }(), 4];
+<<<
+var list = [
+ 1,
+ ...() sync* {
+ yield thing;
+ }(),
+ 4
];
\ No newline at end of file
diff --git a/test/splitting/maps.stmt b/test/splitting/maps.stmt
index 31da5ab..2a12eb2 100644
--- a/test/splitting/maps.stmt
+++ b/test/splitting/maps.stmt
@@ -159,4 +159,34 @@
var map = {
// comment
a: value
+};
+>>> spread cascade
+var map = {1: 1, ...thing..cascade()..another(), 4: 4};
+<<<
+var map = {
+ 1: 1,
+ ...thing
+ ..cascade()
+ ..another(),
+ 4: 4
+};
+>>> spread lambda
+var map = {1: 1, ...() { body; }, 4: 4};
+<<<
+var map = {
+ 1: 1,
+ ...() {
+ body;
+ },
+ 4: 4
+};
+>>> spread immediately invoked lambda
+var map = {1: 1, ...() sync* { yield thing; }(), 4: 4};
+<<<
+var map = {
+ 1: 1,
+ ...() sync* {
+ yield thing;
+ }(),
+ 4: 4
};
\ No newline at end of file
diff --git a/test/splitting/sets.stmt b/test/splitting/sets.stmt
index 43e7c3f..0ddcb41 100644
--- a/test/splitting/sets.stmt
+++ b/test/splitting/sets.stmt
@@ -174,4 +174,34 @@
element,
element
+};
+>>> spread cascade
+var set = {1, ...thing..cascade()..another(), 4};
+<<<
+var set = {
+ 1,
+ ...thing
+ ..cascade()
+ ..another(),
+ 4
+};
+>>> spread lambda
+var set = {1, ...() { body; }, 4};
+<<<
+var set = {
+ 1,
+ ...() {
+ body;
+ },
+ 4
+};
+>>> spread immediately invoked lambda
+var set = {1, ...() sync* { yield thing; }(), 4};
+<<<
+var set = {
+ 1,
+ ...() sync* {
+ yield thing;
+ }(),
+ 4
};
\ No newline at end of file