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);