< 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 >