JDK 14 RFR of JDK-8226785: MandatoryWarningHandler.java contains implementation of Object.equals functionality
Jonathan Gibbons
jonathan.gibbons at oracle.com
Wed Jun 26 01:33:29 UTC 2019
+1
On 06/25/2019 06:04 PM, Joe Darcy wrote:
> Hello,
>
> Noticed while doing some other work, the javac class
> MandatoryWarningHandler.java contains a local copy of of the logic of
> the two-argument Objects.equals method. As a refactoring, the library
> code should be used instead.
>
> The method in MandatoryWarningHandler is named "equal" rather than
> "equals" and escaped previous passes to replace independent
> implementations of this logic (JDK-7041136).
>
> Patch below.
>
> Thanks,
>
> -Joe
>
> diff -r dd697048684f
> src/jdk.compiler/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java
> ---
> a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java
> Tue Jun 25 21:33:24 2019 +0000
> +++
> b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java
> Tue Jun 25 18:02:43 2019 -0700
> @@ -26,6 +26,7 @@
> package com.sun.tools.javac.util;
>
> import java.util.HashSet;
> +import java.util.Objects;
> import java.util.Set;
> import javax.tools.JavaFileObject;
>
> @@ -147,7 +148,7 @@
> deferredDiagnosticArg = currentSource;
> } else if ((deferredDiagnosticKind ==
> DeferredDiagnosticKind.IN_FILE
> || deferredDiagnosticKind ==
> DeferredDiagnosticKind.ADDITIONAL_IN_FILE)
> - && !equal(deferredDiagnosticSource,
> currentSource)) {
> + && !Objects.equals(deferredDiagnosticSource,
> currentSource)) {
> // additional errors in more than one source file
> deferredDiagnosticKind =
> DeferredDiagnosticKind.ADDITIONAL_IN_FILES;
> deferredDiagnosticArg = null;
> @@ -159,7 +160,7 @@
> deferredDiagnosticSource = currentSource;
> deferredDiagnosticArg = currentSource;
> } else if (deferredDiagnosticKind ==
> DeferredDiagnosticKind.IN_FILE &&
> - !equal(deferredDiagnosticSource,
> currentSource)) {
> + !Objects.equals(deferredDiagnosticSource,
> currentSource)) {
> // warnings in multiple source files
> deferredDiagnosticKind =
> DeferredDiagnosticKind.IN_FILES;
> deferredDiagnosticArg = null;
> @@ -183,13 +184,6 @@
> }
>
> /**
> - * Check two objects, each possibly null, are either both null or
> are equal.
> - */
> - private static boolean equal(Object o1, Object o2) {
> - return ((o1 == null || o2 == null) ? (o1 == o2) :
> o1.equals(o2));
> - }
> -
> - /**
> * The log to which to report warnings.
> */
> private Log log;
>
More information about the compiler-dev
mailing list