Update type argument names representing DexMember and DexEncodedMember

Change-Id: Id8caf90f66c9716607a303567a7738fe6e3acbbf
diff --git a/src/main/java/com/android/tools/r8/dex/DexParser.java b/src/main/java/com/android/tools/r8/dex/DexParser.java
index 723d094..df91f96 100644
--- a/src/main/java/com/android/tools/r8/dex/DexParser.java
+++ b/src/main/java/com/android/tools/r8/dex/DexParser.java
@@ -570,21 +570,21 @@
     return new DexDebugInfo(start, parameters, events.toArray(DexDebugEvent.EMPTY_ARRAY));
   }
 
-  private static class MemberAnnotationIterator<S extends DexMember<?, S>, T extends DexItem> {
+  private static class MemberAnnotationIterator<R extends DexMember<?, R>, T extends DexItem> {
 
     private int index = 0;
-    private final DexMemberAnnotation<S, T>[] annotations;
+    private final DexMemberAnnotation<R, T>[] annotations;
     private final Supplier<T> emptyValue;
 
-    private MemberAnnotationIterator(DexMemberAnnotation<S, T>[] annotations,
-        Supplier<T> emptyValue) {
+    private MemberAnnotationIterator(
+        DexMemberAnnotation<R, T>[] annotations, Supplier<T> emptyValue) {
       this.annotations = annotations;
       this.emptyValue = emptyValue;
     }
 
     // Get the annotation set for an item. This method assumes that it is always called with
     // an item that is higher in the sorting order than the last item.
-    T getNextFor(S item) {
+    T getNextFor(R item) {
       // TODO(ager): We could use the indices from the file to make this search faster using
       // compareTo instead of slowCompareTo. That would require us to assign indices during
       // reading. Those indices should be cleared after reading to make sure that we resort
diff --git a/src/main/java/com/android/tools/r8/dex/FileWriter.java b/src/main/java/com/android/tools/r8/dex/FileWriter.java
index 48c7c39..8b0cd00 100644
--- a/src/main/java/com/android/tools/r8/dex/FileWriter.java
+++ b/src/main/java/com/android/tools/r8/dex/FileWriter.java
@@ -577,9 +577,9 @@
     }
   }
 
-  private <S extends DexEncodedMember<S, T>, T extends DexMember<S, T>> void writeMemberAnnotations(
-      List<S> items, ToIntFunction<S> getter) {
-    for (S item : items) {
+  private <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>> void writeMemberAnnotations(
+      List<D> items, ToIntFunction<D> getter) {
+    for (D item : items) {
       dest.putInt(item.toReference().getOffset(mapping));
       dest.putInt(getter.applyAsInt(item));
     }
diff --git a/src/main/java/com/android/tools/r8/graph/DexAnnotationDirectory.java b/src/main/java/com/android/tools/r8/graph/DexAnnotationDirectory.java
index 75ec9be..2d0667b 100644
--- a/src/main/java/com/android/tools/r8/graph/DexAnnotationDirectory.java
+++ b/src/main/java/com/android/tools/r8/graph/DexAnnotationDirectory.java
@@ -107,8 +107,8 @@
     throw new Unreachable();
   }
 
-  private static <S extends DexEncodedMember<S, T>, T extends DexMember<S, T>> boolean isSorted(
-      List<S> items) {
+  private static <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>> boolean isSorted(
+      List<D> items) {
     return isSorted(items, DexEncodedMember::toReference);
   }
 
diff --git a/src/main/java/com/android/tools/r8/graph/DexClass.java b/src/main/java/com/android/tools/r8/graph/DexClass.java
index 9ce30c1..6dac57d 100644
--- a/src/main/java/com/android/tools/r8/graph/DexClass.java
+++ b/src/main/java/com/android/tools/r8/graph/DexClass.java
@@ -611,9 +611,9 @@
         && method.method.proto.parameters.values[0] != factory.objectArrayType;
   }
 
-  private <T extends DexEncodedMember<T, S>, S extends DexMember<T, S>> T lookupTarget(
-      T[] items, S descriptor) {
-    for (T entry : items) {
+  private <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>> D lookupTarget(
+      D[] items, R descriptor) {
+    for (D entry : items) {
       if (descriptor.match(entry)) {
         return entry;
       }
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedMember.java b/src/main/java/com/android/tools/r8/graph/DexEncodedMember.java
index c63aa9f..0e436d6 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedMember.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedMember.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.graph;
 
-public abstract class DexEncodedMember<S extends DexEncodedMember<S, T>, T extends DexMember<S, T>>
+public abstract class DexEncodedMember<D extends DexEncodedMember<D, R>, R extends DexMember<D, R>>
     extends DexDefinition {
 
   public DexEncodedMember(DexAnnotationSet annotations) {
@@ -11,7 +11,7 @@
   }
 
   @Override
-  public abstract T toReference();
+  public abstract R toReference();
 
   @Override
   public boolean isDexEncodedMember() {
@@ -19,7 +19,7 @@
   }
 
   @Override
-  public DexEncodedMember<S, T> asDexEncodedMember() {
+  public DexEncodedMember<D, R> asDexEncodedMember() {
     return this;
   }
 
diff --git a/src/main/java/com/android/tools/r8/graph/DexMember.java b/src/main/java/com/android/tools/r8/graph/DexMember.java
index c1be814..96afd57 100644
--- a/src/main/java/com/android/tools/r8/graph/DexMember.java
+++ b/src/main/java/com/android/tools/r8/graph/DexMember.java
@@ -3,8 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.graph;
 
-public abstract class DexMember<T extends DexEncodedMember<T, S>, S extends DexMember<T, S>>
-    extends DexReference implements PresortedComparable<S> {
+public abstract class DexMember<D extends DexEncodedMember<D, R>, R extends DexMember<D, R>>
+    extends DexReference implements PresortedComparable<R> {
 
   public final DexType holder;
 
@@ -12,9 +12,9 @@
     this.holder = holder;
   }
 
-  public abstract boolean match(S entry);
+  public abstract boolean match(R entry);
 
-  public abstract boolean match(T entry);
+  public abstract boolean match(D entry);
 
   @Override
   public boolean isDexMember() {
@@ -22,7 +22,7 @@
   }
 
   @Override
-  public DexMember<T, S> asDexMember() {
+  public DexMember<D, R> asDexMember() {
     return this;
   }
 }
diff --git a/src/main/java/com/android/tools/r8/graph/DexMemberAnnotation.java b/src/main/java/com/android/tools/r8/graph/DexMemberAnnotation.java
index b44992a..d9868a5 100644
--- a/src/main/java/com/android/tools/r8/graph/DexMemberAnnotation.java
+++ b/src/main/java/com/android/tools/r8/graph/DexMemberAnnotation.java
@@ -6,12 +6,12 @@
 import com.android.tools.r8.dex.IndexedItemCollection;
 import com.android.tools.r8.dex.MixedSectionCollection;
 
-public class DexMemberAnnotation<T extends DexMember<?, ?>, S extends DexItem> extends DexItem {
+public class DexMemberAnnotation<R extends DexMember<?, R>, S extends DexItem> extends DexItem {
 
-  public final T item;
+  public final R item;
   public final S annotations;
 
-  public DexMemberAnnotation(T item, S annotations) {
+  public DexMemberAnnotation(R item, S annotations) {
     this.item = item;
     this.annotations = annotations;
   }
diff --git a/src/main/java/com/android/tools/r8/graph/DexProgramClass.java b/src/main/java/com/android/tools/r8/graph/DexProgramClass.java
index 38aac2b..78a59c2 100644
--- a/src/main/java/com/android/tools/r8/graph/DexProgramClass.java
+++ b/src/main/java/com/android/tools/r8/graph/DexProgramClass.java
@@ -352,10 +352,10 @@
         && isSorted(instanceFields);
   }
 
-  private static <S extends DexEncodedMember<S, T>, T extends DexMember<S, T>> boolean isSorted(
-      S[] items) {
+  private static <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>> boolean isSorted(
+      D[] items) {
     synchronized (items) {
-      S[] sorted = items.clone();
+      D[] sorted = items.clone();
       Arrays.sort(sorted, Comparator.comparing(DexEncodedMember::toReference));
       return Arrays.equals(items, sorted);
     }
diff --git a/src/main/java/com/android/tools/r8/graph/PresortedComparable.java b/src/main/java/com/android/tools/r8/graph/PresortedComparable.java
index 2dc3a3b..075c187 100644
--- a/src/main/java/com/android/tools/r8/graph/PresortedComparable.java
+++ b/src/main/java/com/android/tools/r8/graph/PresortedComparable.java
@@ -10,8 +10,8 @@
 
 public interface PresortedComparable<T> extends Presorted, Comparable<T> {
 
-  static <T extends DexEncodedMember<T, S>, S extends DexMember<T, S>> boolean isSorted(
-      List<? extends DexEncodedMember<T, S>> items) {
+  static <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>> boolean isSorted(
+      List<? extends DexEncodedMember<D, R>> items) {
     return isSorted(items, DexEncodedMember::toReference);
   }
 
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/MemberPoolCollection.java b/src/main/java/com/android/tools/r8/ir/optimize/MemberPoolCollection.java
index 97a8de6..6e53d40 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/MemberPoolCollection.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/MemberPoolCollection.java
@@ -28,13 +28,13 @@
 import java.util.function.Predicate;
 
 // Per-class collection of member signatures.
-public abstract class MemberPoolCollection<T extends DexMember> {
+public abstract class MemberPoolCollection<R extends DexMember<?, R>> {
 
-  final Equivalence<T> equivalence;
+  final Equivalence<R> equivalence;
   final AppView<AppInfoWithLiveness> appView;
-  final Map<DexClass, MemberPool<T>> memberPools = new ConcurrentHashMap<>();
+  final Map<DexClass, MemberPool<R>> memberPools = new ConcurrentHashMap<>();
 
-  MemberPoolCollection(AppView<AppInfoWithLiveness> appView, Equivalence<T> equivalence) {
+  MemberPoolCollection(AppView<AppInfoWithLiveness> appView, Equivalence<R> equivalence) {
     this.appView = appView;
     this.equivalence = equivalence;
   }
@@ -56,7 +56,7 @@
     }
   }
 
-  public MemberPool<T> buildForHierarchy(
+  public MemberPool<R> buildForHierarchy(
       DexClass clazz, ExecutorService executorService, Timing timing) throws ExecutionException {
     timing.begin("Building member pool collection");
     try {
@@ -75,14 +75,14 @@
     return memberPools.containsKey(clazz);
   }
 
-  public MemberPool<T> get(DexClass clazz) {
+  public MemberPool<R> get(DexClass clazz) {
     assert hasPool(clazz);
     return memberPools.get(clazz);
   }
 
-  public boolean markIfNotSeen(DexClass clazz, T reference) {
-    MemberPool<T> memberPool = get(clazz);
-    Wrapper<T> key = equivalence.wrap(reference);
+  public boolean markIfNotSeen(DexClass clazz, R reference) {
+    MemberPool<R> memberPool = get(clazz);
+    Wrapper<R> key = equivalence.wrap(reference);
     if (memberPool.hasSeen(key)) {
       return true;
     }
diff --git a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
index ac05da8..c0788fc 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -2714,11 +2714,11 @@
     assert replaced == callSites.size();
   }
 
-  private static <S extends DexEncodedMember<S, T>, T extends DexMember<S, T>>
-      SortedSet<T> toSortedDescriptorSet(Set<S> set) {
-    ImmutableSortedSet.Builder<T> builder =
+  private static <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>>
+      SortedSet<R> toSortedDescriptorSet(Set<D> set) {
+    ImmutableSortedSet.Builder<R> builder =
         new ImmutableSortedSet.Builder<>(PresortedComparable::slowCompareTo);
-    for (S item : set) {
+    for (D item : set) {
       builder.add(item.toReference());
     }
     return builder.build();
@@ -3562,17 +3562,17 @@
     }
   }
 
-  private static final class TargetWithContext<T extends DexMember<?, T>> {
+  private static final class TargetWithContext<R extends DexMember<?, R>> {
 
-    private final T target;
+    private final R target;
     private final DexEncodedMethod context;
 
-    private TargetWithContext(T target, DexEncodedMethod context) {
+    private TargetWithContext(R target, DexEncodedMethod context) {
       this.target = target;
       this.context = context;
     }
 
-    public T getTarget() {
+    public R getTarget() {
       return target;
     }
 
diff --git a/src/main/java/com/android/tools/r8/shaking/TreePruner.java b/src/main/java/com/android/tools/r8/shaking/TreePruner.java
index d0d51aa..05d281b 100644
--- a/src/main/java/com/android/tools/r8/shaking/TreePruner.java
+++ b/src/main/java/com/android/tools/r8/shaking/TreePruner.java
@@ -243,8 +243,8 @@
     return context == null || !isTypeLive(context);
   }
 
-  private <S extends DexEncodedMember<S, T>, T extends DexMember<S, T>> int firstUnreachableIndex(
-      List<S> items, Predicate<S> live) {
+  private <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>> int firstUnreachableIndex(
+      List<D> items, Predicate<D> live) {
     for (int i = 0; i < items.size(); i++) {
       if (!live.test(items.get(i))) {
         return i;
diff --git a/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java b/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
index 6646265..783862a 100644
--- a/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
+++ b/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
@@ -1269,14 +1269,14 @@
       return null;
     }
 
-    private <S extends DexEncodedMember<S, T>, T extends DexMember<S, T>> void add(
-        Map<Wrapper<T>, S> map, S item, Equivalence<T> equivalence) {
+    private <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>> void add(
+        Map<Wrapper<R>, D> map, D item, Equivalence<R> equivalence) {
       map.put(equivalence.wrap(item.toReference()), item);
     }
 
-    private <S extends DexEncodedMember<S, T>, T extends DexMember<S, T>> void addAll(
-        Collection<Wrapper<T>> collection, Iterable<S> items, Equivalence<T> equivalence) {
-      for (S item : items) {
+    private <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>> void addAll(
+        Collection<Wrapper<R>> collection, Iterable<D> items, Equivalence<R> equivalence) {
+      for (D item : items) {
         collection.add(equivalence.wrap(item.toReference()));
       }
     }
diff --git a/src/main/java/com/android/tools/r8/utils/OrderedMergingIterator.java b/src/main/java/com/android/tools/r8/utils/OrderedMergingIterator.java
index 279f737..2458a64 100644
--- a/src/main/java/com/android/tools/r8/utils/OrderedMergingIterator.java
+++ b/src/main/java/com/android/tools/r8/utils/OrderedMergingIterator.java
@@ -10,20 +10,20 @@
 import java.util.List;
 import java.util.NoSuchElementException;
 
-public class OrderedMergingIterator<S extends DexEncodedMember<S, T>, T extends DexMember<S, T>>
-    implements Iterator<S> {
+public class OrderedMergingIterator<D extends DexEncodedMember<D, R>, R extends DexMember<D, R>>
+    implements Iterator<D> {
 
-  private final List<S> one;
-  private final List<S> other;
+  private final List<D> one;
+  private final List<D> other;
   private int oneIndex = 0;
   private int otherIndex = 0;
 
-  public OrderedMergingIterator(List<S> one, List<S> other) {
+  public OrderedMergingIterator(List<D> one, List<D> other) {
     this.one = one;
     this.other = other;
   }
 
-  private S getNextChecked(List<S> list, int position) {
+  private D getNextChecked(List<D> list, int position) {
     if (position >= list.size()) {
       throw new NoSuchElementException();
     }
@@ -36,7 +36,7 @@
   }
 
   @Override
-  public S next() {
+  public D next() {
     if (oneIndex >= one.size()) {
       return getNextChecked(other, otherIndex++);
     }