JDK 13 RFR of JDK-708660: (reflect) Clarifications to javadoc for getGeneric*Type methods in j.l.r
Lance Andersen
lance.andersen at oracle.com
Mon Jun 10 23:58:17 UTC 2019
looking good Joe
> On Jun 10, 2019, at 7:20 PM, Joe Darcy <joe.darcy at oracle.com> wrote:
>
> Proposed reduced scope changes for JDK-708660 at:
>
> http://cr.openjdk.java.net/~darcy/7086604.1/
>
> Corresponding patch below.
>
> Type vs declaration annotation clarification for core reflection will be done as follow-up work under JDK-8225540.
>
> Thanks,
>
> -Joe
>
> --- old/src/java.base/share/classes/java/lang/Class.java 2019-06-10 16:13:09.660882746 -0700
> +++ new/src/java.base/share/classes/java/lang/Class.java 2019-06-10 16:13:09.308882746 -0700
> @@ -917,7 +917,7 @@
> *
> * <p>If the superclass is a parameterized type, the {@code Type}
> * object returned must accurately reflect the actual type
> - * parameters used in the source code. The parameterized type
> + * arguments used in the source code. The parameterized type
> * representing the superclass is created if it had not been
> * created before. See the declaration of {@link
> * java.lang.reflect.ParameterizedType ParameterizedType} for the
> @@ -1097,7 +1097,7 @@
> *
> * <p>If a superinterface is a parameterized type, the
> * {@code Type} object returned for it must accurately reflect
> - * the actual type parameters used in the source code. The
> + * the actual type arguments used in the source code. The
> * parameterized type representing each superinterface is created
> * if it had not been created before. See the declaration of
> * {@link java.lang.reflect.ParameterizedType ParameterizedType}
> --- old/src/java.base/share/classes/java/lang/reflect/Executable.java 2019-06-10 16:13:10.320882746 -0700
> +++ new/src/java.base/share/classes/java/lang/reflect/Executable.java 2019-06-10 16:13:09.968882746 -0700
> @@ -266,7 +266,7 @@
> *
> * <p>If a formal parameter type is a parameterized type,
> * the {@code Type} object returned for it must accurately reflect
> - * the actual type parameters used in the source code.
> + * the actual type arguments used in the source code.
> *
> * <p>If a formal parameter type is a type variable or a parameterized
> * type, it is created. Otherwise, it is resolved.
> --- old/src/java.base/share/classes/java/lang/reflect/Field.java 2019-06-10 16:13:10.932882746 -0700
> +++ new/src/java.base/share/classes/java/lang/reflect/Field.java 2019-06-10 16:13:10.588882746 -0700
> @@ -243,9 +243,9 @@
> * Returns a {@code Type} object that represents the declared type for
> * the field represented by this {@code Field} object.
> *
> - * <p>If the {@code Type} is a parameterized type, the
> - * {@code Type} object returned must accurately reflect the
> - * actual type parameters used in the source code.
> + * <p>If the declared type of the field is a parameterized type,
> + * the {@code Type} object returned must accurately reflect the
> + * actual type arguments used in the source code.
> *
> * <p>If the type of the underlying field is a type variable or a
> * parameterized type, it is created. Otherwise, it is resolved.
> --- old/src/java.base/share/classes/java/lang/reflect/Method.java 2019-06-10 16:13:11.564882746 -0700
> +++ new/src/java.base/share/classes/java/lang/reflect/Method.java 2019-06-10 16:13:11.224882746 -0700
> @@ -269,7 +269,7 @@
> *
> * <p>If the return type is a parameterized type,
> * the {@code Type} object returned must accurately reflect
> - * the actual type parameters used in the source code.
> + * the actual type arguments used in the source code.
> *
> * <p>If the return type is a type variable or a parameterized type, it
> * is created. Otherwise, it is resolved.
> --- old/src/java.base/share/classes/java/lang/reflect/TypeVariable.java 2019-06-10 16:13:12.220882746 -0700
> +++ new/src/java.base/share/classes/java/lang/reflect/TypeVariable.java 2019-06-10 16:13:11.852882746 -0700
> @@ -72,7 +72,7 @@
>
> /**
> * Returns the {@code GenericDeclaration} object representing the
> - * generic declaration declared this type variable.
> + * generic declaration declared for this type variable.
> *
> * @return the generic declaration declared for this type variable.
> *
>
> On 6/10/2019 12:54 PM, Joe Darcy wrote:
>> Hello,
>>
>> Given upcoming deadlines and the scope of the feedback suggested, I propose pushing the "type parameters" => "type arguments" fix under JDK-708660 in JDK 13 and then reworking the type annotation vs declaration annotation structure for both core reflection and javax.lang.model in JDK 14 (under separate bugs).
>>
>> It is fair for the top-level interfaces to more fully discuss type vs declaration annotations. Such top-level discussion is a complement to introducing a statement of the type vs declaration distinction in the method-as-implemented/overridden-in-this-paricular-type since the latter provides better discoverability for developers.
>>
>> Thanks,
>>
>> -Joe
>>
>> On 6/10/2019 12:16 PM, Alex Buckley wrote:
>>> On 6/8/2019 4:04 PM, Joe Darcy wrote:
>>>> Please review the doc clarifications to address
>>>>
>>>> JDK-708660: (reflect) Clarifications to javadoc for getGeneric*Type
>>>> methods in j.l.r
>>>> webrev: http://cr.openjdk.java.net/~darcy/7086604.0/
>>>> specdiff:
>>>> http://cr.openjdk.java.net/~darcy/7086604.0.specdiff/overview-summary.html
>>>>
>>>> A few comments on the changes:
>>>>
>>>> * The phrasing "type arguments" rather than "type parameters" is used as
>>>> appropriate.
>>>
>>> Great!
>>>
>>>
>> [snip]
>>
<http://oracle.com/us/design/oracle-email-sig-198324.gif>
<http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif>
<http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
Lance.Andersen at oracle.com <mailto:Lance.Andersen at oracle.com>
More information about the core-libs-dev
mailing list