summaryrefslogtreecommitdiffstats
path: root/tests/031-class-attributes/src/ClassAttrs.java
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2013-06-13 18:57:33 -0700
committerElliott Hughes <enh@google.com>2013-06-14 10:38:55 -0700
commitc7f2d5edee6fb52a1e72699eec9899f57f38fca2 (patch)
tree41d1ba35087755ab49bf21551a899aa60216f173 /tests/031-class-attributes/src/ClassAttrs.java
parent6529809bd4448a76622a08cf63829cab73d91b9a (diff)
downloadandroid_dalvik-c7f2d5edee6fb52a1e72699eec9899f57f38fca2.tar.gz
android_dalvik-c7f2d5edee6fb52a1e72699eec9899f57f38fca2.tar.bz2
android_dalvik-c7f2d5edee6fb52a1e72699eec9899f57f38fca2.zip
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
Diffstat (limited to 'tests/031-class-attributes/src/ClassAttrs.java')
-rw-r--r--tests/031-class-attributes/src/ClassAttrs.java40
1 files changed, 40 insertions, 0 deletions
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);