< prev index next >
test/java/lang/String/concat/StringConcatFactoryInvariants.java
Print this page
*** 64,74 ****
private static final char TAG_ARG = '\u0001';
private static final char TAG_CONST = '\u0002';
public static void main(String[] args) throws Throwable {
! MethodHandles.Lookup lookup = MethodHandles.publicLookup();
String methodName = "foo";
MethodType mt = MethodType.methodType(String.class, String.class, int.class);
String recipe = "" + TAG_ARG + TAG_ARG + TAG_CONST;
String[] constants = new String[]{"bar"};
--- 64,74 ----
private static final char TAG_ARG = '\u0001';
private static final char TAG_CONST = '\u0002';
public static void main(String[] args) throws Throwable {
! MethodHandles.Lookup lookup = MethodHandles.lookup();
String methodName = "foo";
MethodType mt = MethodType.methodType(String.class, String.class, int.class);
String recipe = "" + TAG_ARG + TAG_ARG + TAG_CONST;
String[] constants = new String[]{"bar"};
*** 234,243 ****
--- 234,251 ----
() -> StringConcatFactory.makeConcat(lookup, methodName, mtEmpty));
// Advanced factory: test empty arguments
ok("Ok to pass empty arguments",
() -> StringConcatFactory.makeConcatWithConstants(lookup, methodName, mtEmpty, recipeEmpty));
+
+ // Simple factory: public Lookup is rejected
+ fail("Passing public Lookup",
+ () -> StringConcatFactory.makeConcat(MethodHandles.publicLookup(), methodName, mtEmpty));
+
+ // Advanced factory: public Lookup is rejected
+ fail("Passing public Lookup",
+ () -> StringConcatFactory.makeConcatWithConstants(MethodHandles.publicLookup(), methodName, mtEmpty, recipeEmpty));
}
public static void ok(String msg, Callable runnable) {
try {
runnable.call();
< prev index next >