diff --git a/user/super/com/google/gwt/emul/java/util/stream/DoubleStream.java b/user/super/com/google/gwt/emul/java/util/stream/DoubleStream.java
index 2198f00..99c0771 100644
--- a/user/super/com/google/gwt/emul/java/util/stream/DoubleStream.java
+++ b/user/super/com/google/gwt/emul/java/util/stream/DoubleStream.java
@@ -635,7 +635,7 @@
     @Override
     public boolean tryAdvance(DoubleConsumer action) {
       while (skip > 0) {
-        if (!original.tryAdvance((double ignore) -> {})) {
+        if (!original.tryAdvance((double ignore) -> { })) {
           return false;
         }
         skip--;
@@ -782,7 +782,7 @@
     public long count() {
       terminate();
       long count = 0;
-      while (spliterator.tryAdvance((double value) -> {})) {
+      while (spliterator.tryAdvance((double value) -> { })) {
         count++;
       }
       return count;
diff --git a/user/super/com/google/gwt/emul/java/util/stream/IntStream.java b/user/super/com/google/gwt/emul/java/util/stream/IntStream.java
index d6de0d9..c6c42e9 100644
--- a/user/super/com/google/gwt/emul/java/util/stream/IntStream.java
+++ b/user/super/com/google/gwt/emul/java/util/stream/IntStream.java
@@ -693,7 +693,7 @@
     @Override
     public boolean tryAdvance(IntConsumer action) {
       while (skip > 0) {
-        if (!original.tryAdvance((int ignore) -> {})) {
+        if (!original.tryAdvance((int ignore) -> { })) {
           return false;
         }
         skip--;
@@ -811,7 +811,7 @@
     public long count() {
       terminate();
       long count = 0;
-      while (spliterator.tryAdvance((int value) -> {})) {
+      while (spliterator.tryAdvance((int value) -> { })) {
         count++;
       }
       return count;
diff --git a/user/super/com/google/gwt/emul/java/util/stream/LongStream.java b/user/super/com/google/gwt/emul/java/util/stream/LongStream.java
index f012aea..9f354b7 100644
--- a/user/super/com/google/gwt/emul/java/util/stream/LongStream.java
+++ b/user/super/com/google/gwt/emul/java/util/stream/LongStream.java
@@ -683,7 +683,7 @@
     @Override
     public boolean tryAdvance(LongConsumer action) {
       while (skip > 0) {
-        if (!original.tryAdvance((long ignore) -> {})) {
+        if (!original.tryAdvance((long ignore) -> { })) {
           return false;
         }
         skip--;
@@ -823,7 +823,7 @@
     public long count() {
       terminate();
       long count = 0;
-      while (spliterator.tryAdvance((long value) -> {})) {
+      while (spliterator.tryAdvance((long value) -> { })) {
         count++;
       }
       return count;
diff --git a/user/super/com/google/gwt/emul/java/util/stream/Stream.java b/user/super/com/google/gwt/emul/java/util/stream/Stream.java
index d4b8dca..dfd6d8a 100644
--- a/user/super/com/google/gwt/emul/java/util/stream/Stream.java
+++ b/user/super/com/google/gwt/emul/java/util/stream/Stream.java
@@ -667,7 +667,7 @@
     @Override
     public boolean tryAdvance(Consumer<? super T> action) {
       while (skip > 0) {
-        if (!original.tryAdvance(ignore -> {})) {
+        if (!original.tryAdvance(ignore -> { })) {
           return false;
         }
         skip--;
@@ -739,7 +739,7 @@
     public long count() {
       terminate();
       long count = 0;
-      while (spliterator.tryAdvance(a -> {})) {
+      while (spliterator.tryAdvance(a -> { })) {
         count++;
       }
       return count;
