Use ListHelpers that return the original list if no changes

Bug: 184927364
Change-Id: I3b0eef884a62961e92225b4ca7b86f028b4e582b
diff --git a/src/main/java/com/android/tools/r8/graph/GenericSignatureTypeRewriter.java b/src/main/java/com/android/tools/r8/graph/GenericSignatureTypeRewriter.java
index 5820a4c..6d31cca 100644
--- a/src/main/java/com/android/tools/r8/graph/GenericSignatureTypeRewriter.java
+++ b/src/main/java/com/android/tools/r8/graph/GenericSignatureTypeRewriter.java
@@ -122,7 +122,7 @@
       if (formalTypeParameters.isEmpty()) {
         return EMPTY_TYPE_PARAMS;
       }
-      return ListUtils.map(formalTypeParameters, this::visitFormalTypeParameter);
+      return ListUtils.mapOrElse(formalTypeParameters, this::visitFormalTypeParameter);
     }
 
     @Override
@@ -144,7 +144,7 @@
       if (interfaceSignatures.isEmpty()) {
         return EMPTY_SUPER_INTERFACES;
       }
-      return ListUtils.mapNotNull(interfaceSignatures, this::visitSuperInterface);
+      return ListUtils.mapOrElse(interfaceSignatures, this::visitSuperInterface);
     }
 
     @Override
@@ -158,7 +158,7 @@
       if (typeSignatures.isEmpty()) {
         return EMPTY_TYPE_SIGNATURES;
       }
-      return ListUtils.map(
+      return ListUtils.mapOrElse(
           typeSignatures,
           typeSignature -> {
             TypeSignature rewrittenSignature = visitTypeSignature(typeSignature);
@@ -189,7 +189,7 @@
         return EMPTY_TYPE_SIGNATURES;
       }
       // If a throwing type is no longer found we remove it from the signature.
-      return ListUtils.mapNotNull(typeSignatures, this::visitTypeSignature);
+      return ListUtils.mapOrElse(typeSignatures, this::visitTypeSignature);
     }
 
     @Override
@@ -205,7 +205,7 @@
       if (fieldSignatures.isEmpty()) {
         return EMPTY_TYPE_ARGUMENTS;
       }
-      return ListUtils.mapNotNull(fieldSignatures, this::visitFieldTypeSignature);
+      return ListUtils.mapOrElse(fieldSignatures, this::visitFieldTypeSignature);
     }
 
     @Override
@@ -223,7 +223,7 @@
       if (typeArguments.isEmpty()) {
         return EMPTY_TYPE_ARGUMENTS;
       }
-      return ListUtils.map(
+      return ListUtils.mapOrElse(
           typeArguments,
           fieldTypeSignature -> {
             FieldTypeSignature rewrittenSignature = visitFieldTypeSignature(fieldTypeSignature);
diff --git a/src/main/java/com/android/tools/r8/utils/ListUtils.java b/src/main/java/com/android/tools/r8/utils/ListUtils.java
index b04728e..62a45dd 100644
--- a/src/main/java/com/android/tools/r8/utils/ListUtils.java
+++ b/src/main/java/com/android/tools/r8/utils/ListUtils.java
@@ -100,7 +100,7 @@
 
   /**
    * Rewrites the input list based on the given function. Returns the mapped list if any elements
-   * were rewritten, otherwise returns the original list.
+   * were rewritten, otherwise returns defaultValue.
    */
   public static <T> List<T> mapOrElse(List<T> list, Function<T, T> fn, List<T> defaultValue) {
     ArrayList<T> result = null;
@@ -126,6 +126,14 @@
     return result != null ? result : defaultValue;
   }
 
+  /**
+   * Rewrites the input list based on the given function. Returns the mapped list if any elements
+   * were rewritten, otherwise returns the original list.
+   */
+  public static <T> List<T> mapOrElse(List<T> list, Function<T, T> fn) {
+    return mapOrElse(list, fn, list);
+  }
+
   public static <T> ArrayList<T> newArrayList(ForEachable<T> forEachable) {
     ArrayList<T> list = new ArrayList<>();
     forEachable.forEach(list::add);