Remove unnecessary check of `FunctionalInterface`

Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/dbcac60f
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/dbcac60f
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/dbcac60f

Branch: refs/heads/native-lambda
Commit: dbcac60f64f921cd5e8ee02c4af126c9a6d8b883
Parents: 552e010
Author: sunlan <sun...@apache.org>
Authored: Wed Jan 31 16:38:43 2018 +0800
Committer: sunlan <sun...@apache.org>
Committed: Wed Jan 31 16:38:43 2018 +0800

----------------------------------------------------------------------
 src/main/java/org/codehaus/groovy/ast/ClassHelper.java           | 4 ----
 .../java/org/codehaus/groovy/classgen/asm/InvocationWriter.java  | 2 +-
 .../codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java | 2 +-
 .../codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java | 2 +-
 4 files changed, 3 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/dbcac60f/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassHelper.java 
b/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
index 5f5fc3f..93658d7 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
@@ -395,10 +395,6 @@ public class ClassHelper {
         return findSAM(type) != null;
     }
 
-    public static boolean isFunctionInterface(ClassNode type) {
-        return type.isInterface() && 
!type.getAnnotations(FunctionalInterface_Type).isEmpty() && isSAMType(type);
-    }
-
     /**
      * Returns the single abstract method of a class node, if it is a SAM 
type, or null otherwise.
      *

http://git-wip-us.apache.org/repos/asf/groovy/blob/dbcac60f/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java 
b/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
index bfb9f7d..bc56b5a 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
@@ -494,7 +494,7 @@ public class InvocationWriter {
             return false;
         }
 
-        if (ClassHelper.isFunctionInterface(objectExpression.getType())) {
+        if (ClassHelper.isSAMType(objectExpression.getType())) {
             return true;
         }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/dbcac60f/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
 
b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
index 35d2269..a1a797c 100644
--- 
a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
+++ 
b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
@@ -96,7 +96,7 @@ public class StaticTypesLambdaWriter extends LambdaWriter {
     public void writeLambda(LambdaExpression expression) {
         ClassNode lambdaType = getLambdaType(expression);
 
-        if (!ClassHelper.isFunctionInterface(lambdaType.redirect())) {
+        if (!ClassHelper.isSAMType(lambdaType.redirect())) {
             // if the parameter type is not real FunctionInterface, generate 
the default bytecode, which is actually a closure
             super.writeLambda(expression);
             return;

http://git-wip-us.apache.org/repos/asf/groovy/blob/dbcac60f/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
----------------------------------------------------------------------
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 2e4dc2e..dcb3ab6 100644
--- 
a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ 
b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -4119,7 +4119,7 @@ public class StaticTypeCheckingVisitor extends 
ClassCodeVisitorSupport {
                 collectAllInterfaceMethodsByName(receiver, name, methods);
                 methods.addAll(OBJECT_TYPE.getMethods(name));
 
-                if (ClassHelper.isFunctionInterface(receiver)) {
+                if (ClassHelper.isSAMType(receiver)) {
                     MethodNode sam = ClassHelper.findSAM(receiver);
                     MethodNode callMethodNode = new MethodNode("call", 
sam.getModifiers(), sam.getReturnType(), sam.getParameters(), 
sam.getExceptions(), sam.getCode());
                     callMethodNode.setDeclaringClass(sam.getDeclaringClass());

Reply via email to