Repository: groovy Updated Branches: refs/heads/native-lambda f14131ec0 -> ea17e1836
Trivial refactoring: add `INFERRED_PARAMETER_TYPE` Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/ea17e183 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/ea17e183 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/ea17e183 Branch: refs/heads/native-lambda Commit: ea17e18368a402580c170f6c32ebc32e06d5f1c8 Parents: f14131e Author: sunlan <[email protected]> Authored: Mon Jan 22 07:46:10 2018 +0800 Committer: sunlan <[email protected]> Committed: Mon Jan 22 07:46:10 2018 +0800 ---------------------------------------------------------------------- .../groovy/classgen/asm/sc/StaticInvocationWriter.java | 8 ++++---- .../groovy/classgen/asm/sc/StaticTypesLambdaWriter.java | 4 ++-- .../org/codehaus/groovy/transform/stc/StaticTypesMarker.java | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/ea17e183/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java index 22482e5..b254337 100644 --- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java +++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java @@ -75,6 +75,7 @@ import static org.codehaus.groovy.ast.ClassHelper.CLOSURE_TYPE; import static org.codehaus.groovy.ast.ClassHelper.OBJECT_TYPE; import static org.codehaus.groovy.ast.ClassHelper.getWrapper; import static org.codehaus.groovy.transform.sc.StaticCompilationMetadataKeys.PRIVATE_BRIDGE_METHODS; +import static org.codehaus.groovy.transform.stc.StaticTypesMarker.INFERRED_PARAMETER_TYPE; import static org.objectweb.asm.Opcodes.ACONST_NULL; import static org.objectweb.asm.Opcodes.ALOAD; import static org.objectweb.asm.Opcodes.CHECKCAST; @@ -102,7 +103,6 @@ public class StaticInvocationWriter extends InvocationWriter { new Parameter(ClassHelper.OBJECT_TYPE, "args") } ); - public static final String PARAMETER_TYPE = "_parameter_type"; private final AtomicInteger labelCounter = new AtomicInteger(); @@ -436,7 +436,7 @@ public class StaticInvocationWriter extends InvocationWriter { // first parameters as usual for (int i = 0; i < para.length - 1; i++) { Expression expression = argumentList.get(i); - expression.putNodeMetaData(PARAMETER_TYPE, para[i].getType()); + expression.putNodeMetaData(INFERRED_PARAMETER_TYPE, para[i].getType()); expression.visit(acg); if (!isNullConstant(expression)) { operandStack.doGroovyCast(para[i].getType()); @@ -462,7 +462,7 @@ public class StaticInvocationWriter extends InvocationWriter { } else if (argumentListSize == para.length) { for (int i = 0; i < argumentListSize; i++) { Expression expression = argumentList.get(i); - expression.putNodeMetaData(PARAMETER_TYPE, para[i].getType()); + expression.putNodeMetaData(INFERRED_PARAMETER_TYPE, para[i].getType()); expression.visit(acg); if (!isNullConstant(expression)) { operandStack.doGroovyCast(para[i].getType()); @@ -494,7 +494,7 @@ public class StaticInvocationWriter extends InvocationWriter { } for (int i = 0; i < arguments.length; i++) { Expression expression = arguments[i]; - expression.putNodeMetaData(PARAMETER_TYPE, para[i].getType()); + expression.putNodeMetaData(INFERRED_PARAMETER_TYPE, para[i].getType()); expression.visit(acg); if (!isNullConstant(expression)) { operandStack.doGroovyCast(para[i].getType()); http://git-wip-us.apache.org/repos/asf/groovy/blob/ea17e183/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 3e36628..68ad4ad 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 @@ -52,7 +52,7 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import static org.codehaus.groovy.classgen.asm.sc.StaticInvocationWriter.PARAMETER_TYPE; +import static org.codehaus.groovy.transform.stc.StaticTypesMarker.INFERRED_PARAMETER_TYPE; import static org.objectweb.asm.Opcodes.ACC_PUBLIC; import static org.objectweb.asm.Opcodes.ACC_STATIC; import static org.objectweb.asm.Opcodes.ALOAD; @@ -89,7 +89,7 @@ public class StaticTypesLambdaWriter extends LambdaWriter { @Override public void writeLambda(LambdaExpression expression) { - ClassNode parameterType = expression.getNodeMetaData(PARAMETER_TYPE); + ClassNode parameterType = expression.getNodeMetaData(INFERRED_PARAMETER_TYPE); List<MethodNode> abstractMethodNodeList = parameterType.redirect().getMethods().stream() http://git-wip-us.apache.org/repos/asf/groovy/blob/ea17e183/src/main/java/org/codehaus/groovy/transform/stc/StaticTypesMarker.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypesMarker.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypesMarker.java index 9785433..7411308 100644 --- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypesMarker.java +++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypesMarker.java @@ -37,5 +37,6 @@ public enum StaticTypesMarker { PV_FIELDS_MUTATION, // set of private fields that are set from closures or inner classes PV_METHODS_ACCESS, // set of private methods that are accessed from closures or inner classes DYNAMIC_RESOLUTION, // call recognized by a type checking extension as a dynamic method call - SUPER_MOP_METHOD_REQUIRED // used to store the list of MOP methods that still have to be generated + SUPER_MOP_METHOD_REQUIRED, // used to store the list of MOP methods that still have to be generated + INFERRED_PARAMETER_TYPE // used to store the parameter type information of method invocation }
