You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2020/06/24 00:00:21 UTC

[groovy] branch GROOVY_3_0_X updated: Trivial refactoring: Optional.isPresent() can be replaced with functional-style expression

This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/GROOVY_3_0_X by this push:
     new d970e80  Trivial refactoring: Optional.isPresent() can be replaced with functional-style expression
d970e80 is described below

commit d970e80e6fb609d472c2f07e59ced7073d1ae7c2
Author: Daniel Sun <su...@apache.org>
AuthorDate: Wed Jun 24 07:56:45 2020 +0800

    Trivial refactoring: Optional.isPresent() can be replaced with functional-style expression
    
    (cherry picked from commit 4c21dc17a1277b1db7006d122b1de6da991e3dac)
---
 .../transform/stc/StaticTypeCheckingVisitor.java     |  5 ++---
 .../vmplugin/v8/PluginDefaultGroovyMethods.java      | 20 ++++----------------
 2 files changed, 6 insertions(+), 19 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
index 021bef5..24adb19 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -2005,9 +2005,8 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
 
     private void visitPrefixOrPostifExpression(final Expression origin, final Expression operand, final int operator) {
         Optional<Token> token = TokenUtil.asAssignment(operator);
-        if (token.isPresent()) { // push "operand += 1" or "operand -= 1" onto stack for LHS checks
-            typeCheckingContext.pushEnclosingBinaryExpression(binX(operand, token.get(), constX(1)));
-        }
+        // push "operand += 1" or "operand -= 1" onto stack for LHS checks
+        token.ifPresent(value -> typeCheckingContext.pushEnclosingBinaryExpression(binX(operand, value, constX(1))));
         try {
             operand.visit(this);
             SetterInfo setterInfo = removeSetterInfo(operand);
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
index 3313211..65f2181 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
@@ -276,10 +276,7 @@ public class PluginDefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 3.0.0
      */
     public static <T> OptionalInt mapToInt(final Optional<T> self, final ToIntFunction<? super T> mapper) {
-        if (!self.isPresent()) {
-            return OptionalInt.empty();
-        }
-        return OptionalInt.of(mapper.applyAsInt(self.get()));
+        return self.map(t -> OptionalInt.of(mapper.applyAsInt(t))).orElseGet(OptionalInt::empty);
     }
 
     /**
@@ -293,10 +290,7 @@ public class PluginDefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 3.0.0
      */
     public static <T> OptionalLong mapToLong(final Optional<T> self, final ToLongFunction<? super T> mapper) {
-        if (!self.isPresent()) {
-            return OptionalLong.empty();
-        }
-        return OptionalLong.of(mapper.applyAsLong(self.get()));
+        return self.map(t -> OptionalLong.of(mapper.applyAsLong(t))).orElseGet(OptionalLong::empty);
     }
 
     /**
@@ -310,10 +304,7 @@ public class PluginDefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 3.0.0
      */
     public static <T> OptionalDouble mapToDouble(final Optional<T> self, final ToDoubleFunction<? super T> mapper) {
-        if (!self.isPresent()) {
-            return OptionalDouble.empty();
-        }
-        return OptionalDouble.of(mapper.applyAsDouble(self.get()));
+        return self.map(t -> OptionalDouble.of(mapper.applyAsDouble(t))).orElseGet(OptionalDouble::empty);
     }
 
     /**
@@ -333,10 +324,7 @@ public class PluginDefaultGroovyMethods extends DefaultGroovyMethodsSupport {
     public static <S,T> Optional<T> collect(final Optional<S> self, @ClosureParams(FirstParam.FirstGenericType.class) final Closure<T> transform) {
         Objects.requireNonNull(self);
         Objects.requireNonNull(transform);
-        if (!self.isPresent()) {
-            return Optional.empty();
-        }
-        return Optional.ofNullable(transform.call(self.get()));
+        return self.map(transform::call);
     }
 
     /**