From c7f2d5edee6fb52a1e72699eec9899f57f38fca2 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Thu, 13 Jun 2013 18:57:33 -0700 Subject: Fix inner class access flags and array modifiers. Inner class access flags should come from the InnerClass attribute. Array classes should all have the ACC_ABSTRACT modifier set. Bug: https://code.google.com/p/android/issues/detail?id=56267 Change-Id: If4793ee6c7a6b24bf4d32ef05167d81b58011188 --- tests/031-class-attributes/src/ClassAttrs.java | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'tests/031-class-attributes/src/ClassAttrs.java') diff --git a/tests/031-class-attributes/src/ClassAttrs.java b/tests/031-class-attributes/src/ClassAttrs.java index d93a9257f..e731c2c42 100644 --- a/tests/031-class-attributes/src/ClassAttrs.java +++ b/tests/031-class-attributes/src/ClassAttrs.java @@ -5,6 +5,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; @@ -21,7 +22,46 @@ public class ClassAttrs { cinner.showMe(); } + public class PublicInnerClass { + } + + protected class ProtectedInnerClass { + } + + private class PrivateInnerClass { + } + + class PackagePrivateInnerClass { + } + + private static void showModifiers(Class c) { + System.out.println(Modifier.toString(c.getModifiers()) + " " + c.getName()); + } + + // https://code.google.com/p/android/issues/detail?id=56267 + private static void test56267() { + // Primitive classes. + showModifiers(int.class); + showModifiers(int[].class); + + // Regular classes. + showModifiers(Object.class); + showModifiers(Object[].class); + + // Inner classes. + showModifiers(PublicInnerClass.class); + showModifiers(PublicInnerClass[].class); + showModifiers(ProtectedInnerClass.class); + showModifiers(ProtectedInnerClass[].class); + showModifiers(PrivateInnerClass.class); + showModifiers(PrivateInnerClass[].class); + showModifiers(PackagePrivateInnerClass.class); + showModifiers(PackagePrivateInnerClass[].class); + } + public static void main() { + test56267(); + printClassAttrs(ClassAttrs.class); printClassAttrs(OtherClass.class); printClassAttrs(OtherPackageClass.class); -- cgit v1.2.3