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