diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java index 95495bba558..2d7332d3320 100644 --- a/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java +++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java @@ -47,9 +47,12 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; /** * A metaclass for closures generated by the Groovy compiler. These classes @@ -372,17 +375,9 @@ private static Object invokeOnDelegationObject(final Class sender, final Object throw first; } + private static final Set INTERNAL_METHODS = new HashSet<>(Arrays.asList("curry", "ncurry", "rcurry", "leftShift", "rightShift")); private static boolean isInternalMethod(final String methodName) { - switch (methodName) { - case "curry": - case "ncurry": - case "rcurry": - case "leftShift": - case "rightShift": - return true; - default: - return false; - } + return INTERNAL_METHODS.contains(methodName); } private synchronized void initAttributes() {