You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2018/05/19 14:02:09 UTC

[3/3] groovy git commit: GROOVY-8579: No bytecode level check is done before producing JDK8+ bytecode (avoid fix for DGM methods)

GROOVY-8579: No bytecode level check is done before producing JDK8+ bytecode (avoid fix for DGM methods)


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

Branch: refs/heads/GROOVY_2_5_X
Commit: 3fbd0b6f638165242d97ba4b372ba0593c80800c
Parents: ae40032
Author: Paul King <pa...@asert.com.au>
Authored: Sat May 19 23:57:11 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Sun May 20 00:01:57 2018 +1000

----------------------------------------------------------------------
 .../codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/3fbd0b6f/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 d82b414..61d2f23 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -3252,7 +3252,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
                             storeType(call, returnType);
                             storeTargetMethod(call, directMethodCallCandidate);
                             ClassNode declaringClass = directMethodCallCandidate.getDeclaringClass();
-                            if (declaringClass.isInterface() && directMethodCallCandidate.isStatic()) {
+                            if (declaringClass.isInterface() && directMethodCallCandidate.isStatic() && !(directMethodCallCandidate instanceof ExtensionMethodNode)) {
                                 typeCheckingContext.getEnclosingClassNode().putNodeMetaData(MINIMUM_BYTECODE_VERSION, Opcodes.V1_8);
                             }
                             String data = chosenReceiver.getData();