OpenJDK / amber / amber
changeset 59189:dda989866962
8235369: Class.toGenericString need to be updated for records
Reviewed-by: vromero, mchung, chegar
author | darcy |
---|---|
date | Thu, 05 Dec 2019 14:19:35 -0800 |
parents | 20dfe7974cc2 |
children | 0bec2ec012fc |
files | src/java.base/share/classes/java/lang/Class.java test/jdk/java/lang/reflect/records/RecordReflectionTest.java |
diffstat | 2 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/java.base/share/classes/java/lang/Class.java Thu Dec 05 14:14:06 2019 -0800 +++ b/src/java.base/share/classes/java/lang/Class.java Thu Dec 05 14:19:35 2019 -0800 @@ -207,8 +207,8 @@ * * The string is formatted as a list of type modifiers, if any, * followed by the kind of type (empty string for primitive types - * and {@code class}, {@code enum}, {@code interface}, or - * <code>@</code>{@code interface}, as appropriate), followed + * and {@code class}, {@code enum}, {@code interface}, + * <code>@</code>{@code interface}, or {@code record} as appropriate), followed * by the type's name, followed by an angle-bracketed * comma-separated list of the type's type parameters, if any, * including informative bounds on the type parameters, if any. @@ -234,6 +234,7 @@ * * @since 1.8 */ + @SuppressWarnings("preview") public String toGenericString() { if (isPrimitive()) { return toString(); @@ -264,6 +265,8 @@ } else { if (isEnum()) sb.append("enum"); + else if (isRecord()) + sb.append("record"); else sb.append("class"); }
--- a/test/jdk/java/lang/reflect/records/RecordReflectionTest.java Thu Dec 05 14:14:06 2019 -0800 +++ b/test/jdk/java/lang/reflect/records/RecordReflectionTest.java Thu Dec 05 14:19:35 2019 -0800 @@ -23,6 +23,7 @@ /* * @test + * @bug 8235369 * @summary reflection test for records * @compile --enable-preview -source ${jdk.version} RecordReflectionTest.java * @run testng/othervm --enable-preview RecordReflectionTest @@ -51,8 +52,11 @@ public void testIsRecord() { assertFalse(NoRecord.class.isRecord()); - for (Class<?> c : List.of(R1.class, R2.class, R3.class)) - assertTrue(c.isRecord()); + for (Class<?> c : List.of(R1.class, R2.class, R3.class)) { + String message = c.toGenericString(); + assertTrue(c.isRecord(), message); + assertTrue(message.contains("record") , message); + } } public void testGetComponentsNoRecord() {