Rename DexInspector -> CodeInspector.

Change-Id: If6cdff576ea7958af21b6c1533f2785847fbd9bc
diff --git a/src/test/java/com/android/tools/r8/R8CFRunExamplesJava9Test.java b/src/test/java/com/android/tools/r8/R8CFRunExamplesJava9Test.java
index c4a0f48..f0e758d 100644
--- a/src/test/java/com/android/tools/r8/R8CFRunExamplesJava9Test.java
+++ b/src/test/java/com/android/tools/r8/R8CFRunExamplesJava9Test.java
@@ -8,7 +8,7 @@
 import static org.junit.Assert.assertEquals;
 
 import com.android.tools.r8.ToolHelper.ProcessResult;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.io.IOException;
 import java.nio.file.Path;
@@ -61,8 +61,8 @@
       }
 
       if (!dexInspectorChecks.isEmpty()) {
-        DexInspector inspector = new DexInspector(out);
-        for (Consumer<DexInspector> check : dexInspectorChecks) {
+        CodeInspector inspector = new CodeInspector(out);
+        for (Consumer<CodeInspector> check : dexInspectorChecks) {
           check.accept(inspector);
         }
       }
diff --git a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
index 801abae..180a5f8 100644
--- a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
@@ -22,7 +22,7 @@
 import com.android.tools.r8.utils.InternalOptions.LineNumberOptimization;
 import com.android.tools.r8.utils.ListUtils;
 import com.android.tools.r8.utils.TestDescriptionWatcher;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.base.Charsets;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableListMultimap;
@@ -2059,10 +2059,10 @@
 
   private void failWithDexDiff(File originalFile, File processedFile)
       throws IOException, ExecutionException {
-    DexInspector inspectOriginal =
-        new DexInspector(originalFile.toPath().toAbsolutePath());
-    DexInspector inspectProcessed =
-        new DexInspector(processedFile.toPath().toAbsolutePath());
+    CodeInspector inspectOriginal =
+        new CodeInspector(originalFile.toPath().toAbsolutePath());
+    CodeInspector inspectProcessed =
+        new CodeInspector(processedFile.toPath().toAbsolutePath());
     StringBuilder builderOriginal = new StringBuilder();
     StringBuilder builderProcessed = new StringBuilder();
     inspectOriginal.forAllClasses((clazz) -> builderOriginal.append(clazz.dumpMethods()));
@@ -2077,10 +2077,10 @@
     List<ComparisonFailure> errors;
     try {
       // Parse all the verification errors.
-      DexInspector processed = new DexInspector(processedFile.toPath());
-      DexInspector original = DEX_COMPARE_WITH_DEX_REFERENCE_ON_FAILURE
-          ? new DexInspector(referenceFile.toPath())
-          : new DexInspector(inputFiles.stream().map(Paths::get).collect(Collectors.toList()));
+      CodeInspector processed = new CodeInspector(processedFile.toPath());
+      CodeInspector original = DEX_COMPARE_WITH_DEX_REFERENCE_ON_FAILURE
+          ? new CodeInspector(referenceFile.toPath())
+          : new CodeInspector(inputFiles.stream().map(Paths::get).collect(Collectors.toList()));
       List<ArtErrorInfo> errorInfo = ArtErrorParser.parse(verificationError.getMessage());
       errors = ListUtils.map(errorInfo, (error) ->
           new ComparisonFailure(
diff --git a/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java b/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java
index 36a5fb3..71f4559 100644
--- a/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunExamplesAndroidOTest.java
@@ -12,8 +12,8 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.OffOrAuto;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FoundClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
@@ -174,7 +174,7 @@
         .run();
   }
 
-  private void checkLambdaCount(DexInspector inspector, int expectedCount, String prefix) {
+  private void checkLambdaCount(CodeInspector inspector, int expectedCount, String prefix) {
     int count = 0;
     for (FoundClassSubject clazz : inspector.allClasses()) {
       if (clazz.isSynthesizedJavaLambdaClass() &&
diff --git a/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java b/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
index 2a17917..f638575 100644
--- a/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
+++ b/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
@@ -17,11 +17,11 @@
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.OffOrAuto;
 import com.android.tools.r8.utils.TestDescriptionWatcher;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FoundClassSubject;
-import com.android.tools.r8.utils.dexinspector.FoundMethodSubject;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InvokeInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
+import com.android.tools.r8.utils.codeinspector.FoundMethodSubject;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InvokeInstructionSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.io.ByteStreams;
@@ -62,7 +62,7 @@
     AndroidApiLevel androidJarVersion = null;
 
     final List<Consumer<InternalOptions>> optionConsumers = new ArrayList<>();
-    final List<Consumer<DexInspector>> dexInspectorChecks = new ArrayList<>();
+    final List<Consumer<CodeInspector>> dexInspectorChecks = new ArrayList<>();
     final List<UnaryOperator<B>> builderTransformations = new ArrayList<>();
 
     TestRunner(String testName, String packageName, String mainClass) {
@@ -73,7 +73,7 @@
 
     abstract C self();
 
-    C withDexCheck(Consumer<DexInspector> check) {
+    C withDexCheck(Consumer<CodeInspector> check) {
       dexInspectorChecks.add(check);
       return self();
     }
@@ -155,8 +155,8 @@
       }
 
       if (!dexInspectorChecks.isEmpty()) {
-        DexInspector inspector = new DexInspector(out);
-        for (Consumer<DexInspector> check : dexInspectorChecks) {
+        CodeInspector inspector = new CodeInspector(out);
+        for (Consumer<CodeInspector> check : dexInspectorChecks) {
           check.accept(inspector);
         }
       }
@@ -495,10 +495,10 @@
             mainDexClasses);
 
     // Collect main dex types.
-    DexInspector fullInspector =  getMainDexInspector(fullDexes);
-    DexInspector indexedIntermediateInspector =
+    CodeInspector fullInspector =  getMainDexInspector(fullDexes);
+    CodeInspector indexedIntermediateInspector =
         getMainDexInspector(dexesThroughIndexedIntermediate);
-    DexInspector filePerInputClassIntermediateInspector =
+    CodeInspector filePerInputClassIntermediateInspector =
         getMainDexInspector(dexesThroughFilePerInputClassIntermediate);
     Collection<String> fullMainClasses = new HashSet<>();
     fullInspector.forAllClasses(
@@ -578,12 +578,12 @@
     }
   }
 
-  protected DexInspector getMainDexInspector(Path zip)
+  protected CodeInspector getMainDexInspector(Path zip)
       throws ZipException, IOException, ExecutionException {
     try (ZipFile zipFile = new ZipFile(zip.toFile(), StandardCharsets.UTF_8)) {
       try (InputStream in =
           zipFile.getInputStream(zipFile.getEntry(ToolHelper.DEFAULT_DEX_FILENAME))) {
-        return new DexInspector(
+        return new CodeInspector(
             AndroidApp.builder()
                 .addDexProgramData(ByteStreams.toByteArray(in), Origin.unknown())
                 .build());
diff --git a/src/test/java/com/android/tools/r8/RunExamplesAndroidPTest.java b/src/test/java/com/android/tools/r8/RunExamplesAndroidPTest.java
index aa17280..7f15eca 100644
--- a/src/test/java/com/android/tools/r8/RunExamplesAndroidPTest.java
+++ b/src/test/java/com/android/tools/r8/RunExamplesAndroidPTest.java
@@ -16,10 +16,10 @@
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.OffOrAuto;
 import com.android.tools.r8.utils.TestDescriptionWatcher;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FoundClassSubject;
-import com.android.tools.r8.utils.dexinspector.FoundMethodSubject;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
+import com.android.tools.r8.utils.codeinspector.FoundMethodSubject;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.io.ByteStreams;
@@ -57,7 +57,7 @@
     Integer androidJarVersion = null;
 
     final List<Consumer<InternalOptions>> optionConsumers = new ArrayList<>();
-    final List<Consumer<DexInspector>> dexInspectorChecks = new ArrayList<>();
+    final List<Consumer<CodeInspector>> dexInspectorChecks = new ArrayList<>();
     final List<UnaryOperator<B>> builderTransformations = new ArrayList<>();
 
     TestRunner(String testName, String packageName, String mainClass) {
@@ -68,7 +68,7 @@
 
     abstract C self();
 
-    C withDexCheck(Consumer<DexInspector> check) {
+    C withDexCheck(Consumer<CodeInspector> check) {
       dexInspectorChecks.add(check);
       return self();
     }
@@ -150,8 +150,8 @@
       }
 
       if (!dexInspectorChecks.isEmpty()) {
-        DexInspector inspector = new DexInspector(out);
-        for (Consumer<DexInspector> check : dexInspectorChecks) {
+        CodeInspector inspector = new CodeInspector(out);
+        for (Consumer<CodeInspector> check : dexInspectorChecks) {
           check.accept(inspector);
         }
       }
@@ -255,12 +255,12 @@
     }
   }
 
-  protected DexInspector getMainDexInspector(Path zip)
+  protected CodeInspector getMainDexInspector(Path zip)
       throws ZipException, IOException, ExecutionException {
     try (ZipFile zipFile = new ZipFile(zip.toFile(), StandardCharsets.UTF_8)) {
       try (InputStream in =
           zipFile.getInputStream(zipFile.getEntry(ToolHelper.DEFAULT_DEX_FILENAME))) {
-        return new DexInspector(
+        return new CodeInspector(
             AndroidApp.builder()
                 .addDexProgramData(ByteStreams.toByteArray(in), Origin.unknown())
                 .build());
diff --git a/src/test/java/com/android/tools/r8/RunExamplesJava9Test.java b/src/test/java/com/android/tools/r8/RunExamplesJava9Test.java
index d1894fb..f149cba 100644
--- a/src/test/java/com/android/tools/r8/RunExamplesJava9Test.java
+++ b/src/test/java/com/android/tools/r8/RunExamplesJava9Test.java
@@ -6,7 +6,7 @@
 
 import static com.android.tools.r8.utils.FileUtils.JAR_EXTENSION;
 import static com.android.tools.r8.utils.FileUtils.ZIP_EXTENSION;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
@@ -17,12 +17,12 @@
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.OffOrAuto;
 import com.android.tools.r8.utils.TestDescriptionWatcher;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FoundClassSubject;
-import com.android.tools.r8.utils.dexinspector.FoundMethodSubject;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
+import com.android.tools.r8.utils.codeinspector.FoundMethodSubject;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import java.io.IOException;
@@ -54,7 +54,7 @@
     Integer androidJarVersion = null;
 
     final List<Consumer<InternalOptions>> optionConsumers = new ArrayList<>();
-    final List<Consumer<DexInspector>> dexInspectorChecks = new ArrayList<>();
+    final List<Consumer<CodeInspector>> dexInspectorChecks = new ArrayList<>();
     final List<UnaryOperator<B>> builderTransformations = new ArrayList<>();
 
     TestRunner(String testName, String packageName, String mainClass) {
@@ -65,7 +65,7 @@
 
     abstract C self();
 
-    C withDexCheck(Consumer<DexInspector> check) {
+    C withDexCheck(Consumer<CodeInspector> check) {
       dexInspectorChecks.add(check);
       return self();
     }
@@ -147,8 +147,8 @@
       }
 
       if (!dexInspectorChecks.isEmpty()) {
-        DexInspector inspector = new DexInspector(out);
-        for (Consumer<DexInspector> check : dexInspectorChecks) {
+        CodeInspector inspector = new CodeInspector(out);
+        for (Consumer<CodeInspector> check : dexInspectorChecks) {
           check.accept(inspector);
         }
       }
diff --git a/src/test/java/com/android/tools/r8/TestBase.java b/src/test/java/com/android/tools/r8/TestBase.java
index 596fa74..d5ef221 100644
--- a/src/test/java/com/android/tools/r8/TestBase.java
+++ b/src/test/java/com/android/tools/r8/TestBase.java
@@ -25,9 +25,9 @@
 import com.android.tools.r8.utils.PreloadedClassFileProvider;
 import com.android.tools.r8.utils.TestDescriptionWatcher;
 import com.android.tools.r8.utils.ZipUtils;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
@@ -599,7 +599,7 @@
   }
 
   protected DexEncodedMethod getMethod(
-      DexInspector inspector,
+      CodeInspector inspector,
       String className,
       String returnType,
       String methodName,
@@ -618,7 +618,7 @@
       String methodName,
       List<String> parameters) {
     try {
-      DexInspector inspector = new DexInspector(application);
+      CodeInspector inspector = new CodeInspector(application);
       return getMethod(inspector, className, returnType, methodName, parameters);
     } catch (Exception e) {
       return null;
diff --git a/src/test/java/com/android/tools/r8/accessrelaxation/AccessRelaxationTestBase.java b/src/test/java/com/android/tools/r8/accessrelaxation/AccessRelaxationTestBase.java
index 706b50b..80541e8 100644
--- a/src/test/java/com/android/tools/r8/accessrelaxation/AccessRelaxationTestBase.java
+++ b/src/test/java/com/android/tools/r8/accessrelaxation/AccessRelaxationTestBase.java
@@ -3,8 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.accessrelaxation;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPublic;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPublic;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
@@ -16,9 +16,9 @@
 import com.android.tools.r8.VmTestRunner;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import org.junit.runner.RunWith;
 
 @RunWith(VmTestRunner.class)
@@ -57,15 +57,15 @@
     assertEquals(jvmOutput, adjustedArtOutput);
   }
 
-  static void assertPublic(DexInspector dexInspector, Class clazz, MethodSignature signature) {
-    ClassSubject classSubject = dexInspector.clazz(clazz);
+  static void assertPublic(CodeInspector codeInspector, Class clazz, MethodSignature signature) {
+    ClassSubject classSubject = codeInspector.clazz(clazz);
     assertThat(classSubject, isPresent());
     MethodSubject methodSubject = classSubject.method(signature);
     assertThat(methodSubject, isPublic());
   }
 
-  static void assertNotPublic(DexInspector dexInspector, Class clazz, MethodSignature signature) {
-    ClassSubject classSubject = dexInspector.clazz(clazz);
+  static void assertNotPublic(CodeInspector codeInspector, Class clazz, MethodSignature signature) {
+    ClassSubject classSubject = codeInspector.clazz(clazz);
     assertThat(classSubject, isPresent());
     MethodSubject methodSubject = classSubject.method(signature);
     assertThat(methodSubject, not(isPublic()));
diff --git a/src/test/java/com/android/tools/r8/accessrelaxation/ConstructorRelaxationTest.java b/src/test/java/com/android/tools/r8/accessrelaxation/ConstructorRelaxationTest.java
index 713c467..d90ae45 100644
--- a/src/test/java/com/android/tools/r8/accessrelaxation/ConstructorRelaxationTest.java
+++ b/src/test/java/com/android/tools/r8/accessrelaxation/ConstructorRelaxationTest.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.accessrelaxation;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -11,8 +11,8 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import java.util.List;
@@ -185,9 +185,9 @@
     });
     compareJvmAndArt(app, mainClass);
 
-    DexInspector dexInspector = new DexInspector(app);
+    CodeInspector codeInspector = new CodeInspector(app);
     for (Class clazz : CLASSES) {
-      ClassSubject classSubject = dexInspector.clazz(clazz);
+      ClassSubject classSubject = codeInspector.clazz(clazz);
       assertThat(classSubject, isPresent());
       classSubject.getDexClass().forEachMethod(m -> {
         assertTrue(!m.isInstanceInitializer() || m.isPublicMethod());
diff --git a/src/test/java/com/android/tools/r8/accessrelaxation/InvokeTypeConversionTest.java b/src/test/java/com/android/tools/r8/accessrelaxation/InvokeTypeConversionTest.java
index 4459699..787568b 100644
--- a/src/test/java/com/android/tools/r8/accessrelaxation/InvokeTypeConversionTest.java
+++ b/src/test/java/com/android/tools/r8/accessrelaxation/InvokeTypeConversionTest.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.accessrelaxation;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -24,8 +24,8 @@
 import com.android.tools.r8.smali.SmaliBuilder.MethodSignature;
 import com.android.tools.r8.smali.SmaliTestBase;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import java.util.function.Consumer;
@@ -62,7 +62,7 @@
   private void run(
       SmaliBuilder builder,
       String expectedException,
-      Consumer<DexInspector> inspectorConsumer) throws Exception {
+      Consumer<CodeInspector> inspectorConsumer) throws Exception {
     AndroidApp app = buildApplication(builder);
     List<String> pgConfigs = ImmutableList.of(
         keepMainProguardConfiguration(CLASS_NAME),
@@ -82,7 +82,7 @@
       assertEquals(1, artResult.exitCode);
       assertThat(artResult.stderr, containsString(expectedException));
     }
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     inspectorConsumer.accept(inspector);
   }
 
diff --git a/src/test/java/com/android/tools/r8/accessrelaxation/NonConstructorRelaxationTest.java b/src/test/java/com/android/tools/r8/accessrelaxation/NonConstructorRelaxationTest.java
index 9bfd4e2..5b641dc 100644
--- a/src/test/java/com/android/tools/r8/accessrelaxation/NonConstructorRelaxationTest.java
+++ b/src/test/java/com/android/tools/r8/accessrelaxation/NonConstructorRelaxationTest.java
@@ -18,7 +18,7 @@
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import org.junit.Test;
 
@@ -62,20 +62,20 @@
     AndroidApp app = ToolHelper.runR8(builder.build());
     compareJvmAndArt(app, mainClass);
 
-    DexInspector dexInspector = new DexInspector(app);
-    assertPublic(dexInspector, A.class,
+    CodeInspector codeInspector = new CodeInspector(app);
+    assertPublic(codeInspector, A.class,
         new MethodSignature("baz", STRING, ImmutableList.of()));
-    assertPublic(dexInspector, A.class,
+    assertPublic(codeInspector, A.class,
         new MethodSignature("bar", STRING, ImmutableList.of()));
-    assertPublic(dexInspector, A.class,
+    assertPublic(codeInspector, A.class,
         new MethodSignature("bar", STRING, ImmutableList.of("int")));
-    assertPublic(dexInspector, A.class,
+    assertPublic(codeInspector, A.class,
         new MethodSignature("blah", STRING, ImmutableList.of("int")));
 
-    assertPublic(dexInspector, B.class,
+    assertPublic(codeInspector, B.class,
         new MethodSignature("blah", STRING, ImmutableList.of("int")));
 
-    assertPublic(dexInspector, BB.class,
+    assertPublic(codeInspector, BB.class,
         new MethodSignature("blah", STRING, ImmutableList.of("int")));
   }
 
@@ -110,24 +110,24 @@
     AndroidApp app = ToolHelper.runR8(builder.build());
     compareJvmAndArt(app, mainClass);
 
-    DexInspector dexInspector = new DexInspector(app);
-    assertPublic(dexInspector, Base.class,
+    CodeInspector codeInspector = new CodeInspector(app);
+    assertPublic(codeInspector, Base.class,
         new MethodSignature("foo", STRING, ImmutableList.of()));
 
     // Base#foo?() can't be publicized due to Itf<1>#foo<1>().
-    assertNotPublic(dexInspector, Base.class,
+    assertNotPublic(codeInspector, Base.class,
         new MethodSignature("foo1", STRING, ImmutableList.of()));
-    assertNotPublic(dexInspector, Base.class,
+    assertNotPublic(codeInspector, Base.class,
         new MethodSignature("foo2", STRING, ImmutableList.of()));
 
     // Sub?#bar1(int) can be publicized as they don't bother each other.
-    assertPublic(dexInspector, Sub1.class,
+    assertPublic(codeInspector, Sub1.class,
         new MethodSignature("bar1", STRING, ImmutableList.of("int")));
-    assertPublic(dexInspector, Sub2.class,
+    assertPublic(codeInspector, Sub2.class,
         new MethodSignature("bar1", STRING, ImmutableList.of("int")));
 
     // Sub2#bar2(int) is unique throughout the hierarchy, hence publicized.
-    assertPublic(dexInspector, Sub2.class,
+    assertPublic(codeInspector, Sub2.class,
         new MethodSignature("bar2", STRING, ImmutableList.of("int")));
   }
 }
diff --git a/src/test/java/com/android/tools/r8/bisect/BisectTest.java b/src/test/java/com/android/tools/r8/bisect/BisectTest.java
index a692b9e..5252f08 100644
--- a/src/test/java/com/android/tools/r8/bisect/BisectTest.java
+++ b/src/test/java/com/android/tools/r8/bisect/BisectTest.java
@@ -16,7 +16,7 @@
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.Timing;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -81,7 +81,7 @@
   }
 
   private Result command(DexApplication application) {
-    DexInspector inspector = new DexInspector(application);
+    CodeInspector inspector = new CodeInspector(application);
     if (inspector
         .clazz(ERRONEOUS_CLASS)
         .method(erroneousMethodSignature.returnType,
diff --git a/src/test/java/com/android/tools/r8/bridgeremoval/B77836766.java b/src/test/java/com/android/tools/r8/bridgeremoval/B77836766.java
index 77b251d..37d3914 100644
--- a/src/test/java/com/android/tools/r8/bridgeremoval/B77836766.java
+++ b/src/test/java/com/android/tools/r8/bridgeremoval/B77836766.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.bridgeremoval;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
@@ -16,9 +16,9 @@
 import com.android.tools.r8.jasmin.JasminBuilder;
 import com.android.tools.r8.jasmin.JasminBuilder.ClassBuilder;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import org.junit.Test;
@@ -129,7 +129,7 @@
 
     AndroidApp processedApp = runAndVerifyOnJvmAndArt(jasminBuilder, mainClassName, proguardConfig);
 
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject absSubject = inspector.clazz(absCls.name);
     assertThat(absSubject, isPresent());
     ClassSubject cls1Subject = inspector.clazz(cls1.name);
@@ -236,7 +236,7 @@
 
     AndroidApp processedApp = runAndVerifyOnJvmAndArt(jasminBuilder, mainClassName, proguardConfig);
 
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject baseSubject = inspector.clazz(baseCls.name);
     assertThat(baseSubject, isPresent());
     ClassSubject cls1Subject = inspector.clazz(cls1.name);
@@ -332,7 +332,7 @@
 
     AndroidApp processedApp = runAndVerifyOnJvmAndArt(jasminBuilder, mainClassName, proguardConfig);
 
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject baseSubject = inspector.clazz(baseCls.name);
     assertThat(baseSubject, isPresent());
     ClassSubject subSubject = inspector.clazz(subCls.name);
@@ -408,7 +408,7 @@
     String proguardConfig = keepMainProguardConfiguration(mainClass.name, false, false);
     AndroidApp processedApp = runAndVerifyOnJvmAndArt(jasminBuilder, mainClassName, proguardConfig);
 
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject baseSubject = inspector.clazz(cls.name);
     assertThat(baseSubject, isPresent());
 
diff --git a/src/test/java/com/android/tools/r8/bridgeremoval/EmptyBridgeTest.java b/src/test/java/com/android/tools/r8/bridgeremoval/EmptyBridgeTest.java
index 8fcf7a3..9c525b5 100644
--- a/src/test/java/com/android/tools/r8/bridgeremoval/EmptyBridgeTest.java
+++ b/src/test/java/com/android/tools/r8/bridgeremoval/EmptyBridgeTest.java
@@ -3,16 +3,16 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.bridgeremoval;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertThat;
 
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.jasmin.JasminBuilder;
 import com.android.tools.r8.jasmin.JasminBuilder.ClassBuilder;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import org.junit.Test;
 
@@ -53,7 +53,7 @@
             + "-keep class " + absClassName + "{ *; }";
     AndroidApp processedApp = compileWithR8(jasminBuilder.build(), proguardConfig);
 
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject classSubject = inspector.clazz(absClassName);
     assertThat(classSubject, isPresent());
     MethodSubject methodSubject = classSubject.method("void", "emptyBridge", ImmutableList.of());
diff --git a/src/test/java/com/android/tools/r8/bridgeremoval/RemoveVisibilityBridgeMethodsTest.java b/src/test/java/com/android/tools/r8/bridgeremoval/RemoveVisibilityBridgeMethodsTest.java
index 272406f..c19b308 100644
--- a/src/test/java/com/android/tools/r8/bridgeremoval/RemoveVisibilityBridgeMethodsTest.java
+++ b/src/test/java/com/android/tools/r8/bridgeremoval/RemoveVisibilityBridgeMethodsTest.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.bridgeremoval;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
@@ -17,9 +17,9 @@
 import com.android.tools.r8.jasmin.JasminBuilder;
 import com.android.tools.r8.jasmin.JasminBuilder.ClassBuilder;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.lang.reflect.Method;
 import java.nio.file.Path;
@@ -34,7 +34,7 @@
         Outer.class,
         Main.class);
     String proguardConfig = keepMainProguardConfiguration(Main.class, true, obfuscate);
-    DexInspector inspector = new DexInspector(compileWithR8(classes, proguardConfig));
+    CodeInspector inspector = new CodeInspector(compileWithR8(classes, proguardConfig));
 
     List<Method> removedMethods = ImmutableList.of(
         Outer.SubClass.class.getMethod("method"),
@@ -116,7 +116,7 @@
     String artResult = runOnArt(optimizedApp, mainClassName);
     assertEquals(javaResult.stdout, artResult);
 
-    DexInspector inspector = new DexInspector(optimizedApp);
+    CodeInspector inspector = new CodeInspector(optimizedApp);
 
     ClassSubject classSubject = inspector.clazz(superClass.name);
     assertThat(classSubject, isPresent());
diff --git a/src/test/java/com/android/tools/r8/bridgeremoval/bridgestokeep/KeepNonVisibilityBridgeMethodsTest.java b/src/test/java/com/android/tools/r8/bridgeremoval/bridgestokeep/KeepNonVisibilityBridgeMethodsTest.java
index f1eddcd..4535b6f 100644
--- a/src/test/java/com/android/tools/r8/bridgeremoval/bridgestokeep/KeepNonVisibilityBridgeMethodsTest.java
+++ b/src/test/java/com/android/tools/r8/bridgeremoval/bridgestokeep/KeepNonVisibilityBridgeMethodsTest.java
@@ -7,8 +7,8 @@
 import static org.junit.Assert.assertTrue;
 
 import com.android.tools.r8.TestBase;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.lang.reflect.Method;
 import java.util.List;
@@ -32,7 +32,7 @@
         SimpleObservableList.class,
         Main.class);
     String proguardConfig = keepMainAllowAccessModification(Main.class, obfuscate);
-    DexInspector inspector = new DexInspector(compileWithR8(classes, proguardConfig));
+    CodeInspector inspector = new CodeInspector(compileWithR8(classes, proguardConfig));
 
     // The bridge for registerObserver cannot be removed.
     Method registerObserver =
diff --git a/src/test/java/com/android/tools/r8/cf/IdenticalCatchHandlerTest.java b/src/test/java/com/android/tools/r8/cf/IdenticalCatchHandlerTest.java
index 063b676..450e6d0 100644
--- a/src/test/java/com/android/tools/r8/cf/IdenticalCatchHandlerTest.java
+++ b/src/test/java/com/android/tools/r8/cf/IdenticalCatchHandlerTest.java
@@ -19,7 +19,7 @@
 import com.android.tools.r8.graph.DexCode.Try;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.Sets;
 import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
 import it.unimi.dsi.fastutil.ints.IntSet;
@@ -63,7 +63,7 @@
   }
 
   private int countCatchHandlers(AndroidApp inputApp) throws Exception {
-    DexInspector inspector = new DexInspector(inputApp, o -> o.enableCfFrontend = true);
+    CodeInspector inspector = new CodeInspector(inputApp, o -> o.enableCfFrontend = true);
     DexClass dexClass = inspector.clazz(TestClass.class).getDexClass();
     Code code = dexClass.virtualMethods()[0].getCode();
     if (code.isCfCode()) {
diff --git a/src/test/java/com/android/tools/r8/cf/LambdaTestRunner.java b/src/test/java/com/android/tools/r8/cf/LambdaTestRunner.java
index d08e8c6..7db1d61 100644
--- a/src/test/java/com/android/tools/r8/cf/LambdaTestRunner.java
+++ b/src/test/java/com/android/tools/r8/cf/LambdaTestRunner.java
@@ -18,7 +18,7 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.AndroidAppConsumers;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.nio.file.Path;
 import java.util.Collections;
 import java.util.List;
@@ -69,7 +69,7 @@
 
   private static CfInvokeDynamic findFirstInMethod(AndroidApp app) throws Exception {
     String returnType = "void";
-    DexInspector inspector = new DexInspector(app, o -> o.enableCfFrontend = true);
+    CodeInspector inspector = new CodeInspector(app, o -> o.enableCfFrontend = true);
     List<String> args = Collections.singletonList(String[].class.getTypeName());
     DexEncodedMethod method = inspector.clazz(CLASS).method(returnType, METHOD, args).getMethod();
     CfCode code = method.getCode().asCfCode();
diff --git a/src/test/java/com/android/tools/r8/cf/SynchronizedNoopTestRunner.java b/src/test/java/com/android/tools/r8/cf/SynchronizedNoopTestRunner.java
index 6196081..e4f9249 100644
--- a/src/test/java/com/android/tools/r8/cf/SynchronizedNoopTestRunner.java
+++ b/src/test/java/com/android/tools/r8/cf/SynchronizedNoopTestRunner.java
@@ -15,7 +15,7 @@
 import com.android.tools.r8.graph.JarCode;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidAppConsumers;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.util.ArrayList;
 import java.util.Collections;
 import org.junit.Test;
@@ -37,7 +37,7 @@
             .addLibraryFiles(ToolHelper.getAndroidJar(ToolHelper.getMinApiLevelForDexVm()))
             .setProgramConsumer(a.wrapClassFileConsumer(null))
             .build());
-    DexInspector inspector = new DexInspector(a.build());
+    CodeInspector inspector = new CodeInspector(a.build());
     DexEncodedMethod method =
         inspector.clazz(CLASS).method("void", "noop", Collections.emptyList()).getMethod();
     ArrayList<AbstractInsnNode> insns = new ArrayList<>();
diff --git a/src/test/java/com/android/tools/r8/classmerging/ClassMergingTest.java b/src/test/java/com/android/tools/r8/classmerging/ClassMergingTest.java
index 91e7b5d..6f3c97a 100644
--- a/src/test/java/com/android/tools/r8/classmerging/ClassMergingTest.java
+++ b/src/test/java/com/android/tools/r8/classmerging/ClassMergingTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.classmerging;
 
 import static com.android.tools.r8.smali.SmaliBuilder.buildCode;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -30,10 +30,10 @@
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FoundClassSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
@@ -83,11 +83,11 @@
             .setDisableMinification(true)
             .build(),
         optionsConsumer);
-    inspector = new DexInspector(
+    inspector = new CodeInspector(
         Paths.get(temp.getRoot().getCanonicalPath()).resolve("classes.dex"));
   }
 
-  private DexInspector inspector;
+  private CodeInspector inspector;
 
   private final List<String> CAN_BE_MERGED = ImmutableList.of(
       "classmerging.GenericInterface",
@@ -152,7 +152,7 @@
         ImmutableSet.of(
             "classmerging.ConflictInGeneratedNameTest",
             "classmerging.ConflictInGeneratedNameTest$B");
-    DexInspector inspector =
+    CodeInspector inspector =
         runTestOnInput(
             main,
             readProgramFiles(programFiles),
@@ -603,7 +603,7 @@
             "classmerging.ExceptionTest",
             "classmerging.ExceptionTest$ExceptionB",
             "classmerging.ExceptionTest$Exception2");
-    DexInspector inspector = runTest(main, programFiles, preservedClassNames::contains);
+    CodeInspector inspector = runTest(main, programFiles, preservedClassNames::contains);
 
     ClassSubject mainClass = inspector.clazz(main);
     assertThat(mainClass, isPresent());
@@ -645,7 +645,7 @@
     // Sanity check that there is actually an invoke-interface instruction in the input. We need
     // to make sure that this invoke-interface instruction is translated to invoke-virtual after
     // the classes A and B are merged.
-    DexInspector inputInspector = new DexInspector(app);
+    CodeInspector inputInspector = new CodeInspector(app);
     ClassSubject clazz = inputInspector.clazz("classmerging.MergeDefaultMethodIntoClassTest");
     assertThat(clazz, isPresent());
     MethodSubject method = clazz.method("void", "main", ImmutableList.of("java.lang.String[]"));
@@ -773,12 +773,12 @@
     runTest(main, programFiles, preservedClassNames::contains);
   }
 
-  private DexInspector runTest(
+  private CodeInspector runTest(
       String main, Path[] programFiles, Predicate<String> preservedClassNames) throws Exception {
     return runTest(main, programFiles, preservedClassNames, getProguardConfig(EXAMPLE_KEEP));
   }
 
-  private DexInspector runTest(
+  private CodeInspector runTest(
       String main,
       Path[] programFiles,
       Predicate<String> preservedClassNames,
@@ -788,13 +788,13 @@
         main, readProgramFiles(programFiles), preservedClassNames, proguardConfig);
   }
 
-  private DexInspector runTestOnInput(
+  private CodeInspector runTestOnInput(
       String main, AndroidApp input, Predicate<String> preservedClassNames, String proguardConfig)
       throws Exception {
     return runTestOnInput(main, input, preservedClassNames, proguardConfig, this::configure);
   }
 
-  private DexInspector runTestOnInput(
+  private CodeInspector runTestOnInput(
       String main,
       AndroidApp input,
       Predicate<String> preservedClassNames,
@@ -802,8 +802,8 @@
       Consumer<InternalOptions> optionsConsumer)
       throws Exception {
     AndroidApp output = compileWithR8(input, proguardConfig, optionsConsumer);
-    DexInspector inputInspector = new DexInspector(input);
-    DexInspector outputInspector = new DexInspector(output);
+    CodeInspector inputInspector = new CodeInspector(input);
+    CodeInspector outputInspector = new CodeInspector(output);
     // Check that all classes in [preservedClassNames] are in fact preserved.
     for (FoundClassSubject classSubject : inputInspector.allClasses()) {
       String className = classSubject.getOriginalName();
diff --git a/src/test/java/com/android/tools/r8/code/NativeMethodWithCodeTest.java b/src/test/java/com/android/tools/r8/code/NativeMethodWithCodeTest.java
index d524d7c..5b4f1d4 100644
--- a/src/test/java/com/android/tools/r8/code/NativeMethodWithCodeTest.java
+++ b/src/test/java/com/android/tools/r8/code/NativeMethodWithCodeTest.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.code;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
@@ -17,9 +17,9 @@
 import com.android.tools.r8.jasmin.JasminBuilder;
 import com.android.tools.r8.jasmin.JasminBuilder.ClassBuilder;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.io.IOException;
 import java.nio.file.Path;
@@ -102,7 +102,7 @@
 
   private MethodSubject getNativeMethod(String mainClassName, AndroidApp processedApp)
       throws IOException, ExecutionException {
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject mainSubject = inspector.clazz(mainClassName);
     return mainSubject.method("void", "n1", ImmutableList.of("java.lang.String"));
   }
diff --git a/src/test/java/com/android/tools/r8/compatproguard/AtomicFieldUpdaterTest.java b/src/test/java/com/android/tools/r8/compatproguard/AtomicFieldUpdaterTest.java
index 7d27c5e..2521e02 100644
--- a/src/test/java/com/android/tools/r8/compatproguard/AtomicFieldUpdaterTest.java
+++ b/src/test/java/com/android/tools/r8/compatproguard/AtomicFieldUpdaterTest.java
@@ -12,9 +12,9 @@
 import com.android.tools.r8.code.ReturnVoid;
 import com.android.tools.r8.graph.DexCode;
 import com.android.tools.r8.smali.SmaliBuilder;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import org.junit.Test;
@@ -44,11 +44,11 @@
         keepMainProguardConfiguration(CLASS_NAME),
         "-dontshrink",
         "-dontoptimize");
-    DexInspector inspector = runCompatProguard(builder, pgConfigs);
+    CodeInspector inspector = runCompatProguard(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
-    MethodSubject method = clazz.method(DexInspector.MAIN);
+    MethodSubject method = clazz.method(CodeInspector.MAIN);
     assertTrue(method.isPresent());
 
     DexCode code = method.getMethod().getCode().asDexCode();
@@ -80,11 +80,11 @@
         keepMainProguardConfiguration(CLASS_NAME),
         "-dontshrink",
         "-dontoptimize");
-    DexInspector inspector = runCompatProguard(builder, pgConfigs);
+    CodeInspector inspector = runCompatProguard(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
-    MethodSubject method = clazz.method(DexInspector.MAIN);
+    MethodSubject method = clazz.method(CodeInspector.MAIN);
     assertTrue(method.isPresent());
 
     DexCode code = method.getMethod().getCode().asDexCode();
@@ -117,11 +117,11 @@
         keepMainProguardConfiguration(CLASS_NAME),
         "-dontshrink",
         "-dontoptimize");
-    DexInspector inspector = runCompatProguard(builder, pgConfigs);
+    CodeInspector inspector = runCompatProguard(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
-    MethodSubject method = clazz.method(DexInspector.MAIN);
+    MethodSubject method = clazz.method(CodeInspector.MAIN);
     assertTrue(method.isPresent());
 
     DexCode code = method.getMethod().getCode().asDexCode();
diff --git a/src/test/java/com/android/tools/r8/compatproguard/CompatProguardSmaliTestBase.java b/src/test/java/com/android/tools/r8/compatproguard/CompatProguardSmaliTestBase.java
index 0d5849b..ea450e4 100644
--- a/src/test/java/com/android/tools/r8/compatproguard/CompatProguardSmaliTestBase.java
+++ b/src/test/java/com/android/tools/r8/compatproguard/CompatProguardSmaliTestBase.java
@@ -10,12 +10,12 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.smali.SmaliBuilder;
 import com.android.tools.r8.smali.SmaliTestBase;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.nio.file.Path;
 import java.util.List;
 
 class CompatProguardSmaliTestBase extends SmaliTestBase {
-  DexInspector runCompatProguard(SmaliBuilder builder, List<String> proguardConfigurations)
+  CodeInspector runCompatProguard(SmaliBuilder builder, List<String> proguardConfigurations)
       throws Exception {
     Path dexOutputDir = temp.newFolder().toPath();
     R8Command.Builder commandBuilder =
@@ -23,6 +23,6 @@
             .setOutput(dexOutputDir, OutputMode.DexIndexed)
             .addProguardConfiguration(proguardConfigurations, Origin.unknown());
     ToolHelper.getAppBuilder(commandBuilder).addDexProgramData(builder.compile(), Origin.unknown());
-    return new DexInspector(ToolHelper.runR8(commandBuilder.build()));
+    return new CodeInspector(ToolHelper.runR8(commandBuilder.build()));
   }
 }
diff --git a/src/test/java/com/android/tools/r8/compatproguard/ForNameTest.java b/src/test/java/com/android/tools/r8/compatproguard/ForNameTest.java
index 3d9c912..6aa8805 100644
--- a/src/test/java/com/android/tools/r8/compatproguard/ForNameTest.java
+++ b/src/test/java/com/android/tools/r8/compatproguard/ForNameTest.java
@@ -12,9 +12,9 @@
 import com.android.tools.r8.code.ReturnVoid;
 import com.android.tools.r8.graph.DexCode;
 import com.android.tools.r8.smali.SmaliBuilder;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import org.junit.Test;
@@ -39,11 +39,11 @@
         keepMainProguardConfiguration(CLASS_NAME),
         "-dontshrink",
         "-dontoptimize");
-    DexInspector inspector = runCompatProguard(builder, pgConfigs);
+    CodeInspector inspector = runCompatProguard(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
-    MethodSubject method = clazz.method(DexInspector.MAIN);
+    MethodSubject method = clazz.method(CodeInspector.MAIN);
     assertTrue(method.isPresent());
 
     DexCode code = method.getMethod().getCode().asDexCode();
@@ -70,11 +70,11 @@
         "-dontshrink",
         "-dontoptimize",
         "-dontobfuscate");
-    DexInspector inspector = runCompatProguard(builder, pgConfigs);
+    CodeInspector inspector = runCompatProguard(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
-    MethodSubject method = clazz.method(DexInspector.MAIN);
+    MethodSubject method = clazz.method(CodeInspector.MAIN);
     assertTrue(method.isPresent());
 
     DexCode code = method.getMethod().getCode().asDexCode();
diff --git a/src/test/java/com/android/tools/r8/compatproguard/GetMembersTest.java b/src/test/java/com/android/tools/r8/compatproguard/GetMembersTest.java
index e478115..5771019 100644
--- a/src/test/java/com/android/tools/r8/compatproguard/GetMembersTest.java
+++ b/src/test/java/com/android/tools/r8/compatproguard/GetMembersTest.java
@@ -15,9 +15,9 @@
 import com.android.tools.r8.code.ReturnVoid;
 import com.android.tools.r8.graph.DexCode;
 import com.android.tools.r8.smali.SmaliBuilder;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import org.junit.Test;
@@ -45,11 +45,11 @@
         keepMainProguardConfiguration(CLASS_NAME),
         "-dontshrink",
         "-dontoptimize");
-    DexInspector inspector = runCompatProguard(builder, pgConfigs);
+    CodeInspector inspector = runCompatProguard(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
-    MethodSubject method = clazz.method(DexInspector.MAIN);
+    MethodSubject method = clazz.method(CodeInspector.MAIN);
     assertTrue(method.isPresent());
 
     DexCode code = method.getMethod().getCode().asDexCode();
@@ -85,11 +85,11 @@
         keepMainProguardConfiguration(CLASS_NAME),
         "-dontshrink",
         "-dontoptimize");
-    DexInspector inspector = runCompatProguard(builder, pgConfigs);
+    CodeInspector inspector = runCompatProguard(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
-    MethodSubject method = clazz.method(DexInspector.MAIN);
+    MethodSubject method = clazz.method(CodeInspector.MAIN);
     assertTrue(method.isPresent());
 
     DexCode code = method.getMethod().getCode().asDexCode();
diff --git a/src/test/java/com/android/tools/r8/debug/LocalsLiveAtBlockEntryDebugTest.java b/src/test/java/com/android/tools/r8/debug/LocalsLiveAtBlockEntryDebugTest.java
index d0f9d20..09a46e5 100644
--- a/src/test/java/com/android/tools/r8/debug/LocalsLiveAtBlockEntryDebugTest.java
+++ b/src/test/java/com/android/tools/r8/debug/LocalsLiveAtBlockEntryDebugTest.java
@@ -7,9 +7,9 @@
 
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.jasmin.JasminBuilder;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import java.util.Collections;
@@ -53,8 +53,8 @@
   }
 
   private void runTest(DebugTestConfig config) throws Throwable {
-    DexInspector inspector =
-        new DexInspector(
+    CodeInspector inspector =
+        new CodeInspector(
             (config instanceof CfDebugTestConfig)
                 ? Collections.singletonList(config.getPaths().get(1).resolve(className + ".class"))
                 : config.getPaths());
diff --git a/src/test/java/com/android/tools/r8/debug/MinificationTest.java b/src/test/java/com/android/tools/r8/debug/MinificationTest.java
index ca2910e..1b51cd8 100644
--- a/src/test/java/com/android/tools/r8/debug/MinificationTest.java
+++ b/src/test/java/com/android/tools/r8/debug/MinificationTest.java
@@ -16,8 +16,8 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.InternalOptions.LineNumberOptimization;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import java.util.Collection;
@@ -188,7 +188,7 @@
       throws Throwable {
     Path proguardMap = config.getProguardMap();
     String mappingFile = proguardMap == null ? null : proguardMap.toString();
-    DexInspector inspector = new DexInspector(config.getPaths(), mappingFile);
+    CodeInspector inspector = new CodeInspector(config.getPaths(), mappingFile);
     ClassSubject clazz = inspector.clazz(className);
     assertTrue(clazz.isPresent());
     if (method != null) {
diff --git a/src/test/java/com/android/tools/r8/debuginfo/DebugInfoInspector.java b/src/test/java/com/android/tools/r8/debuginfo/DebugInfoInspector.java
index aa8bc0c..3ccf46d 100644
--- a/src/test/java/com/android/tools/r8/debuginfo/DebugInfoInspector.java
+++ b/src/test/java/com/android/tools/r8/debuginfo/DebugInfoInspector.java
@@ -20,7 +20,7 @@
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.DescriptorUtils;
 import com.android.tools.r8.utils.StringUtils;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.io.IOException;
 import java.util.Collections;
 import java.util.HashSet;
@@ -49,13 +49,13 @@
     }
   }
 
-  public DebugInfoInspector(DexInspector inspector, String clazz, MethodSignature method) {
+  public DebugInfoInspector(CodeInspector inspector, String clazz, MethodSignature method) {
     this(inspector.clazz(clazz).method(method).getMethod(), inspector.getFactory());
   }
 
   public DebugInfoInspector(AndroidApp app, String clazz, MethodSignature method)
       throws IOException, ExecutionException {
-    this(new DexInspector(app), clazz, method);
+    this(new CodeInspector(app), clazz, method);
   }
 
   public boolean hasLocalsInfo() {
diff --git a/src/test/java/com/android/tools/r8/dex/JumboStringProcessing.java b/src/test/java/com/android/tools/r8/dex/JumboStringProcessing.java
index f37b5ed..3b1e30a 100644
--- a/src/test/java/com/android/tools/r8/dex/JumboStringProcessing.java
+++ b/src/test/java/com/android/tools/r8/dex/JumboStringProcessing.java
@@ -26,7 +26,7 @@
 import com.android.tools.r8.naming.NamingLens;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import com.google.common.io.Files;
 import java.nio.file.Path;
@@ -127,7 +127,7 @@
     AndroidApp application = AndroidApp.builder()
         .addDexProgramData(Files.toByteArray(originalDexFile.toFile()), Origin.unknown())
         .build();
-    DexInspector inspector = new DexInspector(application);
+    CodeInspector inspector = new CodeInspector(application);
     DexEncodedMethod method = getMethod(
         inspector,
         "android.databinding.DataBinderMapperImpl",
diff --git a/src/test/java/com/android/tools/r8/dexsplitter/DexSplitterTests.java b/src/test/java/com/android/tools/r8/dexsplitter/DexSplitterTests.java
index 7c4c250..f1c8742 100644
--- a/src/test/java/com/android/tools/r8/dexsplitter/DexSplitterTests.java
+++ b/src/test/java/com/android/tools/r8/dexsplitter/DexSplitterTests.java
@@ -21,8 +21,8 @@
 import com.android.tools.r8.dex.Marker;
 import com.android.tools.r8.dexsplitter.DexSplitter.Options;
 import com.android.tools.r8.utils.FeatureClassMapping.FeatureMappingException;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import java.io.FileNotFoundException;
@@ -363,7 +363,7 @@
 
     // Ensure that the Class1 is actually in the correct split. Note that Class2 would have been
     // shaken away.
-    DexInspector inspector = new DexInspector(base, proguardMap.toString());
+    CodeInspector inspector = new CodeInspector(base, proguardMap.toString());
     ClassSubject subject = inspector.clazz("dexsplitsample.Class1");
     assertTrue(subject.isPresent());
     assertTrue(subject.isRenamed());
diff --git a/src/test/java/com/android/tools/r8/graph/TargetLookupTest.java b/src/test/java/com/android/tools/r8/graph/TargetLookupTest.java
index 8cba9a0..39b5ff8 100644
--- a/src/test/java/com/android/tools/r8/graph/TargetLookupTest.java
+++ b/src/test/java/com/android/tools/r8/graph/TargetLookupTest.java
@@ -23,7 +23,7 @@
 import com.android.tools.r8.smali.SmaliBuilder;
 import com.android.tools.r8.smali.SmaliTestBase;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import java.util.Collections;
@@ -77,7 +77,7 @@
 
     AndroidApp application = buildApplication(builder);
     AppInfo appInfo = getAppInfo(application);
-    DexInspector inspector = new DexInspector(appInfo.app);
+    CodeInspector inspector = new CodeInspector(appInfo.app);
     DexEncodedMethod method = getMethod(inspector, DEFAULT_CLASS_NAME, "int", "x",
         ImmutableList.of());
     assertNull(appInfo.lookupVirtualTarget(method.method.holder, method.method));
@@ -147,7 +147,7 @@
 
     AndroidApp application = buildApplication(builder);
     AppInfo appInfo = getAppInfo(application);
-    DexInspector inspector = new DexInspector(appInfo.app);
+    CodeInspector inspector = new CodeInspector(appInfo.app);
 
     DexMethod methodXOnTestSuper =
         getMethod(inspector, "TestSuper", "int", "x", ImmutableList.of()).method;
diff --git a/src/test/java/com/android/tools/r8/internal/CompilationTestBase.java b/src/test/java/com/android/tools/r8/internal/CompilationTestBase.java
index 3987e0a..2ec38b4 100644
--- a/src/test/java/com/android/tools/r8/internal/CompilationTestBase.java
+++ b/src/test/java/com/android/tools/r8/internal/CompilationTestBase.java
@@ -30,10 +30,10 @@
 import com.android.tools.r8.utils.ArtErrorParser.ArtErrorParserException;
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.ListUtils;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FoundClassSubject;
-import com.android.tools.r8.utils.dexinspector.FoundFieldSubject;
-import com.android.tools.r8.utils.dexinspector.FoundMethodSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
+import com.android.tools.r8.utils.codeinspector.FoundFieldSubject;
+import com.android.tools.r8.utils.codeinspector.FoundMethodSubject;
 import com.google.common.io.ByteStreams;
 import com.google.common.io.Closer;
 import java.io.File;
@@ -132,8 +132,8 @@
       if (referenceApk == null) {
         throw e;
       }
-      DexInspector theirs = new DexInspector(Paths.get(referenceApk));
-      DexInspector ours = new DexInspector(out);
+      CodeInspector theirs = new CodeInspector(Paths.get(referenceApk));
+      CodeInspector ours = new CodeInspector(out);
       List<ArtErrorInfo> errors;
       try {
         errors = ArtErrorParser.parse(e.getMessage());
@@ -194,8 +194,8 @@
   public void assertIdenticalApplicationsUpToCode(
       AndroidApp app1, AndroidApp app2, boolean allowNewClassesInApp2)
       throws IOException, ExecutionException {
-    DexInspector inspect1 = new DexInspector(app1);
-    DexInspector inspect2 = new DexInspector(app2);
+    CodeInspector inspect1 = new CodeInspector(app1);
+    CodeInspector inspect2 = new CodeInspector(app2);
 
     class Pair<T> {
       private T first;
@@ -213,7 +213,7 @@
     // Collect all classes from both inspectors, indexed by finalDescriptor.
     Map<String, Pair<FoundClassSubject>> allClasses = new HashMap<>();
 
-    BiConsumer<DexInspector, Boolean> collectClasses =
+    BiConsumer<CodeInspector, Boolean> collectClasses =
         (inspector, selectFirst) -> {
           inspector.forAllClasses(
               clazz -> {
diff --git a/src/test/java/com/android/tools/r8/invalid/DuplicateDefinitionsTest.java b/src/test/java/com/android/tools/r8/invalid/DuplicateDefinitionsTest.java
index c011f6f..68daeb8 100644
--- a/src/test/java/com/android/tools/r8/invalid/DuplicateDefinitionsTest.java
+++ b/src/test/java/com/android/tools/r8/invalid/DuplicateDefinitionsTest.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.invalid;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
@@ -13,8 +13,8 @@
 import com.android.tools.r8.jasmin.JasminBuilder.ClassBuilder;
 import com.android.tools.r8.jasmin.JasminTestBase;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
@@ -54,7 +54,7 @@
             "Ignoring an implementation of the method `void C.method()` because "
                 + "it has multiple definitions"));
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz("C");
     assertThat(clazz, isPresent());
 
@@ -89,7 +89,7 @@
     assertThat(output, containsString("Field `C C.fld` has multiple definitions"));
     assertThat(output, containsString("Field `C C.staticFld` has multiple definitions"));
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz("C");
     assertThat(clazz, isPresent());
 
diff --git a/src/test/java/com/android/tools/r8/ir/IrInjectionTestBase.java b/src/test/java/com/android/tools/r8/ir/IrInjectionTestBase.java
index f02098a..b66e6e0 100644
--- a/src/test/java/com/android/tools/r8/ir/IrInjectionTestBase.java
+++ b/src/test/java/com/android/tools/r8/ir/IrInjectionTestBase.java
@@ -22,7 +22,7 @@
 import com.android.tools.r8.utils.AndroidAppConsumers;
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.Timing;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.io.IOException;
 import java.util.List;
 import java.util.ListIterator;
@@ -61,7 +61,7 @@
       String returnType,
       String methodName,
       List<String> parameters) {
-    DexInspector inspector = new DexInspector(application);
+    CodeInspector inspector = new CodeInspector(application);
     return getMethod(inspector, className, returnType, methodName, parameters);
   }
 
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java b/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java
index de97052..59bd91b 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java
@@ -36,7 +36,7 @@
 import com.android.tools.r8.utils.DescriptorUtils;
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.Timing;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableMap;
 import java.util.Map;
 import java.util.function.BiConsumer;
@@ -56,8 +56,8 @@
         new ApplicationReader(app, TEST_OPTIONS, new Timing("NullabilityTest.appReader"))
             .read().toDirect();
     AppInfo appInfo = new AppInfo(dexApplication);
-    DexInspector dexInspector = new DexInspector(appInfo.app);
-    DexEncodedMethod foo = dexInspector.clazz(mainClass.getName()).method(signature).getMethod();
+    CodeInspector codeInspector = new CodeInspector(appInfo.app);
+    DexEncodedMethod foo = codeInspector.clazz(mainClass.getName()).method(signature).getMethod();
     IRCode irCode = foo.buildIR(appInfo, TEST_OPTIONS, Origin.unknown());
     NonNullTracker nonNullTracker = new NonNullTracker();
     nonNullTracker.addNonNull(irCode);
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/type/TypeAnalysisTest.java b/src/test/java/com/android/tools/r8/ir/analysis/type/TypeAnalysisTest.java
index 286fb56..d3efebe 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/type/TypeAnalysisTest.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/type/TypeAnalysisTest.java
@@ -33,7 +33,7 @@
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.Smali;
 import com.android.tools.r8.utils.Timing;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import java.nio.charset.StandardCharsets;
@@ -116,7 +116,7 @@
 
   // Simple one path with a lot of arithmetic operations.
   private static void arithmetic(AppInfo appInfo) {
-    DexInspector inspector = new DexInspector(appInfo.app);
+    CodeInspector inspector = new CodeInspector(appInfo.app);
     DexEncodedMethod subtract =
         inspector.clazz("Test")
             .method(
@@ -131,7 +131,7 @@
 
   // A couple branches, along with some recursive calls.
   private static void fibonacci(AppInfo appInfo) {
-    DexInspector inspector = new DexInspector(appInfo.app);
+    CodeInspector inspector = new CodeInspector(appInfo.app);
     DexEncodedMethod fib =
         inspector.clazz("Test")
             .method(new MethodSignature("fibonacci", "int", ImmutableList.of("int")))
@@ -145,7 +145,7 @@
 
   // fill-array-data
   private static void fillArrayData(AppInfo appInfo) {
-    DexInspector inspector = new DexInspector(appInfo.app);
+    CodeInspector inspector = new CodeInspector(appInfo.app);
     DexEncodedMethod test1 =
         inspector.clazz("Test")
             .method(new MethodSignature("test1", "int[]", ImmutableList.of()))
@@ -176,7 +176,7 @@
 
   // filled-new-array
   private static void filledNewArray(AppInfo appInfo) {
-    DexInspector inspector = new DexInspector(appInfo.app);
+    CodeInspector inspector = new CodeInspector(appInfo.app);
     DexEncodedMethod test4 =
         inspector.clazz("Test")
             .method(new MethodSignature("test4", "int[]", ImmutableList.of()))
@@ -207,7 +207,7 @@
 
   // Make sure the analysis does not hang.
   private static void infiniteLoop(AppInfo appInfo) {
-    DexInspector inspector = new DexInspector(appInfo.app);
+    CodeInspector inspector = new CodeInspector(appInfo.app);
     DexEncodedMethod loop2 =
         inspector.clazz("Test")
             .method(new MethodSignature("loop2", "void", ImmutableList.of()))
@@ -226,7 +226,7 @@
 
   // move-exception
   private static void tryCatch(AppInfo appInfo) {
-    DexInspector inspector = new DexInspector(appInfo.app);
+    CodeInspector inspector = new CodeInspector(appInfo.app);
     DexEncodedMethod test2 =
         inspector.clazz("Test")
             .method(new MethodSignature("test2_throw", "int", ImmutableList.of()))
@@ -244,7 +244,7 @@
 
   // One very complicated example.
   private static void typeConfusion(AppInfo appInfo) {
-    DexInspector inspector = new DexInspector(appInfo.app);
+    CodeInspector inspector = new CodeInspector(appInfo.app);
     DexEncodedMethod method =
         inspector.clazz("TestObject")
             .method(
@@ -264,7 +264,7 @@
 
   // One more complicated example.
   private static void typeConfusion5(AppInfo appInfo) {
-    DexInspector inspector = new DexInspector(appInfo.app);
+    CodeInspector inspector = new CodeInspector(appInfo.app);
     DexEncodedMethod method =
         inspector.clazz("TestObject")
             .method(
diff --git a/src/test/java/com/android/tools/r8/ir/desugar/annotations/CovariantReturnTypeAnnotationTransformerTest.java b/src/test/java/com/android/tools/r8/ir/desugar/annotations/CovariantReturnTypeAnnotationTransformerTest.java
index 6aecc60..f1f2842 100644
--- a/src/test/java/com/android/tools/r8/ir/desugar/annotations/CovariantReturnTypeAnnotationTransformerTest.java
+++ b/src/test/java/com/android/tools/r8/ir/desugar/annotations/CovariantReturnTypeAnnotationTransformerTest.java
@@ -4,16 +4,16 @@
 
 package com.android.tools.r8.ir.desugar.annotations;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertThat;
 
 import com.android.tools.r8.AsmTestBase;
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import java.util.Collections;
 import org.junit.Assert;
 import org.junit.Test;
@@ -155,7 +155,7 @@
   }
 
   private void checkPresenceOfSyntheticMethods(AndroidApp output) throws Exception {
-    DexInspector inspector = new DexInspector(output);
+    CodeInspector inspector = new CodeInspector(output);
 
     // Get classes A, B, and C.
     ClassSubject clazzA = inspector.clazz(A.class.getCanonicalName());
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/B87341268.java b/src/test/java/com/android/tools/r8/ir/optimize/B87341268.java
index 11c7c0f..ac3952d 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/B87341268.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/B87341268.java
@@ -3,20 +3,20 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.ir.optimize;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertThat;
 
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import org.junit.Test;
 
 public class B87341268 extends TestBase {
   @Test
   public void test() throws Exception {
     AndroidApp app = compileWithD8(readClasses(TestClass.class));
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz(TestClass.class);
     assertThat(clazz, isPresent());
   }
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/MemberValuePropagationTest.java b/src/test/java/com/android/tools/r8/ir/optimize/MemberValuePropagationTest.java
index 5a2bc22..0eac6bb 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/MemberValuePropagationTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/MemberValuePropagationTest.java
@@ -19,8 +19,8 @@
 import com.android.tools.r8.graph.DexCode;
 import com.android.tools.r8.graph.DexEncodedMethod;
 import com.android.tools.r8.utils.FileUtils;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -43,7 +43,7 @@
   @Test
   public void testWriteOnlyField_putObject_gone() throws Exception {
     Path processedApp = runR8(EXAMPLE_KEEP);
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject clazz = inspector.clazz(WRITE_ONLY_FIELD + ".WriteOnlyCls");
     clazz.forAllMethods(
         methodSubject -> {
@@ -71,7 +71,7 @@
   @Test
   public void testWriteOnlyField_dontoptimize() throws Exception {
     Path processedApp = runR8(DONT_OPTIMIZE);
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject clazz = inspector.clazz(WRITE_ONLY_FIELD + ".WriteOnlyCls");
     clazz.forAllMethods(
         methodSubject -> {
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/NonNullTrackerTest.java b/src/test/java/com/android/tools/r8/ir/optimize/NonNullTrackerTest.java
index 2ef43fd..9993b68 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/NonNullTrackerTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/NonNullTrackerTest.java
@@ -28,7 +28,7 @@
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.Timing;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.util.function.Consumer;
 import org.junit.Test;
 
@@ -46,8 +46,8 @@
         new ApplicationReader(app, TEST_OPTIONS, new Timing("NonNullMarkerTest.appReader"))
             .read().toDirect();
     AppInfo appInfo = new AppInfo(dexApplication);
-    DexInspector dexInspector = new DexInspector(appInfo.app);
-    DexEncodedMethod foo = dexInspector.clazz(testClass.getName()).method(signature).getMethod();
+    CodeInspector codeInspector = new CodeInspector(appInfo.app);
+    DexEncodedMethod foo = codeInspector.clazz(testClass.getName()).method(signature).getMethod();
     IRCode irCode = foo.buildIR(appInfo, TEST_OPTIONS, Origin.unknown());
     checkCountOfNonNull(irCode, 0);
 
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/R8InliningTest.java b/src/test/java/com/android/tools/r8/ir/optimize/R8InliningTest.java
index 7284384..dd7756b 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/R8InliningTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/R8InliningTest.java
@@ -30,9 +30,9 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.FileUtils;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -145,14 +145,14 @@
 
   private void dump(Path path, String title) throws Throwable {
     System.out.println(title + ":");
-    DexInspector inspector = new DexInspector(path.toAbsolutePath());
+    CodeInspector inspector = new CodeInspector(path.toAbsolutePath());
     inspector.clazz("inlining.Inlining").forAllMethods(m -> dump(m.getMethod()));
     System.out.println(title + " size: " + Files.size(path));
   }
 
   @Test
   public void checkNoInvokes() throws Throwable {
-    DexInspector inspector = new DexInspector(getGeneratedDexFile().toAbsolutePath(),
+    CodeInspector inspector = new CodeInspector(getGeneratedDexFile().toAbsolutePath(),
         getGeneratedProguardMap());
     ClassSubject clazz = inspector.clazz("inlining.Inlining");
 
@@ -189,8 +189,8 @@
 
   @Test
   public void invokeOnNullableReceiver() throws Exception {
-    DexInspector inspector =
-        new DexInspector(getGeneratedDexFile().toAbsolutePath(), getGeneratedProguardMap());
+    CodeInspector inspector =
+        new CodeInspector(getGeneratedDexFile().toAbsolutePath(), getGeneratedProguardMap());
     ClassSubject clazz = inspector.clazz("inlining.Nullability");
     MethodSubject m = clazz.method("int", "inlinable", ImmutableList.of("inlining.A"));
     DexCode code;
@@ -257,8 +257,8 @@
 
   @Test
   public void invokeOnNonNullReceiver() throws Exception {
-    DexInspector inspector =
-        new DexInspector(getGeneratedDexFile().toAbsolutePath(), getGeneratedProguardMap());
+    CodeInspector inspector =
+        new CodeInspector(getGeneratedDexFile().toAbsolutePath(), getGeneratedProguardMap());
     ClassSubject clazz = inspector.clazz("inlining.Nullability");
     MethodSubject m = clazz.method("int", "conditionalOperator", ImmutableList.of("inlining.A"));
     assertTrue(m.isPresent());
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/SimplifyIfNotNullTest.java b/src/test/java/com/android/tools/r8/ir/optimize/SimplifyIfNotNullTest.java
index 43b728e..ad0ae87 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/SimplifyIfNotNullTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/SimplifyIfNotNullTest.java
@@ -17,7 +17,7 @@
 import com.android.tools.r8.ir.optimize.nonnull.NonNullAfterInvoke;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.Arrays;
 import java.util.List;
@@ -32,10 +32,10 @@
     AndroidApp app = buildAndroidApp(ToolHelper.getClassAsBytes(testClass));
     AndroidApp r8Result = compileWithR8(app,
         "-keep class " + testClass.getCanonicalName() + " { *; }");
-    DexInspector dexInspector = new DexInspector(r8Result);
+    CodeInspector codeInspector = new CodeInspector(r8Result);
     for (MethodSignature signature : signatures) {
       DexEncodedMethod method =
-          dexInspector.clazz(testClass.getName()).method(signature).getMethod();
+          codeInspector.clazz(testClass.getName()).method(signature).getMethod();
       long count = Arrays.stream(method.getCode().asDexCode().instructions)
           .filter(SimplifyIfNotNullTest::isIf).count();
       assertEquals(0, count);
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlinerTest.java b/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlinerTest.java
index d40e202..793da3c 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlinerTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlinerTest.java
@@ -46,8 +46,8 @@
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.Sets;
 import java.nio.file.Path;
 import java.util.Collections;
@@ -81,7 +81,7 @@
     String artOutput = runOnArt(app, TrivialTestClass.class);
     assertEquals(javaOutput, artOutput);
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz(TrivialTestClass.class);
 
     assertEquals(
@@ -153,7 +153,7 @@
     String artOutput = runOnArt(app, BuildersTestClass.class);
     assertEquals(javaOutput, artOutput);
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz(BuildersTestClass.class);
 
     assertEquals(
@@ -238,7 +238,7 @@
     String artOutput = runOnArt(app, CodeTestClass.class);
     assertEquals(javaOutput, artOutput);
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz(C.class);
 
     assertEquals(
@@ -274,7 +274,7 @@
     String artOutput = runOnArt(app, InvalidRootsTestClass.class);
     assertEquals(javaOutput, artOutput);
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz(InvalidRootsTestClass.class);
 
     assertEquals(
@@ -315,7 +315,7 @@
     String artOutput = runOnArt(app, LambdasTestClass.class);
     assertEquals(javaOutput, artOutput);
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz(LambdasTestClass.class);
 
     assertEquals(
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/InvokeInterfaceToInvokeVirtualTest.java b/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/InvokeInterfaceToInvokeVirtualTest.java
index 0ae7971..c5d6261 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/InvokeInterfaceToInvokeVirtualTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/InvokeInterfaceToInvokeVirtualTest.java
@@ -24,8 +24,8 @@
 import com.android.tools.r8.ir.optimize.devirtualize.invokeinterface.Main;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import org.junit.Test;
@@ -67,9 +67,9 @@
     Path out = temp.getRoot().toPath();
     AndroidApp processedApp = runR8(originalApp, Main.class, out);
 
-    DexInspector dexInspector = new DexInspector(processedApp);
-    ClassSubject clazz = dexInspector.clazz(main);
-    DexEncodedMethod m = clazz.method(DexInspector.MAIN).getMethod();
+    CodeInspector codeInspector = new CodeInspector(processedApp);
+    ClassSubject clazz = codeInspector.clazz(main);
+    DexEncodedMethod m = clazz.method(CodeInspector.MAIN).getMethod();
     DexCode code = m.getCode().asDexCode();
     long numOfInvokeInterface = filterInstructionKind(code, InvokeInterface.class).count();
     // List#add, List#get
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlinerTest.java b/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlinerTest.java
index 4b603952..5cdaac8 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlinerTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlinerTest.java
@@ -22,9 +22,9 @@
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import java.nio.file.Path;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -57,7 +57,7 @@
     String artOutput = runOnArt(app, InterfaceTargetsTestClass.class);
     assertEquals(javaOutput, artOutput);
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz(InterfaceTargetsTestClass.class);
 
     assertFalse(getMethodSubject(clazz,
diff --git a/src/test/java/com/android/tools/r8/ir/regalloc/B77240639.java b/src/test/java/com/android/tools/r8/ir/regalloc/B77240639.java
index c79e50e..2c66eb1 100644
--- a/src/test/java/com/android/tools/r8/ir/regalloc/B77240639.java
+++ b/src/test/java/com/android/tools/r8/ir/regalloc/B77240639.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.ir.regalloc;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertThat;
@@ -11,8 +11,8 @@
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.util.List;
 import java.util.Map;
 import org.junit.Test;
@@ -21,7 +21,7 @@
   @Test
   public void test1() throws Exception {
     AndroidApp app = compileWithD8(readClasses(TestClass.class));
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz(TestClass.class);
     assertThat(clazz, isPresent());
   }
@@ -29,7 +29,7 @@
   @Test
   public void test2() throws Exception {
     AndroidApp app = compileWithD8(readClasses(OtherTestClass.class));
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz(OtherTestClass.class);
     assertThat(clazz, isPresent());
     ToolHelper.ProcessResult d8Result = runOnArtRaw(app, OtherTestClass.class.getCanonicalName());
diff --git a/src/test/java/com/android/tools/r8/ir/regalloc/B79405526.java b/src/test/java/com/android/tools/r8/ir/regalloc/B79405526.java
index 36156eb..4065493 100644
--- a/src/test/java/com/android/tools/r8/ir/regalloc/B79405526.java
+++ b/src/test/java/com/android/tools/r8/ir/regalloc/B79405526.java
@@ -4,20 +4,20 @@
 
 package com.android.tools.r8.ir.regalloc;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertThat;
 
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import org.junit.Test;
 
 public class B79405526 extends TestBase {
   @Test
   public void test() throws Exception {
     AndroidApp app = compileWithD8(readClasses(TestClass.class));
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazz = inspector.clazz(TestClass.class);
     assertThat(clazz, isPresent());
     // Throws if a method in TestClass does not verify.
diff --git a/src/test/java/com/android/tools/r8/jar/UnicodeSetRegression/UnicodeSetRegressionTest.java b/src/test/java/com/android/tools/r8/jar/UnicodeSetRegression/UnicodeSetRegressionTest.java
index d8861b6..6f8d39c 100644
--- a/src/test/java/com/android/tools/r8/jar/UnicodeSetRegression/UnicodeSetRegressionTest.java
+++ b/src/test/java/com/android/tools/r8/jar/UnicodeSetRegression/UnicodeSetRegressionTest.java
@@ -11,7 +11,7 @@
 import com.android.tools.r8.utils.ArtErrorParser;
 import com.android.tools.r8.utils.ArtErrorParser.ArtErrorInfo;
 import com.android.tools.r8.utils.ArtErrorParser.ArtErrorParserException;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -60,8 +60,8 @@
     } catch (AssertionError e) {
       AndroidApp fromDexApp =
           ToolHelper.runR8(dexFromDX(), options -> options.ignoreMissingClasses = true);
-      DexInspector fromDex = new DexInspector(fromDexApp);
-      DexInspector fromJar = new DexInspector(result);
+      CodeInspector fromDex = new CodeInspector(fromDexApp);
+      CodeInspector fromJar = new CodeInspector(result);
       List<ArtErrorInfo> errors;
       try {
         errors = ArtErrorParser.parse(e.getMessage());
diff --git a/src/test/java/com/android/tools/r8/jasmin/AnnotationCompanionClassTest.java b/src/test/java/com/android/tools/r8/jasmin/AnnotationCompanionClassTest.java
index ed9194e..7e90163 100644
--- a/src/test/java/com/android/tools/r8/jasmin/AnnotationCompanionClassTest.java
+++ b/src/test/java/com/android/tools/r8/jasmin/AnnotationCompanionClassTest.java
@@ -7,7 +7,7 @@
 
 import com.android.tools.r8.ir.desugar.InterfaceMethodRewriter;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import org.junit.Test;
 
@@ -33,9 +33,9 @@
     JasminBuilder builder = buildClass();
     AndroidApp androidApp = compileWithD8(builder);
 
-    DexInspector dexInspector = new DexInspector(androidApp);
+    CodeInspector codeInspector = new CodeInspector(androidApp);
     assertFalse(
-        dexInspector
+        codeInspector
             .clazz("LMyAnnotation" + InterfaceMethodRewriter.COMPANION_CLASS_NAME_SUFFIX + ";")
             .isAnnotation());
   }
diff --git a/src/test/java/com/android/tools/r8/jasmin/DebugLocalTests.java b/src/test/java/com/android/tools/r8/jasmin/DebugLocalTests.java
index b56824d..a6505c8 100644
--- a/src/test/java/com/android/tools/r8/jasmin/DebugLocalTests.java
+++ b/src/test/java/com/android/tools/r8/jasmin/DebugLocalTests.java
@@ -12,9 +12,9 @@
 import com.android.tools.r8.jasmin.JasminBuilder.ClassFileVersion;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import org.junit.Test;
 
@@ -101,7 +101,7 @@
     AndroidApp jasminApp = builder.build();
     AndroidApp d8App = ToolHelper.runD8(jasminApp);
 
-    DexInspector inspector = new DexInspector(d8App);
+    CodeInspector inspector = new CodeInspector(d8App);
     ClassSubject classSubject = inspector.clazz("Test");
     MethodSubject methodSubject = classSubject.method(foo);
     DexCode code = methodSubject.getMethod().getCode().asDexCode();
diff --git a/src/test/java/com/android/tools/r8/jasmin/JumboStringTests.java b/src/test/java/com/android/tools/r8/jasmin/JumboStringTests.java
index c7a32b3..40928ee 100644
--- a/src/test/java/com/android/tools/r8/jasmin/JumboStringTests.java
+++ b/src/test/java/com/android/tools/r8/jasmin/JumboStringTests.java
@@ -10,7 +10,7 @@
 import com.android.tools.r8.dex.Constants;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
@@ -91,7 +91,7 @@
     AndroidApp d8App = ToolHelper.runD8(jasminApp);
     assertEquals(expected, runOnArt(d8App, clazz.name));
 
-    DexInspector inspector = new DexInspector(d8App);
+    CodeInspector inspector = new CodeInspector(d8App);
     for (Entry<String, MethodSignature> entry : classes.entrySet()) {
       DebugInfoInspector info = new DebugInfoInspector(inspector, entry.getKey(), entry.getValue());
       info.checkStartLine(1);
diff --git a/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java b/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
index c2dd7b1..4919227 100644
--- a/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
+++ b/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
@@ -14,9 +14,9 @@
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.AndroidAppConsumers;
-import com.android.tools.r8.utils.dexinspector.AnnotationSubject;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.AnnotationSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -132,9 +132,9 @@
 
     compileWithR8(INPUT_PATH, outputPath, SHRINK_NO_KEEP_CONFIG);
 
-    DexInspector dexInspector =
-        new DexInspector(outputPath.resolve("classes.dex"), getGeneratedProguardMap());
-    ClassSubject classSubject = dexInspector.clazz("HelloKt");
+    CodeInspector codeInspector =
+        new CodeInspector(outputPath.resolve("classes.dex"), getGeneratedProguardMap());
+    ClassSubject classSubject = codeInspector.clazz("HelloKt");
     AnnotationSubject annotationSubject =
         classSubject.annotation("dalvik.annotation.SourceDebugExtension");
     Assert.assertFalse(annotationSubject.isPresent());
@@ -147,8 +147,8 @@
         new ReadSourceDebugExtensionAttribute(Opcodes.ASM6, null);
     classReader.accept(sourceDebugExtensionReader, 0);
 
-    DexInspector dexInspector = new DexInspector(androidApp);
-    ClassSubject classSubject = dexInspector.clazz("HelloKt");
+    CodeInspector codeInspector = new CodeInspector(androidApp);
+    ClassSubject classSubject = codeInspector.clazz("HelloKt");
 
     AnnotationSubject annotationSubject =
         classSubject.annotation("dalvik.annotation.SourceDebugExtension");
diff --git a/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java b/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java
index 4fd1d8d..4405565 100644
--- a/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java
+++ b/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java
@@ -23,10 +23,10 @@
 import com.android.tools.r8.utils.DescriptorUtils;
 import com.android.tools.r8.utils.FileUtils;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -112,7 +112,7 @@
     }));
   }
 
-  protected ClassSubject checkClassIsKept(DexInspector inspector, String className) {
+  protected ClassSubject checkClassIsKept(CodeInspector inspector, String className) {
     checkClassExistsInInput(className);
     ClassSubject classSubject = inspector.clazz(className);
     assertNotNull(classSubject);
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
index a28d0c5..67afdd7 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
@@ -17,8 +17,8 @@
 import com.android.tools.r8.graph.DexCode;
 import com.android.tools.r8.graph.DexType;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
@@ -55,7 +55,7 @@
         clazz.interfaces.size() == 1;
   }
 
-  private static Predicate<DexType> createLambdaCheck(DexInspector inspector) {
+  private static Predicate<DexType> createLambdaCheck(CodeInspector inspector) {
     Set<DexType> lambdaClasses = inspector.allClasses().stream()
         .filter(clazz -> isLambda(clazz.getDexClass()))
         .map(clazz -> clazz.getDexClass().type)
@@ -67,7 +67,7 @@
   public void testJStyleLambdas() throws Exception {
     final String mainClassName = "class_inliner_lambda_j_style.MainKt";
     runTest("class_inliner_lambda_j_style", mainClassName, false, (app) -> {
-      DexInspector inspector = new DexInspector(app);
+      CodeInspector inspector = new CodeInspector(app);
       assertTrue(
           inspector.clazz("class_inliner_lambda_j_style.MainKt$testStateful$1").isPresent());
       assertTrue(
@@ -77,7 +77,7 @@
     });
 
     runTest("class_inliner_lambda_j_style", mainClassName, true, (app) -> {
-      DexInspector inspector = new DexInspector(app);
+      CodeInspector inspector = new CodeInspector(app);
       Predicate<DexType> lambdaCheck = createLambdaCheck(inspector);
       ClassSubject clazz = inspector.clazz(mainClassName);
 
@@ -112,7 +112,7 @@
   public void testKStyleLambdas() throws Exception {
     final String mainClassName = "class_inliner_lambda_k_style.MainKt";
     runTest("class_inliner_lambda_k_style", mainClassName, false, (app) -> {
-      DexInspector inspector = new DexInspector(app);
+      CodeInspector inspector = new CodeInspector(app);
       assertTrue(inspector.clazz(
           "class_inliner_lambda_k_style.MainKt$testKotlinSequencesStateless$1").isPresent());
       assertTrue(inspector.clazz(
@@ -135,7 +135,7 @@
     });
 
     runTest("class_inliner_lambda_k_style", mainClassName, true, (app) -> {
-      DexInspector inspector = new DexInspector(app);
+      CodeInspector inspector = new CodeInspector(app);
       Predicate<DexType> lambdaCheck = createLambdaCheck(inspector);
       ClassSubject clazz = inspector.clazz(mainClassName);
 
@@ -186,7 +186,7 @@
   public void testDataClass() throws Exception {
     final String mainClassName = "class_inliner_data_class.MainKt";
     runTest("class_inliner_data_class", mainClassName, true, (app) -> {
-      DexInspector inspector = new DexInspector(app);
+      CodeInspector inspector = new CodeInspector(app);
       ClassSubject clazz = inspector.clazz(mainClassName);
       assertTrue(collectAccessedTypes(
           type -> !type.toSourceString().startsWith("java."),
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinLambdaMergingTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinLambdaMergingTest.java
index 658e89a..e43e94c 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinLambdaMergingTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinLambdaMergingTest.java
@@ -14,7 +14,7 @@
 import com.android.tools.r8.ir.optimize.lambda.CaptureSignature;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.Lists;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -139,21 +139,21 @@
   }
 
   static class Verifier {
-    final DexInspector dexInspector;
+    final CodeInspector codeInspector;
     final List<DexClass> lambdas = new ArrayList<>();
     final List<DexClass> groups = new ArrayList<>();
 
     Verifier(AndroidApp app) throws IOException, ExecutionException {
-      this(new DexInspector(app));
+      this(new CodeInspector(app));
     }
 
-    Verifier(DexInspector dexInspector) {
-      this.dexInspector = dexInspector;
+    Verifier(CodeInspector codeInspector) {
+      this.codeInspector = codeInspector;
       initGroupsAndLambdas();
     }
 
     private void initGroupsAndLambdas() {
-      dexInspector.forAllClasses(clazz -> {
+      codeInspector.forAllClasses(clazz -> {
         DexClass dexClass = clazz.getDexClass();
         if (isLambdaOrGroup(dexClass)) {
           if (isLambdaGroupClass(dexClass)) {
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinxMetadataExtensionsServiceTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinxMetadataExtensionsServiceTest.java
index 233bb24..87b9487 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinxMetadataExtensionsServiceTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinxMetadataExtensionsServiceTest.java
@@ -20,7 +20,7 @@
 import com.android.tools.r8.kotlin.KotlinLambdaMergingTest.Verifier;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.FileUtils;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Files;
 import java.nio.file.Path;
@@ -60,7 +60,7 @@
         "No MetadataExtensions instances found in the classpath")));
     assertTrue(Files.exists(output));
 
-    DexInspector inspector = new DexInspector(output);
+    CodeInspector inspector = new CodeInspector(output);
     Verifier verifier = new Verifier(inspector);
     String pkg = "lambdas_kstyle_trivial";
     verifier.assertLambdaGroups(
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java
index 53b7925..4b1b404 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java
@@ -16,9 +16,9 @@
 import com.android.tools.r8.kotlin.TestKotlinClass.Visibility;
 import com.android.tools.r8.naming.MemberNaming;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
 import java.nio.file.Path;
 import java.util.Collections;
 import org.junit.Assert;
@@ -65,8 +65,8 @@
     String mainClass = addMainToClasspath("properties.CompanionPropertiesKt",
         "companionProperties_usePrimitiveProp");
     runTest(PROPERTIES_PACKAGE_NAME, mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
       String propertyName = "primitiveProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, "int", propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -94,8 +94,8 @@
     String mainClass = addMainToClasspath("properties.CompanionPropertiesKt",
         "companionProperties_usePrivateProp");
     runTest(PROPERTIES_PACKAGE_NAME, mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
       String propertyName = "privateProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -124,8 +124,8 @@
     String mainClass = addMainToClasspath("properties.CompanionPropertiesKt",
         "companionProperties_useInternalProp");
     runTest(PROPERTIES_PACKAGE_NAME, mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
       String propertyName = "internalProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -153,8 +153,8 @@
     String mainClass = addMainToClasspath("properties.CompanionPropertiesKt",
         "companionProperties_usePublicProp");
     runTest(PROPERTIES_PACKAGE_NAME, mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
       String propertyName = "publicProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -182,8 +182,8 @@
     String mainClass = addMainToClasspath("properties.CompanionLateInitPropertiesKt",
         "companionLateInitProperties_usePrivateLateInitProp");
     runTest(PROPERTIES_PACKAGE_NAME, mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
       String propertyName = "privateLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -210,8 +210,8 @@
     String mainClass = addMainToClasspath("properties.CompanionLateInitPropertiesKt",
         "companionLateInitProperties_useInternalLateInitProp");
     runTest(PROPERTIES_PACKAGE_NAME, mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
       String propertyName = "internalLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -234,8 +234,8 @@
     String mainClass = addMainToClasspath("properties.CompanionLateInitPropertiesKt",
         "companionLateInitProperties_usePublicLateInitProp");
     runTest(PROPERTIES_PACKAGE_NAME, mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
       String propertyName = "publicLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -258,9 +258,9 @@
     String mainClass = addMainToClasspath("accessors.AccessorKt",
         "accessor_accessPropertyFromCompanionClass");
     runTest("accessors", mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
-      ClassSubject companionClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
+      ClassSubject companionClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "property";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -288,9 +288,9 @@
     String mainClass = addMainToClasspath("accessors.AccessorKt",
         "accessor_accessPropertyFromOuterClass");
     runTest("accessors", mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
-      ClassSubject companionClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
+      ClassSubject companionClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "property";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -318,8 +318,8 @@
     String mainClass = addMainToClasspath(testedClass.className + "Kt",
         "noUseOfPropertyAccessorFromInnerClass");
     runTest("accessors", mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector, testedClass.getClassName());
 
       for (String propertyName : testedClass.properties.keySet()) {
         MemberNaming.MethodSignature getterAccessor =
@@ -340,8 +340,8 @@
     String mainClass = addMainToClasspath(testedClass.className + "Kt",
         "usePrivatePropertyAccessorFromInnerClass");
     runTest("accessors", mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector, testedClass.getClassName());
 
       String propertyName = "privateProp";
       FieldSubject fieldSubject = checkFieldIsKept(classSubject, JAVA_LANG_STRING,
@@ -371,8 +371,8 @@
     String mainClass = addMainToClasspath(testedClass.className + "Kt",
         "usePrivateLateInitPropertyAccessorFromInnerClass");
     runTest("accessors", mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector, testedClass.getClassName());
 
       String propertyName = "privateLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(classSubject, JAVA_LANG_STRING,
@@ -402,8 +402,8 @@
     String mainClass = addMainToClasspath(testedClass.className + "Kt",
         "noUseOfPropertyAccessorFromLambda");
     runTest("accessors", mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "property";
 
       MemberNaming.MethodSignature getterAccessor =
@@ -423,8 +423,8 @@
     String mainClass = addMainToClasspath(testedClass.className + "Kt",
         "usePropertyAccessorFromLambda");
     runTest("accessors", mainClass, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "property";
       FieldSubject fieldSubject = checkFieldIsKept(classSubject, JAVA_LANG_STRING, propertyName);
       assertFalse(fieldSubject.getField().accessFlags.isStatic());
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java
index 45f74af..58eae89 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java
@@ -8,9 +8,9 @@
 import com.android.tools.r8.kotlin.TestKotlinClass.Visibility;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import java.util.Collections;
 import java.util.function.Consumer;
 import org.junit.Test;
@@ -44,8 +44,8 @@
         new MethodSignature("testDataClassGetters", "void", Collections.emptyList());
     final String extraRules = keepClassMethod(mainClassName, testMethodSignature);
     runTest("dataclass", mainClassName, extraRules, disableClassInliner, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject dataClass = checkClassIsKept(dexInspector, TEST_DATA_CLASS.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject dataClass = checkClassIsKept(codeInspector, TEST_DATA_CLASS.getClassName());
 
       // Getters should be removed after inlining, which is possible only if access is relaxed.
       final boolean areGetterPresent = !allowAccessModification;
@@ -60,7 +60,7 @@
       checkMethodIsRemoved(dataClass, COPY_METHOD);
       checkMethodIsRemoved(dataClass, COPY_DEFAULT_METHOD);
 
-      ClassSubject classSubject = checkClassIsKept(dexInspector, mainClassName);
+      ClassSubject classSubject = checkClassIsKept(codeInspector, mainClassName);
       MethodSubject testMethod = checkMethodIsKept(classSubject, testMethodSignature);
       DexCode dexCode = getDexCode(testMethod);
       if (allowAccessModification) {
@@ -79,8 +79,8 @@
         new MethodSignature("testAllDataClassComponentFunctions", "void", Collections.emptyList());
     final String extraRules = keepClassMethod(mainClassName, testMethodSignature);
     runTest("dataclass", mainClassName, extraRules, disableClassInliner, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject dataClass = checkClassIsKept(dexInspector, TEST_DATA_CLASS.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject dataClass = checkClassIsKept(codeInspector, TEST_DATA_CLASS.getClassName());
 
       // ComponentN functions should be removed after inlining, which is possible only if access
       // is relaxed.
@@ -96,7 +96,7 @@
       checkMethodIsRemoved(dataClass, COPY_METHOD);
       checkMethodIsRemoved(dataClass, COPY_DEFAULT_METHOD);
 
-      ClassSubject classSubject = checkClassIsKept(dexInspector, mainClassName);
+      ClassSubject classSubject = checkClassIsKept(codeInspector, mainClassName);
       MethodSubject testMethod = checkMethodIsKept(classSubject, testMethodSignature);
       DexCode dexCode = getDexCode(testMethod);
       if (allowAccessModification) {
@@ -114,8 +114,8 @@
         new MethodSignature("testSomeDataClassComponentFunctions", "void", Collections.emptyList());
     final String extraRules = keepClassMethod(mainClassName, testMethodSignature);
     runTest("dataclass", mainClassName, extraRules, disableClassInliner, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject dataClass = checkClassIsKept(dexInspector, TEST_DATA_CLASS.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject dataClass = checkClassIsKept(codeInspector, TEST_DATA_CLASS.getClassName());
 
       boolean component2IsPresent = !allowAccessModification;
       checkMethodisKeptOrRemoved(dataClass, COMPONENT2_METHOD, component2IsPresent);
@@ -131,7 +131,7 @@
       checkMethodIsRemoved(dataClass, COPY_METHOD);
       checkMethodIsRemoved(dataClass, COPY_DEFAULT_METHOD);
 
-      ClassSubject classSubject = checkClassIsKept(dexInspector, mainClassName);
+      ClassSubject classSubject = checkClassIsKept(codeInspector, mainClassName);
       MethodSubject testMethod = checkMethodIsKept(classSubject, testMethodSignature);
       DexCode dexCode = getDexCode(testMethod);
       if (allowAccessModification) {
@@ -149,8 +149,8 @@
         new MethodSignature("testDataClassCopy", "void", Collections.emptyList());
     final String extraRules = keepClassMethod(mainClassName, testMethodSignature);
     runTest("dataclass", mainClassName, extraRules, disableClassInliner, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject dataClass = checkClassIsKept(dexInspector, TEST_DATA_CLASS.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject dataClass = checkClassIsKept(codeInspector, TEST_DATA_CLASS.getClassName());
 
       checkMethodIsRemoved(dataClass, COPY_METHOD);
       checkMethodIsRemoved(dataClass, COPY_DEFAULT_METHOD);
@@ -164,8 +164,8 @@
         new MethodSignature("testDataClassCopyWithDefault", "void", Collections.emptyList());
     final String extraRules = keepClassMethod(mainClassName, testMethodSignature);
     runTest("dataclass", mainClassName, extraRules, disableClassInliner, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject dataClass = checkClassIsKept(dexInspector, TEST_DATA_CLASS.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject dataClass = checkClassIsKept(codeInspector, TEST_DATA_CLASS.getClassName());
 
       checkMethodIsRemoved(dataClass, COPY_DEFAULT_METHOD);
     });
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java
index c764974..c90df04 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java
@@ -5,8 +5,8 @@
 package com.android.tools.r8.kotlin;
 
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import java.util.Collections;
@@ -27,9 +27,9 @@
             "java.lang.String", Lists.newArrayList("java.lang.String", "java.lang.String")));
 
     runTest("intrinsics", "intrinsics.IntrinsicsKt", extraRules, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
+      CodeInspector codeInspector = new CodeInspector(app);
       ClassSubject intrinsicsClass = checkClassIsKept(
-          dexInspector, KOTLIN_INTRINSICS_CLASS.getClassName());
+          codeInspector, KOTLIN_INTRINSICS_CLASS.getClassName());
 
       checkMethodsPresence(intrinsicsClass,
           ImmutableMap.<MethodSignature, Boolean>builder()
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java
index 03c2873..89ff81d 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java
@@ -11,9 +11,9 @@
 import com.android.tools.r8.naming.MemberNaming;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
 import java.util.Map.Entry;
 import java.util.function.Consumer;
 import org.junit.Test;
@@ -93,8 +93,8 @@
     String mainClass = addMainToClasspath("properties/MutablePropertyKt",
         "mutableProperty_noUseOfProperties");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           MUTABLE_PROPERTY_CLASS.getClassName());
       for (Entry<String, KotlinProperty> property : MUTABLE_PROPERTY_CLASS.properties.entrySet()) {
         MethodSignature getter = MUTABLE_PROPERTY_CLASS.getGetterForProperty(property.getKey());
@@ -116,8 +116,8 @@
     String mainClass = addMainToClasspath("properties/MutablePropertyKt",
         "mutableProperty_usePrivateProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           MUTABLE_PROPERTY_CLASS.getClassName());
       String propertyName = "privateProp";
       FieldSubject fieldSubject = checkFieldIsKept(classSubject, JAVA_LANG_STRING, propertyName);
@@ -138,8 +138,8 @@
     String mainClass = addMainToClasspath("properties/MutablePropertyKt",
         "mutableProperty_useProtectedProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           MUTABLE_PROPERTY_CLASS.getClassName());
       String propertyName = "protectedProp";
       FieldSubject fieldSubject = checkFieldIsKept(classSubject, JAVA_LANG_STRING, propertyName);
@@ -161,8 +161,8 @@
     String mainClass = addMainToClasspath("properties/MutablePropertyKt",
         "mutableProperty_useInternalProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           MUTABLE_PROPERTY_CLASS.getClassName());
       String propertyName = "internalProp";
       FieldSubject fieldSubject = checkFieldIsKept(classSubject, JAVA_LANG_STRING, propertyName);
@@ -184,8 +184,8 @@
     String mainClass = addMainToClasspath("properties/MutablePropertyKt",
         "mutableProperty_usePublicProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           MUTABLE_PROPERTY_CLASS.getClassName());
       String propertyName = "publicProp";
       FieldSubject fieldSubject = checkFieldIsKept(classSubject, JAVA_LANG_STRING, propertyName);
@@ -207,8 +207,8 @@
     String mainClass = addMainToClasspath("properties/MutablePropertyKt",
         "mutableProperty_usePrimitiveProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           MUTABLE_PROPERTY_CLASS.getClassName());
       String propertyName = "primitiveProp";
       FieldSubject fieldSubject = checkFieldIsKept(classSubject, "int", propertyName);
@@ -232,8 +232,8 @@
     String mainClass = addMainToClasspath("properties/LateInitPropertyKt",
         "lateInitProperty_noUseOfProperties");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           LATE_INIT_PROPERTY_CLASS.getClassName());
       for (Entry<String, KotlinProperty> property : LATE_INIT_PROPERTY_CLASS.properties.entrySet()) {
         MethodSignature getter = LATE_INIT_PROPERTY_CLASS.getGetterForProperty(property.getKey());
@@ -256,8 +256,8 @@
     String mainClass = addMainToClasspath(
         "properties/LateInitPropertyKt", "lateInitProperty_usePrivateLateInitProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           LATE_INIT_PROPERTY_CLASS.getClassName());
       String propertyName = "privateLateInitProp";
       FieldSubject fieldSubject = classSubject.field(JAVA_LANG_STRING, propertyName);
@@ -279,8 +279,8 @@
     String mainClass = addMainToClasspath("properties/LateInitPropertyKt",
         "lateInitProperty_useProtectedLateInitProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           LATE_INIT_PROPERTY_CLASS.getClassName());
       String propertyName = "protectedLateInitProp";
       FieldSubject fieldSubject = classSubject.field(JAVA_LANG_STRING, propertyName);
@@ -300,8 +300,8 @@
     String mainClass = addMainToClasspath(
         "properties/LateInitPropertyKt", "lateInitProperty_useInternalLateInitProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           LATE_INIT_PROPERTY_CLASS.getClassName());
       String propertyName = "internalLateInitProp";
       FieldSubject fieldSubject = classSubject.field(JAVA_LANG_STRING, propertyName);
@@ -319,8 +319,8 @@
     String mainClass = addMainToClasspath(
         "properties/LateInitPropertyKt", "lateInitProperty_usePublicLateInitProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           LATE_INIT_PROPERTY_CLASS.getClassName());
       String propertyName = "publicLateInitProp";
       FieldSubject fieldSubject = classSubject.field(JAVA_LANG_STRING, propertyName);
@@ -338,8 +338,8 @@
     String mainClass = addMainToClasspath(
         "properties/UserDefinedPropertyKt", "userDefinedProperty_noUseOfProperties");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           USER_DEFINED_PROPERTY_CLASS.getClassName());
       for (String propertyName : USER_DEFINED_PROPERTY_CLASS.properties.keySet()) {
         checkMethodIsRemoved(classSubject,
@@ -355,8 +355,8 @@
     String mainClass = addMainToClasspath(
         "properties/UserDefinedPropertyKt", "userDefinedProperty_useProperties");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject classSubject = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject classSubject = checkClassIsKept(codeInspector,
           USER_DEFINED_PROPERTY_CLASS.getClassName());
       String propertyName = "durationInSeconds";
       // The 'wrapper' property is not assigned to a backing field, it only relies on the wrapped
@@ -381,10 +381,10 @@
     String mainClass = addMainToClasspath(
         "properties.CompanionPropertiesKt", "companionProperties_usePrimitiveProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector,
           "properties.CompanionProperties");
-      ClassSubject companionClass = checkClassIsKept(dexInspector,
+      ClassSubject companionClass = checkClassIsKept(codeInspector,
           COMPANION_PROPERTY_CLASS.getClassName());
       String propertyName = "primitiveProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, "int", propertyName);
@@ -412,10 +412,10 @@
     String mainClass = addMainToClasspath(
         "properties.CompanionPropertiesKt", "companionProperties_usePrivateProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector,
           "properties.CompanionProperties");
-      ClassSubject companionClass = checkClassIsKept(dexInspector,
+      ClassSubject companionClass = checkClassIsKept(codeInspector,
           COMPANION_PROPERTY_CLASS.getClassName());
       String propertyName = "privateProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
@@ -446,10 +446,10 @@
     String mainClass = addMainToClasspath(
         "properties.CompanionPropertiesKt", "companionProperties_useInternalProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector,
           "properties.CompanionProperties");
-      ClassSubject companionClass = checkClassIsKept(dexInspector,
+      ClassSubject companionClass = checkClassIsKept(codeInspector,
           COMPANION_PROPERTY_CLASS.getClassName());
       String propertyName = "internalProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
@@ -477,10 +477,10 @@
     String mainClass = addMainToClasspath(
         "properties.CompanionPropertiesKt", "companionProperties_usePublicProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector,
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector,
           "properties.CompanionProperties");
-      ClassSubject companionClass = checkClassIsKept(dexInspector,
+      ClassSubject companionClass = checkClassIsKept(codeInspector,
           COMPANION_PROPERTY_CLASS.getClassName());
       String propertyName = "publicProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
@@ -509,9 +509,9 @@
     String mainClass = addMainToClasspath("properties.CompanionLateInitPropertiesKt",
         "companionLateInitProperties_usePrivateLateInitProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
-      ClassSubject companionClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
+      ClassSubject companionClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "privateLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -540,9 +540,9 @@
     String mainClass = addMainToClasspath("properties.CompanionLateInitPropertiesKt",
         "companionLateInitProperties_useInternalLateInitProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
-      ClassSubject companionClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
+      ClassSubject companionClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "internalLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -564,9 +564,9 @@
     String mainClass = addMainToClasspath("properties.CompanionLateInitPropertiesKt",
         "companionLateInitProperties_usePublicLateInitProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject outerClass = checkClassIsKept(dexInspector, testedClass.getOuterClassName());
-      ClassSubject companionClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject outerClass = checkClassIsKept(codeInspector, testedClass.getOuterClassName());
+      ClassSubject companionClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "publicLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(outerClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -588,8 +588,8 @@
     String mainClass = addMainToClasspath(
         "properties.ObjectPropertiesKt", "objectProperties_usePrimitiveProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "primitiveProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, "int", propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -615,8 +615,8 @@
     String mainClass = addMainToClasspath(
         "properties.ObjectPropertiesKt", "objectProperties_usePrivateProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "privateProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -642,8 +642,8 @@
     String mainClass = addMainToClasspath(
         "properties.ObjectPropertiesKt", "objectProperties_useInternalProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "internalProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -669,8 +669,8 @@
     String mainClass = addMainToClasspath(
         "properties.ObjectPropertiesKt", "objectProperties_usePublicProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "publicProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -696,8 +696,8 @@
     String mainClass = addMainToClasspath(
         "properties.ObjectPropertiesKt", "objectProperties_useLateInitPrivateProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "privateLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -723,8 +723,8 @@
     String mainClass = addMainToClasspath(
         "properties.ObjectPropertiesKt", "objectProperties_useLateInitInternalProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "internalLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -746,8 +746,8 @@
     String mainClass = addMainToClasspath(
         "properties.ObjectPropertiesKt", "objectProperties_useLateInitPublicProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "publicLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -769,8 +769,8 @@
     String mainClass = addMainToClasspath(
         "properties.FilePropertiesKt", "fileProperties_usePrimitiveProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "primitiveProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, "int", propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -796,8 +796,8 @@
     String mainClass = addMainToClasspath(
         "properties.FilePropertiesKt", "fileProperties_usePrivateProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "privateProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -822,8 +822,8 @@
     String mainClass = addMainToClasspath(
         "properties.FilePropertiesKt", "fileProperties_useInternalProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "internalProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -848,8 +848,8 @@
     String mainClass = addMainToClasspath(
         "properties.FilePropertiesKt", "fileProperties_usePublicProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "publicProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -875,8 +875,8 @@
     String mainClass = addMainToClasspath(
         "properties.FilePropertiesKt", "fileProperties_useLateInitPrivateProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject fileClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject fileClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "privateLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(fileClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -901,8 +901,8 @@
     String mainClass = addMainToClasspath(
         "properties.FilePropertiesKt", "fileProperties_useLateInitInternalProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "internalLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
@@ -925,8 +925,8 @@
     String mainClass = addMainToClasspath(
         "properties.FilePropertiesKt", "fileProperties_useLateInitPublicProp");
     runTest(PACKAGE_NAME, mainClass, disableClassInliningAndMerging, (app) -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject objectClass = checkClassIsKept(dexInspector, testedClass.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject objectClass = checkClassIsKept(codeInspector, testedClass.getClassName());
       String propertyName = "publicLateInitProp";
       FieldSubject fieldSubject = checkFieldIsKept(objectClass, JAVA_LANG_STRING, propertyName);
       assertTrue(fieldSubject.getField().accessFlags.isStatic());
diff --git a/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java b/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java
index fd41344..12fdaf9 100644
--- a/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java
@@ -10,9 +10,9 @@
 import com.android.tools.r8.code.Instruction;
 import com.android.tools.r8.graph.DexCode;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.Arrays;
 import org.junit.Test;
@@ -35,8 +35,8 @@
     final String mainClassName = ex1.getClassName();
     final String extraRules = keepAllMembers(mainClassName);
     runTest(FOLDER, mainClassName, extraRules, app -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject clazz = checkClassIsKept(dexInspector, ex1.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject clazz = checkClassIsKept(codeInspector, ex1.getClassName());
 
       MethodSubject testMethod = checkMethodIsKept(clazz, testMethodSignature);
       DexCode dexCode = getDexCode(testMethod);
@@ -61,8 +61,8 @@
     final String mainClassName = ex2.getClassName();
     final String extraRules = keepAllMembers(mainClassName);
     runTest(FOLDER, mainClassName, extraRules, app -> {
-      DexInspector dexInspector = new DexInspector(app);
-      ClassSubject clazz = checkClassIsKept(dexInspector, ex2.getClassName());
+      CodeInspector codeInspector = new CodeInspector(app);
+      ClassSubject clazz = checkClassIsKept(codeInspector, ex2.getClassName());
 
       MethodSubject testMethod = checkMethodIsKept(clazz, testMethodSignature);
       DexCode dexCode = getDexCode(testMethod);
diff --git a/src/test/java/com/android/tools/r8/maindexlist/MainDexListTests.java b/src/test/java/com/android/tools/r8/maindexlist/MainDexListTests.java
index 8e1692c..fc41672 100644
--- a/src/test/java/com/android/tools/r8/maindexlist/MainDexListTests.java
+++ b/src/test/java/com/android/tools/r8/maindexlist/MainDexListTests.java
@@ -66,8 +66,8 @@
 import com.android.tools.r8.utils.Reporter;
 import com.android.tools.r8.utils.ThreadUtils;
 import com.android.tools.r8.utils.Timing;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FoundClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import java.io.IOException;
@@ -484,7 +484,7 @@
         .forEach(
             p -> {
               try {
-                DexInspector i = new DexInspector(AndroidApp.builder().addProgramFiles(p).build());
+                CodeInspector i = new CodeInspector(AndroidApp.builder().addProgramFiles(p).build());
                 assertFalse("Found " + clazz + " in file " + p, i.clazz(clazz).isPresent());
               } catch (IOException | ExecutionException e) {
                 e.printStackTrace();
@@ -519,7 +519,7 @@
       throws IOException, ExecutionException, ProguardRuleParserException,
       CompilationFailedException {
     AndroidApp originalApp = AndroidApp.builder().addProgramFiles(app).build();
-    DexInspector originalInspector = new DexInspector(originalApp);
+    CodeInspector originalInspector = new CodeInspector(originalApp);
     for (String clazz : mainDex) {
       assertTrue("Class " + clazz + " does not exist in input",
           originalInspector.clazz(clazz).isPresent());
@@ -583,8 +583,8 @@
       assertTrue("Output run only produced one dex file.",
           1 < Files.list(outDir).filter(FileUtils::isDexFile).count());
     }
-    DexInspector inspector =
-        new DexInspector(
+    CodeInspector inspector =
+        new CodeInspector(
             AndroidApp.builder().addProgramFiles(outDir.resolve("classes.dex")).build());
     for (String clazz : mainDex) {
       if (!inspector.clazz(clazz).isPresent()) {
diff --git a/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java b/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java
index fea8160..c1741c9 100644
--- a/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java
+++ b/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java
@@ -23,7 +23,7 @@
 import com.android.tools.r8.VmTestRunner;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApiLevel;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Paths;
 import java.util.ArrayList;
@@ -84,7 +84,7 @@
         .setMainDexListConsumer(
             (string, handler) -> mainDexList.content = string)
         .build();
-    DexInspector inspector = new DexInspector(ToolHelper.runR8(command));
+    CodeInspector inspector = new CodeInspector(ToolHelper.runR8(command));
     assertTrue(inspector.clazz("instrumentationtest.InstrumentationTest").isPresent());
     assertTrue(mainDexList.content.contains("junit/framework/TestCase.class"));
     // TODO(72794301): Two copies of this message is a bit over the top.
diff --git a/src/test/java/com/android/tools/r8/memberrebinding/CompositionalLenseTest.java b/src/test/java/com/android/tools/r8/memberrebinding/CompositionalLenseTest.java
index d3805d9..6c6e69d 100644
--- a/src/test/java/com/android/tools/r8/memberrebinding/CompositionalLenseTest.java
+++ b/src/test/java/com/android/tools/r8/memberrebinding/CompositionalLenseTest.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.memberrebinding;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
@@ -17,9 +17,9 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.FileUtils;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import java.util.List;
@@ -74,10 +74,10 @@
       options.enableInlining = false;
       options.enableClassMerging = false;
     });
-    DexInspector dexInspector = new DexInspector(processedApp);
-    ClassSubject classSubject = dexInspector.clazz(TestMain.class);
+    CodeInspector codeInspector = new CodeInspector(processedApp);
+    ClassSubject classSubject = codeInspector.clazz(TestMain.class);
     assertThat(classSubject, isPresent());
-    MethodSubject methodSubject = classSubject.method(DexInspector.MAIN);
+    MethodSubject methodSubject = classSubject.method(CodeInspector.MAIN);
     assertThat(methodSubject, isPresent());
     DexCode dexCode = methodSubject.getMethod().getCode().asDexCode();
     assertTrue(dexCode.instructions[2] instanceof InvokeVirtual);
diff --git a/src/test/java/com/android/tools/r8/memberrebinding/MemberRebindingTest.java b/src/test/java/com/android/tools/r8/memberrebinding/MemberRebindingTest.java
index c2ec4b7..80379e0 100644
--- a/src/test/java/com/android/tools/r8/memberrebinding/MemberRebindingTest.java
+++ b/src/test/java/com/android/tools/r8/memberrebinding/MemberRebindingTest.java
@@ -12,11 +12,11 @@
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.TestDescriptionWatcher;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldAccessInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InvokeInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldAccessInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InvokeInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.io.IOException;
 import java.nio.file.Path;
@@ -55,8 +55,8 @@
   private final Frontend kind;
   private final Path originalDex;
   private final Path programFile;
-  private final Consumer<DexInspector> inspection;
-  private final Consumer<DexInspector> originalInspection;
+  private final Consumer<CodeInspector> inspection;
+  private final Consumer<CodeInspector> originalInspection;
   private final int minApiLevel;
 
   @Rule
@@ -101,9 +101,9 @@
     return !invoke.holder().is("java.io.PrintStream");
   }
 
-  private static void inspectOriginalMain(DexInspector inspector) {
+  private static void inspectOriginalMain(CodeInspector inspector) {
     MethodSubject main = inspector.clazz("memberrebinding.Memberrebinding")
-        .method(DexInspector.MAIN);
+        .method(CodeInspector.MAIN);
     Iterator<InvokeInstructionSubject> iterator =
         main.iterateInstructions(MemberRebindingTest::coolInvokes);
     assertTrue(iterator.next().holder().is("memberrebinding.ClassAtBottomOfChain"));
@@ -129,9 +129,9 @@
     assertFalse(iterator.hasNext());
   }
 
-  private static void inspectMain(DexInspector inspector) {
+  private static void inspectMain(CodeInspector inspector) {
     MethodSubject main = inspector.clazz("memberrebinding.Memberrebinding")
-        .method(DexInspector.MAIN);
+        .method(CodeInspector.MAIN);
     Iterator<InvokeInstructionSubject> iterator =
         main.iterateInstructions(MemberRebindingTest::coolInvokes);
     assertTrue(iterator.next().holder().is("memberrebinding.ClassAtBottomOfChain"));
@@ -160,9 +160,9 @@
     assertFalse(iterator.hasNext());
   }
 
-  private static void inspectOriginalMain2(DexInspector inspector) {
+  private static void inspectOriginalMain2(CodeInspector inspector) {
     MethodSubject main = inspector.clazz("memberrebinding2.Memberrebinding")
-        .method(DexInspector.MAIN);
+        .method(CodeInspector.MAIN);
     Iterator<FieldAccessInstructionSubject> iterator =
         main.iterateInstructions(InstructionSubject::isFieldAccess);
     // Run through instance put, static put, instance get and instance get.
@@ -176,9 +176,9 @@
     assertFalse(iterator.hasNext());
   }
 
-  private static void inspectMain2(DexInspector inspector) {
+  private static void inspectMain2(CodeInspector inspector) {
     MethodSubject main = inspector.clazz("memberrebinding2.Memberrebinding")
-        .method(DexInspector.MAIN);
+        .method(CodeInspector.MAIN);
     Iterator<FieldAccessInstructionSubject> iterator =
         main.iterateInstructions(InstructionSubject::isFieldAccess);
     // Run through instance put, static put, instance get and instance get.
@@ -195,7 +195,7 @@
   public static MethodSignature TEST =
       new MethodSignature("test", "void", new String[]{});
 
-  private static void inspectOriginal3(DexInspector inspector) {
+  private static void inspectOriginal3(CodeInspector inspector) {
     MethodSubject main = inspector.clazz("memberrebinding3.Memberrebinding").method(TEST);
     Iterator<InvokeInstructionSubject> iterator =
         main.iterateInstructions(InstructionSubject::isInvoke);
@@ -205,7 +205,7 @@
     assertFalse(iterator.hasNext());
   }
 
-  private static void inspect3(DexInspector inspector) {
+  private static void inspect3(CodeInspector inspector) {
     MethodSubject main = inspector.clazz("memberrebinding3.Memberrebinding").method(TEST);
     Iterator<InvokeInstructionSubject> iterator =
         main.iterateInstructions(InstructionSubject::isInvoke);
@@ -215,7 +215,7 @@
     assertFalse(iterator.hasNext());
   }
 
-  private static void inspectOriginal4(DexInspector inspector) {
+  private static void inspectOriginal4(CodeInspector inspector) {
     MethodSubject main = inspector.clazz("memberrebinding4.Memberrebinding").method(TEST);
     Iterator<InvokeInstructionSubject> iterator =
         main.iterateInstructions(InstructionSubject::isInvoke);
@@ -224,7 +224,7 @@
     assertFalse(iterator.hasNext());
   }
 
-  private static void inspect4(DexInspector inspector) {
+  private static void inspect4(CodeInspector inspector) {
     MethodSubject main = inspector.clazz("memberrebinding4.Memberrebinding").method(TEST);
     Iterator<InvokeInstructionSubject> iterator =
         main.iterateInstructions(InstructionSubject::isInvoke);
@@ -243,14 +243,14 @@
     final String name;
     final Frontend kind;
     final AndroidVersion version;
-    final Consumer<DexInspector> originalInspection;
-    final Consumer<DexInspector> processedInspection;
+    final Consumer<CodeInspector> originalInspection;
+    final Consumer<CodeInspector> processedInspection;
 
     private TestConfiguration(String name,
         Frontend kind,
         AndroidVersion version,
-        Consumer<DexInspector> originalInspection,
-        Consumer<DexInspector> processedInspection) {
+        Consumer<CodeInspector> originalInspection,
+        Consumer<CodeInspector> processedInspection) {
       this.name = name;
       this.kind = kind;
       this.version = version;
@@ -261,8 +261,8 @@
     public static void add(ImmutableList.Builder<TestConfiguration> builder,
         String name,
         AndroidVersion version,
-        Consumer<DexInspector> originalInspection,
-        Consumer<DexInspector> processedInspection) {
+        Consumer<CodeInspector> originalInspection,
+        Consumer<CodeInspector> processedInspection) {
       if (version == AndroidVersion.PRE_N) {
         builder.add(new TestConfiguration(name, Frontend.DEX, version, originalInspection,
             processedInspection));
@@ -330,11 +330,11 @@
     Path processed = Paths.get(out, "classes.dex");
 
     if (kind == Frontend.DEX) {
-      DexInspector inspector = new DexInspector(originalDex);
+      CodeInspector inspector = new CodeInspector(originalDex);
       originalInspection.accept(inspector);
     }
 
-    DexInspector inspector = new DexInspector(processed);
+    CodeInspector inspector = new CodeInspector(processed);
     inspection.accept(inspector);
 
     // We don't run Art, as the test R8RunExamplesTest already does that.
diff --git a/src/test/java/com/android/tools/r8/movestringconstants/MoveStringConstantsTest.java b/src/test/java/com/android/tools/r8/movestringconstants/MoveStringConstantsTest.java
index 3d6309d..d7d0538 100644
--- a/src/test/java/com/android/tools/r8/movestringconstants/MoveStringConstantsTest.java
+++ b/src/test/java/com/android/tools/r8/movestringconstants/MoveStringConstantsTest.java
@@ -14,12 +14,12 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.CfInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject.JumboStringMode;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.CfInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject.JumboStringMode;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -41,7 +41,7 @@
     return Arrays.asList(Backend.values());
   }
 
-  private void runTest(Consumer<DexInspector> inspection) throws Exception {
+  private void runTest(Consumer<CodeInspector> inspection) throws Exception {
     R8Command.Builder builder = R8Command.builder();
     builder.addProgramFiles(ToolHelper.getClassFileForTestClass(TestClass.class));
     builder.addProgramFiles(ToolHelper.getClassFileForTestClass(Utils.class));
@@ -72,7 +72,7 @@
               options.inliningInstructionLimit = 10;
             });
     inspection.accept(
-        new DexInspector(
+        new CodeInspector(
             app,
             options -> {
               options.enableCfFrontend = true;
@@ -90,7 +90,7 @@
     this.backend = backend;
   }
 
-  private void validate(DexInspector inspector) {
+  private void validate(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz(TestClass.class);
     assertTrue(clazz.isPresent());
 
diff --git a/src/test/java/com/android/tools/r8/naming/ApplyMappingTest.java b/src/test/java/com/android/tools/r8/naming/ApplyMappingTest.java
index 327f02e..aaecd58 100644
--- a/src/test/java/com/android/tools/r8/naming/ApplyMappingTest.java
+++ b/src/test/java/com/android/tools/r8/naming/ApplyMappingTest.java
@@ -21,11 +21,11 @@
 import com.android.tools.r8.shaking.ProguardRuleParserException;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.FileUtils;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InvokeInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
-import com.android.tools.r8.utils.dexinspector.NewInstanceInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InvokeInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.NewInstanceInstructionSubject;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -114,8 +114,8 @@
                     pgConfig -> pgConfig.setApplyMappingFile(proguardMap))
                 .build());
 
-    DexInspector inspector = createDexInspector(instrApp);
-    MethodSubject main = inspector.clazz("applymapping044.Main").method(DexInspector.MAIN);
+    CodeInspector inspector = createDexInspector(instrApp);
+    MethodSubject main = inspector.clazz("applymapping044.Main").method(CodeInspector.MAIN);
     Iterator<InvokeInstructionSubject> iterator =
         main.iterateInstructions(InstructionSubject::isInvoke);
     // B#m()
@@ -169,8 +169,8 @@
                 .build());
 
     // Make sure the given proguard map is indeed applied.
-    DexInspector inspector = createDexInspector(outputApp);
-    MethodSubject main = inspector.clazz("applymapping044.Main").method(DexInspector.MAIN);
+    CodeInspector inspector = createDexInspector(outputApp);
+    MethodSubject main = inspector.clazz("applymapping044.Main").method(CodeInspector.MAIN);
     Iterator<InvokeInstructionSubject> iterator =
         main.iterateInstructions(InstructionSubject::isInvoke);
     // B#m() -> y#n()
@@ -211,9 +211,9 @@
     assertEquals("p", original_f.invokedMethod().name.toString());
   }
 
-  private static DexInspector createDexInspector(AndroidApp outputApp)
+  private static CodeInspector createDexInspector(AndroidApp outputApp)
       throws IOException, ExecutionException {
-    return new DexInspector(
+    return new CodeInspector(
         outputApp,
         o -> {
           o.enableCfFrontend = true;
@@ -236,8 +236,8 @@
                 .build());
 
     // Make sure the given proguard map is indeed applied.
-    DexInspector inspector = createDexInspector(outputApp);
-    MethodSubject main = inspector.clazz("naming001.D").method(DexInspector.MAIN);
+    CodeInspector inspector = createDexInspector(outputApp);
+    MethodSubject main = inspector.clazz("naming001.D").method(CodeInspector.MAIN);
     Iterator<InvokeInstructionSubject> iterator =
         main.iterateInstructions(InstructionSubject::isInvoke);
     // mapping-105 simply includes: naming001.D#keep -> peek
@@ -268,8 +268,8 @@
                 .build());
 
     // Make sure the given proguard map is indeed applied.
-    DexInspector inspector = createDexInspector(outputApp);
-    MethodSubject main = inspector.clazz("naming001.D").method(DexInspector.MAIN);
+    CodeInspector inspector = createDexInspector(outputApp);
+    MethodSubject main = inspector.clazz("naming001.D").method(CodeInspector.MAIN);
 
     Iterator<InstructionSubject> iterator = main.iterateInstructions();
     // naming001.E is renamed to a.a, so first instruction must be: new-instance La/a;
diff --git a/src/test/java/com/android/tools/r8/naming/IdentifierMinifierTest.java b/src/test/java/com/android/tools/r8/naming/IdentifierMinifierTest.java
index ee1568b..a9ee851 100644
--- a/src/test/java/com/android/tools/r8/naming/IdentifierMinifierTest.java
+++ b/src/test/java/com/android/tools/r8/naming/IdentifierMinifierTest.java
@@ -16,13 +16,13 @@
 import com.android.tools.r8.graph.DexValue.DexValueString;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.ListUtils;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.ConstStringInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FoundMethodSubject;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject.JumboStringMode;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.ConstStringInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundMethodSubject;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject.JumboStringMode;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Sets;
 import com.google.common.collect.Streams;
@@ -48,14 +48,14 @@
 
   private final String appFileName;
   private final List<String> keepRulesFiles;
-  private final Consumer<DexInspector> inspection;
+  private final Consumer<CodeInspector> inspection;
   private final Backend backend;
 
   public IdentifierMinifierTest(
       Backend backend,
       String test,
       List<String> keepRulesFiles,
-      Consumer<DexInspector> inspection) {
+      Consumer<CodeInspector> inspection) {
     assert backend == Backend.DEX || backend == Backend.CF;
     this.appFileName =
         ToolHelper.EXAMPLES_BUILD_DIR + test + (backend == Backend.DEX ? "/classes.dex" : ".jar");
@@ -89,13 +89,13 @@
 
   @Test
   public void identiferMinifierTest() throws Exception {
-    DexInspector dexInspector =
-        new DexInspector(
+    CodeInspector codeInspector =
+        new CodeInspector(
             processedApp,
             options -> {
               options.enableCfFrontend = true;
             });
-    inspection.accept(dexInspector);
+    inspection.accept(codeInspector);
   }
 
   @Parameters(name = "[{0}] test: {1} keep: {2}")
@@ -107,7 +107,7 @@
         "getmembers",
         "identifiernamestring");
 
-    Map<String, Consumer<DexInspector>> inspections = new HashMap<>();
+    Map<String, Consumer<CodeInspector>> inspections = new HashMap<>();
     inspections.put("adaptclassstrings:keep-rules-1.txt", IdentifierMinifierTest::test1_rule1);
     inspections.put("adaptclassstrings:keep-rules-2.txt", IdentifierMinifierTest::test1_rule2);
     inspections.put(
@@ -135,9 +135,9 @@
   }
 
   // Without -adaptclassstrings
-  private static void test1_rule1(DexInspector inspector) {
+  private static void test1_rule1(CodeInspector inspector) {
     ClassSubject mainClass = inspector.clazz("adaptclassstrings.Main");
-    MethodSubject main = mainClass.method(DexInspector.MAIN);
+    MethodSubject main = mainClass.method(CodeInspector.MAIN);
     assertTrue(main instanceof FoundMethodSubject);
     FoundMethodSubject foundMain = (FoundMethodSubject) main;
     verifyPresenceOfConstString(foundMain);
@@ -158,9 +158,9 @@
   }
 
   // With -adaptclassstrings *.*A
-  private static void test1_rule2(DexInspector inspector) {
+  private static void test1_rule2(CodeInspector inspector) {
     ClassSubject mainClass = inspector.clazz("adaptclassstrings.Main");
-    MethodSubject main = mainClass.method(DexInspector.MAIN);
+    MethodSubject main = mainClass.method(CodeInspector.MAIN);
     assertTrue(main instanceof FoundMethodSubject);
     FoundMethodSubject foundMain = (FoundMethodSubject) main;
     verifyPresenceOfConstString(foundMain);
@@ -180,9 +180,9 @@
     assertEquals(1, renamedYetFoundIdentifierCount);
   }
 
-  private static void test_atomicfieldupdater(DexInspector inspector) {
+  private static void test_atomicfieldupdater(CodeInspector inspector) {
     ClassSubject mainClass = inspector.clazz("atomicfieldupdater.Main");
-    MethodSubject main = mainClass.method(DexInspector.MAIN);
+    MethodSubject main = mainClass.method(CodeInspector.MAIN);
     assertTrue(main instanceof FoundMethodSubject);
     FoundMethodSubject foundMain = (FoundMethodSubject) main;
     verifyPresenceOfConstString(foundMain);
@@ -193,9 +193,9 @@
     assertEquals(3, constStringInstructions.size());
   }
 
-  private static void test_forname(DexInspector inspector) {
+  private static void test_forname(CodeInspector inspector) {
     ClassSubject mainClass = inspector.clazz("forname.Main");
-    MethodSubject main = mainClass.method(DexInspector.MAIN);
+    MethodSubject main = mainClass.method(CodeInspector.MAIN);
     assertTrue(main instanceof FoundMethodSubject);
     FoundMethodSubject foundMain = (FoundMethodSubject) main;
     verifyPresenceOfConstString(foundMain);
@@ -203,9 +203,9 @@
     assertEquals(1, renamedYetFoundIdentifierCount);
   }
 
-  private static void test_getmembers(DexInspector inspector) {
+  private static void test_getmembers(CodeInspector inspector) {
     ClassSubject mainClass = inspector.clazz("getmembers.Main");
-    MethodSubject main = mainClass.method(DexInspector.MAIN);
+    MethodSubject main = mainClass.method(CodeInspector.MAIN);
     assertTrue(main instanceof FoundMethodSubject);
     FoundMethodSubject foundMain = (FoundMethodSubject) main;
     verifyPresenceOfConstString(foundMain);
@@ -224,9 +224,9 @@
   }
 
   // Without -identifiernamestring
-  private static void test2_rule1(DexInspector inspector) {
+  private static void test2_rule1(CodeInspector inspector) {
     ClassSubject mainClass = inspector.clazz("identifiernamestring.Main");
-    MethodSubject main = mainClass.method(DexInspector.MAIN);
+    MethodSubject main = mainClass.method(CodeInspector.MAIN);
     assertTrue(main instanceof FoundMethodSubject);
     FoundMethodSubject foundMain = (FoundMethodSubject) main;
     verifyPresenceOfConstString(foundMain);
@@ -248,9 +248,9 @@
   }
 
   // With -identifiernamestring for annotations and name-based filters
-  private static void test2_rule2(DexInspector inspector) {
+  private static void test2_rule2(CodeInspector inspector) {
     ClassSubject mainClass = inspector.clazz("identifiernamestring.Main");
-    MethodSubject main = mainClass.method(DexInspector.MAIN);
+    MethodSubject main = mainClass.method(CodeInspector.MAIN);
     assertTrue(main instanceof FoundMethodSubject);
     FoundMethodSubject foundMain = (FoundMethodSubject) main;
     verifyPresenceOfConstString(foundMain);
@@ -272,9 +272,9 @@
   }
 
   // With -identifiernamestring for reflective methods
-  private static void test2_rule3(DexInspector inspector) {
+  private static void test2_rule3(CodeInspector inspector) {
     ClassSubject mainClass = inspector.clazz("identifiernamestring.Main");
-    MethodSubject main = mainClass.method(DexInspector.MAIN);
+    MethodSubject main = mainClass.method(CodeInspector.MAIN);
     assertTrue(main instanceof FoundMethodSubject);
     FoundMethodSubject foundMain = (FoundMethodSubject) main;
     verifyPresenceOfConstString(foundMain);
@@ -298,7 +298,7 @@
   }
 
   private static int countRenamedClassIdentifier(
-      DexInspector inspector, FoundMethodSubject method) {
+      CodeInspector inspector, FoundMethodSubject method) {
     return getConstStringInstructions(method)
         .reduce(
             0,
@@ -319,7 +319,7 @@
   }
 
   private static int countRenamedClassIdentifier(
-      DexInspector inspector, DexEncodedField[] fields) {
+      CodeInspector inspector, DexEncodedField[] fields) {
     return Arrays.stream(fields)
         .filter(encodedField -> encodedField.getStaticValue() instanceof DexValueString)
         .reduce(0, (cnt, encodedField) -> {
diff --git a/src/test/java/com/android/tools/r8/naming/IdentifierNameStringMarkerTest.java b/src/test/java/com/android/tools/r8/naming/IdentifierNameStringMarkerTest.java
index 41e514a..28884cc 100644
--- a/src/test/java/com/android/tools/r8/naming/IdentifierNameStringMarkerTest.java
+++ b/src/test/java/com/android/tools/r8/naming/IdentifierNameStringMarkerTest.java
@@ -26,9 +26,9 @@
 import com.android.tools.r8.smali.SmaliBuilder;
 import com.android.tools.r8.smali.SmaliBuilder.MethodSignature;
 import com.android.tools.r8.smali.SmaliTestBase;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import org.junit.Test;
@@ -52,7 +52,7 @@
         "-identifiernamestring class " + CLASS_NAME + " { java.lang.String aClassName; }",
         "-keep class " + CLASS_NAME,
         "-dontoptimize");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -84,7 +84,7 @@
         "-identifiernamestring class " + CLASS_NAME + " { java.lang.String aClassName; }",
         "-keep class " + CLASS_NAME,
         "-dontoptimize");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -126,7 +126,7 @@
         "-keep class " + CLASS_NAME,
         "-keep,allowobfuscation class " + BOO,
         "-dontoptimize");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -163,7 +163,7 @@
         "-identifiernamestring class " + CLASS_NAME + " { static java.lang.String sClassName; }",
         "-keep class " + CLASS_NAME,
         "-dontoptimize");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -194,7 +194,7 @@
         "-identifiernamestring class " + CLASS_NAME + " { static java.lang.String sClassName; }",
         "-keep class " + CLASS_NAME,
         "-dontoptimize");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -232,7 +232,7 @@
         "-keep class " + CLASS_NAME,
         "-keep,allowobfuscation class " + BOO,
         "-dontoptimize");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -262,7 +262,7 @@
         "-identifiernamestring class " + CLASS_NAME + " { static java.lang.String sClassName; }",
         "-keep class " + CLASS_NAME + " { static java.lang.String sClassName; }",
         "-dontshrink");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -284,7 +284,7 @@
         "-keep class " + CLASS_NAME + " { static java.lang.String sClassName; }",
         "-keep,allowobfuscation class " + BOO,
         "-dontshrink");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -308,7 +308,7 @@
         "-keep class " + CLASS_NAME + " { static java.lang.String sFieldName; }",
         "-keep,allowobfuscation class " + BOO + " { <fields>; }",
         "-dontshrink");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -332,7 +332,7 @@
         "-keep class " + CLASS_NAME + " { static java.lang.String sMethodName; }",
         "-keep,allowobfuscation class " + BOO + " { <methods>; }",
         "-dontshrink");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -362,7 +362,7 @@
     List<String> pgConfigs = ImmutableList.of(
         "-identifiernamestring class " + CLASS_NAME + " { static void foo(...); }",
         "-keep class " + CLASS_NAME);
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -404,7 +404,7 @@
     List<String> pgConfigs = ImmutableList.of(
         "-identifiernamestring class " + CLASS_NAME + " { static void foo(...); }",
         "-keep class " + CLASS_NAME);
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -450,7 +450,7 @@
         "-identifiernamestring class " + CLASS_NAME + " { static void foo(...); }",
         "-keep class " + CLASS_NAME,
         "-keep,allowobfuscation class " + BOO);
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -504,7 +504,7 @@
             + "}",
         "-keep class " + CLASS_NAME,
         "-keep class R { *; }");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -554,7 +554,7 @@
             + "}",
         "-keep class " + CLASS_NAME,
         "-keep,allowobfuscation class R { *; }");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -611,7 +611,7 @@
             + "}",
         "-keep class " + CLASS_NAME,
         "-keep class R { *; }");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -672,7 +672,7 @@
             + "}",
         "-keep class " + CLASS_NAME,
         "-keep,allowobfuscation class R { *; }");
-    DexInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
+    CodeInspector inspector = getInspectorAfterRunR8(builder, pgConfigs);
 
     ClassSubject clazz = inspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
@@ -696,8 +696,8 @@
     assertNotEquals("foo", constString.getString().toString());
   }
 
-  private DexInspector getInspectorAfterRunR8(
+  private CodeInspector getInspectorAfterRunR8(
       SmaliBuilder builder, List<String> proguardConfigurations) throws Exception {
-    return new DexInspector(runR8(builder, proguardConfigurations));
+    return new CodeInspector(runR8(builder, proguardConfigurations));
   }
 }
diff --git a/src/test/java/com/android/tools/r8/naming/MinifierClassSignatureTest.java b/src/test/java/com/android/tools/r8/naming/MinifierClassSignatureTest.java
index e081f18..a5bbdf6 100644
--- a/src/test/java/com/android/tools/r8/naming/MinifierClassSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MinifierClassSignatureTest.java
@@ -4,8 +4,8 @@
 
 package com.android.tools.r8.naming;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
@@ -29,8 +29,8 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.graph.invokesuper.Consumer;
 import com.android.tools.r8.origin.Origin;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import java.util.Arrays;
@@ -303,12 +303,12 @@
   public void runTest(
       ImmutableMap<String, String> signatures,
       Consumer<DiagnosticsChecker> diagnostics,
-      Consumer<DexInspector> inspect)
+      Consumer<CodeInspector> inspect)
       throws Exception {
     DiagnosticsChecker checker = new DiagnosticsChecker();
     assert (backend == Backend.CF || backend == Backend.DEX);
-    DexInspector inspector =
-        new DexInspector(
+    CodeInspector inspector =
+        new CodeInspector(
             ToolHelper.runR8(
                 R8Command.builder(checker)
                     .addClassProgramData(dumpSimple(signatures.get("Simple")), Origin.unknown())
@@ -376,7 +376,7 @@
 
   private void testSingleClass(String name, String signature,
       Consumer<DiagnosticsChecker> diagnostics,
-      Consumer<DexInspector> inspector)
+      Consumer<CodeInspector> inspector)
       throws Exception {
     ImmutableMap<String, String> signatures = ImmutableMap.of(name, signature);
     runTest(signatures, diagnostics, inspector);
@@ -390,7 +390,7 @@
     assertEquals(0, checker.warnings.size());
   }
 
-  private void noInspection(DexInspector inspector) {
+  private void noInspection(CodeInspector inspector) {
   }
 
   private void noSignatureAttribute(ClassSubject clazz) {
diff --git a/src/test/java/com/android/tools/r8/naming/MinifierFieldSignatureTest.java b/src/test/java/com/android/tools/r8/naming/MinifierFieldSignatureTest.java
index 02ec163..c470661 100644
--- a/src/test/java/com/android/tools/r8/naming/MinifierFieldSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MinifierFieldSignatureTest.java
@@ -4,8 +4,8 @@
 
 package com.android.tools.r8.naming;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
@@ -30,9 +30,9 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.graph.invokesuper.Consumer;
 import com.android.tools.r8.origin.Origin;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import java.util.Arrays;
@@ -159,17 +159,17 @@
     return cw.toByteArray();
   }
 
-  private FieldSubject lookupAnX(DexInspector inspector) {
+  private FieldSubject lookupAnX(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz("Fields");
     return clazz.field("java.lang.String", "anX");
   }
 
-  private FieldSubject lookupAnArrayOfX(DexInspector inspector) {
+  private FieldSubject lookupAnArrayOfX(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz("Fields");
     return clazz.field("java.lang.String[]", "anArrayOfX");
   }
 
-  private FieldSubject lookupAFieldsOfX(DexInspector inspector) {
+  private FieldSubject lookupAFieldsOfX(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz("Fields");
     return clazz.field("Fields", "aFieldsOfX");
   }
@@ -177,12 +177,12 @@
   public void runTest(
       ImmutableMap<String, String> signatures,
       Consumer<DiagnosticsChecker> diagnostics,
-      Consumer<DexInspector> inspect)
+      Consumer<CodeInspector> inspect)
       throws Exception {
     DiagnosticsChecker checker = new DiagnosticsChecker();
     assert (backend == Backend.CF || backend == Backend.DEX);
-    DexInspector inspector =
-        new DexInspector(
+    CodeInspector inspector =
+        new CodeInspector(
             ToolHelper.runR8(
                 R8Command.builder(checker)
                     .addClassProgramData(dumpFields(signatures), Origin.unknown())
@@ -242,7 +242,7 @@
 
   private void testSingleField(String name, String signature,
       Consumer<DiagnosticsChecker> diagnostics,
-      Consumer<DexInspector> inspector)
+      Consumer<CodeInspector> inspector)
       throws Exception {
     ImmutableMap<String, String> signatures = ImmutableMap.of(name, signature);
     runTest(signatures, diagnostics, inspector);
@@ -256,7 +256,7 @@
     assertEquals(0, checker.warnings.size());
   }
 
-  private void noInspection(DexInspector inspector) {
+  private void noInspection(CodeInspector inspector) {
   }
 
   private void noSignatureAttribute(FieldSubject field) {
diff --git a/src/test/java/com/android/tools/r8/naming/MinifierMethodSignatureTest.java b/src/test/java/com/android/tools/r8/naming/MinifierMethodSignatureTest.java
index efc9855..aa5307d 100644
--- a/src/test/java/com/android/tools/r8/naming/MinifierMethodSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MinifierMethodSignatureTest.java
@@ -4,8 +4,8 @@
 
 package com.android.tools.r8.naming;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
@@ -33,9 +33,9 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.graph.invokesuper.Consumer;
 import com.android.tools.r8.origin.Origin;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import java.util.Arrays;
@@ -178,19 +178,19 @@
     return cw.toByteArray();
   }
 
-  private MethodSubject lookupGeneric(DexInspector inspector) {
+  private MethodSubject lookupGeneric(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz("Methods");
     return clazz.method(
         "java.lang.Throwable", "generic", ImmutableList.of("java.lang.Throwable", "Methods$Inner"));
   }
 
-  private MethodSubject lookupParameterizedReturn(DexInspector inspector) {
+  private MethodSubject lookupParameterizedReturn(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz("Methods");
     return clazz.method(
         "Methods$Inner", "parameterizedReturn", ImmutableList.of());
   }
 
-  private MethodSubject lookupParameterizedArguments(DexInspector inspector) {
+  private MethodSubject lookupParameterizedArguments(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz("Methods");
     return clazz.method(
         "void", "parameterizedArguments", ImmutableList.of("java.lang.Throwable", "Methods$Inner"));
@@ -199,12 +199,12 @@
   public void runTest(
       ImmutableMap<String, String> signatures,
       Consumer<DiagnosticsChecker> diagnostics,
-      Consumer<DexInspector> inspect)
+      Consumer<CodeInspector> inspect)
       throws Exception {
     DiagnosticsChecker checker = new DiagnosticsChecker();
     assert (backend == Backend.CF || backend == Backend.DEX);
-    DexInspector inspector =
-        new DexInspector(
+    CodeInspector inspector =
+        new CodeInspector(
             ToolHelper.runR8(
                 R8Command.builder(checker)
                     .addClassProgramData(dumpMethods(signatures), Origin.unknown())
@@ -263,7 +263,7 @@
 
   private void testSingleMethod(String name, String signature,
       Consumer<DiagnosticsChecker> diagnostics,
-      Consumer<DexInspector> inspector)
+      Consumer<CodeInspector> inspector)
       throws Exception {
     ImmutableMap<String, String> signatures = ImmutableMap.of(name, signature);
     runTest(signatures, diagnostics, inspector);
@@ -277,7 +277,7 @@
     assertEquals(0, checker.warnings.size());
   }
 
-  private void noInspection(DexInspector inspector) {
+  private void noInspection(CodeInspector inspector) {
   }
 
   private void noSignatureAttribute(MethodSubject method) {
diff --git a/src/test/java/com/android/tools/r8/naming/WarnReflectiveAccessTest.java b/src/test/java/com/android/tools/r8/naming/WarnReflectiveAccessTest.java
index 25e2358..829cdd0 100644
--- a/src/test/java/com/android/tools/r8/naming/WarnReflectiveAccessTest.java
+++ b/src/test/java/com/android/tools/r8/naming/WarnReflectiveAccessTest.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.naming;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -21,8 +21,8 @@
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.KeepingDiagnosticHandler;
 import com.android.tools.r8.utils.Reporter;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.lang.reflect.Method;
 import java.nio.file.Path;
@@ -113,8 +113,8 @@
         enableMinification, forceProguardCompatibility);
 
     String main = WarnReflectiveAccessTestMain.class.getCanonicalName();
-    DexInspector dexInspector = new DexInspector(processedApp);
-    ClassSubject mainSubject = dexInspector.clazz(main);
+    CodeInspector codeInspector = new CodeInspector(processedApp);
+    ClassSubject mainSubject = codeInspector.clazz(main);
     assertThat(mainSubject, isPresent());
 
     ProcessResult javaOutput = runOnJavaRaw(main, classes);
diff --git a/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java b/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java
index 4e46637..fd38d36 100644
--- a/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java
+++ b/src/test/java/com/android/tools/r8/naming/b72391662/B72391662.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.naming.b72391662;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -17,9 +17,9 @@
 import com.android.tools.r8.naming.b72391662.subpackage.OtherPackageTestClass;
 import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import java.util.List;
@@ -60,9 +60,9 @@
     AndroidApp app = runShrinkerRaw(shrinker, CLASSES, config);
     assertEquals("123451234567\nABC\n", runOnArt(app, mainClass.getCanonicalName()));
 
-    DexInspector dexInspector =
-        isR8(shrinker) ? new DexInspector(app) : new DexInspector(app, proguardMap);
-    ClassSubject testClass = dexInspector.clazz(TestClass.class);
+    CodeInspector codeInspector =
+        isR8(shrinker) ? new CodeInspector(app) : new CodeInspector(app, proguardMap);
+    ClassSubject testClass = codeInspector.clazz(TestClass.class);
     assertThat(testClass, isPresent());
 
     // Test the totally unused method.
@@ -150,9 +150,9 @@
     AndroidApp app = runShrinkerRaw(shrinker, CLASSES, config);
     assertEquals("123451234567\nABC\n", runOnArt(app, mainClass.getCanonicalName()));
 
-    DexInspector dexInspector =
-        isR8(shrinker) ? new DexInspector(app) : new DexInspector(app, proguardMap);
-    ClassSubject testClass = dexInspector.clazz(TestClass.class);
+    CodeInspector codeInspector =
+        isR8(shrinker) ? new CodeInspector(app) : new CodeInspector(app, proguardMap);
+    ClassSubject testClass = codeInspector.clazz(TestClass.class);
     assertThat(testClass, isPresent());
 
     // Test the totally unused method.
@@ -247,9 +247,9 @@
     AndroidApp app = runShrinkerRaw(shrinker, CLASSES, config);
     assertEquals("123451234567\nABC\n", runOnArt(app, mainClass.getCanonicalName()));
 
-    DexInspector dexInspector =
-        isR8(shrinker) ? new DexInspector(app) : new DexInspector(app, proguardMap);
-    ClassSubject testClass = dexInspector.clazz(TestClass.class);
+    CodeInspector codeInspector =
+        isR8(shrinker) ? new CodeInspector(app) : new CodeInspector(app, proguardMap);
+    ClassSubject testClass = codeInspector.clazz(TestClass.class);
     assertThat(testClass, isPresent());
 
     // Test the totally unused method.
diff --git a/src/test/java/com/android/tools/r8/naming/b80083341/B80083341.java b/src/test/java/com/android/tools/r8/naming/b80083341/B80083341.java
index 1b7d842..9791142 100644
--- a/src/test/java/com/android/tools/r8/naming/b80083341/B80083341.java
+++ b/src/test/java/com/android/tools/r8/naming/b80083341/B80083341.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.naming.b80083341;
 
 import static com.android.tools.r8.utils.DescriptorUtils.getClassNameFromDescriptor;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
@@ -12,8 +12,8 @@
 import com.android.tools.r8.ToolHelper.ProcessResult;
 import com.android.tools.r8.VmTestRunner;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import org.junit.Test;
@@ -40,7 +40,7 @@
         PackagePrivateClass.class, PackagePrivateClass.Itf.class, PackagePrivateClass.Impl.class
     ));
     AndroidApp processedApp = compileWithR8(app, String.join(System.lineSeparator(), config));
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject mainSubject = inspector.clazz(mainClass);
     assertThat(mainSubject, isPresent());
 
diff --git a/src/test/java/com/android/tools/r8/naming/overloadaggressively/OverloadAggressivelyTest.java b/src/test/java/com/android/tools/r8/naming/overloadaggressively/OverloadAggressivelyTest.java
index 0feddfd..f289674 100644
--- a/src/test/java/com/android/tools/r8/naming/overloadaggressively/OverloadAggressivelyTest.java
+++ b/src/test/java/com/android/tools/r8/naming/overloadaggressively/OverloadAggressivelyTest.java
@@ -18,8 +18,8 @@
 import com.android.tools.r8.graph.DexEncodedMethod;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import org.junit.Test;
@@ -60,8 +60,8 @@
     Path out = temp.getRoot().toPath();
     AndroidApp processedApp = runR8(originalApp, FieldUpdater.class, out, overloadaggressively);
 
-    DexInspector dexInspector = new DexInspector(processedApp);
-    ClassSubject a = dexInspector.clazz(A.class.getCanonicalName());
+    CodeInspector codeInspector = new CodeInspector(processedApp);
+    ClassSubject a = codeInspector.clazz(A.class.getCanonicalName());
     DexEncodedField f1 = a.field("int", "f1").getField();
     assertNotNull(f1);
     DexEncodedField f2 = a.field("java.lang.Object", "f2").getField();
@@ -112,8 +112,8 @@
     Path out = temp.getRoot().toPath();
     AndroidApp processedApp = runR8(originalApp, FieldResolution.class, out, overloadaggressively);
 
-    DexInspector dexInspector = new DexInspector(processedApp);
-    ClassSubject a = dexInspector.clazz(A.class.getCanonicalName());
+    CodeInspector codeInspector = new CodeInspector(processedApp);
+    ClassSubject a = codeInspector.clazz(A.class.getCanonicalName());
     DexEncodedField f1 = a.field("int", "f1").getField();
     assertNotNull(f1);
     DexEncodedField f3 = a.field(B.class.getCanonicalName(), "f3").getField();
@@ -157,8 +157,8 @@
     Path out = temp.getRoot().toPath();
     AndroidApp processedApp = runR8(originalApp, MethodResolution.class, out, overloadaggressively);
 
-    DexInspector dexInspector = new DexInspector(processedApp);
-    ClassSubject b = dexInspector.clazz(B.class.getCanonicalName());
+    CodeInspector codeInspector = new CodeInspector(processedApp);
+    ClassSubject b = codeInspector.clazz(B.class.getCanonicalName());
     DexEncodedMethod m1 =
         b.method("int", "getF1", ImmutableList.of()).getMethod();
     assertNotNull(m1);
diff --git a/src/test/java/com/android/tools/r8/naming/overloadaggressively/ValidNameConflictTest.java b/src/test/java/com/android/tools/r8/naming/overloadaggressively/ValidNameConflictTest.java
index 6e3e30a..efead2d 100644
--- a/src/test/java/com/android/tools/r8/naming/overloadaggressively/ValidNameConflictTest.java
+++ b/src/test/java/com/android/tools/r8/naming/overloadaggressively/ValidNameConflictTest.java
@@ -14,10 +14,10 @@
 import com.android.tools.r8.jasmin.JasminBuilder.ClassBuilder;
 import com.android.tools.r8.jasmin.JasminTestBase;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import java.util.List;
@@ -94,8 +94,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject clazz = dexInspector.clazz(CLASS_NAME);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject clazz = codeInspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
     FieldSubject f1 = clazz.field("java.lang.String", "same");
     assertTrue(f1.isPresent());
@@ -122,8 +122,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject clazz = dexInspector.clazz(CLASS_NAME);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject clazz = codeInspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
     FieldSubject f1 = clazz.field("java.lang.String", "same");
     assertTrue(f1.isPresent());
@@ -152,8 +152,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject clazz = dexInspector.clazz(CLASS_NAME);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject clazz = codeInspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
     FieldSubject f1 = clazz.field("java.lang.String", "same");
     assertTrue(f1.isPresent());
@@ -179,8 +179,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject clazz = dexInspector.clazz(CLASS_NAME);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject clazz = codeInspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
     FieldSubject f1 = clazz.field("java.lang.String", "same");
     assertTrue(f1.isPresent());
@@ -207,8 +207,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject clazz = dexInspector.clazz(CLASS_NAME);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject clazz = codeInspector.clazz(CLASS_NAME);
     assertTrue(clazz.isPresent());
     FieldSubject f1 = clazz.field("java.lang.String", "same");
     assertTrue(f1.isPresent());
@@ -263,8 +263,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject clazz = dexInspector.clazz(ANOTHER_CLASS);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject clazz = codeInspector.clazz(ANOTHER_CLASS);
     assertTrue(clazz.isPresent());
     MethodSubject m1 = clazz.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(m1.isPresent());
@@ -291,8 +291,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject clazz = dexInspector.clazz(ANOTHER_CLASS);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject clazz = codeInspector.clazz(ANOTHER_CLASS);
     assertTrue(clazz.isPresent());
     MethodSubject m1 = clazz.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(m1.isPresent());
@@ -321,8 +321,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject clazz = dexInspector.clazz(ANOTHER_CLASS);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject clazz = codeInspector.clazz(ANOTHER_CLASS);
     assertTrue(clazz.isPresent());
     MethodSubject m1 = clazz.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(m1.isPresent());
@@ -348,8 +348,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject clazz = dexInspector.clazz(ANOTHER_CLASS);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject clazz = codeInspector.clazz(ANOTHER_CLASS);
     assertTrue(clazz.isPresent());
     MethodSubject m1 = clazz.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(m1.isPresent());
@@ -376,8 +376,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject clazz = dexInspector.clazz(ANOTHER_CLASS);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject clazz = codeInspector.clazz(ANOTHER_CLASS);
     assertTrue(clazz.isPresent());
     MethodSubject m1 = clazz.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(m1.isPresent());
@@ -445,8 +445,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject sup = dexInspector.clazz(SUPER_CLASS);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject sup = codeInspector.clazz(SUPER_CLASS);
     assertTrue(sup.isPresent());
     MethodSubject m1 = sup.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(m1.isPresent());
@@ -456,7 +456,7 @@
     assertFalse(m2.isRenamed());
     assertEquals(m1.getFinalName(), m2.getFinalName());
 
-    ClassSubject sub = dexInspector.clazz(ANOTHER_CLASS);
+    ClassSubject sub = codeInspector.clazz(ANOTHER_CLASS);
     assertTrue(sub.isPresent());
     MethodSubject subM1 = sub.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(subM1.isPresent());
@@ -487,8 +487,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject sup = dexInspector.clazz(SUPER_CLASS);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject sup = codeInspector.clazz(SUPER_CLASS);
     assertTrue(sup.isPresent());
     MethodSubject m1 = sup.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(m1.isPresent());
@@ -498,7 +498,7 @@
     assertTrue(m2.isRenamed());
     assertEquals(m1.getFinalName(), m2.getFinalName());
 
-    ClassSubject sub = dexInspector.clazz(ANOTHER_CLASS);
+    ClassSubject sub = codeInspector.clazz(ANOTHER_CLASS);
     assertTrue(sub.isPresent());
     MethodSubject subM1 = sub.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(subM1.isPresent());
@@ -531,8 +531,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject sup = dexInspector.clazz(SUPER_CLASS);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject sup = codeInspector.clazz(SUPER_CLASS);
     assertTrue(sup.isPresent());
     MethodSubject m1 = sup.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(m1.isPresent());
@@ -542,7 +542,7 @@
     assertTrue(m2.isRenamed());
     assertEquals(m1.getFinalName(), m2.getFinalName());
 
-    ClassSubject sub = dexInspector.clazz(ANOTHER_CLASS);
+    ClassSubject sub = codeInspector.clazz(ANOTHER_CLASS);
     assertTrue(sub.isPresent());
     MethodSubject subM1 = sub.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(subM1.isPresent());
@@ -572,8 +572,8 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
-    ClassSubject sup = dexInspector.clazz(SUPER_CLASS);
+    CodeInspector codeInspector = new CodeInspector(app);
+    ClassSubject sup = codeInspector.clazz(SUPER_CLASS);
     assertTrue(sup.isPresent());
     MethodSubject m1 = sup.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(m1.isPresent());
@@ -583,7 +583,7 @@
     assertTrue(m2.isRenamed());
     assertNotEquals(m1.getFinalName(), m2.getFinalName());
 
-    ClassSubject sub = dexInspector.clazz(ANOTHER_CLASS);
+    ClassSubject sub = codeInspector.clazz(ANOTHER_CLASS);
     assertTrue(sub.isPresent());
     MethodSubject subM1 = sub.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(subM1.isPresent());
@@ -614,9 +614,9 @@
         "-dontshrink");
     AndroidApp app = compileWithR8(builder, pgConfigs, null);
 
-    DexInspector dexInspector = new DexInspector(app);
+    CodeInspector codeInspector = new CodeInspector(app);
 
-    ClassSubject sup = dexInspector.clazz(SUPER_CLASS);
+    ClassSubject sup = codeInspector.clazz(SUPER_CLASS);
     assertTrue(sup.isPresent());
     MethodSubject m1 = sup.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(m1.isPresent());
@@ -626,7 +626,7 @@
     assertTrue(m2.isRenamed());
     assertEquals(m1.getFinalName(), m2.getFinalName());
 
-    ClassSubject sub = dexInspector.clazz(ANOTHER_CLASS);
+    ClassSubject sub = codeInspector.clazz(ANOTHER_CLASS);
     assertTrue(sub.isPresent());
     MethodSubject subM1 = sub.method("java.lang.String", "same", ImmutableList.of());
     assertTrue(subM1.isPresent());
diff --git a/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java b/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java
index 9350f2b..73dcdb3 100644
--- a/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java
+++ b/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java
@@ -16,14 +16,14 @@
 import com.android.tools.r8.cf.code.CfStackInstruction.Opcode;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.CfInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.DexInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject.JumboStringMode;
-import com.android.tools.r8.utils.dexinspector.InvokeInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.CfInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.DexInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject.JumboStringMode;
+import com.android.tools.r8.utils.codeinspector.InvokeInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -49,7 +49,7 @@
   }
 
   private void runTest(
-      BiConsumer<DexInspector, CompilationMode> inspection,
+      BiConsumer<CodeInspector, CompilationMode> inspection,
       boolean enableClassInliner, CompilationMode mode) throws Exception {
     R8Command.Builder builder = R8Command.builder();
     builder.addProgramFiles(ToolHelper.getClassFileForTestClass(TestClass.class));
@@ -82,7 +82,7 @@
     AndroidApp app =
         ToolHelper.runR8(builder.build(), opts -> opts.enableClassInlining = enableClassInliner);
     inspection.accept(
-        new DexInspector(
+        new CodeInspector(
             app,
             options -> {
               options.enableCfFrontend = true;
@@ -97,7 +97,7 @@
     }
   }
 
-  private void validate(DexInspector inspector, CompilationMode mode) {
+  private void validate(CodeInspector inspector, CompilationMode mode) {
     assert (backend == Backend.DEX || backend == Backend.CF);
     ClassSubject clazz = inspector.clazz(TestClass.class);
     assertTrue(clazz.isPresent());
diff --git a/src/test/java/com/android/tools/r8/regress/B76025099.java b/src/test/java/com/android/tools/r8/regress/B76025099.java
index 68f6fe0..c7a093f 100644
--- a/src/test/java/com/android/tools/r8/regress/B76025099.java
+++ b/src/test/java/com/android/tools/r8/regress/B76025099.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.regress;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
@@ -20,9 +20,9 @@
 import com.android.tools.r8.graph.DexField;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.FileUtils;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.io.File;
 import java.nio.file.Files;
@@ -104,7 +104,7 @@
 
   private void verifyFieldAccess(AndroidApp processedApp, ProcessResult jvmOutput)
       throws Exception {
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject impl = inspector.clazz(Impl.class);
     assertThat(impl, isPresent());
     MethodSubject init = impl.init(ImmutableList.of("java.lang.String"));
diff --git a/src/test/java/com/android/tools/r8/regress/Regress37740372.java b/src/test/java/com/android/tools/r8/regress/Regress37740372.java
index 1d2c6fe..e6ac9f8 100644
--- a/src/test/java/com/android/tools/r8/regress/Regress37740372.java
+++ b/src/test/java/com/android/tools/r8/regress/Regress37740372.java
@@ -18,8 +18,8 @@
 import com.android.tools.r8.smali.SmaliTestBase;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.AndroidAppConsumers;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.util.Base64;
 import java.util.Set;
 import org.junit.Test;
@@ -129,7 +129,7 @@
   }
 
   private void checkApplicationOnlyHasJavaLangObject(AndroidApp app) throws Throwable {
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     inspector.forAllClasses(this::assertIsJavaLangObjet);
   }
 
diff --git a/src/test/java/com/android/tools/r8/regress/b111250398/B111250398.java b/src/test/java/com/android/tools/r8/regress/b111250398/B111250398.java
index abf43b2..91d8460 100644
--- a/src/test/java/com/android/tools/r8/regress/b111250398/B111250398.java
+++ b/src/test/java/com/android/tools/r8/regress/b111250398/B111250398.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.regress.b111250398;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
@@ -16,10 +16,10 @@
 import com.android.tools.r8.graph.DexField;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.Arrays;
 import org.junit.Test;
@@ -236,7 +236,7 @@
         .count();
   }
 
-  private void check(DexInspector inspector, int mfOnBGets, int msfOnBGets) {
+  private void check(CodeInspector inspector, int mfOnBGets, int msfOnBGets) {
     ClassSubject classA = inspector.clazz(A.class);
     assertThat(classA, isPresent());
     MethodSubject mfOnA = classA.method("void", "mf", ImmutableList.of());
@@ -293,20 +293,20 @@
 
   @Test
   public void testSeparateCompilation() throws Exception {
-    DexInspector inspector =
-        new DexInspector(compileWithD8(readClasses(A.class, B.class), this::releaseMode));
+    CodeInspector inspector =
+        new CodeInspector(compileWithD8(readClasses(A.class, B.class), this::releaseMode));
     check(inspector, 5, 5);
   }
 
   @Test
   public void testWholeProgram() throws Exception {
-    DexInspector inspector =
-        new DexInspector(compileWithR8(readClasses(A.class, B.class), this::releaseMode));
+    CodeInspector inspector =
+        new CodeInspector(compileWithR8(readClasses(A.class, B.class), this::releaseMode));
     check(inspector, 1, 1);
   }
 
   private void checkMixed(AndroidApp app) throws Exception{
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject classC = inspector.clazz(C.class);
     assertThat(classC, isPresent());
     MethodSubject totalDays = classC.method("int", "totalDays", ImmutableList.of());
@@ -341,7 +341,7 @@
   }
 
   private void checkDaggerSingleProviderGet(AndroidApp app) throws Exception {
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     MethodSubject get =
         inspector.clazz(SingleCheck.class).method("java.lang.Object", "get", ImmutableList.of());
     assertThat(get, isPresent());
diff --git a/src/test/java/com/android/tools/r8/regress/b69825683/Regress69825683Test.java b/src/test/java/com/android/tools/r8/regress/b69825683/Regress69825683Test.java
index 9cc17af..3421cfe 100644
--- a/src/test/java/com/android/tools/r8/regress/b69825683/Regress69825683Test.java
+++ b/src/test/java/com/android/tools/r8/regress/b69825683/Regress69825683Test.java
@@ -13,8 +13,8 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FoundClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import org.junit.Test;
@@ -34,7 +34,7 @@
         Origin.unknown());
     builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
     AndroidApp app = ToolHelper.runR8(builder.build(), o -> o.enableClassInlining = false);
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     List<FoundClassSubject> classes = inspector.allClasses();
 
     // Check that the synthetic class is still present.
@@ -67,7 +67,7 @@
         Origin.unknown());
     builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
     AndroidApp app = ToolHelper.runR8(builder.build(), o -> o.enableClassInlining = false);
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     List<FoundClassSubject> classes = inspector.allClasses();
 
     // Check that the synthetic class is still present.
diff --git a/src/test/java/com/android/tools/r8/regress/b77496850/B77496850.java b/src/test/java/com/android/tools/r8/regress/b77496850/B77496850.java
index 448e472..a052d86 100644
--- a/src/test/java/com/android/tools/r8/regress/b77496850/B77496850.java
+++ b/src/test/java/com/android/tools/r8/regress/b77496850/B77496850.java
@@ -15,9 +15,9 @@
 import com.android.tools.r8.graph.DexString;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import org.junit.Test;
 
@@ -431,7 +431,7 @@
 
   private void checkPathParserMethods(AndroidApp app, Class testClass, int a, int b)
       throws Exception {
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     DexItemFactory factory = inspector.getFactory();
     ClassSubject clazz = inspector.clazz(testClass);
     MethodSubject drawArc = clazz.method(
@@ -484,7 +484,7 @@
       assert compiler == Tool.R8;
       app = compileWithR8(app, "-keep class * { *; }", o -> o.minApiLevel = apiLevel.getLevel());
     }
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     DexItemFactory factory = inspector.getFactory();
     ClassSubject clazz = inspector.clazz(testClass);
     MethodSubject arcToBezier = clazz.method(
diff --git a/src/test/java/com/android/tools/r8/resolution/B77944861.java b/src/test/java/com/android/tools/r8/resolution/B77944861.java
index a35adbc..2118b44 100644
--- a/src/test/java/com/android/tools/r8/resolution/B77944861.java
+++ b/src/test/java/com/android/tools/r8/resolution/B77944861.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.resolution;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
@@ -20,9 +20,9 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.FileUtils;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -64,8 +64,8 @@
     ProcessResult jvmOutput = ToolHelper.runJava(ImmutableList.of(jarPath), mainName);
     assertEquals(0, jvmOutput.exitCode);
     AndroidApp processedApp = runR8(readJar(jarPath), SomeView.class, out);
-    DexInspector dexInspector = new DexInspector(processedApp);
-    ClassSubject view = dexInspector.clazz("regress_77944861.SomeView");
+    CodeInspector codeInspector = new CodeInspector(processedApp);
+    ClassSubject view = codeInspector.clazz("regress_77944861.SomeView");
     assertThat(view, isPresent());
     String className = "regress_77944861.inner.TopLevelPolicy$MobileIconState";
     MethodSubject initView = view.method("java.lang.String", "get", ImmutableList.of(className));
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java
index bbb90ef..fff9ac3 100644
--- a/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java
@@ -19,9 +19,9 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import java.util.function.Consumer;
@@ -149,7 +149,7 @@
         ImmutableList.of(testClass),
         keepMainProguardConfiguration(testClass, true, false),
         options -> options.enableInlining = false);
-    DexInspector x = new DexInspector(app);
+    CodeInspector x = new CodeInspector(app);
 
     ClassSubject clazz = x.clazz(ClassWithAssertions.class);
     assertTrue(clazz.isPresent());
diff --git a/src/test/java/com/android/tools/r8/rewrite/longcompare/LongCompare.java b/src/test/java/com/android/tools/r8/rewrite/longcompare/LongCompare.java
index f92b1dc..16b7922 100644
--- a/src/test/java/com/android/tools/r8/rewrite/longcompare/LongCompare.java
+++ b/src/test/java/com/android/tools/r8/rewrite/longcompare/LongCompare.java
@@ -10,11 +10,11 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.ToolHelper.ArtCommandBuilder;
 import com.android.tools.r8.utils.StringUtils;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InvokeInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InvokeInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -65,8 +65,8 @@
 
     Path dexPath = outputPath.resolve("classes.dex");
 
-    DexInspector dexInspector = new DexInspector(dexPath);
-    ClassSubject classSubject = dexInspector.clazz("rewrite.LongCompare");
+    CodeInspector codeInspector = new CodeInspector(dexPath);
+    ClassSubject classSubject = codeInspector.clazz("rewrite.LongCompare");
     MethodSubject methodSubject = classSubject
         .method("int", "simpleCompare", Arrays.asList("long", "long"));
     // Check that exception handler is removed since it is no longer needed.
diff --git a/src/test/java/com/android/tools/r8/rewrite/longcompare/RequireNonNullRewriteTest.java b/src/test/java/com/android/tools/r8/rewrite/longcompare/RequireNonNullRewriteTest.java
index c3037f8..278bc8b 100644
--- a/src/test/java/com/android/tools/r8/rewrite/longcompare/RequireNonNullRewriteTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/longcompare/RequireNonNullRewriteTest.java
@@ -11,11 +11,11 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.ToolHelper.ArtCommandBuilder;
 import com.android.tools.r8.ToolHelper.ProcessResult;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InvokeInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InvokeInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -75,8 +75,8 @@
 
     Path dexPath = outputPath.resolve("classes.dex");
 
-    DexInspector dexInspector = new DexInspector(dexPath);
-    ClassSubject classSubject = dexInspector.clazz("rewrite.RequireNonNull");
+    CodeInspector codeInspector = new CodeInspector(dexPath);
+    ClassSubject classSubject = codeInspector.clazz("rewrite.RequireNonNull");
     MethodSubject methodSubject = classSubject
         .method("java.lang.Object", "nonnullRemove", Collections.emptyList());
 
diff --git a/src/test/java/com/android/tools/r8/rewrite/staticvalues/StaticValuesTest.java b/src/test/java/com/android/tools/r8/rewrite/staticvalues/StaticValuesTest.java
index 5fe2abd..d3784ee 100644
--- a/src/test/java/com/android/tools/r8/rewrite/staticvalues/StaticValuesTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/staticvalues/StaticValuesTest.java
@@ -26,8 +26,8 @@
 import com.android.tools.r8.smali.SmaliTestBase;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.StringUtils;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import org.junit.Test;
 
 public class StaticValuesTest extends SmaliTestBase {
@@ -94,7 +94,7 @@
     AndroidApp originalApplication = buildApplication(builder);
     AndroidApp processedApplication = processApplication(originalApplication);
 
-    DexInspector inspector = new DexInspector(processedApplication);
+    CodeInspector inspector = new CodeInspector(processedApplication);
     // Test is running without tree-shaking, so the empty <clinit> is not removed.
     assertTrue(
         inspector.clazz("Test").clinit().getMethod().getCode().asDexCode().isEmptyVoidMethod());
@@ -178,7 +178,7 @@
     AndroidApp originalApplication = buildApplication(builder);
     AndroidApp processedApplication = processApplication(originalApplication);
 
-    DexInspector inspector = new DexInspector(processedApplication);
+    CodeInspector inspector = new CodeInspector(processedApplication);
     MethodSubject clinit = inspector.clazz("Test").clinit();
     // Nothing changed in the class initializer.
     assertEquals(5, clinit.getMethod().getCode().asDexCode().instructions.length);
@@ -219,7 +219,7 @@
     AndroidApp originalApplication = buildApplication(builder);
     AndroidApp processedApplication = processApplication(originalApplication);
 
-    DexInspector inspector = new DexInspector(processedApplication);
+    CodeInspector inspector = new CodeInspector(processedApplication);
     // Test is running without tree-shaking, so the empty <clinit> is not removed.
     assertTrue(
         inspector.clazz("Test").clinit().getMethod().getCode().asDexCode().isEmptyVoidMethod());
@@ -261,7 +261,7 @@
     AndroidApp originalApplication = buildApplication(builder);
     AndroidApp processedApplication = processApplication(originalApplication);
 
-    DexInspector inspector = new DexInspector(processedApplication);
+    CodeInspector inspector = new CodeInspector(processedApplication);
     // Test is running without tree-shaking, so the empty <clinit> is not removed.
     assertTrue(
         inspector.clazz("Test").clinit().getMethod().getCode().asDexCode().isEmptyVoidMethod());
@@ -311,7 +311,7 @@
     AndroidApp originalApplication = buildApplication(builder);
     AndroidApp processedApplication = processApplication(originalApplication);
 
-    DexInspector inspector = new DexInspector(processedApplication);
+    CodeInspector inspector = new CodeInspector(processedApplication);
     // Test is running without tree-shaking, so the empty <clinit> is not removed.
     assertTrue(
         inspector.clazz("Test").clinit().getMethod().getCode().asDexCode().isEmptyVoidMethod());
@@ -384,7 +384,7 @@
     AndroidApp originalApplication = buildApplication(builder);
     AndroidApp processedApplication = processApplication(originalApplication);
 
-    DexInspector inspector = new DexInspector(processedApplication);
+    CodeInspector inspector = new CodeInspector(processedApplication);
     assertTrue(inspector.clazz("Test").clinit().isPresent());
 
     DexValue value;
@@ -471,7 +471,7 @@
     AndroidApp originalApplication = buildApplication(builder);
     AndroidApp processedApplication = processApplication(originalApplication);
 
-    DexInspector inspector = new DexInspector(processedApplication);
+    CodeInspector inspector = new CodeInspector(processedApplication);
     assertTrue(inspector.clazz(className).isPresent());
     // Test is running without tree-shaking, so the empty <clinit> is not removed.
     assertTrue(
@@ -520,7 +520,7 @@
     AndroidApp originalApplication = buildApplication(builder);
     AndroidApp processedApplication = processApplication(originalApplication);
 
-    DexInspector inspector = new DexInspector(processedApplication);
+    CodeInspector inspector = new CodeInspector(processedApplication);
     assertTrue(inspector.clazz(className).isPresent());
     assertTrue(inspector.clazz(className).clinit().isPresent());
 
@@ -553,7 +553,7 @@
     AndroidApp originalApplication = buildApplication(builder);
     AndroidApp processedApplication = processApplication(originalApplication);
 
-    DexInspector inspector = new DexInspector(processedApplication);
+    CodeInspector inspector = new CodeInspector(processedApplication);
     MethodSubject clinit = inspector.clazz("Test").clinit();
     // Nothing changed in the class initializer.
     assertEquals(3, clinit.getMethod().getCode().asDexCode().instructions.length);
diff --git a/src/test/java/com/android/tools/r8/rewrite/switches/SwitchRewritingJarTest.java b/src/test/java/com/android/tools/r8/rewrite/switches/SwitchRewritingJarTest.java
index 7ea9cdd..bffcfc5 100644
--- a/src/test/java/com/android/tools/r8/rewrite/switches/SwitchRewritingJarTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/switches/SwitchRewritingJarTest.java
@@ -19,8 +19,8 @@
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.StringUtils;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -282,7 +282,7 @@
     appBuilder.addProgramFiles(ToolHelper.getClassFileForTestClass(CheckSwitchInTestClass.class));
     AndroidApp app = compileWithR8(appBuilder.build());
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     MethodSubject method = inspector.clazz("Test").method("int", "test", ImmutableList.of("int"));
     DexCode code = method.getMethod().getCode().asDexCode();
 
diff --git a/src/test/java/com/android/tools/r8/rewrite/switchmaps/RewriteSwitchMapsTest.java b/src/test/java/com/android/tools/r8/rewrite/switchmaps/RewriteSwitchMapsTest.java
index 7eae052..b2bcb4e 100644
--- a/src/test/java/com/android/tools/r8/rewrite/switchmaps/RewriteSwitchMapsTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/switchmaps/RewriteSwitchMapsTest.java
@@ -10,7 +10,7 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Paths;
 import java.util.List;
@@ -45,7 +45,7 @@
         .setProgramConsumer(DexIndexedConsumer.emptyConsumer())
         .build();
     AndroidApp result = ToolHelper.runR8(command);
-    DexInspector inspector = new DexInspector(result);
+    CodeInspector inspector = new CodeInspector(result);
     Assert.assertFalse(inspector.clazz(SWITCHMAP_CLASS_NAME).isPresent());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/shaking/ClassKindTest.java b/src/test/java/com/android/tools/r8/shaking/ClassKindTest.java
index 9242842..89cbbbe 100644
--- a/src/test/java/com/android/tools/r8/shaking/ClassKindTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ClassKindTest.java
@@ -9,7 +9,7 @@
 import com.android.tools.r8.shaking.classkinds.Enum;
 import com.android.tools.r8.shaking.classkinds.Interface;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Sets;
 import java.util.Collection;
@@ -59,7 +59,7 @@
       Assert.assertTrue(classes.isEmpty());
       return;
     }
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     HashSet<java.lang.Class<?>> expected = Sets.newHashSet(classes);
     CLASSES_TO_INCLUDE.forEach(c -> {
       Assert.assertEquals(expected.contains(c), inspector.clazz(c).isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/FieldTypeTest.java b/src/test/java/com/android/tools/r8/shaking/FieldTypeTest.java
index 5fa8edc..2b4865d 100644
--- a/src/test/java/com/android/tools/r8/shaking/FieldTypeTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/FieldTypeTest.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.shaking;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
@@ -17,8 +17,8 @@
 import com.android.tools.r8.naming.MemberNaming.FieldSignature;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import org.junit.Test;
@@ -126,7 +126,7 @@
     assertThat(artResult.stdout, containsString(impl2.name));
     assertEquals(-1, artResult.stderr.indexOf("DoFieldPut"));
 
-    DexInspector inspector = new DexInspector(processedApp);
+    CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject itf1Subject = inspector.clazz(itf1.name);
     assertThat(itf1Subject, isPresent());
   }
diff --git a/src/test/java/com/android/tools/r8/shaking/LibraryProvidedProguardRulesTest.java b/src/test/java/com/android/tools/r8/shaking/LibraryProvidedProguardRulesTest.java
index a70f284..59098d3 100644
--- a/src/test/java/com/android/tools/r8/shaking/LibraryProvidedProguardRulesTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/LibraryProvidedProguardRulesTest.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.shaking;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -32,7 +32,7 @@
 import com.android.tools.r8.origin.PathOrigin;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.DescriptorUtils;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import com.google.common.io.ByteStreams;
 import com.google.common.io.CharSource;
@@ -129,7 +129,7 @@
   @Test
   public void keepOnlyA() throws Exception {
     AndroidApp app = runTest("-keep class " + A.class.getTypeName() +" {}", null);
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     assertThat(inspector.clazz(A.class), isPresent());
     assertThat(inspector.clazz(B.class), not(isPresent()));
   }
@@ -137,7 +137,7 @@
   @Test
   public void keepOnlyB() throws Exception {
     AndroidApp app = runTest("-keep class **B {}", null);
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     assertThat(inspector.clazz(A.class), not(isPresent()));
     assertThat(inspector.clazz(B.class), isPresent());
   }
@@ -145,7 +145,7 @@
   @Test
   public void keepBoth() throws Exception {
     AndroidApp app = runTest("-keep class ** {}", null);
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     assertThat(inspector.clazz(A.class), isPresent());
     assertThat(inspector.clazz(B.class), isPresent());
   }
@@ -153,7 +153,7 @@
   @Test
   public void multipleFiles() throws Exception {
     AndroidApp app = runTest(ImmutableList.of("-keep class **A {}", "-keep class **B {}"), null);
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     assertThat(inspector.clazz(A.class), isPresent());
     assertThat(inspector.clazz(B.class), isPresent());
   }
diff --git a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
index 22b6790..748866e 100644
--- a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
@@ -31,7 +31,7 @@
 import com.android.tools.r8.utils.InternalOptions.PackageObfuscationMode;
 import com.android.tools.r8.utils.KeepingDiagnosticHandler;
 import com.android.tools.r8.utils.Reporter;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.io.File;
 import java.io.IOException;
@@ -1844,7 +1844,7 @@
           ImmutableList.of(proguardConfig, additionalProguardConfig),
           null);
       assertEquals(0, result.exitCode);
-      DexInspector proguardInspector = new DexInspector(readJar(proguardedJar));
+      CodeInspector proguardInspector = new CodeInspector(readJar(proguardedJar));
       assertEquals(1, proguardInspector.allClasses().size());
     }
   }
@@ -1867,7 +1867,7 @@
           ImmutableList.of(proguardConfig, additionalProguardConfig),
           null);
       assertEquals(0, result.exitCode);
-      DexInspector proguardInspector = new DexInspector(readJar(proguardedJar));
+      CodeInspector proguardInspector = new CodeInspector(readJar(proguardedJar));
       assertEquals(1, proguardInspector.allClasses().size());
     }
   }
diff --git a/src/test/java/com/android/tools/r8/shaking/TreeShakingTest.java b/src/test/java/com/android/tools/r8/shaking/TreeShakingTest.java
index a975d2c..9eb7815 100644
--- a/src/test/java/com/android/tools/r8/shaking/TreeShakingTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/TreeShakingTest.java
@@ -17,10 +17,10 @@
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.ListUtils;
 import com.android.tools.r8.utils.TestDescriptionWatcher;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FoundFieldSubject;
-import com.android.tools.r8.utils.dexinspector.FoundMethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundFieldSubject;
+import com.android.tools.r8.utils.codeinspector.FoundMethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Files;
 import java.nio.file.Path;
@@ -137,7 +137,7 @@
         });
   }
 
-  protected static void checkSameStructure(DexInspector ref, DexInspector inspector) {
+  protected static void checkSameStructure(CodeInspector ref, CodeInspector inspector) {
     ref.forAllClasses(refClazz -> checkSameStructure(refClazz,
         inspector.clazz(refClazz.getDexClass().toSourceString())));
   }
@@ -167,18 +167,18 @@
   }
 
   protected void runTest(
-      Consumer<DexInspector> inspection,
+      Consumer<CodeInspector> inspection,
       BiConsumer<String, String> outputComparator,
-      BiConsumer<DexInspector, DexInspector> dexComparator,
+      BiConsumer<CodeInspector, CodeInspector> dexComparator,
       List<String> keepRulesFiles)
       throws Exception {
     runTest(inspection, outputComparator, dexComparator, keepRulesFiles, null);
   }
 
   protected void runTest(
-      Consumer<DexInspector> inspection,
+      Consumer<CodeInspector> inspection,
       BiConsumer<String, String> outputComparator,
-      BiConsumer<DexInspector, DexInspector> dexComparator,
+      BiConsumer<CodeInspector, CodeInspector> dexComparator,
       List<String> keepRulesFiles,
       Consumer<InternalOptions> optionsConsumer)
       throws Exception {
@@ -218,8 +218,8 @@
         Assert.assertEquals(resultInput.toString(), resultOutput.toString());
       }
       if (inspection != null) {
-        DexInspector inspector =
-            new DexInspector(
+        CodeInspector inspector =
+            new CodeInspector(
                 out,
                 minify.isMinify()
                     ? proguardMap.toString()
@@ -249,8 +249,8 @@
       }
 
       if (dexComparator != null) {
-        DexInspector ref = new DexInspector(Paths.get(originalDex));
-        DexInspector inspector = new DexInspector(out,
+        CodeInspector ref = new CodeInspector(Paths.get(originalDex));
+        CodeInspector inspector = new CodeInspector(out,
             minify.isMinify() ? proguardMap.toString()
                 : null);
         dexComparator.accept(ref, inspector);
@@ -263,7 +263,7 @@
     }
 
     if (inspection != null) {
-      DexInspector inspector = new DexInspector(out,
+      CodeInspector inspector = new CodeInspector(out,
           minify.isMinify() ? proguardMap.toString()
               : null);
       inspection.accept(inspector);
diff --git a/src/test/java/com/android/tools/r8/shaking/defaultmethods/DefaultMethodsTest.java b/src/test/java/com/android/tools/r8/shaking/defaultmethods/DefaultMethodsTest.java
index d739348..eab5197 100644
--- a/src/test/java/com/android/tools/r8/shaking/defaultmethods/DefaultMethodsTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/defaultmethods/DefaultMethodsTest.java
@@ -15,15 +15,15 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import org.junit.Test;
 
 public class DefaultMethodsTest extends TestBase {
-  private void runTest(List<String> additionalKeepRules, Consumer<DexInspector> inspection)
+  private void runTest(List<String> additionalKeepRules, Consumer<CodeInspector> inspection)
       throws Exception {
     R8Command.Builder builder = R8Command.builder();
     builder.addProgramFiles(ToolHelper.getClassFileForTestClass(InterfaceWithDefaultMethods.class));
@@ -40,20 +40,20 @@
         Origin.unknown());
     builder.addProguardConfiguration(additionalKeepRules, Origin.unknown());
     AndroidApp app = ToolHelper.runR8(builder.build(), o -> o.enableClassInlining = false);
-    inspection.accept(new DexInspector(app));
+    inspection.accept(new CodeInspector(app));
   }
 
-  private void interfaceNotKept(DexInspector inspector) {
+  private void interfaceNotKept(CodeInspector inspector) {
     assertFalse(inspector.clazz(InterfaceWithDefaultMethods.class).isPresent());
   }
 
-  private void defaultMethodNotKept(DexInspector inspector) {
+  private void defaultMethodNotKept(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz(InterfaceWithDefaultMethods.class);
     assertTrue(clazz.isPresent());
     assertFalse(clazz.method("int", "method", ImmutableList.of()).isPresent());
   }
 
-  private void defaultMethodKept(DexInspector inspector) {
+  private void defaultMethodKept(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz(InterfaceWithDefaultMethods.class);
     assertTrue(clazz.isPresent());
     MethodSubject method = clazz.method("int", "method", ImmutableList.of());
@@ -61,7 +61,7 @@
     assertFalse(method.isAbstract());
   }
 
-  private void defaultMethodAbstract(DexInspector inspector) {
+  private void defaultMethodAbstract(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz(InterfaceWithDefaultMethods.class);
     assertTrue(clazz.isPresent());
     MethodSubject method = clazz.method("int", "method", ImmutableList.of());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking11Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking11Test.java
index f7889ee..f65c1d4 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking11Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking11Test.java
@@ -5,7 +5,7 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -53,24 +53,24 @@
         ImmutableList.of("src/test/examples/shaking11/keep-rules-keep-method.txt"));
   }
 
-  private static void shaking11OnlyOneClassKept(DexInspector dexInspector) {
-    Assert.assertFalse(dexInspector.clazz("shaking11.Subclass").isPresent());
-    Assert.assertTrue(dexInspector.clazz("shaking11.SubclassWithMethod").isPresent());
+  private static void shaking11OnlyOneClassKept(CodeInspector codeInspector) {
+    Assert.assertFalse(codeInspector.clazz("shaking11.Subclass").isPresent());
+    Assert.assertTrue(codeInspector.clazz("shaking11.SubclassWithMethod").isPresent());
   }
 
-  private static void shaking11BothMethodsKept(DexInspector dexInspector) {
+  private static void shaking11BothMethodsKept(CodeInspector codeInspector) {
     Assert.assertFalse(
-        dexInspector
+        codeInspector
             .clazz("shaking11.Subclass")
             .method("void", "aMethod", Collections.emptyList())
             .isPresent());
     Assert.assertTrue(
-        dexInspector
+        codeInspector
             .clazz("shaking11.SuperClass")
             .method("void", "aMethod", Collections.emptyList())
             .isPresent());
     Assert.assertTrue(
-        dexInspector
+        codeInspector
             .clazz("shaking11.SubclassWithMethod")
             .method("void", "aMethod", Collections.emptyList())
             .isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking12Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking12Test.java
index d58d975..710635d 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking12Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking12Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -54,7 +54,7 @@
         ImmutableList.of("src/test/examples/shaking12/keep-rules-printusage.txt"));
   }
 
-  private static void shaking12OnlyInstantiatedClassesHaveConstructors(DexInspector inspector) {
+  private static void shaking12OnlyInstantiatedClassesHaveConstructors(CodeInspector inspector) {
     ClassSubject animalClass = inspector.clazz("shaking12.AnimalClass");
     Assert.assertTrue(animalClass.isPresent());
     Assert.assertFalse(animalClass.method("void", "<init>", Collections.emptyList()).isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking13Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking13Test.java
index 6cfcd87..2157cd3 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking13Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking13Test.java
@@ -5,11 +5,11 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldAccessInstructionSubject;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldAccessInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -49,7 +49,7 @@
         ImmutableList.of("src/test/examples/shaking13/keep-rules.txt"));
   }
 
-  private static void shaking13EnsureFieldWritesCorrect(DexInspector inspector) {
+  private static void shaking13EnsureFieldWritesCorrect(CodeInspector inspector) {
     ClassSubject mainClass = inspector.clazz("shaking13.Shaking");
     MethodSubject testMethod = mainClass.method("void", "fieldTest", Collections.emptyList());
     Assert.assertTrue(testMethod.isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking14Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking14Test.java
index 8ea939a..820afc2 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking14Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking14Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -44,7 +44,7 @@
         ImmutableList.of("src/test/examples/shaking14/keep-rules.txt"));
   }
 
-  private static void shaking14EnsureRightStaticMethodsLive(DexInspector inspector) {
+  private static void shaking14EnsureRightStaticMethodsLive(CodeInspector inspector) {
     ClassSubject superclass = inspector.clazz("shaking14.Superclass");
     Assert.assertFalse(superclass.method("int", "aMethod", ImmutableList.of("int")).isPresent());
     Assert.assertFalse(
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking15Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking15Test.java
index 1651fca..1dd353e 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking15Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking15Test.java
@@ -5,10 +5,10 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -48,7 +48,7 @@
         ImmutableList.of("src/test/examples/shaking15/keep-rules.txt"));
   }
 
-  private static void shaking15testDictionary(DexInspector inspector) {
+  private static void shaking15testDictionary(CodeInspector inspector) {
     inspector.forAllClasses((clazz) -> checkClassAndMemberInDictionary(clazz));
   }
 
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking17Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking17Test.java
index ba01d2f..fac36d6 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking17Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking17Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -45,7 +45,7 @@
         ImmutableList.of("src/test/examples/shaking17/keep-rules.txt"));
   }
 
-  private static void abstractMethodRemains(DexInspector inspector) {
+  private static void abstractMethodRemains(CodeInspector inspector) {
     ClassSubject programClass = inspector.clazz("shaking17.AbstractProgramClass");
     Assert.assertTrue(programClass.isPresent());
     Assert.assertTrue(
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking18Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking18Test.java
index 26ea045..b691046 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking18Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking18Test.java
@@ -5,7 +5,7 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -43,7 +43,7 @@
         ImmutableList.of("src/test/examples/shaking18/keep-rules.txt"));
   }
 
-  private static void unusedRemoved(DexInspector inspector) {
+  private static void unusedRemoved(CodeInspector inspector) {
     // TODO(b/80455722): Change to assertFalse when tree-shaking detects this case.
     Assert.assertTrue(
         "DerivedUnused should be removed", inspector.clazz("shaking18.DerivedUnused").isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking19Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking19Test.java
index 0c662bb..f30bcac 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking19Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking19Test.java
@@ -3,15 +3,15 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.shaking.examples;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertThat;
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -52,7 +52,7 @@
         opt -> opt.enableClassMerging = false);
   }
 
-  private static void unusedRemoved(DexInspector inspector) {
+  private static void unusedRemoved(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz("shaking19.Shaking$A");
     assertThat(clazz, isPresent());
 
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking1Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking1Test.java
index 6b90ec9..17cfb7f 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking1Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking1Test.java
@@ -6,8 +6,8 @@
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
 import com.android.tools.r8.utils.DescriptorUtils;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -165,7 +165,7 @@
             "src/test/proguard/valid/empty.flags"));
   }
 
-  private static void shaking1IsCorrectlyRepackaged(DexInspector inspector) {
+  private static void shaking1IsCorrectlyRepackaged(CodeInspector inspector) {
     inspector.forAllClasses(
         clazz -> {
           String descriptor = clazz.getFinalDescriptor();
@@ -176,7 +176,7 @@
         });
   }
 
-  private static void shaking1HasNoClassUnused(DexInspector inspector) {
+  private static void shaking1HasNoClassUnused(CodeInspector inspector) {
     Assert.assertFalse(inspector.clazz("shaking1.Unused").isPresent());
     ClassSubject used = inspector.clazz("shaking1.Used");
     Assert.assertTrue(used.isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking2Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking2Test.java
index 4c2cfe1..5f87781 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking2Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking2Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -60,7 +60,7 @@
         null, null, null, ImmutableList.of("src/test/examples/shaking2/keep-rules-printusage.txt"));
   }
 
-  private static void shaking2SuperClassIsAbstract(DexInspector inspector) {
+  private static void shaking2SuperClassIsAbstract(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz("shaking2.SuperClass");
     Assert.assertTrue(clazz.isAbstract());
     Assert.assertTrue(clazz.method("void", "virtualMethod", Collections.emptyList()).isAbstract());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking3Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking3Test.java
index 3996622..6ed0099 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking3Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking3Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -89,12 +89,12 @@
         ImmutableList.of("src/test/examples/shaking3/keep-no-abstract-classes.txt"));
   }
 
-  private static void shaking3HasNoPrivateClass(DexInspector inspector) {
+  private static void shaking3HasNoPrivateClass(CodeInspector inspector) {
     Assert.assertTrue(inspector.clazz("shaking3.B").isPresent());
     Assert.assertFalse(inspector.clazz("shaking3.AnAbstractClass").isPresent());
   }
 
-  private static void shaking3HasNoClassB(DexInspector inspector) {
+  private static void shaking3HasNoClassB(CodeInspector inspector) {
     Assert.assertFalse(inspector.clazz("shaking3.B").isPresent());
     ClassSubject classA = inspector.clazz("shaking3.A");
     Assert.assertTrue(classA.isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking5Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking5Test.java
index ad13070..7484255 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking5Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking5Test.java
@@ -5,7 +5,7 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -44,7 +44,7 @@
         ImmutableList.of("src/test/examples/shaking5/keep-rules.txt"));
   }
 
-  private static void shaking5Inspection(DexInspector inspector) {
+  private static void shaking5Inspection(CodeInspector inspector) {
     Assert.assertFalse(
         inspector
             .clazz("shaking5.Superclass")
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking6Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking6Test.java
index 9fb2029..f5733cc 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking6Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking6Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -72,7 +72,7 @@
         ImmutableList.of("src/test/examples/shaking6/keep-public.txt"));
   }
 
-  private static void hasNoPublicMethodsButPrivate(DexInspector inspector) {
+  private static void hasNoPublicMethodsButPrivate(CodeInspector inspector) {
     inspector.forAllClasses(
         clazz ->
             clazz.forAllMethods(
@@ -88,7 +88,7 @@
             .isPresent());
   }
 
-  private static void hasOnlyIntJustAMethod(DexInspector inspector) {
+  private static void hasOnlyIntJustAMethod(CodeInspector inspector) {
     Assert.assertFalse(
         inspector
             .clazz("shaking6.Superclass")
@@ -105,7 +105,7 @@
         subclass.method("int", "justAMethod", Collections.singletonList("double")).isPresent());
   }
 
-  private static void hasNoPrivateJustAMethod(DexInspector inspector) {
+  private static void hasNoPrivateJustAMethod(CodeInspector inspector) {
     Assert.assertFalse(
         inspector
             .clazz("shaking6.Superclass")
@@ -122,7 +122,7 @@
         subclass.method("int", "justAMethod", Collections.singletonList("double")).isPresent());
   }
 
-  private static void hasNoPrivateMethods(DexInspector inspector) {
+  private static void hasNoPrivateMethods(CodeInspector inspector) {
     inspector.forAllClasses(
         clazz ->
             clazz.forAllMethods(
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking7Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking7Test.java
index b44f3aa..9d2faf3 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking7Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking7Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -71,7 +71,7 @@
         ImmutableList.of("src/test/examples/shaking7/keep-public-theIntField-fields.txt"));
   }
 
-  private static void shaking7HasOnlyDoubleFields(DexInspector inspector) {
+  private static void shaking7HasOnlyDoubleFields(CodeInspector inspector) {
     inspector.forAllClasses(
         clazz -> {
           clazz.forAllFields(
@@ -86,7 +86,7 @@
     Assert.assertFalse(inspector.clazz("shaking7.Liar").field("int", "theDoubleField").isPresent());
   }
 
-  private static void shaking7HasOnlyPublicFieldsNamedTheIntField(DexInspector inspector) {
+  private static void shaking7HasOnlyPublicFieldsNamedTheIntField(CodeInspector inspector) {
     inspector.forAllClasses(
         clazz -> {
           clazz.forAllFields(
@@ -104,7 +104,7 @@
     Assert.assertTrue(liar.field("double", "theIntField").isPresent());
   }
 
-  private static void shaking7HasOnlyPublicFields(DexInspector inspector) {
+  private static void shaking7HasOnlyPublicFields(CodeInspector inspector) {
     inspector.forAllClasses(
         clazz -> {
           clazz.forAllFields(
@@ -120,7 +120,7 @@
     Assert.assertTrue(inspector.clazz("shaking7.Liar").field("int", "theDoubleField").isPresent());
   }
 
-  private static void shaking7HasOnlyPublicFieldsNamedTheDoubleField(DexInspector inspector) {
+  private static void shaking7HasOnlyPublicFieldsNamedTheDoubleField(CodeInspector inspector) {
     inspector.forAllClasses(
         clazz -> {
           clazz.forAllFields(
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking8Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking8Test.java
index 02cda2a..b957c64 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking8Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking8Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -50,7 +50,7 @@
         null, null, null, ImmutableList.of("src/test/examples/shaking8/keep-rules-printusage.txt"));
   }
 
-  private static void shaking8ThingClassIsAbstractAndEmpty(DexInspector inspector) {
+  private static void shaking8ThingClassIsAbstractAndEmpty(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz("shaking8.Thing");
     Assert.assertTrue(clazz.isAbstract());
     clazz.forAllMethods((method) -> Assert.fail());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking9Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking9Test.java
index 18a1141..e64abe1 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking9Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShaking9Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -50,7 +50,7 @@
         null, null, null, ImmutableList.of("src/test/examples/shaking9/keep-rules-printusage.txt"));
   }
 
-  private static void shaking9OnlySuperMethodsKept(DexInspector inspector) {
+  private static void shaking9OnlySuperMethodsKept(CodeInspector inspector) {
     ClassSubject superclass = inspector.clazz("shaking9.Superclass");
     Assert.assertTrue(superclass.isAbstract());
     Assert.assertTrue(superclass.method("void", "aMethod", ImmutableList.of()).isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingAnnotationremovalTest.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingAnnotationremovalTest.java
index dfe1806..d7d45f0 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingAnnotationremovalTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingAnnotationremovalTest.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -68,7 +68,7 @@
         });
   }
 
-  private static void annotationRemovalHasNoInnerClassAnnotations(DexInspector inspector) {
+  private static void annotationRemovalHasNoInnerClassAnnotations(CodeInspector inspector) {
     ClassSubject outer = inspector.clazz("annotationremoval.OuterClass");
     Assert.assertTrue(outer.isPresent());
     Assert.assertTrue(outer.getDexClass().getInnerClasses().isEmpty());
@@ -86,7 +86,7 @@
     Assert.assertTrue(local.getDexClass().getInnerClasses().isEmpty());
   }
 
-  private static void annotationRemovalHasAllInnerClassAnnotations(DexInspector inspector) {
+  private static void annotationRemovalHasAllInnerClassAnnotations(CodeInspector inspector) {
     ClassSubject outer = inspector.clazz("annotationremoval.OuterClass");
     Assert.assertTrue(outer.isPresent());
     Assert.assertFalse(outer.getDexClass().getInnerClasses().isEmpty());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingEnumprotoTest.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingEnumprotoTest.java
index e544edf..7f211db 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingEnumprotoTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingEnumprotoTest.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -44,7 +44,7 @@
         ImmutableList.of("src/test/examples/enumproto/keep-rules.txt"));
   }
 
-  private static void enumprotoUnusedFieldsAreGone(DexInspector inspector) {
+  private static void enumprotoUnusedFieldsAreGone(CodeInspector inspector) {
     ClassSubject protoClass = inspector.clazz("enumproto.GeneratedEnumProto$Enum");
     Assert.assertTrue(protoClass.isPresent());
     Assert.assertFalse(protoClass.field("int", "id_").isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingNestedproto1Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingNestedproto1Test.java
index 6650860..16b5f59 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingNestedproto1Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingNestedproto1Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -44,7 +44,7 @@
         ImmutableList.of("src/test/examples/nestedproto1/keep-rules.txt"));
   }
 
-  private static void nestedproto1UnusedFieldsAreGone(DexInspector inspector) {
+  private static void nestedproto1UnusedFieldsAreGone(CodeInspector inspector) {
     ClassSubject protoClass = inspector.clazz("nestedproto1.GeneratedNestedProto$Outer");
     Assert.assertTrue(protoClass.isPresent());
     Assert.assertFalse(protoClass.field("int", "id_").isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingNestedproto2Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingNestedproto2Test.java
index d7a8af5..a679810 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingNestedproto2Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingNestedproto2Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -44,7 +44,7 @@
         ImmutableList.of("src/test/examples/nestedproto2/keep-rules.txt"));
   }
 
-  private static void nestedproto2UnusedFieldsAreGone(DexInspector inspector) {
+  private static void nestedproto2UnusedFieldsAreGone(CodeInspector inspector) {
     ClassSubject protoClass = inspector.clazz("nestedproto2.GeneratedNestedProto$Outer");
     Assert.assertTrue(protoClass.isPresent());
     Assert.assertTrue(protoClass.field("int", "id_").isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingOneofprotoTest.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingOneofprotoTest.java
index 18f4648..e38258c 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingOneofprotoTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingOneofprotoTest.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -44,7 +44,7 @@
         ImmutableList.of("src/test/examples/oneofproto/keep-rules.txt"));
   }
 
-  private static void oneofprotoUnusedFieldsAreGone(DexInspector inspector) {
+  private static void oneofprotoUnusedFieldsAreGone(CodeInspector inspector) {
     ClassSubject protoClass = inspector.clazz("oneofproto.GeneratedOneOfProto$Oneof");
     Assert.assertTrue(protoClass.isPresent());
     Assert.assertFalse(protoClass.field("int", "id_").isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingRepeatedprotoTest.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingRepeatedprotoTest.java
index e55d822..923cf34 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingRepeatedprotoTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingRepeatedprotoTest.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -44,7 +44,7 @@
         ImmutableList.of("src/test/examples/repeatedproto/keep-rules.txt"));
   }
 
-  private static void repeatedUnusedFieldsAreGone(DexInspector inspector) {
+  private static void repeatedUnusedFieldsAreGone(CodeInspector inspector) {
     ClassSubject protoClass = inspector.clazz("repeatedproto.GeneratedRepeatedProto$Repeated");
     Assert.assertTrue(protoClass.isPresent());
     Assert.assertFalse(protoClass.field("int", "id_").isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingSimpleproto1Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingSimpleproto1Test.java
index 2b49803..64e3839 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingSimpleproto1Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingSimpleproto1Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -44,7 +44,7 @@
         ImmutableList.of("src/test/examples/simpleproto1/keep-rules.txt"));
   }
 
-  private static void simpleproto1UnusedFieldIsGone(DexInspector inspector) {
+  private static void simpleproto1UnusedFieldIsGone(CodeInspector inspector) {
     ClassSubject protoClass = inspector.clazz("simpleproto1.GeneratedSimpleProto$Simple");
     Assert.assertTrue(protoClass.isPresent());
     Assert.assertFalse(protoClass.field("boolean", "other_").isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingSimpleproto2Test.java b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingSimpleproto2Test.java
index ce9659b..5304dae 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingSimpleproto2Test.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/TreeShakingSimpleproto2Test.java
@@ -5,8 +5,8 @@
 
 import com.android.tools.r8.TestBase.MinifyMode;
 import com.android.tools.r8.shaking.TreeShakingTest;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -44,7 +44,7 @@
         ImmutableList.of("src/test/examples/simpleproto2/keep-rules.txt"));
   }
 
-  private static void simpleproto2UnusedFieldsAreGone(DexInspector inspector) {
+  private static void simpleproto2UnusedFieldsAreGone(CodeInspector inspector) {
     ClassSubject protoClass = inspector.clazz("simpleproto2.GeneratedSimpleProto$Simple");
     Assert.assertTrue(protoClass.isPresent());
     Assert.assertFalse(protoClass.field("int", "id_").isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ForceProguardCompatibilityTest.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ForceProguardCompatibilityTest.java
index 31c97ca..51baed2 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ForceProguardCompatibilityTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ForceProguardCompatibilityTest.java
@@ -38,10 +38,10 @@
 import com.android.tools.r8.utils.DefaultDiagnosticsHandler;
 import com.android.tools.r8.utils.FileUtils;
 import com.android.tools.r8.utils.Reporter;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap;
@@ -56,7 +56,7 @@
   private void test(Class mainClass, Class mentionedClass, boolean forceProguardCompatibility)
       throws Exception {
     String proguardConfig = keepMainProguardConfiguration(mainClass, true, false);
-    DexInspector inspector = new DexInspector(
+    CodeInspector inspector = new CodeInspector(
         compileWithR8(
             ImmutableList.of(mainClass, mentionedClass),
             proguardConfig,
@@ -103,7 +103,7 @@
     }
 
     builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
-    DexInspector inspector = new DexInspector(ToolHelper.runR8(builder.build()));
+    CodeInspector inspector = new CodeInspector(ToolHelper.runR8(builder.build()));
     assertTrue(inspector.clazz(mainClass.getCanonicalName()).isPresent());
     ClassSubject clazz = inspector.clazz(getJavacGeneratedClassName(mentionedClassWithAnnotations));
     assertTrue(clazz.isPresent());
@@ -138,7 +138,7 @@
     builder.setProguardCompatibilityRulesOutput(proguardCompatibilityRules);
 
     builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
-    DexInspector inspector = new DexInspector(ToolHelper.runR8(builder.build()));
+    CodeInspector inspector = new CodeInspector(ToolHelper.runR8(builder.build()));
     ClassSubject clazz = inspector.clazz(getJavacGeneratedClassName(testClass));
     assertTrue(clazz.isPresent());
     assertEquals(forceProguardCompatibility && hasDefaultConstructor,
@@ -195,7 +195,7 @@
     builder.addProguardConfiguration(proguardConfig, Origin.unknown());
 
     builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
-    DexInspector inspector = new DexInspector(ToolHelper.runR8(builder.build()));
+    CodeInspector inspector = new CodeInspector(ToolHelper.runR8(builder.build()));
     assertTrue(inspector.clazz(getJavacGeneratedClassName(mainClass)).isPresent());
     ClassSubject clazz = inspector.clazz(getJavacGeneratedClassName(instantiatedClass));
     assertEquals(containsCheckCast, clazz.isPresent());
@@ -210,7 +210,7 @@
       FileUtils.writeTextFile(proguardConfigFile, proguardConfig);
       ToolHelper.runProguard(jarTestClasses(ImmutableList.of(mainClass, instantiatedClass)),
           proguardedJar, proguardConfigFile, null);
-      DexInspector proguardInspector = new DexInspector(readJar(proguardedJar));
+      CodeInspector proguardInspector = new CodeInspector(readJar(proguardedJar));
       assertTrue(proguardInspector.clazz(mainClass).isPresent());
       assertEquals(
           containsCheckCast, proguardInspector.clazz(instantiatedClass).isPresent());
@@ -257,7 +257,7 @@
     }
 
     builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
-    DexInspector inspector = new DexInspector(ToolHelper.runR8(builder.build()));
+    CodeInspector inspector = new CodeInspector(ToolHelper.runR8(builder.build()));
     assertTrue(inspector.clazz(getJavacGeneratedClassName(mainClass)).isPresent());
     forNameClasses.forEach(clazz -> {
       ClassSubject subject = inspector.clazz(getJavacGeneratedClassName(clazz));
@@ -316,7 +316,7 @@
       ToolHelper.runProguard(jarTestClasses(
           ImmutableList.of(mainClass, forNameClass1, forNameClass2)),
           proguardedJar, proguardConfigFile, proguardMapFile);
-      DexInspector proguardedInspector = new DexInspector(readJar(proguardedJar), proguardMapFile);
+      CodeInspector proguardedInspector = new CodeInspector(readJar(proguardedJar), proguardMapFile);
       assertEquals(3, proguardedInspector.allClasses().size());
       assertTrue(proguardedInspector.clazz(mainClass).isPresent());
       for (Class clazz : ImmutableList.of(forNameClass1, forNameClass2)) {
@@ -360,7 +360,7 @@
     }
 
     builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
-    DexInspector inspector = new DexInspector(ToolHelper.runR8(builder.build()));
+    CodeInspector inspector = new CodeInspector(ToolHelper.runR8(builder.build()));
     assertTrue(inspector.clazz(getJavacGeneratedClassName(mainClass)).isPresent());
     ClassSubject classSubject = inspector.clazz(getJavacGeneratedClassName(withMemberClass));
     // Due to the direct usage of .class
@@ -424,7 +424,7 @@
       ToolHelper.runProguard(jarTestClasses(
           ImmutableList.of(mainClass, withMemberClass)),
           proguardedJar, proguardConfigFile, proguardMapFile);
-      DexInspector proguardedInspector = new DexInspector(readJar(proguardedJar), proguardMapFile);
+      CodeInspector proguardedInspector = new CodeInspector(readJar(proguardedJar), proguardMapFile);
       assertEquals(2, proguardedInspector.allClasses().size());
       assertTrue(proguardedInspector.clazz(mainClass).isPresent());
       classSubject = proguardedInspector.clazz(withMemberClass);
@@ -473,7 +473,7 @@
     }
 
     builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
-    DexInspector inspector = new DexInspector(ToolHelper.runR8(builder.build()));
+    CodeInspector inspector = new CodeInspector(ToolHelper.runR8(builder.build()));
     assertTrue(inspector.clazz(getJavacGeneratedClassName(mainClass)).isPresent());
     ClassSubject classSubject = inspector.clazz(getJavacGeneratedClassName(withVolatileFields));
     // Due to the direct usage of .class
@@ -541,7 +541,7 @@
       ToolHelper.runProguard(jarTestClasses(
           ImmutableList.of(mainClass, withVolatileFields)),
           proguardedJar, proguardConfigFile, proguardMapFile);
-      DexInspector proguardedInspector = new DexInspector(readJar(proguardedJar), proguardMapFile);
+      CodeInspector proguardedInspector = new CodeInspector(readJar(proguardedJar), proguardMapFile);
       assertEquals(2, proguardedInspector.allClasses().size());
       assertTrue(proguardedInspector.clazz(mainClass).isPresent());
       classSubject = proguardedInspector.clazz(withVolatileFields);
@@ -604,7 +604,7 @@
       assertTrue(!forceProguardCompatibility && (!innerClasses || !enclosingMethod));
       return;
     }
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     assertTrue(inspector.clazz(getJavacGeneratedClassName(mainClass)).isPresent());
     assertEquals(innerClasses || enclosingMethod ? "1" : "0", runOnArt(app, mainClass));
 
@@ -639,7 +639,7 @@
 
   private void runKeepDefaultMethodsTest(
       List<String> additionalKeepRules,
-      Consumer<DexInspector> inspection,
+      Consumer<CodeInspector> inspection,
       Consumer<ProguardConfiguration> compatInspection) throws Exception {
     Class mainClass = TestClass.class;
     CompatProguardCommandBuilder builder = new CompatProguardCommandBuilder();
@@ -657,7 +657,7 @@
     Path proguardCompatibilityRules = temp.newFile().toPath();
     builder.setProguardCompatibilityRulesOutput(proguardCompatibilityRules);
     AndroidApp app = ToolHelper.runR8(builder.build(), o -> o.enableClassInlining = false);
-    inspection.accept(new DexInspector(app));
+    inspection.accept(new CodeInspector(app));
     // Check the Proguard compatibility configuration generated.
     ProguardConfigurationParser parser =
         new ProguardConfigurationParser(new DexItemFactory(),
@@ -671,7 +671,7 @@
     assertEquals(0, configuration.getRules().size());
   }
 
-  private void defaultMethodKept(DexInspector inspector) {
+  private void defaultMethodKept(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz(InterfaceWithDefaultMethods.class);
     assertTrue(clazz.isPresent());
     MethodSubject method = clazz.method("int", "method", ImmutableList.of());
@@ -695,7 +695,7 @@
     assertEquals(0, memberRule.getArguments().size());
   }
 
-  private void defaultMethod2Kept(DexInspector inspector) {
+  private void defaultMethod2Kept(CodeInspector inspector) {
     ClassSubject clazz = inspector.clazz(InterfaceWithDefaultMethods.class);
     assertTrue(clazz.isPresent());
     MethodSubject method =
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
index f76d402..ef98898 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatabilityTestBase.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.shaking.forceproguardcompatibility;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.fail;
@@ -19,8 +19,8 @@
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.FileUtils;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.io.File;
 import java.nio.file.Path;
@@ -67,12 +67,12 @@
     throw new IllegalArgumentException("Unknown shrinker: " + mode);
   }
 
-  protected DexInspector runShrinker(
+  protected CodeInspector runShrinker(
       Shrinker mode, List<Class> programClasses, List<String> proguadConfigs) throws Exception {
     return runShrinker(mode, programClasses, String.join(System.lineSeparator(), proguadConfigs));
   }
 
-  protected DexInspector runShrinker(
+  protected CodeInspector runShrinker(
       Shrinker mode, List<Class> programClasses, String proguardConfig) throws Exception {
     switch (mode) {
       case PROGUARD5:
@@ -104,8 +104,8 @@
     return ToolHelper.runR8(builder.build(), configure);
   }
 
-  protected DexInspector runR8(List<Class> programClasses, String proguardConfig) throws Exception {
-    return new DexInspector(runR8Raw(programClasses, proguardConfig));
+  protected CodeInspector runR8(List<Class> programClasses, String proguardConfig) throws Exception {
+    return new CodeInspector(runR8Raw(programClasses, proguardConfig));
   }
 
   protected AndroidApp runR8CompatRaw(
@@ -120,12 +120,12 @@
     return ToolHelper.runR8(builder.build());
   }
 
-  protected DexInspector runR8Compat(
+  protected CodeInspector runR8Compat(
       List<Class> programClasses, String proguardConfig) throws Exception {
-    return new DexInspector(runR8CompatRaw(programClasses, proguardConfig));
+    return new CodeInspector(runR8CompatRaw(programClasses, proguardConfig));
   }
 
-  protected DexInspector runR8CompatKeepingMain(Class mainClass, List<Class> programClasses)
+  protected CodeInspector runR8CompatKeepingMain(Class mainClass, List<Class> programClasses)
       throws Exception {
     return runR8Compat(programClasses, keepMainProguardConfiguration(mainClass));
   }
@@ -148,10 +148,10 @@
     return readJar(proguardedJar);
   }
 
-  protected DexInspector runProguard5(
+  protected CodeInspector runProguard5(
       List<Class> programClasses, String proguardConfig) throws Exception {
     proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
-    return new DexInspector(
+    return new CodeInspector(
         runProguard5Raw(programClasses, proguardConfig, proguardMap), proguardMap);
   }
 
@@ -173,10 +173,10 @@
     return readJar(proguardedJar);
   }
 
-  protected DexInspector runProguard6(
+  protected CodeInspector runProguard6(
       List<Class> programClasses, String proguardConfig) throws Exception {
     proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
-    return new DexInspector(
+    return new CodeInspector(
         runProguard6Raw(programClasses, proguardConfig, proguardMap), proguardMap);
   }
 
@@ -198,30 +198,30 @@
     return ToolHelper.runD8(readJar(proguardedJar));
   }
 
-  protected DexInspector runProguard6AndD8(
+  protected CodeInspector runProguard6AndD8(
       List<Class> programClasses, String proguardConfig) throws Exception {
     proguardMap = File.createTempFile("proguard", ".map", temp.getRoot()).toPath();
-    return new DexInspector(
+    return new CodeInspector(
         runProguard6AndD8Raw(programClasses, proguardConfig, proguardMap), proguardMap);
   }
 
-  protected DexInspector runProguardKeepingMain(Class mainClass, List<Class> programClasses)
+  protected CodeInspector runProguardKeepingMain(Class mainClass, List<Class> programClasses)
       throws Exception {
     return runProguard6AndD8(programClasses, keepMainProguardConfiguration(mainClass));
   }
 
   protected void verifyClassesPresent(
-      DexInspector dexInspector, Class<?>... classesOfInterest) {
+      CodeInspector codeInspector, Class<?>... classesOfInterest) {
     for (Class klass : classesOfInterest) {
-      ClassSubject c = dexInspector.clazz(klass);
+      ClassSubject c = codeInspector.clazz(klass);
       assertThat(c, isPresent());
     }
   }
 
   protected void verifyClassesAbsent(
-      DexInspector dexInspector, Class<?>... classesOfInterest) {
+      CodeInspector codeInspector, Class<?>... classesOfInterest) {
     for (Class klass : classesOfInterest) {
-      ClassSubject c = dexInspector.clazz(klass);
+      ClassSubject c = codeInspector.clazz(klass);
       assertThat(c, not(isPresent()));
     }
   }
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
index d752e39..aed1423 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
@@ -4,16 +4,16 @@
 
 package com.android.tools.r8.shaking.forceproguardcompatibility.defaultctor;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.hasDefaultConstructor;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.hasDefaultConstructor;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.core.IsNot.not;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
 import com.android.tools.r8.smali.ConstantFoldingTest.TriConsumer;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import org.junit.Test;
@@ -103,14 +103,14 @@
   }
 
   private void checkAllClassesPresentWithDefaultConstructor(
-      Class mainClass, List<Class> programClasses, DexInspector inspector) {
+      Class mainClass, List<Class> programClasses, CodeInspector inspector) {
     assert programClasses.contains(mainClass);
     assertEquals(programClasses.size(), inspector.allClasses().size());
     inspector.forAllClasses(this::checkPresentWithDefaultConstructor);
   }
 
   private void checkAllClassesPresentOnlyMainWithDefaultConstructor(
-      Class mainClass, List<Class> programClasses, DexInspector inspector) {
+      Class mainClass, List<Class> programClasses, CodeInspector inspector) {
     assert programClasses.contains(mainClass);
     assertEquals(programClasses.size(), inspector.allClasses().size());
     checkPresentWithDefaultConstructor(inspector.clazz(mainClass));
@@ -121,7 +121,7 @@
   }
 
   private void checkOnlyMainPresent(
-      Class mainClass, List<Class> programClasses, DexInspector inspector) {
+      Class mainClass, List<Class> programClasses, CodeInspector inspector) {
     assert programClasses.contains(mainClass);
     assertEquals(1, inspector.allClasses().size());
     inspector.forAllClasses(this::checkPresentWithDefaultConstructor);
@@ -129,9 +129,9 @@
 
   private void runTest(
       Class mainClass, List<Class> programClasses, String proguardConfiguration,
-      TriConsumer<Class, List<Class>, DexInspector> r8Checker,
-      TriConsumer<Class, List<Class>, DexInspector> proguardChecker) throws Exception {
-    DexInspector inspector = runR8Compat(programClasses, proguardConfiguration);
+      TriConsumer<Class, List<Class>, CodeInspector> r8Checker,
+      TriConsumer<Class, List<Class>, CodeInspector> proguardChecker) throws Exception {
+    CodeInspector inspector = runR8Compat(programClasses, proguardConfiguration);
     r8Checker.accept(mainClass, programClasses, inspector);
 
     if (isRunProguard()) {
@@ -144,7 +144,7 @@
 
   private void runTest(
       Class mainClass, List<Class> programClasses, String proguardConfiguration,
-      TriConsumer<Class, List<Class>, DexInspector> checker) throws Exception {
+      TriConsumer<Class, List<Class>, CodeInspector> checker) throws Exception {
     runTest(mainClass, programClasses, proguardConfiguration, checker, checker);
   }
 
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java
index e64983d..513a01a 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAccessModifierTest.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.shaking.ifrule;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
@@ -11,9 +11,9 @@
 
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import java.util.List;
@@ -59,8 +59,8 @@
         "  public <methods>;",
         "}"
     );
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    ClassSubject classSubject = dexInspector.clazz(ClassForIf.class);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    ClassSubject classSubject = codeInspector.clazz(ClassForIf.class);
     assertThat(classSubject, isPresent());
     MethodSubject methodSubject = classSubject.method(publicMethod);
     assertThat(methodSubject, not(isPresent()));
@@ -68,7 +68,7 @@
     assertThat(methodSubject, isPresent());
     assertTrue(methodSubject.getMethod().accessFlags.isPublic());
 
-    classSubject = dexInspector.clazz(ClassForSubsequent.class);
+    classSubject = codeInspector.clazz(ClassForSubsequent.class);
     if (isR8(shrinker)) {
       // TODO(b/72109068): ClassForIf#nonPublicMethod becomes public, and -if rule is not applied
       // at the 2nd tree shaking.
@@ -98,8 +98,8 @@
         "  !public <methods>;",
         "}"
     );
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    ClassSubject classSubject = dexInspector.clazz(ClassForIf.class);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    ClassSubject classSubject = codeInspector.clazz(ClassForIf.class);
     assertThat(classSubject, isPresent());
     MethodSubject methodSubject = classSubject.method(publicMethod);
     assertThat(methodSubject, not(isPresent()));
@@ -107,7 +107,7 @@
     assertThat(methodSubject, isPresent());
     assertTrue(methodSubject.getMethod().accessFlags.isPublic());
 
-    classSubject = dexInspector.clazz(ClassForSubsequent.class);
+    classSubject = codeInspector.clazz(ClassForSubsequent.class);
     if (isR8(shrinker)) {
       // TODO(b/72109068): ClassForIf#nonPublicMethod becomes public, and -if rule is not applied
       // at the 2nd tree shaking.
@@ -138,15 +138,15 @@
         "  public <methods>;",
         "}"
     );
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    ClassSubject classSubject = dexInspector.clazz(ClassForIf.class);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    ClassSubject classSubject = codeInspector.clazz(ClassForIf.class);
     assertThat(classSubject, isPresent());
     MethodSubject methodSubject = classSubject.method(publicMethod);
     assertThat(methodSubject, isPresent());
     methodSubject = classSubject.method(nonPublicMethod);
     assertThat(methodSubject, not(isPresent()));
 
-    classSubject = dexInspector.clazz(ClassForSubsequent.class);
+    classSubject = codeInspector.clazz(ClassForSubsequent.class);
     assertThat(classSubject, isPresent());
     methodSubject = classSubject.method(publicMethod);
     assertThat(methodSubject, isPresent());
@@ -170,15 +170,15 @@
         "  !public <methods>;",
         "}"
     );
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    ClassSubject classSubject = dexInspector.clazz(ClassForIf.class);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    ClassSubject classSubject = codeInspector.clazz(ClassForIf.class);
     assertThat(classSubject, isPresent());
     MethodSubject methodSubject = classSubject.method(publicMethod);
     assertThat(methodSubject, isPresent());
     methodSubject = classSubject.method(nonPublicMethod);
     assertThat(methodSubject, not(isPresent()));
 
-    classSubject = dexInspector.clazz(ClassForSubsequent.class);
+    classSubject = codeInspector.clazz(ClassForSubsequent.class);
     assertThat(classSubject, isPresent());
     methodSubject = classSubject.method(publicMethod);
     assertThat(methodSubject, not(isPresent()));
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java
index ac92146..146c3cd 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnAnnotationTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.shaking.ifrule;
 
 import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import java.util.List;
@@ -50,10 +50,10 @@
         "-keep class **.UnusedAnnotation*"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    verifyClassesAbsent(dexInspector,
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    verifyClassesAbsent(codeInspector,
         UnusedAnnotation.class, UnusedAnnotationDependent.class);
-    verifyClassesPresent(dexInspector,
+    verifyClassesPresent(codeInspector,
         UsedAnnotation.class, UsedAnnotationDependent.class);
   }
 
@@ -76,10 +76,10 @@
         "-keep class <1>.Unused<2>*"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    verifyClassesAbsent(dexInspector,
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    verifyClassesAbsent(codeInspector,
         UnusedAnnotation.class, UnusedAnnotationDependent.class);
-    verifyClassesPresent(dexInspector,
+    verifyClassesPresent(codeInspector,
         UsedAnnotation.class, UsedAnnotationDependent.class);
   }
 
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java
index 1f5ba35..167c2f4 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnClassTest.java
@@ -3,18 +3,18 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.shaking.ifrule;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isNotRenamed;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -60,19 +60,19 @@
   }
 
   @Override
-  protected DexInspector runR8(
+  protected CodeInspector runR8(
       List<Class> programClasses, String proguardConfig) throws Exception {
     return super.runR8(programClasses, adaptConfiguration(proguardConfig));
   }
 
   @Override
-  protected DexInspector runProguard5(
+  protected CodeInspector runProguard5(
       List<Class> programClasses, String proguardConfig) throws Exception {
     return super.runProguard5(programClasses, adaptConfiguration(proguardConfig));
   }
 
   @Override
-  protected DexInspector runProguard6(
+  protected CodeInspector runProguard6(
       List<Class> programClasses, String proguardConfig) throws Exception {
     return super.runProguard6(programClasses, adaptConfiguration(proguardConfig));
   }
@@ -86,17 +86,17 @@
         "-keep,allowobfuscation class **.Dependent"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
     if (!keepPrecondition) {
       // TODO(b/73708139): Proguard6 kept Dependent (w/o any members), which is not necessary.
       if (shrinker == Shrinker.PROGUARD6) {
         return;
       }
-      assertEquals(1, dexInspector.allClasses().size());
+      assertEquals(1, codeInspector.allClasses().size());
       return;
     }
 
-    ClassSubject clazz = dexInspector.clazz(DependentUser.class);
+    ClassSubject clazz = codeInspector.clazz(DependentUser.class);
     assertThat(clazz, isRenamed());
     // Members of DependentUser are not used anywhere.
     MethodSubject m = clazz.method("void", "callFoo", ImmutableList.of());
@@ -105,7 +105,7 @@
     assertThat(f, not(isPresent()));
 
     // Although DependentUser#callFoo is shrinked, Dependent is kept via -if.
-    clazz = dexInspector.clazz(Dependent.class);
+    clazz = codeInspector.clazz(Dependent.class);
     assertThat(clazz, isRenamed());
     // But, its members are gone.
     m = clazz.method("java.lang.String", "foo", ImmutableList.of());
@@ -123,17 +123,17 @@
         "-keep,allowobfuscation class <1>.<2>"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
     if (!keepPrecondition) {
       // TODO(b/73708139): Proguard6 kept Dependent (w/o any members), which is not necessary.
       if (shrinker == Shrinker.PROGUARD6) {
         return;
       }
-      assertEquals(1, dexInspector.allClasses().size());
+      assertEquals(1, codeInspector.allClasses().size());
       return;
     }
 
-    ClassSubject clazz = dexInspector.clazz(DependentUser.class);
+    ClassSubject clazz = codeInspector.clazz(DependentUser.class);
     assertThat(clazz, isRenamed());
     // Members of DependentUser are not used anywhere.
     MethodSubject m = clazz.method("void", "callFoo", ImmutableList.of());
@@ -142,7 +142,7 @@
     assertThat(f, not(isPresent()));
 
     // Although DependentUser#callFoo is shrinked, Dependent is kept via -if.
-    clazz = dexInspector.clazz(Dependent.class);
+    clazz = codeInspector.clazz(Dependent.class);
     assertThat(clazz, isRenamed());
     // But, its members are gone.
     m = clazz.method("java.lang.String", "foo", ImmutableList.of());
@@ -160,13 +160,13 @@
         "}"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
     if (!keepPrecondition) {
-      assertEquals(1, dexInspector.allClasses().size());
+      assertEquals(1, codeInspector.allClasses().size());
       return;
     }
 
-    ClassSubject clazz = dexInspector.clazz(DependentUser.class);
+    ClassSubject clazz = codeInspector.clazz(DependentUser.class);
     assertThat(clazz, isRenamed());
     MethodSubject m = clazz.method("void", "callFoo", ImmutableList.of());
     assertThat(m, isRenamed());
@@ -174,7 +174,7 @@
     assertThat(f, not(isPresent()));
 
     // Dependent is kept due to DependentUser#callFoo, but renamed.
-    clazz = dexInspector.clazz(Dependent.class);
+    clazz = codeInspector.clazz(Dependent.class);
     assertThat(clazz, isRenamed());
     m = clazz.method("java.lang.String", "foo", ImmutableList.of());
     assertThat(m, isRenamed());
@@ -196,17 +196,17 @@
         "-keep,allowobfuscation class **.*User"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
     if (!keepPrecondition) {
       // TODO(b/73708139): Proguard6 kept DependentUser (w/o any members), which is not necessary.
       if (shrinker == Shrinker.PROGUARD6) {
         return;
       }
-      assertEquals(1, dexInspector.allClasses().size());
+      assertEquals(1, codeInspector.allClasses().size());
       return;
     }
 
-    ClassSubject clazz = dexInspector.clazz(DependentUser.class);
+    ClassSubject clazz = codeInspector.clazz(DependentUser.class);
     assertThat(clazz, isRenamed());
     MethodSubject m = clazz.method("void", "callFoo", ImmutableList.of());
     assertThat(m, isRenamed());
@@ -214,7 +214,7 @@
     assertThat(f, not(isPresent()));
 
     // Dependent is kept due to DependentUser#callFoo, but renamed.
-    clazz = dexInspector.clazz(Dependent.class);
+    clazz = codeInspector.clazz(Dependent.class);
     assertThat(clazz, isRenamed());
     m = clazz.method("java.lang.String", "foo", ImmutableList.of());
     assertThat(m, isRenamed());
@@ -236,17 +236,17 @@
         "-keep,allowobfuscation class <1>.<2>User"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
     if (!keepPrecondition) {
       // TODO(b/73708139): Proguard6 kept DependentUser (w/o any members), which is not necessary.
       if (shrinker == Shrinker.PROGUARD6) {
         return;
       }
-      assertEquals(1, dexInspector.allClasses().size());
+      assertEquals(1, codeInspector.allClasses().size());
       return;
     }
 
-    ClassSubject clazz = dexInspector.clazz(DependentUser.class);
+    ClassSubject clazz = codeInspector.clazz(DependentUser.class);
     assertThat(clazz, isRenamed());
     MethodSubject m = clazz.method("void", "callFoo", ImmutableList.of());
     assertThat(m, isRenamed());
@@ -254,7 +254,7 @@
     assertThat(f, not(isPresent()));
 
     // Dependent is kept due to DependentUser#callFoo, but renamed.
-    clazz = dexInspector.clazz(Dependent.class);
+    clazz = codeInspector.clazz(Dependent.class);
     assertThat(clazz, isRenamed());
     m = clazz.method("java.lang.String", "foo", ImmutableList.of());
     assertThat(m, isRenamed());
@@ -274,9 +274,9 @@
         "-keepnames class **.Dependent"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
 
-    ClassSubject clazz = dexInspector.clazz(Dependent.class);
+    ClassSubject clazz = codeInspector.clazz(Dependent.class);
     // Only class name is not renamed, if triggered.
     assertThat(clazz, keepPrecondition ? isNotRenamed() : isRenamed());
     MethodSubject m = clazz.method("java.lang.String", "foo", ImmutableList.of());
@@ -299,9 +299,9 @@
         "}"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
 
-    ClassSubject clazz = dexInspector.clazz(Dependent.class);
+    ClassSubject clazz = codeInspector.clazz(Dependent.class);
     // Class name is not renamed, if triggered.
     assertThat(clazz, keepPrecondition ? isNotRenamed() : isRenamed());
     MethodSubject m = clazz.method("java.lang.String", "foo", ImmutableList.of());
@@ -325,9 +325,9 @@
         "}"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
 
-    ClassSubject clazz = dexInspector.clazz(Dependent.class);
+    ClassSubject clazz = codeInspector.clazz(Dependent.class);
     assertThat(clazz, isRenamed());
     MethodSubject m = clazz.method("java.lang.String", "foo", ImmutableList.of());
     // Only method name is not renamed, if triggered.
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java
index 0292344..d199cd4 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnFieldTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.shaking.ifrule;
 
 import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -42,13 +42,13 @@
   }
 
   @Override
-  protected DexInspector runR8(
+  protected CodeInspector runR8(
       List<Class> programClasses, String proguardConfig) throws Exception {
     return super.runR8(programClasses, adaptConfiguration(proguardConfig));
   }
 
   @Override
-  protected DexInspector runProguard6(
+  protected CodeInspector runProguard6(
       List<Class> programClasses, String proguardConfig) throws Exception {
     return super.runProguard6(programClasses, adaptConfiguration(proguardConfig));
   }
@@ -77,10 +77,10 @@
         "-keep class **.D"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    verifyClassesAbsent(dexInspector,
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    verifyClassesAbsent(codeInspector,
         R1.class, R2.class, D.class, D2.class);
-    verifyClassesPresent(dexInspector,
+    verifyClassesPresent(codeInspector,
         R.class, D1.class);
   }
 
@@ -96,10 +96,10 @@
         "-keep class **.D<2>"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    verifyClassesAbsent(dexInspector,
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    verifyClassesAbsent(codeInspector,
         R1.class, R2.class, D.class, D2.class);
-    verifyClassesPresent(dexInspector,
+    verifyClassesPresent(codeInspector,
         R.class, D1.class);
   }
 
@@ -119,10 +119,10 @@
         "-keep class **.D2"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    verifyClassesAbsent(dexInspector,
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    verifyClassesAbsent(codeInspector,
         R.class, D.class, R1.class, D1.class);
-    verifyClassesPresent(dexInspector,
+    verifyClassesPresent(codeInspector,
         R2.class, D2.class);
   }
 
@@ -138,10 +138,10 @@
         "-keep class **.D<2>"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    verifyClassesAbsent(dexInspector,
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    verifyClassesAbsent(codeInspector,
         R.class, D.class, R1.class, D1.class);
-    verifyClassesPresent(dexInspector,
+    verifyClassesPresent(codeInspector,
         R2.class, D2.class);
   }
 
@@ -158,10 +158,10 @@
         "-keep class **$*D"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    verifyClassesAbsent(dexInspector,
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    verifyClassesAbsent(codeInspector,
         R.class, D.class, R1.class, D1.class, R2.class, D2.class);
-    verifyClassesPresent(dexInspector,
+    verifyClassesPresent(codeInspector,
         MainWithInner.InnerR.class, MainWithInner.InnerD.class);
   }
 
@@ -178,10 +178,10 @@
         "-keep class <1>$<2>D"
     );
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    verifyClassesAbsent(dexInspector,
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    verifyClassesAbsent(codeInspector,
         R.class, D.class, R1.class, D1.class, R2.class, D2.class);
-    verifyClassesPresent(dexInspector,
+    verifyClassesPresent(codeInspector,
         MainWithInner.InnerR.class, MainWithInner.InnerD.class);
   }
 
@@ -202,9 +202,9 @@
             "}",
             "-keep class **.D2");
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    verifyClassesAbsent(dexInspector, D2.class);
-    verifyClassesPresent(dexInspector,
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    verifyClassesAbsent(codeInspector, D2.class);
+    verifyClassesPresent(codeInspector,
         I.class, Impl.class, D1.class);
   }
 
@@ -225,9 +225,9 @@
             "}",
             "-keep class <2>.D2");
 
-    DexInspector dexInspector = runShrinker(shrinker, CLASSES, config);
-    verifyClassesAbsent(dexInspector, D2.class);
-    verifyClassesPresent(dexInspector,
+    CodeInspector codeInspector = runShrinker(shrinker, CLASSES, config);
+    verifyClassesAbsent(codeInspector, D2.class);
+    verifyClassesPresent(codeInspector,
         I.class, Impl.class, D1.class);
   }
 
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/inlining/IfRuleWithInlining.java b/src/test/java/com/android/tools/r8/shaking/ifrule/inlining/IfRuleWithInlining.java
index cd2ce6a..7391986 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/inlining/IfRuleWithInlining.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/inlining/IfRuleWithInlining.java
@@ -4,15 +4,15 @@
 
 package com.android.tools.r8.shaking.ifrule.inlining;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import com.android.tools.r8.ToolHelper.ProcessResult;
 import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import java.util.List;
@@ -65,7 +65,7 @@
   }
 
   private void check(AndroidApp app) throws Exception {
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazzA = inspector.clazz(A.class);
     assertThat(clazzA, isPresent());
     // A.a might be inlined.
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/verticalclassmerging/IfRuleWithVerticalClassMerging.java b/src/test/java/com/android/tools/r8/shaking/ifrule/verticalclassmerging/IfRuleWithVerticalClassMerging.java
index aed9596..cc574f3 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/verticalclassmerging/IfRuleWithVerticalClassMerging.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/verticalclassmerging/IfRuleWithVerticalClassMerging.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.shaking.ifrule.verticalclassmerging;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
@@ -12,8 +12,8 @@
 import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import java.util.List;
@@ -90,7 +90,7 @@
   }
 
   private void check(AndroidApp app) throws Exception {
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     ClassSubject clazzA = inspector.clazz(A.class);
     assertEquals(!enableClassMerging, clazzA.isPresent());
     ClassSubject clazzB = inspector.clazz(B.class);
diff --git a/src/test/java/com/android/tools/r8/shaking/includedescriptorclasses/IncludeDescriptorClassesTest.java b/src/test/java/com/android/tools/r8/shaking/includedescriptorclasses/IncludeDescriptorClassesTest.java
index c841996..bc94fa6 100644
--- a/src/test/java/com/android/tools/r8/shaking/includedescriptorclasses/IncludeDescriptorClassesTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/includedescriptorclasses/IncludeDescriptorClassesTest.java
@@ -9,7 +9,7 @@
 
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.ToolHelper;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import java.util.ArrayList;
@@ -18,10 +18,10 @@
 
 public class IncludeDescriptorClassesTest extends TestBase {
   private class Result {
-    final DexInspector inspector;
-    final DexInspector proguardedInspector;
+    final CodeInspector inspector;
+    final CodeInspector proguardedInspector;
 
-    Result(DexInspector inspector, DexInspector proguardedInspector) {
+    Result(CodeInspector inspector, CodeInspector proguardedInspector) {
       this.inspector = inspector;
       this.proguardedInspector = proguardedInspector;
     }
@@ -62,15 +62,15 @@
     List<Class> classes = new ArrayList<>(applicationClasses);
     classes.add(mainClass);
 
-    DexInspector inspector = new DexInspector(compileWithR8(classes, proguardConfig));
+    CodeInspector inspector = new CodeInspector(compileWithR8(classes, proguardConfig));
 
-    DexInspector proguardedInspector = null;
+    CodeInspector proguardedInspector = null;
     // Actually running Proguard should only be during development.
     if (isRunProguard()) {
       Path proguardedJar = temp.newFolder().toPath().resolve("proguarded.jar");
       Path proguardedMap = temp.newFolder().toPath().resolve("proguarded.map");
       ToolHelper.runProguard(jarTestClasses(classes), proguardedJar, proguardConfig, proguardedMap);
-      proguardedInspector = new DexInspector(readJar(proguardedJar), proguardedMap);
+      proguardedInspector = new CodeInspector(readJar(proguardedJar), proguardedMap);
     }
 
     return new Result(inspector, proguardedInspector);
diff --git a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java
index b1ae8bb..97cad3c 100644
--- a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersTest.java
@@ -4,24 +4,24 @@
 
 package com.android.tools.r8.shaking.keepclassmembers;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isAbstract;
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isAbstract;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.core.IsNot.not;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
 import com.android.tools.r8.shaking.forceproguardcompatibility.ProguardCompatabilityTestBase;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.FieldSubject;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FieldSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import org.junit.Test;
 
 public class KeepClassMembersTest extends ProguardCompatabilityTestBase {
 
-  private void check(DexInspector inspector, Class mainClass, Class<?> staticClass,
+  private void check(CodeInspector inspector, Class mainClass, Class<?> staticClass,
       boolean forceProguardCompatibility, boolean fromProguard) {
     assertTrue(inspector.clazz(mainClass).isPresent());
     ClassSubject staticClassSubject = inspector.clazz(staticClass);
@@ -70,8 +70,8 @@
         "}",
         "-dontoptimize", "-dontobfuscate"
     ));
-    DexInspector inspector;
-      inspector = new DexInspector(
+    CodeInspector inspector;
+      inspector = new CodeInspector(
           compileWithR8(ImmutableList.of(mainClass, staticClass), proguardConfig,
               options -> options.forceProguardCompatibility = forceProguardCompatibility));
     check(inspector, mainClass, staticClass, forceProguardCompatibility, false);
diff --git a/src/test/java/com/android/tools/r8/shaking/proxy/ProxiesTest.java b/src/test/java/com/android/tools/r8/shaking/proxy/ProxiesTest.java
index 8c71ff7..8d38aee 100644
--- a/src/test/java/com/android/tools/r8/shaking/proxy/ProxiesTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/proxy/ProxiesTest.java
@@ -23,14 +23,14 @@
 import com.android.tools.r8.shaking.proxy.testclasses.SubInterface;
 import com.android.tools.r8.shaking.proxy.testclasses.TestClass;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import org.junit.Test;
 
 public class ProxiesTest extends TestBase {
 
-  private void runTest(List<String> additionalKeepRules, Consumer<DexInspector> inspection,
+  private void runTest(List<String> additionalKeepRules, Consumer<CodeInspector> inspection,
       String expectedResult)
       throws Exception {
     Class mainClass = Main.class;
@@ -51,18 +51,18 @@
     builder.addProguardConfiguration(additionalKeepRules, Origin.unknown());
     builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
     AndroidApp app = ToolHelper.runR8(builder.build(), o -> o.enableDevirtualization = false);
-    inspection.accept(new DexInspector(app));
+    inspection.accept(new CodeInspector(app));
     assertEquals(expectedResult, runOnArt(app, mainClass));
   }
 
-  private int countInstructionInX(DexInspector inspector, Class<? extends Instruction> invoke) {
+  private int countInstructionInX(CodeInspector inspector, Class<? extends Instruction> invoke) {
     MethodSignature signatureForX =
         new MethodSignature("x", "void", ImmutableList.of(BaseInterface.class.getCanonicalName()));
     DexCode x = inspector.clazz(Main.class).method(signatureForX).getMethod().getCode().asDexCode();
     return (int) filterInstructionKind(x, invoke).count();
   }
 
-  private int countInstructionInY(DexInspector inspector, Class<? extends Instruction> invoke) {
+  private int countInstructionInY(CodeInspector inspector, Class<? extends Instruction> invoke) {
     MethodSignature signatureForY =
         new MethodSignature("y", "void", ImmutableList.of(SubInterface.class.getCanonicalName()));
     DexCode y = inspector.clazz(Main.class).method(signatureForY).getMethod().getCode().asDexCode();
@@ -71,7 +71,7 @@
         .count();
   }
 
-  private int countInstructionInZ(DexInspector inspector, Class<? extends Instruction> invoke) {
+  private int countInstructionInZ(CodeInspector inspector, Class<? extends Instruction> invoke) {
     MethodSignature signatureForZ =
         new MethodSignature("z", "void", ImmutableList.of(TestClass.class.getCanonicalName()));
     DexCode z = inspector.clazz(Main.class).method(signatureForZ).getMethod().getCode().asDexCode();
@@ -81,7 +81,7 @@
   }
 
   private int countInstructionInZSubClass(
-      DexInspector inspector, Class<? extends Instruction> invoke) {
+      CodeInspector inspector, Class<? extends Instruction> invoke) {
     MethodSignature signatureForZ =
         new MethodSignature("z", "void", ImmutableList.of(SubClass.class.getCanonicalName()));
     DexCode z = inspector.clazz(Main.class).method(signatureForZ).getMethod().getCode().asDexCode();
@@ -90,7 +90,7 @@
         .count();
   }
 
-  private void noInterfaceKept(DexInspector inspector) {
+  private void noInterfaceKept(CodeInspector inspector) {
     // Indirectly assert that method is inlined into x, y and z.
     assertEquals(1, countInstructionInX(inspector, InvokeInterface.class));
     assertEquals(1, countInstructionInY(inspector, InvokeInterface.class));
@@ -104,7 +104,7 @@
         "TestClass 1\nTestClass 1\nTestClass 1\nProxy\nEXCEPTION\n");
   }
 
-  private void baseInterfaceKept(DexInspector inspector) {
+  private void baseInterfaceKept(CodeInspector inspector) {
     // Indirectly assert that method is not inlined into x.
     assertEquals(3, countInstructionInX(inspector, InvokeInterface.class));
     // Indirectly assert that method is inlined into y and z.
@@ -124,7 +124,7 @@
         "TestClass 2\nTestClass 2\nTestClass 2\nProxy\nEXCEPTION\n");
   }
 
-  private void subInterfaceKept(DexInspector inspector) {
+  private void subInterfaceKept(CodeInspector inspector) {
     // Indirectly assert that method is not inlined into x or y.
     assertEquals(3, countInstructionInX(inspector, InvokeInterface.class));
     assertEquals(3, countInstructionInY(inspector, InvokeInterface.class));
@@ -146,7 +146,7 @@
         "TestClass 4\nTestClass 4\nTestClass 4\nSUCCESS\n");
   }
 
-  private void classKept(DexInspector inspector) {
+  private void classKept(CodeInspector inspector) {
     // Indirectly assert that method is not inlined into x, y or z.
     assertEquals(3, countInstructionInX(inspector, InvokeInterface.class));
     assertEquals(3, countInstructionInY(inspector, InvokeInterface.class));
diff --git a/src/test/java/com/android/tools/r8/shaking/testrules/ForceInlineTest.java b/src/test/java/com/android/tools/r8/shaking/testrules/ForceInlineTest.java
index 365d039..147b1b4 100644
--- a/src/test/java/com/android/tools/r8/shaking/testrules/ForceInlineTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/testrules/ForceInlineTest.java
@@ -8,7 +8,7 @@
 
 package com.android.tools.r8.shaking.testrules;
 
-import static com.android.tools.r8.utils.dexinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.fail;
@@ -17,25 +17,25 @@
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.origin.Origin;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.List;
 import org.junit.Test;
 
 public class ForceInlineTest extends TestBase {
 
-  private DexInspector runTest(List<String> proguardConfiguration) throws Exception {
+  private CodeInspector runTest(List<String> proguardConfiguration) throws Exception {
     R8Command.Builder builder =
         ToolHelper.prepareR8CommandBuilder(readClasses(Main.class, A.class, B.class, C.class));
     ToolHelper.allowTestProguardOptions(builder);
     builder.addProguardConfiguration(proguardConfiguration, Origin.unknown());
-    return new DexInspector(ToolHelper.runR8(builder.build()));
+    return new CodeInspector(ToolHelper.runR8(builder.build()));
   }
 
   @Test
   public void testDefaultInlining() throws Exception {
-    DexInspector inspector = runTest(ImmutableList.of(
+    CodeInspector inspector = runTest(ImmutableList.of(
         "-keep class **.Main { *; }",
         "-dontobfuscate"
     ));
@@ -61,7 +61,7 @@
 
   @Test
   public void testNeverInline() throws Exception {
-    DexInspector inspector = runTest(ImmutableList.of(
+    CodeInspector inspector = runTest(ImmutableList.of(
         "-neverinline class **.A { method(); }",
         "-neverinline class **.B { method(); }",
         "-keep class **.Main { *; }",
@@ -86,7 +86,7 @@
 
   @Test
   public void testForceInline() throws Exception {
-    DexInspector inspector = runTest(ImmutableList.of(
+    CodeInspector inspector = runTest(ImmutableList.of(
         "-forceinline class **.A { int m(int, int); }",
         "-forceinline class **.B { int m(int, int); }",
         "-keep class **.Main { *; }",
@@ -108,7 +108,7 @@
   @Test
   public void testForceInlineFails() throws Exception {
     try {
-      DexInspector inspector = runTest(ImmutableList.of(
+      CodeInspector inspector = runTest(ImmutableList.of(
           "-forceinline class **.A { int x(); }",
           "-keep class **.Main { *; }",
           "-dontobfuscate"
diff --git a/src/test/java/com/android/tools/r8/smali/ConstantFoldingTest.java b/src/test/java/com/android/tools/r8/smali/ConstantFoldingTest.java
index 5f9a6fd..ce1fd33 100644
--- a/src/test/java/com/android/tools/r8/smali/ConstantFoldingTest.java
+++ b/src/test/java/com/android/tools/r8/smali/ConstantFoldingTest.java
@@ -20,8 +20,8 @@
 import com.android.tools.r8.ir.code.SingleConstant;
 import com.android.tools.r8.ir.code.WideConstant;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -54,7 +54,7 @@
     public void run() throws Exception {
       AndroidApp processdApplication = processApplication(buildApplication(builder));
       assertEquals(1, getNumberOfProgramClasses(processdApplication));
-      DexInspector inspector = new DexInspector(processdApplication);
+      CodeInspector inspector = new CodeInspector(processdApplication);
       ClassSubject clazz = inspector.clazz(DEFAULT_CLASS_NAME);
       clazz.forAllMethods(method -> {
         int index = Integer.parseInt(method.getMethod().method.name.toString().substring(1));
diff --git a/src/test/java/com/android/tools/r8/smali/OutlineTest.java b/src/test/java/com/android/tools/r8/smali/OutlineTest.java
index 41e894e..1479add 100644
--- a/src/test/java/com/android/tools/r8/smali/OutlineTest.java
+++ b/src/test/java/com/android/tools/r8/smali/OutlineTest.java
@@ -34,9 +34,9 @@
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.InternalOptions.OutlineOptions;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -59,7 +59,7 @@
   }
 
   DexEncodedMethod getInvokedMethod(DexApplication application, InvokeStatic invoke) {
-    DexInspector inspector = new DexInspector(application);
+    CodeInspector inspector = new CodeInspector(application);
     ClassSubject clazz = inspector.clazz(invoke.getMethod().holder.toSourceString());
     assertTrue(clazz.isPresent());
     DexMethod invokedMethod = invoke.getMethod();
@@ -843,7 +843,7 @@
     assertEquals(2, getNumberOfProgramClasses(processedApplication));
 
     // Check that three outlining methods was created.
-    DexInspector inspector = new DexInspector(processedApplication);
+    CodeInspector inspector = new CodeInspector(processedApplication);
     ClassSubject clazz = inspector.clazz(OutlineOptions.CLASS_NAME);
     assertTrue(clazz.isPresent());
     assertEquals(3, clazz.getDexClass().directMethods().length);
diff --git a/src/test/java/com/android/tools/r8/smali/RemoveWriteOfUnusedFieldsTest.java b/src/test/java/com/android/tools/r8/smali/RemoveWriteOfUnusedFieldsTest.java
index c8713e3..9c9991e 100644
--- a/src/test/java/com/android/tools/r8/smali/RemoveWriteOfUnusedFieldsTest.java
+++ b/src/test/java/com/android/tools/r8/smali/RemoveWriteOfUnusedFieldsTest.java
@@ -12,8 +12,8 @@
 import com.android.tools.r8.graph.DexCode;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
 import org.junit.Test;
@@ -80,7 +80,7 @@
             keepMainProguardConfiguration("Test"),
             options -> options.enableInlining = false);
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     MethodSubject method = inspector.clazz("Test").method("void", "test", ImmutableList.of());
     DexCode code = method.getMethod().getCode().asDexCode();
     assertTrue(code.isEmptyVoidMethod());
@@ -153,7 +153,7 @@
             keepMainProguardConfiguration("Test"),
             options -> options.enableInlining = false);
 
-    DexInspector inspector = new DexInspector(app);
+    CodeInspector inspector = new CodeInspector(app);
     MethodSubject method = inspector.clazz("Test").method("void", "test", ImmutableList.of());
     DexCode code = method.getMethod().getCode().asDexCode();
     assertTrue(code.isEmptyVoidMethod());
diff --git a/src/test/java/com/android/tools/r8/smali/SmaliBuildTest.java b/src/test/java/com/android/tools/r8/smali/SmaliBuildTest.java
index 7287cc3..8d780b4 100644
--- a/src/test/java/com/android/tools/r8/smali/SmaliBuildTest.java
+++ b/src/test/java/com/android/tools/r8/smali/SmaliBuildTest.java
@@ -9,8 +9,8 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.origin.EmbeddedOrigin;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.io.IOException;
 import java.util.concurrent.ExecutionException;
 import org.junit.Test;
@@ -19,7 +19,7 @@
 
   private void checkJavaLangString(AndroidApp application, boolean present) {
     try {
-      DexInspector inspector = new DexInspector(application);
+      CodeInspector inspector = new CodeInspector(application);
       ClassSubject clazz = inspector.clazz("java.lang.String");
       assertEquals(present, clazz.isPresent());
     } catch (IOException | ExecutionException e) {
diff --git a/src/test/java/com/android/tools/r8/smali/SmaliTestBase.java b/src/test/java/com/android/tools/r8/smali/SmaliTestBase.java
index 7aabadb..b12c0b9 100644
--- a/src/test/java/com/android/tools/r8/smali/SmaliTestBase.java
+++ b/src/test/java/com/android/tools/r8/smali/SmaliTestBase.java
@@ -25,8 +25,8 @@
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.Timing;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.util.Collection;
@@ -112,7 +112,7 @@
   }
 
   protected DexClass getClass(DexApplication application, String className) {
-    DexInspector inspector = new DexInspector(application);
+    CodeInspector inspector = new CodeInspector(application);
     ClassSubject clazz = inspector.clazz(className);
     assertTrue(clazz.isPresent());
     return clazz.getDexClass();
@@ -124,7 +124,7 @@
 
   protected DexClass getClass(Path appPath, String className) {
     try {
-      DexInspector inspector = new DexInspector(appPath);
+      CodeInspector inspector = new CodeInspector(appPath);
       ClassSubject clazz = inspector.clazz(className);
       assertTrue(clazz.isPresent());
       return clazz.getDexClass();
@@ -135,14 +135,14 @@
 
   protected DexEncodedMethod getMethod(Path appPath, MethodSignature signature) {
     try {
-      DexInspector inspector = new DexInspector(appPath);
+      CodeInspector inspector = new CodeInspector(appPath);
       return getMethod(inspector, signature);
     } catch (IOException | ExecutionException e) {
       throw new RuntimeException(e);
     }
   }
 
-  protected DexEncodedMethod getMethod(DexInspector inspector, MethodSignature signature) {
+  protected DexEncodedMethod getMethod(CodeInspector inspector, MethodSignature signature) {
     return getMethod(
         inspector, signature.clazz, signature.returnType, signature.name, signature.parameterTypes);
   }
diff --git a/src/test/java/com/android/tools/r8/utils/ArtErrorParser.java b/src/test/java/com/android/tools/r8/utils/ArtErrorParser.java
index 51c6ca5..5f00fc9 100644
--- a/src/test/java/com/android/tools/r8/utils/ArtErrorParser.java
+++ b/src/test/java/com/android/tools/r8/utils/ArtErrorParser.java
@@ -4,9 +4,9 @@
 package com.android.tools.r8.utils;
 
 import com.android.tools.r8.graph.DexEncodedMethod;
-import com.android.tools.r8.utils.dexinspector.ClassSubject;
-import com.android.tools.r8.utils.dexinspector.DexInspector;
-import com.android.tools.r8.utils.dexinspector.MethodSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -72,7 +72,7 @@
   public static abstract class ArtErrorInfo {
     public abstract int consumedLines();
     public abstract String getMessage();
-    public abstract String dump(DexInspector inspector, boolean markLocation);
+    public abstract String dump(CodeInspector inspector, boolean markLocation);
   }
 
   private static class ArtMethodError extends ArtErrorInfo {
@@ -117,7 +117,7 @@
     }
 
     @Override
-    public String dump(DexInspector inspector, boolean markLocation) {
+    public String dump(CodeInspector inspector, boolean markLocation) {
       ClassSubject clazz = inspector.clazz(className);
       MethodSubject method = clazz.method(methodReturn, methodName, methodFormals);
       DexEncodedMethod dex = method.getMethod();
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/AbsentAnnotationSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentAnnotationSubject.java
similarity index 91%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/AbsentAnnotationSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/AbsentAnnotationSubject.java
index e6d9306..a82d9b0 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/AbsentAnnotationSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentAnnotationSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexEncodedAnnotation;
 
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/AbsentClassSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentClassSubject.java
similarity index 97%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/AbsentClassSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/AbsentClassSubject.java
index e2fa906..167bc8d 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/AbsentClassSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentClassSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexClass;
 import java.util.List;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/AbsentFieldSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentFieldSubject.java
similarity index 96%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/AbsentFieldSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/AbsentFieldSubject.java
index f79fc00..d4409d1 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/AbsentFieldSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentFieldSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexEncodedField;
 import com.android.tools.r8.graph.DexValue;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/AbsentMethodSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentMethodSubject.java
similarity index 96%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/AbsentMethodSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/AbsentMethodSubject.java
index 5f10dd7..1396be9 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/AbsentMethodSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/AbsentMethodSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexEncodedMethod;
 import com.android.tools.r8.naming.MemberNaming.Signature;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/AnnotationSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/AnnotationSubject.java
similarity index 88%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/AnnotationSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/AnnotationSubject.java
index 24682be..4bffcca 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/AnnotationSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/AnnotationSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexEncodedAnnotation;
 
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/CfInstructionIterator.java b/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionIterator.java
similarity index 73%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/CfInstructionIterator.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionIterator.java
index d000250..0a3263a 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/CfInstructionIterator.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionIterator.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.cf.code.CfInstruction;
 import com.android.tools.r8.graph.Code;
@@ -10,11 +10,11 @@
 
 class CfInstructionIterator implements InstructionIterator {
 
-  private final DexInspector dexInspector;
+  private final CodeInspector codeInspector;
   private final Iterator<CfInstruction> iterator;
 
-  CfInstructionIterator(DexInspector dexInspector, MethodSubject method) {
-    this.dexInspector = dexInspector;
+  CfInstructionIterator(CodeInspector codeInspector, MethodSubject method) {
+    this.codeInspector = codeInspector;
     assert method.isPresent();
     Code code = method.getMethod().getCode();
     assert code != null && code.isCfCode();
@@ -28,6 +28,6 @@
 
   @Override
   public InstructionSubject next() {
-    return dexInspector.createInstructionSubject(iterator.next());
+    return codeInspector.createInstructionSubject(iterator.next());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/CfInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java
similarity index 98%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/CfInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java
index cfc07f7..fa00432 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/CfInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.cf.code.CfConstNull;
 import com.android.tools.r8.cf.code.CfConstString;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/ClassSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/ClassSubject.java
similarity index 97%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/ClassSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/ClassSubject.java
index afb4928..bbb6213 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/ClassSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/ClassSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexClass;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/DexInspector.java b/src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java
similarity index 92%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/DexInspector.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java
index 2a651e1..ecc78c6 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/DexInspector.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java
@@ -1,7 +1,7 @@
 // Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import static org.junit.Assert.assertTrue;
 
@@ -30,7 +30,7 @@
 import com.android.tools.r8.utils.DescriptorUtils;
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.Timing;
-import com.android.tools.r8.utils.dexinspector.InstructionSubject.JumboStringMode;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject.JumboStringMode;
 import com.google.common.collect.BiMap;
 import com.google.common.collect.ImmutableList;
 import java.io.IOException;
@@ -45,7 +45,7 @@
 import java.util.function.Consumer;
 import java.util.function.Function;
 
-public class DexInspector {
+public class CodeInspector {
 
   private final DexApplication application;
   final DexItemFactory dexItemFactory;
@@ -55,19 +55,19 @@
   public static MethodSignature MAIN =
       new MethodSignature("main", "void", new String[] {"java.lang.String[]"});
 
-  public DexInspector(Path file, String mappingFile) throws IOException, ExecutionException {
+  public CodeInspector(Path file, String mappingFile) throws IOException, ExecutionException {
     this(Collections.singletonList(file), mappingFile);
   }
 
-  public DexInspector(Path file) throws IOException, ExecutionException {
+  public CodeInspector(Path file) throws IOException, ExecutionException {
     this(Collections.singletonList(file), null);
   }
 
-  public DexInspector(List<Path> files) throws IOException, ExecutionException {
+  public CodeInspector(List<Path> files) throws IOException, ExecutionException {
     this(files, null);
   }
 
-  public DexInspector(List<Path> files, String mappingFile) throws IOException, ExecutionException {
+  public CodeInspector(List<Path> files, String mappingFile) throws IOException, ExecutionException {
     if (mappingFile != null) {
       this.mapping = ClassNameMapper.mapperFromFile(Paths.get(mappingFile));
       originalToObfuscatedMapping = this.mapping.getObfuscatedToOriginalMapping().inverse();
@@ -75,23 +75,23 @@
       this.mapping = null;
       originalToObfuscatedMapping = null;
     }
-    Timing timing = new Timing("DexInspector");
+    Timing timing = new Timing("CodeInspector");
     InternalOptions options = new InternalOptions();
     dexItemFactory = options.itemFactory;
     AndroidApp input = AndroidApp.builder().addProgramFiles(files).build();
     application = new ApplicationReader(input, options, timing).read();
   }
 
-  public DexInspector(AndroidApp app) throws IOException, ExecutionException {
+  public CodeInspector(AndroidApp app) throws IOException, ExecutionException {
     this(
-        new ApplicationReader(app, new InternalOptions(), new Timing("DexInspector"))
+        new ApplicationReader(app, new InternalOptions(), new Timing("CodeInspector"))
             .read(app.getProguardMapOutputData()));
   }
 
-  public DexInspector(AndroidApp app, Consumer<InternalOptions> optionsConsumer)
+  public CodeInspector(AndroidApp app, Consumer<InternalOptions> optionsConsumer)
       throws IOException, ExecutionException {
     this(
-        new ApplicationReader(app, runOptionsConsumer(optionsConsumer), new Timing("DexInspector"))
+        new ApplicationReader(app, runOptionsConsumer(optionsConsumer), new Timing("CodeInspector"))
             .read(app.getProguardMapOutputData()));
   }
 
@@ -101,13 +101,13 @@
     return internalOptions;
   }
 
-  public DexInspector(AndroidApp app, Path proguardMap) throws IOException, ExecutionException {
+  public CodeInspector(AndroidApp app, Path proguardMap) throws IOException, ExecutionException {
     this(
-        new ApplicationReader(app, new InternalOptions(), new Timing("DexInspector"))
+        new ApplicationReader(app, new InternalOptions(), new Timing("CodeInspector"))
             .read(StringResource.fromFile(proguardMap)));
   }
 
-  public DexInspector(DexApplication application) {
+  public CodeInspector(DexApplication application) {
     dexItemFactory = application.dexItemFactory;
     this.application = application;
     this.mapping = application.getProguardMap();
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/ConstStringCfInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/ConstStringCfInstructionSubject.java
similarity index 93%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/ConstStringCfInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/ConstStringCfInstructionSubject.java
index 96ece69..da545e4 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/ConstStringCfInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/ConstStringCfInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.cf.code.CfConstString;
 import com.android.tools.r8.cf.code.CfInstruction;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/ConstStringDexInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/ConstStringDexInstructionSubject.java
similarity index 94%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/ConstStringDexInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/ConstStringDexInstructionSubject.java
index c4e7260..cb69144 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/ConstStringDexInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/ConstStringDexInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.code.ConstString;
 import com.android.tools.r8.code.ConstStringJumbo;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/ConstStringInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/ConstStringInstructionSubject.java
similarity index 87%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/ConstStringInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/ConstStringInstructionSubject.java
index db454c2..5914be7 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/ConstStringInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/ConstStringInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexString;
 
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/DexInstructionIterator.java b/src/test/java/com/android/tools/r8/utils/codeinspector/DexInstructionIterator.java
similarity index 74%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/DexInstructionIterator.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/DexInstructionIterator.java
index 9ed4de1..8ae5609 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/DexInstructionIterator.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/DexInstructionIterator.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.Code;
 import com.android.tools.r8.graph.DexCode;
@@ -10,12 +10,12 @@
 
 class DexInstructionIterator implements InstructionIterator {
 
-  private final DexInspector dexInspector;
+  private final CodeInspector codeInspector;
   private final DexCode code;
   private int index;
 
-  DexInstructionIterator(DexInspector dexInspector, MethodSubject method) {
-    this.dexInspector = dexInspector;
+  DexInstructionIterator(CodeInspector codeInspector, MethodSubject method) {
+    this.codeInspector = codeInspector;
     assert method.isPresent();
     Code code = method.getMethod().getCode();
     assert code != null && code.isDexCode();
@@ -33,6 +33,6 @@
     if (index == code.instructions.length) {
       throw new NoSuchElementException();
     }
-    return dexInspector.createInstructionSubject(code.instructions[index++]);
+    return codeInspector.createInstructionSubject(code.instructions[index++]);
   }
 }
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/DexInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/DexInstructionSubject.java
similarity index 98%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/DexInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/DexInstructionSubject.java
index 2e558ae..9c6d21c 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/DexInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/DexInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.code.Const4;
 import com.android.tools.r8.code.ConstString;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/FieldAccessCfInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FieldAccessCfInstructionSubject.java
similarity index 62%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/FieldAccessCfInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/FieldAccessCfInstructionSubject.java
index 66dc877..e9ccfd3 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/FieldAccessCfInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FieldAccessCfInstructionSubject.java
@@ -2,23 +2,23 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.cf.code.CfFieldInstruction;
 import com.android.tools.r8.cf.code.CfInstruction;
 
 public class FieldAccessCfInstructionSubject extends CfInstructionSubject
     implements FieldAccessInstructionSubject {
-  private final DexInspector dexInspector;
+  private final CodeInspector codeInspector;
 
-  public FieldAccessCfInstructionSubject(DexInspector dexInspector, CfInstruction instruction) {
+  public FieldAccessCfInstructionSubject(CodeInspector codeInspector, CfInstruction instruction) {
     super(instruction);
-    this.dexInspector = dexInspector;
+    this.codeInspector = codeInspector;
     assert isFieldAccess();
   }
 
   @Override
   public TypeSubject holder() {
-    return new TypeSubject(dexInspector, ((CfFieldInstruction) instruction).getField().getHolder());
+    return new TypeSubject(codeInspector, ((CfFieldInstruction) instruction).getField().getHolder());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/FieldAccessDexInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FieldAccessDexInstructionSubject.java
similarity index 61%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/FieldAccessDexInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/FieldAccessDexInstructionSubject.java
index 52a51fe..b9e7fd2 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/FieldAccessDexInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FieldAccessDexInstructionSubject.java
@@ -2,23 +2,23 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.code.Instruction;
 
 public class FieldAccessDexInstructionSubject extends DexInstructionSubject
     implements FieldAccessInstructionSubject {
 
-  private final DexInspector dexInspector;
+  private final CodeInspector codeInspector;
 
-  public FieldAccessDexInstructionSubject(DexInspector dexInspector, Instruction instruction) {
+  public FieldAccessDexInstructionSubject(CodeInspector codeInspector, Instruction instruction) {
     super(instruction);
-    this.dexInspector = dexInspector;
+    this.codeInspector = codeInspector;
     assert isFieldAccess();
   }
 
   @Override
   public TypeSubject holder() {
-    return new TypeSubject(dexInspector, instruction.getField().getHolder());
+    return new TypeSubject(codeInspector, instruction.getField().getHolder());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/FieldAccessInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FieldAccessInstructionSubject.java
similarity index 86%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/FieldAccessInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/FieldAccessInstructionSubject.java
index 54b27c7..355f3a4 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/FieldAccessInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FieldAccessInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 public interface FieldAccessInstructionSubject extends InstructionSubject {
   TypeSubject holder();
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/FieldSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FieldSubject.java
similarity index 92%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/FieldSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/FieldSubject.java
index 1e9471b..f9a669a 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/FieldSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FieldSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexEncodedField;
 import com.android.tools.r8.graph.DexValue;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/FilteredInstructionIterator.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FilteredInstructionIterator.java
similarity index 85%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/FilteredInstructionIterator.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/FilteredInstructionIterator.java
index 5f3c078..870953e 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/FilteredInstructionIterator.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FilteredInstructionIterator.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import java.util.Iterator;
 import java.util.NoSuchElementException;
@@ -15,8 +15,8 @@
   private InstructionSubject pendingNext = null;
 
   FilteredInstructionIterator(
-      DexInspector dexInspector, MethodSubject method, Predicate<InstructionSubject> predicate) {
-    this.iterator = dexInspector.createInstructionIterator(method);
+      CodeInspector codeInspector, MethodSubject method, Predicate<InstructionSubject> predicate) {
+    this.iterator = codeInspector.createInstructionIterator(method);
     this.predicate = predicate;
     hasNext();
   }
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/FoundAnnotationSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundAnnotationSubject.java
similarity index 93%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/FoundAnnotationSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/FoundAnnotationSubject.java
index ed85b24..546ef59 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/FoundAnnotationSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundAnnotationSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexAnnotation;
 import com.android.tools.r8.graph.DexEncodedAnnotation;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/FoundClassSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundClassSubject.java
similarity index 79%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/FoundClassSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/FoundClassSubject.java
index 2202f89..9a0661f 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/FoundClassSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundClassSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexAnnotation;
 import com.android.tools.r8.graph.DexClass;
@@ -25,12 +25,12 @@
 
 public class FoundClassSubject extends ClassSubject {
 
-  private final DexInspector dexInspector;
+  private final CodeInspector codeInspector;
   private final DexClass dexClass;
   final ClassNamingForNameMapper naming;
 
-  FoundClassSubject(DexInspector dexInspector, DexClass dexClass, ClassNamingForNameMapper naming) {
-    this.dexInspector = dexInspector;
+  FoundClassSubject(CodeInspector codeInspector, DexClass dexClass, ClassNamingForNameMapper naming) {
+    this.codeInspector = codeInspector;
     this.dexClass = dexClass;
     this.naming = naming;
   }
@@ -42,14 +42,14 @@
 
   @Override
   public void forAllMethods(Consumer<FoundMethodSubject> inspection) {
-    DexInspector.forAll(
+    CodeInspector.forAll(
         dexClass.directMethods(),
-        (encoded, clazz) -> new FoundMethodSubject(dexInspector, encoded, clazz),
+        (encoded, clazz) -> new FoundMethodSubject(codeInspector, encoded, clazz),
         this,
         inspection);
-    DexInspector.forAll(
+    CodeInspector.forAll(
         dexClass.virtualMethods(),
-        (encoded, clazz) -> new FoundMethodSubject(dexInspector, encoded, clazz),
+        (encoded, clazz) -> new FoundMethodSubject(codeInspector, encoded, clazz),
         this,
         inspection);
   }
@@ -59,11 +59,11 @@
     DexType[] parameterTypes = new DexType[parameters.size()];
     for (int i = 0; i < parameters.size(); i++) {
       parameterTypes[i] =
-          dexInspector.toDexType(dexInspector.getObfuscatedTypeName(parameters.get(i)));
+          codeInspector.toDexType(codeInspector.getObfuscatedTypeName(parameters.get(i)));
     }
     DexProto proto =
-        dexInspector.dexItemFactory.createProto(
-            dexInspector.toDexType(dexInspector.getObfuscatedTypeName(returnType)), parameterTypes);
+        codeInspector.dexItemFactory.createProto(
+            codeInspector.toDexType(codeInspector.getObfuscatedTypeName(returnType)), parameterTypes);
     if (naming != null) {
       String[] parameterStrings = new String[parameterTypes.length];
       Signature signature =
@@ -74,15 +74,15 @@
       }
     }
     DexMethod dexMethod =
-        dexInspector.dexItemFactory.createMethod(
-            dexClass.type, proto, dexInspector.dexItemFactory.createString(name));
+        codeInspector.dexItemFactory.createMethod(
+            dexClass.type, proto, codeInspector.dexItemFactory.createString(name));
     DexEncodedMethod encoded = findMethod(dexClass.directMethods(), dexMethod);
     if (encoded == null) {
       encoded = findMethod(dexClass.virtualMethods(), dexMethod);
     }
     return encoded == null
         ? new AbsentMethodSubject()
-        : new FoundMethodSubject(dexInspector, encoded, this);
+        : new FoundMethodSubject(codeInspector, encoded, this);
   }
 
   private DexEncodedMethod findMethod(DexEncodedMethod[] methods, DexMethod dexMethod) {
@@ -96,21 +96,21 @@
 
   @Override
   public void forAllFields(Consumer<FoundFieldSubject> inspection) {
-    DexInspector.forAll(
+    CodeInspector.forAll(
         dexClass.staticFields(),
-        (dexField, clazz) -> new FoundFieldSubject(dexInspector, dexField, clazz),
+        (dexField, clazz) -> new FoundFieldSubject(codeInspector, dexField, clazz),
         this,
         inspection);
-    DexInspector.forAll(
+    CodeInspector.forAll(
         dexClass.instanceFields(),
-        (dexField, clazz) -> new FoundFieldSubject(dexInspector, dexField, clazz),
+        (dexField, clazz) -> new FoundFieldSubject(codeInspector, dexField, clazz),
         this,
         inspection);
   }
 
   @Override
   public FieldSubject field(String type, String name) {
-    String obfuscatedType = dexInspector.getObfuscatedTypeName(type);
+    String obfuscatedType = codeInspector.getObfuscatedTypeName(type);
     MemberNaming fieldNaming = null;
     if (naming != null) {
       fieldNaming = naming.lookupByOriginalSignature(new FieldSignature(name, type));
@@ -118,17 +118,17 @@
     String obfuscatedName = fieldNaming == null ? name : fieldNaming.getRenamedName();
 
     DexField field =
-        dexInspector.dexItemFactory.createField(
+        codeInspector.dexItemFactory.createField(
             dexClass.type,
-            dexInspector.toDexType(obfuscatedType),
-            dexInspector.dexItemFactory.createString(obfuscatedName));
+            codeInspector.toDexType(obfuscatedType),
+            codeInspector.dexItemFactory.createString(obfuscatedName));
     DexEncodedField encoded = findField(dexClass.staticFields(), field);
     if (encoded == null) {
       encoded = findField(dexClass.instanceFields(), field);
     }
     return encoded == null
         ? new AbsentFieldSubject()
-        : new FoundFieldSubject(dexInspector, encoded, this);
+        : new FoundFieldSubject(codeInspector, encoded, this);
   }
 
   @Override
@@ -161,7 +161,7 @@
     assert !name.endsWith("EnclosingClass")
         && !name.endsWith("EnclosingMethod")
         && !name.endsWith("InnerClass");
-    DexAnnotation annotation = dexInspector.findAnnotation(name, dexClass.annotations);
+    DexAnnotation annotation = codeInspector.findAnnotation(name, dexClass.annotations);
     return annotation == null
         ? new AbsentAnnotationSubject()
         : new FoundAnnotationSubject(annotation);
@@ -237,13 +237,13 @@
 
   @Override
   public String getOriginalSignatureAttribute() {
-    return dexInspector.getOriginalSignatureAttribute(
+    return codeInspector.getOriginalSignatureAttribute(
         dexClass.annotations, GenericSignatureParser::parseClassSignature);
   }
 
   @Override
   public String getFinalSignatureAttribute() {
-    return dexInspector.getFinalSignatureAttribute(dexClass.annotations);
+    return codeInspector.getFinalSignatureAttribute(dexClass.annotations);
   }
 
   @Override
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/FoundFieldSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundFieldSubject.java
similarity index 84%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/FoundFieldSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/FoundFieldSubject.java
index 5dfa4f1..ae42b14 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/FoundFieldSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundFieldSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexEncodedField;
 import com.android.tools.r8.graph.DexValue;
@@ -12,13 +12,13 @@
 
 public class FoundFieldSubject extends FieldSubject {
 
-  private final DexInspector dexInspector;
+  private final CodeInspector codeInspector;
   private final FoundClassSubject clazz;
   private final DexEncodedField dexField;
 
   public FoundFieldSubject(
-      DexInspector dexInspector, DexEncodedField dexField, FoundClassSubject clazz) {
-    this.dexInspector = dexInspector;
+      CodeInspector codeInspector, DexEncodedField dexField, FoundClassSubject clazz) {
+    this.codeInspector = codeInspector;
     this.clazz = clazz;
     this.dexField = dexField;
   }
@@ -49,7 +49,7 @@
   }
 
   public TypeSubject type() {
-    return new TypeSubject(dexInspector, dexField.field.type);
+    return new TypeSubject(codeInspector, dexField.field.type);
   }
 
   @Override
@@ -67,7 +67,7 @@
     //
     // whereas the final signature is for X.a is "a a"
     String obfuscatedType = signature.type;
-    String originalType = dexInspector.originalToObfuscatedMapping.inverse().get(obfuscatedType);
+    String originalType = codeInspector.originalToObfuscatedMapping.inverse().get(obfuscatedType);
     String fieldType = originalType != null ? originalType : obfuscatedType;
 
     FieldSignature lookupSignature = new FieldSignature(signature.name, fieldType);
@@ -98,13 +98,13 @@
 
   @Override
   public String getOriginalSignatureAttribute() {
-    return dexInspector.getOriginalSignatureAttribute(
+    return codeInspector.getOriginalSignatureAttribute(
         dexField.annotations, GenericSignatureParser::parseFieldSignature);
   }
 
   @Override
   public String getFinalSignatureAttribute() {
-    return dexInspector.getFinalSignatureAttribute(dexField.annotations);
+    return codeInspector.getFinalSignatureAttribute(dexField.annotations);
   }
 
   @Override
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/FoundMethodSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundMethodSubject.java
similarity index 83%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/FoundMethodSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/FoundMethodSubject.java
index 6eb3858..3fe8186 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/FoundMethodSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundMethodSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexEncodedMethod;
 import com.android.tools.r8.naming.MemberNaming;
@@ -13,13 +13,13 @@
 
 public class FoundMethodSubject extends MethodSubject {
 
-  private final DexInspector dexInspector;
+  private final CodeInspector codeInspector;
   private final FoundClassSubject clazz;
   private final DexEncodedMethod dexMethod;
 
   public FoundMethodSubject(
-      DexInspector dexInspector, DexEncodedMethod encoded, FoundClassSubject clazz) {
-    this.dexInspector = dexInspector;
+      CodeInspector codeInspector, DexEncodedMethod encoded, FoundClassSubject clazz) {
+    this.codeInspector = codeInspector;
     this.clazz = clazz;
     this.dexMethod = encoded;
   }
@@ -91,12 +91,12 @@
     String[] OriginalParameters = new String[signature.parameters.length];
     for (int i = 0; i < OriginalParameters.length; i++) {
       String obfuscated = signature.parameters[i];
-      String original = dexInspector.originalToObfuscatedMapping.inverse().get(obfuscated);
+      String original = codeInspector.originalToObfuscatedMapping.inverse().get(obfuscated);
       OriginalParameters[i] = original != null ? original : obfuscated;
     }
     String obfuscatedReturnType = signature.type;
     String originalReturnType =
-        dexInspector.originalToObfuscatedMapping.inverse().get(obfuscatedReturnType);
+        codeInspector.originalToObfuscatedMapping.inverse().get(obfuscatedReturnType);
     String returnType = originalReturnType != null ? originalReturnType : obfuscatedReturnType;
 
     MethodSignature lookupSignature =
@@ -113,24 +113,24 @@
 
   @Override
   public String getOriginalSignatureAttribute() {
-    return dexInspector.getOriginalSignatureAttribute(
+    return codeInspector.getOriginalSignatureAttribute(
         dexMethod.annotations, GenericSignatureParser::parseMethodSignature);
   }
 
   @Override
   public String getFinalSignatureAttribute() {
-    return dexInspector.getFinalSignatureAttribute(dexMethod.annotations);
+    return codeInspector.getFinalSignatureAttribute(dexMethod.annotations);
   }
 
   @Override
   public Iterator<InstructionSubject> iterateInstructions() {
-    return dexInspector.createInstructionIterator(this);
+    return codeInspector.createInstructionIterator(this);
   }
 
   @Override
   public <T extends InstructionSubject> Iterator<T> iterateInstructions(
       Predicate<InstructionSubject> filter) {
-    return new FilteredInstructionIterator<>(dexInspector, this, filter);
+    return new FilteredInstructionIterator<>(codeInspector, this, filter);
   }
 
   @Override
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/InstructionIterator.java b/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionIterator.java
similarity index 86%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/InstructionIterator.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/InstructionIterator.java
index a777319..4685730 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/InstructionIterator.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionIterator.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import java.util.Iterator;
 
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/InstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java
similarity index 93%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/InstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java
index bf91974..6c1f4be 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/InstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 public interface InstructionSubject {
 
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/InvokeCfInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/InvokeCfInstructionSubject.java
similarity index 74%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/InvokeCfInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/InvokeCfInstructionSubject.java
index 0f08810..b307112 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/InvokeCfInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/InvokeCfInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.cf.code.CfInstruction;
 import com.android.tools.r8.cf.code.CfInvoke;
@@ -11,17 +11,17 @@
 
 public class InvokeCfInstructionSubject extends CfInstructionSubject
     implements InvokeInstructionSubject {
-  private final DexInspector dexInspector;
+  private final CodeInspector codeInspector;
 
-  public InvokeCfInstructionSubject(DexInspector dexInspector, CfInstruction instruction) {
+  public InvokeCfInstructionSubject(CodeInspector codeInspector, CfInstruction instruction) {
     super(instruction);
     assert isInvoke();
-    this.dexInspector = dexInspector;
+    this.codeInspector = codeInspector;
   }
 
   @Override
   public TypeSubject holder() {
-    return new TypeSubject(dexInspector, invokedMethod().getHolder());
+    return new TypeSubject(codeInspector, invokedMethod().getHolder());
   }
 
   @Override
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/InvokeDexInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/InvokeDexInstructionSubject.java
similarity index 67%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/InvokeDexInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/InvokeDexInstructionSubject.java
index da649c9..7b5d41c 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/InvokeDexInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/InvokeDexInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.code.Instruction;
 import com.android.tools.r8.graph.DexMethod;
@@ -10,17 +10,17 @@
 public class InvokeDexInstructionSubject extends DexInstructionSubject
     implements InvokeInstructionSubject {
 
-  private final DexInspector dexInspector;
+  private final CodeInspector codeInspector;
 
-  public InvokeDexInstructionSubject(DexInspector dexInspector, Instruction instruction) {
+  public InvokeDexInstructionSubject(CodeInspector codeInspector, Instruction instruction) {
     super(instruction);
-    this.dexInspector = dexInspector;
+    this.codeInspector = codeInspector;
     assert isInvoke();
   }
 
   @Override
   public TypeSubject holder() {
-    return new TypeSubject(dexInspector, invokedMethod().getHolder());
+    return new TypeSubject(codeInspector, invokedMethod().getHolder());
   }
 
   @Override
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/InvokeInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/InvokeInstructionSubject.java
similarity index 88%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/InvokeInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/InvokeInstructionSubject.java
index 9b59340..b2f99dc 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/InvokeInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/InvokeInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexMethod;
 
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/Matchers.java b/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
similarity index 98%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/Matchers.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
index ab3ef13..3b718a4 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/Matchers.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.google.common.collect.ImmutableList;
 import org.hamcrest.Description;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/MemberSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/MemberSubject.java
similarity index 94%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/MemberSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/MemberSubject.java
index 1852659..9e90fde 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/MemberSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/MemberSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.naming.MemberNaming.Signature;
 
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/MethodSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/MethodSubject.java
similarity index 94%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/MethodSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/MethodSubject.java
index 3427924..6eaaf5f 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/MethodSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/MethodSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexEncodedMethod;
 import java.util.Iterator;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/NewInstanceCfInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/NewInstanceCfInstructionSubject.java
similarity index 92%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/NewInstanceCfInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/NewInstanceCfInstructionSubject.java
index 598ecf2..d3b0a93 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/NewInstanceCfInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/NewInstanceCfInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.cf.code.CfInstruction;
 import com.android.tools.r8.cf.code.CfNew;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/NewInstanceDexInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/NewInstanceDexInstructionSubject.java
similarity index 92%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/NewInstanceDexInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/NewInstanceDexInstructionSubject.java
index 5a1b01c..a396468 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/NewInstanceDexInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/NewInstanceDexInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.code.Instruction;
 import com.android.tools.r8.code.NewInstance;
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/NewInstanceInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/NewInstanceInstructionSubject.java
similarity index 87%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/NewInstanceInstructionSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/NewInstanceInstructionSubject.java
index 7450fbe..2a0f192 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/NewInstanceInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/NewInstanceInstructionSubject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexType;
 
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/Subject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/Subject.java
similarity index 86%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/Subject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/Subject.java
index f83eb14..d93e19a 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/Subject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/Subject.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 public abstract class Subject {
 
diff --git a/src/test/java/com/android/tools/r8/utils/dexinspector/TypeSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/TypeSubject.java
similarity index 70%
rename from src/test/java/com/android/tools/r8/utils/dexinspector/TypeSubject.java
rename to src/test/java/com/android/tools/r8/utils/codeinspector/TypeSubject.java
index 5b21c41..ba2230a 100644
--- a/src/test/java/com/android/tools/r8/utils/dexinspector/TypeSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/TypeSubject.java
@@ -2,17 +2,17 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.utils.dexinspector;
+package com.android.tools.r8.utils.codeinspector;
 
 import com.android.tools.r8.graph.DexType;
 
 public class TypeSubject extends Subject {
 
-  private final DexInspector dexInspector;
+  private final CodeInspector codeInspector;
   private final DexType dexType;
 
-  TypeSubject(DexInspector dexInspector, DexType dexType) {
-    this.dexInspector = dexInspector;
+  TypeSubject(CodeInspector codeInspector, DexType dexType) {
+    this.codeInspector = codeInspector;
     this.dexType = dexType;
   }
 
@@ -27,7 +27,7 @@
   }
 
   public boolean is(String type) {
-    return dexType.equals(dexInspector.toDexType(type));
+    return dexType.equals(codeInspector.toDexType(type));
   }
 
   public String toString() {