I like what you're trying to do, but the wording used to introduce the names `cr` and `cp` feels a bit contorted.  How about using a single name, c, introduced up front in this line:

+     * of the argument. Equality of a component {@code c} is determined as follows:

with the rest of the text updated accordingly. Note the use of the indefinite article `a component` when the name is introduced, and the definite article `the component` in subsequent references.

-- Jon


On 1/6/20 1:08 PM, Joe Darcy wrote:
Hello,

Please review a clarification to the specification of Record.equals:

    JDK-8234783: Improve wording of spec of Record.equals
    http://cr.openjdk.java.net/~darcy/8234783.0/

Patch below.

Thanks,

-Joe

--- old/src/java.base/share/classes/java/lang/Record.java 2020-01-06 13:00:52.179585999 -0800 +++ new/src/java.base/share/classes/java/lang/Record.java 2020-01-06 13:00:51.987681999 -0800
@@ -105,9 +105,21 @@
      * The implicitly provided implementation returns {@code true} if and       * only if the argument is an instance of the same record type as this object,       * and each component of this record is equal to the corresponding component -     * of the argument, according to {@link java.util.Objects#equals(Object,Object)} -     * for components whose types are reference types, and according to the semantics -     * of the {@code equals} method on the corresponding primitive wrapper type. +     * of the argument. Equality of the components is determined as follows:
+     * <ul>
+     *
+     * <li> If the component is of a reference type, the component {@code
+     * cr} is considered equal if and only if {@link
+     * java.util.Objects#equals(Object,Object)
+     * Objects.equals(this.cr(), r.cr()} would return true .
+     *
+     * <li> If the component is of a primitive type, using the
+     * corresponding primitive wrapper class {@code P} the component
+     * {@code cp} is considered equal if and only if {@code
+     * P.valueOf(this.cp()).equals(P.valueOf(r.cp()))} would return
+     * true.
+     *
+     * </ul>
      *
      * @see java.util.Objects#equals(Object,Object)
      *

Reply via email to