diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/java/LambdaUtils.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/java/LambdaUtils.java index e65f0a13e43c..113e649959c4 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/java/LambdaUtils.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/java/LambdaUtils.java @@ -180,6 +180,16 @@ public static String capturingClass(String className) { return className.split(LambdaUtils.SERIALIZATION_TEST_LAMBDA_CLASS_SPLIT_PATTERN)[0]; } + /** + * Checks if the passed class is a lambda class. + * + * @param type the type to be checked + * @return true if type is a lambda class, false instead + */ + public static boolean isLambdaClass(ResolvedJavaType type) { + return isLambdaClassName(type.toClassName()); + } + /** * Checks if the passed class is lambda class. * diff --git a/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/RuntimeCPUFeatureRegion.java b/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/RuntimeCPUFeatureRegion.java index f72b7ba6d21b..7bf45a585b74 100644 --- a/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/RuntimeCPUFeatureRegion.java +++ b/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/RuntimeCPUFeatureRegion.java @@ -233,17 +233,20 @@ private RuntimeCPUFeatureRegion() { *
* All arguments must be compile-time constant.
*/
- public static native RuntimeCPUFeatureRegion enter(@ConstantNodeParameter Enum> arg0);
+ public static native RuntimeCPUFeatureRegion enterSet(@ConstantNodeParameter EnumSet> features);
- public static native RuntimeCPUFeatureRegion enterSet(@ConstantNodeParameter EnumSet> arg0);
+ /**
+ * @see #enterSet(EnumSet)
+ */
+ public static native RuntimeCPUFeatureRegion enter(@ConstantNodeParameter Enum> arg0);
/**
- * @see #enter(Enum)
+ * @see #enterSet(EnumSet)
*/
public static native
+ * Implementation derived from {@link Class#getPackageName()}.
+ */
+ public static String getPackageName(ResolvedJavaType type) {
+ ResolvedJavaType c = type.isArray() ? type.getElementalType() : type;
+ if (c.isPrimitive()) {
+ return "java.lang";
+ }
+ String cn = c.toClassName();
+ int dot = cn.lastIndexOf('.');
+ return (dot != -1) ? cn.substring(0, dot).intern() : "";
+ }
}