diff options
author | Elliott Hughes <enh@google.com> | 2012-01-31 19:18:51 -0800 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2012-01-31 19:20:20 -0800 |
commit | 741b5b7ef4c7fd4a786364bbf60d515489caff47 (patch) | |
tree | e5d5f9ee5c1fb1c177c453985eeb1242e3d73bf7 /test/031-class-attributes | |
parent | 09cc2d39b3073ab0c613a9f660983e781693d958 (diff) | |
download | art-741b5b7ef4c7fd4a786364bbf60d515489caff47.zip art-741b5b7ef4c7fd4a786364bbf60d515489caff47.tar.gz art-741b5b7ef4c7fd4a786364bbf60d515489caff47.tar.bz2 |
Manually merge my AOSP update to the VM tests.
Original change: https://android-review.googlesource.com/32051
Bug: http://code.google.com/p/android/issues/detail?id=21599
Bug: http://code.google.com/p/android/issues/detail?id=21597
Change-Id: I31e440b66b720647afab54ca39fd6eb1bbb0cb60
Diffstat (limited to 'test/031-class-attributes')
-rw-r--r-- | test/031-class-attributes/expected.txt | 47 | ||||
-rw-r--r-- | test/031-class-attributes/src/ClassAttrs.java | 13 | ||||
-rw-r--r-- | test/031-class-attributes/src/FancyClass.java | 22 |
3 files changed, 79 insertions, 3 deletions
diff --git a/test/031-class-attributes/expected.txt b/test/031-class-attributes/expected.txt index 47eaeee..afa3416 100644 --- a/test/031-class-attributes/expected.txt +++ b/test/031-class-attributes/expected.txt @@ -4,6 +4,7 @@ simple: ClassAttrs genericSignature: null super: class java.lang.Object + genericSuperclass: class java.lang.Object declaring: null enclosing: null enclosingCon: null @@ -21,12 +22,15 @@ isMemberClass: false isPrimitive: false isSynthetic: false + genericInterfaces: [0] + typeParameters: [0] ***** class OtherClass: name: OtherClass canonical: OtherClass simple: OtherClass genericSignature: null super: class java.lang.Object + genericSuperclass: class java.lang.Object declaring: null enclosing: null enclosingCon: null @@ -44,12 +48,15 @@ isMemberClass: false isPrimitive: false isSynthetic: false + genericInterfaces: [0] + typeParameters: [0] ***** class otherpackage.OtherPackageClass: name: otherpackage.OtherPackageClass canonical: otherpackage.OtherPackageClass simple: OtherPackageClass genericSignature: null super: class java.lang.Object + genericSuperclass: class java.lang.Object declaring: null enclosing: null enclosingCon: null @@ -67,12 +74,15 @@ isMemberClass: false isPrimitive: false isSynthetic: false + genericInterfaces: [0] + typeParameters: [0] ***** class ClassAttrs$1InnerNamed: name: ClassAttrs$1InnerNamed canonical: null simple: InnerNamed genericSignature: null super: class java.lang.Object + genericSuperclass: class java.lang.Object declaring: null enclosing: class ClassAttrs enclosingCon: null @@ -90,12 +100,15 @@ isMemberClass: false isPrimitive: false isSynthetic: false + genericInterfaces: [0] + typeParameters: [0] ***** class ClassAttrs$1ConsInnerNamed: name: ClassAttrs$1ConsInnerNamed canonical: null simple: ConsInnerNamed genericSignature: null super: class java.lang.Object + genericSuperclass: class java.lang.Object declaring: null enclosing: class ClassAttrs enclosingCon: ClassAttrs() @@ -113,12 +126,15 @@ isMemberClass: false isPrimitive: false isSynthetic: false + genericInterfaces: [0] + typeParameters: [0] ***** class ClassAttrs$1: name: ClassAttrs$1 canonical: null simple: genericSignature: null super: class OtherClass + genericSuperclass: class OtherClass declaring: null enclosing: class ClassAttrs enclosingCon: null @@ -136,12 +152,15 @@ isMemberClass: false isPrimitive: false isSynthetic: false + genericInterfaces: [0] + typeParameters: [0] ***** class ClassAttrs$MemberClass: name: ClassAttrs$MemberClass canonical: ClassAttrs.MemberClass simple: MemberClass genericSignature: <XYZ:Ljava/lang/Object;>Ljava/lang/Object; super: class java.lang.Object + genericSuperclass: class java.lang.Object declaring: class ClassAttrs enclosing: class ClassAttrs enclosingCon: null @@ -159,6 +178,34 @@ isMemberClass: true isPrimitive: false isSynthetic: false + genericInterfaces: [0] + typeParameters: [1] XYZ +***** class FancyClass: + name: FancyClass + canonical: FancyClass + simple: FancyClass + genericSignature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/HashMap<TK;TV;>;Ljava/util/Map<TK;TV;>; + super: class java.util.HashMap + genericSuperclass: java.util.HashMap<K, V> + declaring: null + enclosing: null + enclosingCon: null + enclosingMeth: null + modifiers: 1 + package: null + declaredClasses: [0] + member classes: [2] class java.util.AbstractMap$SimpleEntry, class java.util.AbstractMap$SimpleImmutableEntry + isAnnotation: false + isAnonymous: false + isArray: false + isEnum: false + isInterface: false + isLocalClass: false + isMemberClass: false + isPrimitive: false + isSynthetic: false + genericInterfaces: [1] java.util.Map<K, V> + typeParameters: [2] K, V constructor signature: (LClassAttrs$MemberClass<TXYZ;>;)V method signature: ()Ljava/lang/Class<TXYZ;>; field signature: LClassAttrs$MemberClass<TXYZ;>; diff --git a/test/031-class-attributes/src/ClassAttrs.java b/test/031-class-attributes/src/ClassAttrs.java index d4d4d0e..c3c61bf 100644 --- a/test/031-class-attributes/src/ClassAttrs.java +++ b/test/031-class-attributes/src/ClassAttrs.java @@ -6,6 +6,7 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Type; +import java.lang.reflect.TypeVariable; public class ClassAttrs { ClassAttrs() { @@ -42,6 +43,9 @@ public class ClassAttrs { /* member, not anonymous, not local */ printClassAttrs(MemberClass.class); + /* fancy */ + printClassAttrs(FancyClass.class); + try { Constructor cons; cons = MemberClass.class.getConstructor( @@ -111,7 +115,6 @@ public class ClassAttrs { * Dump a variety of class attributes. */ public static void printClassAttrs(Class clazz) { - final boolean WORKING = false; Class clazz2; System.out.println("***** " + clazz + ":"); @@ -127,7 +130,7 @@ public class ClassAttrs { System.out.println(" super: " + clazz.getSuperclass()); - if (WORKING) System.out.println(" genericSuperclass: " + System.out.println(" genericSuperclass: " + clazz.getGenericSuperclass()); System.out.println(" declaring: " + clazz.getDeclaringClass()); @@ -166,8 +169,12 @@ public class ClassAttrs { System.out.println(" isSynthetic: " + clazz.isSynthetic()); - if (WORKING) System.out.println(" genericInterfaces: " + System.out.println(" genericInterfaces: " + stringifyTypeArray(clazz.getGenericInterfaces())); + + TypeVariable<Class<?>>[] typeParameters = clazz.getTypeParameters(); + System.out.println(" typeParameters: " + + stringifyTypeArray(typeParameters)); } /* diff --git a/test/031-class-attributes/src/FancyClass.java b/test/031-class-attributes/src/FancyClass.java new file mode 100644 index 0000000..a58b6a6 --- /dev/null +++ b/test/031-class-attributes/src/FancyClass.java @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.util.HashMap; +import java.util.Map; + +public class FancyClass<K,V> extends HashMap<K,V> implements Map<K,V> { +} + |