--- old/src/java.base/share/classes/java/lang/Record.java 2020-01-06 16:18:43.505405539 -0800 +++ new/src/java.base/share/classes/java/lang/Record.java 2020-01-06 16:18:43.317311546 -0800 @@ -92,8 +92,8 @@ public abstract class Record { /** * Indicates whether some other object is "equal to" this one. In addition - * to the general contract of {@link Object#equals(Object)}, - * record classes must further participate in the invariant that when + * to the general contract of {@link Object#equals(Object) Object.equals}, + * record classes must further obey the invariant that when * a record instance is "copied" by passing the result of the record component * accessor methods to the canonical constructor, as follows: *
@@ -102,17 +102,37 @@ * then it must be the case that {@code r.equals(copy)}. * * @implSpec - * 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. + * 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; otherwise, {@code + * false} is returned. Equality of a component {@code c} is + * determined as follows: + *