Remove all uses of definitionFor(DexMember)

Bug: 157616970
Change-Id: I4cc37d976c9aee08d306370aa9fd042033066e36
diff --git a/src/main/java/com/android/tools/r8/graph/DexDefinitionSupplier.java b/src/main/java/com/android/tools/r8/graph/DexDefinitionSupplier.java
index 18d1f77..5055cc5 100644
--- a/src/main/java/com/android/tools/r8/graph/DexDefinitionSupplier.java
+++ b/src/main/java/com/android/tools/r8/graph/DexDefinitionSupplier.java
@@ -12,17 +12,6 @@
   @Deprecated
   DexEncodedMethod definitionFor(DexMethod method);
 
-  @Deprecated
-  @SuppressWarnings("unchecked")
-  default <D extends DexEncodedMember<D, R>, R extends DexMember<D, R>>
-      DexEncodedMember<D, R> definitionFor(DexMember<D, R> member) {
-    if (member.isDexField()) {
-      return (DexEncodedMember<D, R>) definitionFor(member.asDexField());
-    }
-    assert member.isDexMethod();
-    return (DexEncodedMember<D, R>) definitionFor(member.asDexMethod());
-  }
-
   DexClass definitionFor(DexType type);
 
   DexProgramClass definitionForProgramType(DexType type);
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 26ed5d0..1bc26f2 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -3311,9 +3311,9 @@
         });
     consequentRootSet.forEachMemberWithDependentItems(
         appView,
-        member -> {
+        (member, dependentItems) -> {
           if (isMemberLive(member)) {
-            enqueueRootItems(consequentRootSet.getDependentItems(member));
+            enqueueRootItems(dependentItems);
           }
         });
     // TODO(b/132600955): This modifies the root set. Should the consequent be persistent?
diff --git a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
index 8be43f4..f542984 100644
--- a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
+++ b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
@@ -1305,15 +1305,22 @@
     }
 
     public void forEachMemberWithDependentItems(
-        DexDefinitionSupplier definitions, Consumer<DexEncodedMember<?, ?>> consumer) {
-      for (DexReference reference : dependentNoShrinking.keySet()) {
-        if (reference.isDexMember()) {
-          DexEncodedMember<?, ?> definition = definitions.definitionFor(reference.asDexMember());
-          if (definition != null) {
-            consumer.accept(definition);
-          }
-        }
-      }
+        DexDefinitionSupplier definitions,
+        BiConsumer<DexEncodedMember<?, ?>, DependentItems> consumer) {
+      dependentNoShrinking.forEach(
+          (reference, dependentItems) -> {
+            if (reference.isDexMember()) {
+              DexMember<?, ?> member = reference.asDexMember();
+              DexProgramClass holder =
+                  asProgramClassOrNull(definitions.definitionForHolder(member));
+              if (holder != null) {
+                DexEncodedMember<?, ?> definition = holder.lookupMember(member);
+                if (definition != null) {
+                  consumer.accept(definition, dependentItems);
+                }
+              }
+            }
+          });
     }
 
     public void forEachDependentInstanceConstructor(