Rename ProgramMethod.getMethod() to getDefinition()

Change-Id: Ie442842b6ea37515b6fc9828353d6f1c1d4f9284
diff --git a/src/main/java/com/android/tools/r8/graph/DexClassAndMethod.java b/src/main/java/com/android/tools/r8/graph/DexClassAndMethod.java
index 6c05f12..f77d55b 100644
--- a/src/main/java/com/android/tools/r8/graph/DexClassAndMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexClassAndMethod.java
@@ -49,7 +49,7 @@
     return holder;
   }
 
-  public DexEncodedMethod getMethod() {
+  public DexEncodedMethod getDefinition() {
     return method;
   }
 
diff --git a/src/main/java/com/android/tools/r8/graph/LookupCompletenessHelper.java b/src/main/java/com/android/tools/r8/graph/LookupCompletenessHelper.java
index 64fa1a6..5a8f39f 100644
--- a/src/main/java/com/android/tools/r8/graph/LookupCompletenessHelper.java
+++ b/src/main/java/com/android/tools/r8/graph/LookupCompletenessHelper.java
@@ -40,7 +40,7 @@
 
   void checkDexClassAndMethod(DexClassAndMethod classAndMethod) {
     checkClass(classAndMethod.getHolder());
-    checkMethod(classAndMethod.getMethod());
+    checkMethod(classAndMethod.getDefinition());
   }
 
   LookupResultCollectionState computeCollectionState(
diff --git a/src/main/java/com/android/tools/r8/graph/ResolutionResult.java b/src/main/java/com/android/tools/r8/graph/ResolutionResult.java
index 7b388a3..fd1781d 100644
--- a/src/main/java/com/android/tools/r8/graph/ResolutionResult.java
+++ b/src/main/java/com/android/tools/r8/graph/ResolutionResult.java
@@ -314,7 +314,7 @@
       if (target == null) {
         DexClassAndMethod result = appInfo.lookupMaximallySpecificMethod(initialType, method);
         if (result != null) {
-          target = result.getMethod();
+          target = result.getDefinition();
         }
       }
       if (target == null) {
@@ -467,7 +467,7 @@
         DexClassAndMethod target,
         boolean holderIsInterface,
         Map<DexEncodedMethod, DexClassAndMethod> result) {
-      DexEncodedMethod targetMethod = target.getMethod();
+      DexEncodedMethod targetMethod = target.getDefinition();
       assert !targetMethod.isPrivateMethod();
       if (holderIsInterface) {
         // Add default interface methods to the list of targets.
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java b/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java
index ccd513f..78d3a69 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java
@@ -127,7 +127,7 @@
     }
     Set<DexEncodedMethod> result = Sets.newIdentityHashSet();
     lookupResult.forEach(
-        methodTarget -> result.add(methodTarget.getMethod()),
+        methodTarget -> result.add(methodTarget.getDefinition()),
         lambda -> {
           // TODO(b/150277553): Support lambda targets.
         });
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CallGraphBuilderBase.java b/src/main/java/com/android/tools/r8/ir/conversion/CallGraphBuilderBase.java
index 92b23eb..49ea06a 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/CallGraphBuilderBase.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/CallGraphBuilderBase.java
@@ -222,10 +222,11 @@
                     lookupResult
                         .asLookupResultSuccess()
                         .forEach(
-                            methodTarget -> targets.add(methodTarget.getMethod()),
+                            methodTarget -> targets.add(methodTarget.getDefinition()),
                             lambdaTarget ->
                                 // The call target will ultimately be the implementation method.
-                                targets.add(lambdaTarget.getImplementationMethod().getMethod()));
+                                targets.add(
+                                    lambdaTarget.getImplementationMethod().getDefinition()));
                     return targets;
                   }
                 }
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java b/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java
index 82c7c6a..56c1ff5 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java
@@ -300,7 +300,7 @@
       return;
     }
 
-    DexEncodedMethod target = virtualDispatchTarget.getMethod();
+    DexEncodedMethod target = virtualDispatchTarget.getDefinition();
     DexClass targetHolder = virtualDispatchTarget.getHolder();
     // Don-t forward if the target is explicitly marked as 'dont-rewrite'
     if (dontRewrite(targetHolder, target)) {
@@ -330,7 +330,7 @@
       DexClassAndMethod result =
           appView.appInfo().lookupMaximallySpecificMethod(libraryHolder, method);
       if (result != null && rewriter.isEmulatedInterface(result.getHolder().type)) {
-        addForward.accept(result.getHolder(), result.getMethod());
+        addForward.accept(result.getHolder(), result.getDefinition());
       }
     }
   }
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
index 31d3797..6467824 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
@@ -393,7 +393,7 @@
                 // This is a invoke-direct call to a virtual method.
                 instructions.replaceCurrentInstruction(
                     new InvokeStatic(
-                        defaultAsMethodOfCompanionClass(virtualTarget.getMethod().method),
+                        defaultAsMethodOfCompanionClass(virtualTarget.getDefinition().method),
                         invokeDirect.outValue(),
                         invokeDirect.arguments()));
               } else {
@@ -448,7 +448,7 @@
       DexClassAndMethod result =
           appView.appInfo().lookupMaximallySpecificMethod(dexClass, invokedMethod);
       if (result != null) {
-        singleTarget = result.getMethod();
+        singleTarget = result.getDefinition();
       }
     }
     if (singleTarget == null) {
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
index 87c3424..88d21d4 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
@@ -592,9 +592,9 @@
     @Override
     DexEncodedMethod ensureAccessibility(boolean allowMethodModification) {
       // We already found the static method to be called, just relax its accessibility.
-      target.getMethod().accessFlags.unsetPrivate();
+      target.getDefinition().accessFlags.unsetPrivate();
       if (target.getHolder().isInterface()) {
-        target.getMethod().accessFlags.setPublic();
+        target.getDefinition().accessFlags.setPublic();
       }
       return null;
     }
diff --git a/src/main/java/com/android/tools/r8/optimize/BridgeHoisting.java b/src/main/java/com/android/tools/r8/optimize/BridgeHoisting.java
index d4a5b7e..8e5c3c3 100644
--- a/src/main/java/com/android/tools/r8/optimize/BridgeHoisting.java
+++ b/src/main/java/com/android/tools/r8/optimize/BridgeHoisting.java
@@ -202,8 +202,8 @@
     // Move the bridge method to the super class, and record this in the graph lens.
     DexMethod newMethod =
         appView.dexItemFactory().createMethod(clazz.type, method.proto, method.name);
-    clazz.addVirtualMethod(representative.getMethod().toTypeSubstitutedMethod(newMethod));
-    lensBuilder.move(representative.getMethod().method, newMethod);
+    clazz.addVirtualMethod(representative.getDefinition().toTypeSubstitutedMethod(newMethod));
+    lensBuilder.move(representative.getDefinition().method, newMethod);
 
     // Remove all of the bridges in the subclasses.
     for (DexProgramClass subclass : subclasses) {
@@ -227,7 +227,7 @@
     if (clazz.type.isSamePackage(representative.getHolder().type)) {
       return false;
     }
-    return !representative.getMethod().isPublic();
+    return !representative.getDefinition().isPublic();
   }
 
   static class BridgeHoistingLens extends NestedGraphLense {
diff --git a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
index 3fdfbb1..3f657b9 100644
--- a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
+++ b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
@@ -1183,7 +1183,7 @@
     if (lookupResult != null && !lookupResult.isIncomplete()) {
       LookupTarget singleTarget = lookupResult.getSingleLookupTarget();
       if (singleTarget != null && singleTarget.isMethodTarget()) {
-        singleMethodTarget = singleTarget.asMethodTarget().getMethod();
+        singleMethodTarget = singleTarget.asMethodTarget().getDefinition();
       }
     }
     if (receiverLowerBoundType == null) {
@@ -1205,11 +1205,11 @@
       if (refinedReceiverClass.isProgramClass()) {
         DexClassAndMethod clazzAndMethod =
             resolution.lookupVirtualDispatchTarget(refinedReceiverClass.asProgramClass(), this);
-        if (clazzAndMethod == null || isPinned(clazzAndMethod.getMethod().method)) {
+        if (clazzAndMethod == null || isPinned(clazzAndMethod.getDefinition().method)) {
           // TODO(b/150640456): We should maybe only consider program methods.
           return DexEncodedMethod.SENTINEL;
         }
-        return clazzAndMethod.getMethod();
+        return clazzAndMethod.getDefinition();
       } else {
         // TODO(b/150640456): We should maybe only consider program methods.
         // If we resolved to a method on the refined receiver in the library, then we report the
diff --git a/src/main/java/com/android/tools/r8/shaking/DefaultEnqueuerUseRegistry.java b/src/main/java/com/android/tools/r8/shaking/DefaultEnqueuerUseRegistry.java
index c04ddf5..09aafdb 100644
--- a/src/main/java/com/android/tools/r8/shaking/DefaultEnqueuerUseRegistry.java
+++ b/src/main/java/com/android/tools/r8/shaking/DefaultEnqueuerUseRegistry.java
@@ -36,7 +36,7 @@
   }
 
   public DexEncodedMethod getContextMethod() {
-    return context.getMethod();
+    return context.getDefinition();
   }
 
   @Override
@@ -71,22 +71,22 @@
 
   @Override
   public boolean registerInstanceFieldRead(DexField field) {
-    return enqueuer.traceInstanceFieldRead(field, context.getMethod());
+    return enqueuer.traceInstanceFieldRead(field, context.getDefinition());
   }
 
   @Override
   public boolean registerInstanceFieldReadFromMethodHandle(DexField field) {
-    return enqueuer.traceInstanceFieldReadFromMethodHandle(field, context.getMethod());
+    return enqueuer.traceInstanceFieldReadFromMethodHandle(field, context.getDefinition());
   }
 
   @Override
   public boolean registerInstanceFieldWrite(DexField field) {
-    return enqueuer.traceInstanceFieldWrite(field, context.getMethod());
+    return enqueuer.traceInstanceFieldWrite(field, context.getDefinition());
   }
 
   @Override
   public boolean registerInstanceFieldWriteFromMethodHandle(DexField field) {
-    return enqueuer.traceInstanceFieldWriteFromMethodHandle(field, context.getMethod());
+    return enqueuer.traceInstanceFieldWriteFromMethodHandle(field, context.getDefinition());
   }
 
   @Override
@@ -96,43 +96,43 @@
 
   @Override
   public boolean registerStaticFieldRead(DexField field) {
-    return enqueuer.traceStaticFieldRead(field, context.getMethod());
+    return enqueuer.traceStaticFieldRead(field, context.getDefinition());
   }
 
   @Override
   public boolean registerStaticFieldReadFromMethodHandle(DexField field) {
-    return enqueuer.traceStaticFieldReadFromMethodHandle(field, context.getMethod());
+    return enqueuer.traceStaticFieldReadFromMethodHandle(field, context.getDefinition());
   }
 
   @Override
   public boolean registerStaticFieldWrite(DexField field) {
-    return enqueuer.traceStaticFieldWrite(field, context.getMethod());
+    return enqueuer.traceStaticFieldWrite(field, context.getDefinition());
   }
 
   @Override
   public boolean registerStaticFieldWriteFromMethodHandle(DexField field) {
-    return enqueuer.traceStaticFieldWriteFromMethodHandle(field, context.getMethod());
+    return enqueuer.traceStaticFieldWriteFromMethodHandle(field, context.getDefinition());
   }
 
   @Override
   public boolean registerConstClass(DexType type) {
-    return enqueuer.traceConstClass(type, context.getMethod());
+    return enqueuer.traceConstClass(type, context.getDefinition());
   }
 
   @Override
   public boolean registerCheckCast(DexType type) {
-    return enqueuer.traceCheckCast(type, context.getMethod());
+    return enqueuer.traceCheckCast(type, context.getDefinition());
   }
 
   @Override
   public boolean registerTypeReference(DexType type) {
-    return enqueuer.traceTypeReference(type, context.getMethod());
+    return enqueuer.traceTypeReference(type, context.getDefinition());
   }
 
   @Override
   public void registerMethodHandle(DexMethodHandle methodHandle, MethodHandleUse use) {
     super.registerMethodHandle(methodHandle, use);
-    enqueuer.traceMethodHandle(methodHandle, use, context.getMethod());
+    enqueuer.traceMethodHandle(methodHandle, use, context.getDefinition());
   }
 
   @Override
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 4e8419f..a1d6312 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -764,7 +764,7 @@
       return;
     }
 
-    DexEncodedMethod contextMethod = context.getMethod();
+    DexEncodedMethod contextMethod = context.getDefinition();
     if (lambdaRewriter != null) {
       assert contextMethod.getCode().isCfCode() : "Unexpected input type with lambdas";
       CfCode code = contextMethod.getCode().asCfCode();
@@ -868,7 +868,7 @@
       initClassReferences.put(
           type, computeMinimumRequiredVisibilityForInitClassField(type, currentMethod.getHolder()));
 
-      markTypeAsLive(type, classReferencedFromReporter(currentMethod.getMethod()));
+      markTypeAsLive(type, classReferencedFromReporter(currentMethod.getDefinition()));
       markDirectAndIndirectClassInitializersAsLive(clazz);
       return true;
     }
@@ -945,7 +945,7 @@
 
   boolean traceInvokeDirect(DexMethod invokedMethod, ProgramMethod context) {
     DexProgramClass currentHolder = context.getHolder();
-    DexEncodedMethod currentMethod = context.getMethod();
+    DexEncodedMethod currentMethod = context.getDefinition();
     boolean skipTracing =
         registerDeferredActionForDeadProtoBuilder(
             invokedMethod.holder,
@@ -978,12 +978,12 @@
 
   boolean traceInvokeDirectFromLambda(DexMethod invokedMethod, ProgramMethod context) {
     return traceInvokeDirect(
-        invokedMethod, context, KeepReason.invokedFromLambdaCreatedIn(context.getMethod()));
+        invokedMethod, context, KeepReason.invokedFromLambdaCreatedIn(context.getDefinition()));
   }
 
   private boolean traceInvokeDirect(
       DexMethod invokedMethod, ProgramMethod context, KeepReason reason) {
-    DexEncodedMethod currentMethod = context.getMethod();
+    DexEncodedMethod currentMethod = context.getDefinition();
     if (!registerMethodWithTargetAndContext(directInvokes, invokedMethod, currentMethod)) {
       return false;
     }
@@ -1001,12 +1001,12 @@
 
   boolean traceInvokeInterfaceFromLambda(DexMethod invokedMethod, ProgramMethod context) {
     return traceInvokeInterface(
-        invokedMethod, context, KeepReason.invokedFromLambdaCreatedIn(context.getMethod()));
+        invokedMethod, context, KeepReason.invokedFromLambdaCreatedIn(context.getDefinition()));
   }
 
   private boolean traceInvokeInterface(
       DexMethod method, ProgramMethod context, KeepReason keepReason) {
-    DexEncodedMethod currentMethod = context.getMethod();
+    DexEncodedMethod currentMethod = context.getDefinition();
     if (!registerMethodWithTargetAndContext(interfaceInvokes, method, currentMethod)) {
       return false;
     }
@@ -1024,12 +1024,12 @@
 
   boolean traceInvokeStaticFromLambda(DexMethod invokedMethod, ProgramMethod context) {
     return traceInvokeStatic(
-        invokedMethod, context, KeepReason.invokedFromLambdaCreatedIn(context.getMethod()));
+        invokedMethod, context, KeepReason.invokedFromLambdaCreatedIn(context.getDefinition()));
   }
 
   private boolean traceInvokeStatic(
       DexMethod invokedMethod, ProgramMethod context, KeepReason reason) {
-    DexEncodedMethod currentMethod = context.getMethod();
+    DexEncodedMethod currentMethod = context.getDefinition();
     DexItemFactory dexItemFactory = appView.dexItemFactory();
     if (dexItemFactory.classMethods.isReflectiveClassLookup(invokedMethod)
         || dexItemFactory.atomicFieldUpdaterMethods.isFieldUpdater(invokedMethod)) {
@@ -1061,7 +1061,7 @@
   }
 
   boolean traceInvokeSuper(DexMethod invokedMethod, ProgramMethod context) {
-    DexEncodedMethod currentMethod = context.getMethod();
+    DexEncodedMethod currentMethod = context.getDefinition();
     // We have to revisit super invokes based on the context they are found in. The same
     // method descriptor will hit different targets, depending on the context it is used in.
     DexMethod actualTarget = getInvokeSuperTarget(invokedMethod, currentMethod);
@@ -1082,21 +1082,22 @@
 
   boolean traceInvokeVirtualFromLambda(DexMethod invokedMethod, ProgramMethod context) {
     return traceInvokeVirtual(
-        invokedMethod, context, KeepReason.invokedFromLambdaCreatedIn(context.getMethod()));
+        invokedMethod, context, KeepReason.invokedFromLambdaCreatedIn(context.getDefinition()));
   }
 
   private boolean traceInvokeVirtual(
       DexMethod invokedMethod, ProgramMethod context, KeepReason reason) {
     if (invokedMethod == appView.dexItemFactory().classMethods.newInstance
         || invokedMethod == appView.dexItemFactory().constructorMethods.newInstance) {
-      pendingReflectiveUses.add(context.getMethod());
+      pendingReflectiveUses.add(context.getDefinition());
     } else if (appView.dexItemFactory().classMethods.isReflectiveMemberLookup(invokedMethod)) {
       // Implicitly add -identifiernamestring rule for the Java reflection in use.
       identifierNameStrings.add(invokedMethod);
       // Revisit the current method to implicitly add -keep rule for items with reflective access.
-      pendingReflectiveUses.add(context.getMethod());
+      pendingReflectiveUses.add(context.getDefinition());
     }
-    if (!registerMethodWithTargetAndContext(virtualInvokes, invokedMethod, context.getMethod())) {
+    if (!registerMethodWithTargetAndContext(
+        virtualInvokes, invokedMethod, context.getDefinition())) {
       return false;
     }
     if (Log.ENABLED) {
@@ -1108,7 +1109,7 @@
   }
 
   boolean traceNewInstance(DexType type, ProgramMethod context) {
-    DexEncodedMethod currentMethod = context.getMethod();
+    DexEncodedMethod currentMethod = context.getDefinition();
     boolean skipTracing =
         registerDeferredActionForDeadProtoBuilder(
             type, currentMethod, () -> workList.enqueueTraceNewInstanceAction(type, context));
@@ -1129,7 +1130,7 @@
         type,
         context,
         InstantiationReason.LAMBDA,
-        KeepReason.invokedFromLambdaCreatedIn(context.getMethod()));
+        KeepReason.invokedFromLambdaCreatedIn(context.getDefinition()));
   }
 
   private boolean traceNewInstance(
@@ -1137,7 +1138,7 @@
       ProgramMethod context,
       InstantiationReason instantiationReason,
       KeepReason keepReason) {
-    DexEncodedMethod currentMethod = context.getMethod();
+    DexEncodedMethod currentMethod = context.getDefinition();
     DexProgramClass clazz = getProgramClassOrNull(type);
     if (clazz != null) {
       if (clazz.isAnnotation() || clazz.isInterface()) {
@@ -2037,26 +2038,26 @@
     // The validity of the reachable method is checked at the point it becomes "reachable" and is
     // resolved. If the method is private, then the dispatch is not "virtual" and the method is
     // simply marked live on its holder.
-    if (resolutionMethod.getMethod().isPrivateMethod()) {
+    if (resolutionMethod.getDefinition().isPrivateMethod()) {
       markVirtualMethodAsLive(
           resolutionMethod.getHolder(),
-          resolutionMethod.getMethod(),
+          resolutionMethod.getDefinition(),
           graphReporter.reportReachableMethodAsLive(
-              resolutionMethod.getMethod().method, resolutionMethod));
+              resolutionMethod.getDefinition().method, resolutionMethod));
       return;
     }
     // Otherwise, we set the initial holder type to be the holder of the reachable method, which
     // ensures that access will be generally valid.
     SingleResolutionResult resolution =
         new SingleResolutionResult(
-            initialHolder, resolutionMethod.getHolder(), resolutionMethod.getMethod());
+            initialHolder, resolutionMethod.getHolder(), resolutionMethod.getDefinition());
     LookupTarget lookup = resolution.lookupVirtualDispatchTarget(instantiation, appInfo);
     if (lookup != null) {
       markVirtualDispatchTargetAsLive(
           lookup,
           programMethod ->
               graphReporter.reportReachableMethodAsLive(
-                  resolutionMethod.getMethod().method, programMethod));
+                  resolutionMethod.getDefinition().method, programMethod));
     }
   }
 
@@ -2114,7 +2115,7 @@
     if (instantiation.isClass()) {
       // TODO(b/149976493): We need to mark these for lambdas too!
       markOverridesAsLibraryMethodOverrides(
-          instantiation.asClass(), lookup.asMethodTarget().getMethod().method);
+          instantiation.asClass(), lookup.asMethodTarget().getDefinition().method);
     }
   }
 
@@ -2482,9 +2483,9 @@
   private void markVirtualDispatchTargetAsLive(
       DexClassAndMethod target, Function<ProgramMethod, KeepReasonWitness> reason) {
     ProgramMethod programMethod = target.asProgramMethod();
-    if (programMethod != null && !programMethod.getMethod().isAbstract()) {
+    if (programMethod != null && !programMethod.getDefinition().isAbstract()) {
       markVirtualMethodAsLive(
-          programMethod.getHolder(), programMethod.getMethod(), reason.apply(programMethod));
+          programMethod.getHolder(), programMethod.getDefinition(), reason.apply(programMethod));
     }
   }
 
@@ -2494,7 +2495,7 @@
     if (implementationMethod != null) {
       enqueueMarkMethodLiveAction(
           implementationMethod.getHolder(),
-          implementationMethod.getMethod(),
+          implementationMethod.getDefinition(),
           reason.apply(implementationMethod));
     }
   }
@@ -2662,14 +2663,14 @@
     }
 
     void addLiveMethod(ProgramMethod method) {
-      DexMethod signature = method.getMethod().method;
+      DexMethod signature = method.getDefinition().method;
       assert !liveMethods.containsKey(signature);
       liveMethods.put(signature, method);
     }
 
     void addLiveAndPinnedMethod(ProgramMethod method) {
       addLiveMethod(method);
-      pinnedMethods.add(method.getMethod().method);
+      pinnedMethods.add(method.getDefinition().method);
     }
 
     void amendApplication(Builder appBuilder) {
@@ -2698,9 +2699,9 @@
             fakeReason);
       }
       for (ProgramMethod liveMethod : liveMethods.values()) {
-        assert !enqueuer.targetedMethods.contains(liveMethod.getMethod());
+        assert !enqueuer.targetedMethods.contains(liveMethod.getDefinition());
         DexProgramClass holder = liveMethod.getHolder();
-        DexEncodedMethod method = liveMethod.getMethod();
+        DexEncodedMethod method = liveMethod.getDefinition();
         enqueuer.markMethodAsTargeted(holder, method, fakeReason);
         enqueuer.enqueueMarkMethodLiveAction(holder, method, fakeReason);
       }
@@ -2738,7 +2739,7 @@
   private void synthesizeInterfaceMethodBridges(SyntheticAdditions additions) {
     for (ProgramMethod bridge : syntheticInterfaceMethodBridges.values()) {
       DexProgramClass holder = bridge.getHolder();
-      DexEncodedMethod method = bridge.getMethod();
+      DexEncodedMethod method = bridge.getDefinition();
       holder.addVirtualMethod(method);
       additions.addLiveAndPinnedMethod(bridge);
     }
@@ -3241,17 +3242,17 @@
       InterfaceMethodSyntheticBridgeAction action, RootSetBuilder builder) {
     ProgramMethod methodToKeep = action.getMethodToKeep();
     ProgramMethod singleTarget = action.getSingleTarget();
-    DexEncodedMethod singleTargetMethod = singleTarget.getMethod();
+    DexEncodedMethod singleTargetMethod = singleTarget.getDefinition();
     if (rootSet.noShrinking.containsKey(singleTargetMethod.method)) {
       return;
     }
     if (methodToKeep != singleTarget) {
-      assert null == methodToKeep.getHolder().lookupMethod(methodToKeep.getMethod().method);
+      assert null == methodToKeep.getHolder().lookupMethod(methodToKeep.getDefinition().method);
       ProgramMethod old =
-          syntheticInterfaceMethodBridges.put(methodToKeep.getMethod().method, methodToKeep);
+          syntheticInterfaceMethodBridges.put(methodToKeep.getDefinition().method, methodToKeep);
       if (old == null) {
         if (singleTargetMethod.isLibraryMethodOverride().isTrue()) {
-          methodToKeep.getMethod().setLibraryMethodOverride(OptionalBool.TRUE);
+          methodToKeep.getDefinition().setLibraryMethodOverride(OptionalBool.TRUE);
         }
         DexProgramClass singleTargetHolder = singleTarget.getHolder();
         assert singleTargetHolder.isInterface();
@@ -3337,7 +3338,7 @@
       return false;
     }
     DexProgramClass clazz = programMethod.getHolder();
-    DexEncodedMethod method = programMethod.getMethod();
+    DexEncodedMethod method = programMethod.getDefinition();
     assert method.isVirtualMethod();
 
     if (method.isAbstract() || method.isPrivateMethod()) {
diff --git a/src/main/java/com/android/tools/r8/shaking/GraphReporter.java b/src/main/java/com/android/tools/r8/shaking/GraphReporter.java
index 6b222d7..4ff3594 100644
--- a/src/main/java/com/android/tools/r8/shaking/GraphReporter.java
+++ b/src/main/java/com/android/tools/r8/shaking/GraphReporter.java
@@ -249,10 +249,10 @@
 
   public KeepReasonWitness reportReachableMethodAsLive(
       DexMethod overriddenMethod, ProgramMethod derivedMethod) {
-    if (keptGraphConsumer != null && overriddenMethod != derivedMethod.getMethod().method) {
+    if (keptGraphConsumer != null && overriddenMethod != derivedMethod.getDefinition().method) {
       return reportEdge(
           getMethodGraphNode(overriddenMethod),
-          getMethodGraphNode(derivedMethod.getMethod().method),
+          getMethodGraphNode(derivedMethod.getDefinition().method),
           EdgeKind.OverridingMethod);
     }
     return KeepReasonWitness.INSTANCE;
@@ -266,7 +266,7 @@
     if (keptGraphConsumer != null && instantiation.isClass()) {
       return reportEdge(
           getClassGraphNode(instantiation.asClass().type),
-          getMethodGraphNode(derivedMethod.getMethod().method),
+          getMethodGraphNode(derivedMethod.getDefinition().method),
           EdgeKind.IsLibraryMethod);
     }
     return KeepReasonWitness.INSTANCE;
diff --git a/src/main/java/com/android/tools/r8/shaking/KeepReason.java b/src/main/java/com/android/tools/r8/shaking/KeepReason.java
index d996d22..62a67ee 100644
--- a/src/main/java/com/android/tools/r8/shaking/KeepReason.java
+++ b/src/main/java/com/android/tools/r8/shaking/KeepReason.java
@@ -42,7 +42,7 @@
   }
 
   public static KeepReason invokedFrom(ProgramMethod context) {
-    return invokedFrom(context.getHolder(), context.getMethod());
+    return invokedFrom(context.getHolder(), context.getDefinition());
   }
 
   public static KeepReason invokedFromLambdaCreatedIn(DexEncodedMethod method) {
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 c4914f3..846710b 100644
--- a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
+++ b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
@@ -572,10 +572,10 @@
               resolutionResult.getResolvedHolder().asProgramClass(),
               resolutionResult.getResolvedMethod());
       ProgramMethod methodToKeep =
-          canInsertForwardingMethod(originalClazz, resolutionMethod.getMethod())
+          canInsertForwardingMethod(originalClazz, resolutionMethod.getDefinition())
               ? new ProgramMethod(
                   originalClazz,
-                  resolutionMethod.getMethod().toForwardingMethod(originalClazz, appView))
+                  resolutionMethod.getDefinition().toForwardingMethod(originalClazz, appView))
               : resolutionMethod;
 
       delayedRootSetActionItems.add(
@@ -592,9 +592,9 @@
                       rule);
                 }
                 DexDefinition precondition =
-                    testAndGetPrecondition(methodToKeep.getMethod(), preconditionSupplier);
+                    testAndGetPrecondition(methodToKeep.getDefinition(), preconditionSupplier);
                 rootSetBuilder.addItemToSets(
-                    methodToKeep.getMethod(), context, rule, precondition, ifRule);
+                    methodToKeep.getDefinition(), context, rule, precondition, ifRule);
               }));
     }
   }
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 e245c2f..bb90d42 100644
--- a/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
+++ b/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
@@ -757,7 +757,7 @@
           Box<Boolean> found = new Box<>(false);
           lookupResult.forEach(
               interfaceTarget -> {
-                if (interfaceTarget.getMethod() == method) {
+                if (interfaceTarget.getDefinition() == method) {
                   return;
                 }
                 DexClass enclosingClass = interfaceTarget.getHolder();
diff --git a/src/test/java/com/android/tools/r8/classmerging/KeptTargetsIncompleteDiamondTest.java b/src/test/java/com/android/tools/r8/classmerging/KeptTargetsIncompleteDiamondTest.java
index 005df04..de3afb5 100644
--- a/src/test/java/com/android/tools/r8/classmerging/KeptTargetsIncompleteDiamondTest.java
+++ b/src/test/java/com/android/tools/r8/classmerging/KeptTargetsIncompleteDiamondTest.java
@@ -86,7 +86,7 @@
     LookupResultSuccess lookupResultSuccess = lookupResult.asLookupResultSuccess();
     Set<String> targets = new HashSet<>();
     lookupResultSuccess.forEach(
-        methodTarget -> targets.add(methodTarget.asMethodTarget().getMethod().qualifiedName()),
+        methodTarget -> targets.add(methodTarget.asMethodTarget().getDefinition().qualifiedName()),
         lambdaTarget -> {
           assert false;
         });
@@ -126,7 +126,7 @@
     LookupResultSuccess lookupResultSuccess = lookupResult.asLookupResultSuccess();
     Set<String> targets = new HashSet<>();
     lookupResultSuccess.forEach(
-        methodTarget -> targets.add(methodTarget.asMethodTarget().getMethod().qualifiedName()),
+        methodTarget -> targets.add(methodTarget.asMethodTarget().getDefinition().qualifiedName()),
         lambdaTarget -> {
           assert false;
         });
@@ -165,7 +165,7 @@
     LookupResultSuccess lookupResultSuccess = lookupResult.asLookupResultSuccess();
     Set<String> targets = new HashSet<>();
     lookupResultSuccess.forEach(
-        methodTarget -> targets.add(methodTarget.asMethodTarget().getMethod().qualifiedName()),
+        methodTarget -> targets.add(methodTarget.asMethodTarget().getDefinition().qualifiedName()),
         lambdaTarget -> {
           assert false;
         });
@@ -202,7 +202,7 @@
     LookupResultSuccess lookupResultSuccess = lookupResult.asLookupResultSuccess();
     Set<String> targets = new HashSet<>();
     lookupResultSuccess.forEach(
-        methodTarget -> targets.add(methodTarget.asMethodTarget().getMethod().qualifiedName()),
+        methodTarget -> targets.add(methodTarget.asMethodTarget().getDefinition().qualifiedName()),
         lambdaTarget -> {
           assert false;
         });
@@ -241,7 +241,7 @@
     LookupResultSuccess lookupResultSuccess = lookupResult.asLookupResultSuccess();
     Set<String> targets = new HashSet<>();
     lookupResultSuccess.forEach(
-        methodTarget -> targets.add(methodTarget.asMethodTarget().getMethod().qualifiedName()),
+        methodTarget -> targets.add(methodTarget.asMethodTarget().getDefinition().qualifiedName()),
         lambdaTarget -> {
           assert false;
         });
diff --git a/src/test/java/com/android/tools/r8/internal/R8GMSCoreLookupTest.java b/src/test/java/com/android/tools/r8/internal/R8GMSCoreLookupTest.java
index e780b03..ccbfd3a 100644
--- a/src/test/java/com/android/tools/r8/internal/R8GMSCoreLookupTest.java
+++ b/src/test/java/com/android/tools/r8/internal/R8GMSCoreLookupTest.java
@@ -106,7 +106,7 @@
       Counter counter = new Counter();
       lookupResult.forEach(
           target -> {
-            DexEncodedMethod m = target.getMethod();
+            DexEncodedMethod m = target.getDefinition();
             if (m.accessFlags.isAbstract() || !m.accessFlags.isBridge()) {
               counter.inc();
             }
@@ -117,7 +117,7 @@
       Counter counter = new Counter();
       lookupResult.forEach(
           target -> {
-            if (target.getMethod().isAbstract()) {
+            if (target.getDefinition().isAbstract()) {
               counter.inc();
             }
           },
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodAsOverrideWithLambdaTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodAsOverrideWithLambdaTest.java
index 1e9ca71..440e077 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodAsOverrideWithLambdaTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodAsOverrideWithLambdaTest.java
@@ -64,7 +64,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected =
         ImmutableSet.of(
             A.class.getTypeName() + ".bar",
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodLambdaTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodLambdaTest.java
index ccb80a5..edbb580 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodLambdaTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodLambdaTest.java
@@ -62,7 +62,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected =
         ImmutableSet.of(A.class.getTypeName() + ".bar", I.class.getTypeName() + ".bar");
     assertEquals(expected, targets);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultWithoutTopTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultWithoutTopTest.java
index b3aae9e..e59009e 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultWithoutTopTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultWithoutTopTest.java
@@ -66,7 +66,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(J.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
   }
@@ -109,7 +109,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(J.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DuplicateImportsTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DuplicateImportsTest.java
index 7c50e54..cb44081 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DuplicateImportsTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DuplicateImportsTest.java
@@ -64,7 +64,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(J.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/LambdaMultipleInterfacesTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/LambdaMultipleInterfacesTest.java
index 9cf0cf2..0702c97 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/LambdaMultipleInterfacesTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/LambdaMultipleInterfacesTest.java
@@ -63,7 +63,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected =
         ImmutableSet.of(A.class.getTypeName() + ".bar", J.class.getTypeName() + ".bar");
     assertEquals(expected, targets);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleImplementsTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleImplementsTest.java
index 0013abb..5ad3690 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleImplementsTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleImplementsTest.java
@@ -63,7 +63,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected =
         ImmutableSet.of(B.class.getTypeName() + ".foo", C.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SimpleInterfaceInvokeTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SimpleInterfaceInvokeTest.java
index fbe03e3..4d195e1 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SimpleInterfaceInvokeTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SimpleInterfaceInvokeTest.java
@@ -67,7 +67,7 @@
     lookupResult
         .asLookupResultSuccess()
         .forEach(
-            target -> targets.add(target.getMethod().qualifiedName()),
+            target -> targets.add(target.getDefinition().qualifiedName()),
             lambda -> {
               assert false;
             });
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubInterfaceOverridesTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubInterfaceOverridesTest.java
index 4ccdb10..51727c7 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubInterfaceOverridesTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubInterfaceOverridesTest.java
@@ -67,7 +67,7 @@
     lookupResult
         .asLookupResultSuccess()
         .forEach(
-            target -> targets.add(target.getMethod().qualifiedName()),
+            target -> targets.add(target.getDefinition().qualifiedName()),
             lambda -> {
               fail();
             });
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeMissingOverridesTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeMissingOverridesTest.java
index d5e8bb3..9c02be6 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeMissingOverridesTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeMissingOverridesTest.java
@@ -66,7 +66,7 @@
     lookupResult
         .asLookupResultSuccess()
         .forEach(
-            target -> targets.add(target.getMethod().qualifiedName()),
+            target -> targets.add(target.getDefinition().qualifiedName()),
             lambda -> {
               fail();
             });
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeOverridesTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeOverridesTest.java
index 23f1c7b..d5d1ce8 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeOverridesTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeOverridesTest.java
@@ -66,7 +66,7 @@
     lookupResult
         .asLookupResultSuccess()
         .forEach(
-            target -> targets.add(target.getMethod().qualifiedName()),
+            target -> targets.add(target.getDefinition().qualifiedName()),
             lambda -> {
               fail();
             });
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java
index 379b6e8..f0b55f2 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java
@@ -75,7 +75,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(C.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryTest.java
index b5f36aa..01d5afb 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryTest.java
@@ -63,7 +63,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(D.class.getTypeName() + ".bar");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java
index 2305c93..37d915a 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java
@@ -67,7 +67,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected =
         ImmutableSet.of(
             D.class.getTypeName() + ".bar");
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethod2Test.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethod2Test.java
index e156624..e8c34d1 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethod2Test.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethod2Test.java
@@ -79,7 +79,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     // TODO(b/148591377): The set should be empty.
     ImmutableSet<String> expected = ImmutableSet.of(AbstractWidening.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethodTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethodTest.java
index d711ba7..338d00a 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethodTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethodTest.java
@@ -78,7 +78,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     // TODO(b/148591377): The set should be empty.
     ImmutableSet<String> expected = ImmutableSet.of(Abstract.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/WidenAccessOutsidePackageTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/WidenAccessOutsidePackageTest.java
index ec013d6..e7d36e9 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/WidenAccessOutsidePackageTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/WidenAccessOutsidePackageTest.java
@@ -66,7 +66,7 @@
     lookupResult
         .asLookupResultSuccess()
         .forEach(
-            target -> targets.add(target.getMethod().qualifiedName()),
+            target -> targets.add(target.getDefinition().qualifiedName()),
             lambda -> {
               fail();
             });
diff --git a/src/test/java/com/android/tools/r8/resolution/singletarget/InstantiatedLowerBoundTest.java b/src/test/java/com/android/tools/r8/resolution/singletarget/InstantiatedLowerBoundTest.java
index 8a35389..c15c379 100644
--- a/src/test/java/com/android/tools/r8/resolution/singletarget/InstantiatedLowerBoundTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/singletarget/InstantiatedLowerBoundTest.java
@@ -112,7 +112,7 @@
     lookupResult
         .asLookupResultSuccess()
         .forEach(
-            clazzAndMethod -> actual.add(clazzAndMethod.getMethod().method),
+            clazzAndMethod -> actual.add(clazzAndMethod.getDefinition().method),
             lambdaTarget -> {
               assert false;
             });
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/AbstractInMiddleTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/AbstractInMiddleTest.java
index ebbb52f..750c642 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/AbstractInMiddleTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/AbstractInMiddleTest.java
@@ -63,7 +63,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected =
         ImmutableSet.of(
             A.class.getTypeName() + ".foo",
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceSubTypeTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceSubTypeTest.java
index 4f572ee..8bc102b 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceSubTypeTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceSubTypeTest.java
@@ -63,7 +63,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(J.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceTest.java
index 55d4138..469c0ad 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceTest.java
@@ -63,7 +63,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(J.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultWithoutTopTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultWithoutTopTest.java
index 2800d2c..f025e17 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultWithoutTopTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultWithoutTopTest.java
@@ -66,7 +66,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(J.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvokeVirtualToInterfaceDefinitionTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvokeVirtualToInterfaceDefinitionTest.java
index b2c70f9..472f7a1 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvokeVirtualToInterfaceDefinitionTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvokeVirtualToInterfaceDefinitionTest.java
@@ -62,7 +62,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(I.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/KeptTargetsIncompleteLookupTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/KeptTargetsIncompleteLookupTest.java
index 02c6e97..d3c1b7a 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/KeptTargetsIncompleteLookupTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/KeptTargetsIncompleteLookupTest.java
@@ -94,7 +94,7 @@
     LookupResultSuccess lookupResultSuccess = lookupResult.asLookupResultSuccess();
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     Set<String> expected =
         expectedMethodHolders.stream()
             .map(c -> c.getTypeName() + ".foo")
@@ -251,7 +251,7 @@
     LookupResultSuccess lookupResultSuccess = lookupResult.asLookupResultSuccess();
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     Set<String> expected = ImmutableSet.of(A.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
     assertTrue(lookupResultSuccess.isComplete());
@@ -274,7 +274,7 @@
     LookupResultSuccess lookupResultSuccess = lookupResult.asLookupResultSuccess();
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     Set<String> expected = ImmutableSet.of(Unrelated.class.getTypeName() + ".foo");
     assertEquals(expected, targets);
     assertTrue(lookupResultSuccess.isIncomplete());
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateChainTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateChainTest.java
index e0f4416..477bed8 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateChainTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateChainTest.java
@@ -68,7 +68,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(Middle.class.getTypeName() + ".clear");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideTest.java
index cc85bbc..b9f8c90 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideTest.java
@@ -76,7 +76,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(ViewModel.class.getTypeName() + ".clear");
     assertEquals(expected, targets);
   }
@@ -170,7 +170,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(ViewModel.class.getTypeName() + ".clear");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PrivateOverrideOfVirtualTargetTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PrivateOverrideOfVirtualTargetTest.java
index 949cfa0..c4fb6d2 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PrivateOverrideOfVirtualTargetTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PrivateOverrideOfVirtualTargetTest.java
@@ -67,7 +67,7 @@
     assertTrue(lookupResult.isLookupResultSuccess());
     Set<String> targets = new HashSet<>();
     lookupResult.forEach(
-        target -> targets.add(target.getMethod().qualifiedName()), lambda -> fail());
+        target -> targets.add(target.getDefinition().qualifiedName()), lambda -> fail());
     ImmutableSet<String> expected = ImmutableSet.of(A.class.getTypeName() + ".bar");
     assertEquals(expected, targets);
   }
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/TargetInDefaultMethodTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/TargetInDefaultMethodTest.java
index 628c927..b6f838b 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/TargetInDefaultMethodTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/TargetInDefaultMethodTest.java
@@ -67,7 +67,7 @@
     lookupResult
         .asLookupResultSuccess()
         .forEach(
-            target -> targets.add(target.getMethod().qualifiedName()),
+            target -> targets.add(target.getDefinition().qualifiedName()),
             lambda -> {
               fail();
             });