< prev index next >
test/jdk/java/lang/invoke/MethodHandlesTest.java
Print this page
*** 543,573 ****
if (x.toString().contains(s)) return;
assertEquals(s, x);
}
public static class HasFields {
! boolean fZ = false;
! byte fB = (byte)'B';
! short fS = (short)'S';
! char fC = 'C';
! int fI = 'I';
! long fJ = 'J';
! float fF = 'F';
! double fD = 'D';
static boolean sZ = true;
static byte sB = 1+(byte)'B';
static short sS = 1+(short)'S';
static char sC = 1+'C';
static int sI = 1+'I';
static long sJ = 1+'J';
static float sF = 1+'F';
static double sD = 1+'D';
! Object fL = 'L';
! String fR = "R";
static Object sL = 'M';
static String sR = "S";
static final Object[][] CASES;
static {
ArrayList<Object[]> cases = new ArrayList<>();
Object types[][] = {
--- 543,583 ----
if (x.toString().contains(s)) return;
assertEquals(s, x);
}
public static class HasFields {
! boolean iZ = false;
! byte iB = (byte)'B';
! short iS = (short)'S';
! char iC = 'C';
! int iI = 'I';
! long iJ = 'J';
! float iF = 'F';
! double iD = 'D';
static boolean sZ = true;
static byte sB = 1+(byte)'B';
static short sS = 1+(short)'S';
static char sC = 1+'C';
static int sI = 1+'I';
static long sJ = 1+'J';
static float sF = 1+'F';
static double sD = 1+'D';
+ final static boolean fsZ = false;
+ final static byte fsB = 2+(byte)'B';
+ final static short fsS = 2+(short)'S';
+ final static char fsC = 2+'C';
+ final static int fsI = 2+'I';
+ final static long fsJ = 2+'J';
+ final static float fsF = 2+'F';
+ final static double fsD = 2+'D';
! Object iL = 'L';
! String iR = "R";
static Object sL = 'M';
static String sR = "S";
+ final static Object fsL = 'N';
+ final static String fsR = "T";
static final Object[][] CASES;
static {
ArrayList<Object[]> cases = new ArrayList<>();
Object types[][] = {
*** 577,590 ****
{'Z',boolean.class}, {'B',byte.class},
{'S',short.class}, {'C',char.class},
};
HasFields fields = new HasFields();
for (Object[] t : types) {
! for (int kind = 0; kind <= 1; kind++) {
boolean isStatic = (kind != 0);
char btc = (Character)t[0];
! String name = (isStatic ? "s" : "f") + btc;
Class<?> type = (Class<?>) t[1];
Object value;
Field field;
try {
field = HasFields.class.getDeclaredField(name);
--- 587,602 ----
{'Z',boolean.class}, {'B',byte.class},
{'S',short.class}, {'C',char.class},
};
HasFields fields = new HasFields();
for (Object[] t : types) {
! for (int kind = 0; kind <= 2; kind++) {
boolean isStatic = (kind != 0);
+ boolean isFinal = (kind == 2);
char btc = (Character)t[0];
! String name = (isStatic ? "s" : "i") + btc;
! if (isFinal) name = "f" + name;
Class<?> type = (Class<?>) t[1];
Object value;
Field field;
try {
field = HasFields.class.getDeclaredField(name);
*** 597,611 ****
--- 609,626 ----
throw new InternalError("cannot fetch field HasFields."+name);
}
if (type == float.class) {
float v = 'F';
if (isStatic) v++;
+ if (isFinal) v++;
assertTrue(value.equals(v));
}
+ if (isFinal && isStatic) field.setAccessible(true);
assertTrue(name.equals(field.getName()));
assertTrue(type.equals(field.getType()));
assertTrue(isStatic == (Modifier.isStatic(field.getModifiers())));
+ assertTrue(isFinal == (Modifier.isFinal(field.getModifiers())));
cases.add(new Object[]{ field, value });
}
}
cases.add(new Object[]{ new Object[]{ false, HasFields.class, "bogus_fD", double.class }, Error.class });
cases.add(new Object[]{ new Object[]{ true, HasFields.class, "bogus_sL", Object.class }, Error.class });
< prev index next >