Fix incorrect instance-get replacement in class inliner

Fixes: b/309076043
Fixes: b/308763761
Change-Id: I84601cc1195d9b54586b0d908f0f869453e5b850
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
index 256d368..7cd562a 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
@@ -769,7 +769,7 @@
         if (instruction.isInstanceGet()) {
           if (instruction.hasUsedOutValue()) {
             replaceFieldReadFromStaticGet(
-                code, instructionIterator, user.asInstanceGet(), affectedValues);
+                code, instructionIterator, instruction.asInstanceGet(), affectedValues);
           } else {
             instructionIterator.removeOrReplaceByDebugLocalRead();
           }
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlinerStaticGetMultipleFieldsTest.java b/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlinerStaticGetMultipleFieldsTest.java
index cefae52..4217318 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlinerStaticGetMultipleFieldsTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlinerStaticGetMultipleFieldsTest.java
@@ -43,8 +43,7 @@
               assertThat(inspector.clazz(DataImpl.class), isAbsent());
             })
         .run(parameters.getRuntime(), Main.class)
-        // TODO(b/309076043): Should succeed with "1", "2", "3", "4".
-        .assertSuccessWithOutputLines("1", "1", "3", "3");
+        .assertSuccessWithOutputLines("1", "2", "3", "4");
   }
 
   static class Main {