Rename isRenamed and isNotRenamed matchers

Change-Id: Ib8883732c49f64f67918c23894d2d2347d2a5a41
diff --git a/src/test/java/com/android/tools/r8/compatproguard/reflection/ReflectionTest.java b/src/test/java/com/android/tools/r8/compatproguard/reflection/ReflectionTest.java
index 6a1e059..aab82f0 100644
--- a/src/test/java/com/android/tools/r8/compatproguard/reflection/ReflectionTest.java
+++ b/src/test/java/com/android/tools/r8/compatproguard/reflection/ReflectionTest.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.compatproguard.reflection;
 
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -468,15 +468,17 @@
             readClasses(A.class, mainClass), keepMainProguardConfiguration(mainClass), backend);
     CodeInspector inspector = new CodeInspector(output);
 
-    assertThat(inspector.clazz(A.class).method("void", "method0", ImmutableList.of()), isRenamed());
+    assertThat(
+        inspector.clazz(A.class).method("void", "method0", ImmutableList.of()),
+        isPresentAndRenamed());
     assertThat(
         inspector.clazz(A.class).method("void", "method1", ImmutableList.of("java.lang.String")),
-        isRenamed());
+        isPresentAndRenamed());
     assertThat(
         inspector
             .clazz(A.class)
             .method("void", "method2", ImmutableList.of("java.lang.String", "java.lang.String")),
-        isRenamed());
+        isPresentAndRenamed());
 
     assertEquals(runOnJava(mainClass), runOnVM(output, mainClass, backend));
   }
@@ -495,7 +497,9 @@
     AndroidApp output = ToolHelper.runR8(builder.build());
     CodeInspector inspector = new CodeInspector(output);
 
-    assertThat(inspector.clazz(A.class).method("void", "method0", ImmutableList.of()), isRenamed());
+    assertThat(
+        inspector.clazz(A.class).method("void", "method0", ImmutableList.of()),
+        isPresentAndRenamed());
 
     // The reference run on the Java VM will succeed, whereas the run on the R8 output will fail
     // as in this test we fail to recognize the reflective call. To compare the output of the
@@ -535,7 +539,7 @@
         .forAllMethods(
             m -> {
               if (!m.isInstanceInitializer()) {
-                assertThat(m, isRenamed());
+                assertThat(m, isPresentAndRenamed());
               }
             });
 
@@ -556,7 +560,7 @@
         .forAllMethods(
             m -> {
               if (!m.isInstanceInitializer()) {
-                assertThat(m, isRenamed());
+                assertThat(m, isPresentAndRenamed());
               }
             });
 
diff --git a/src/test/java/com/android/tools/r8/desugar/DefaultInterfaceWithIdentifierNameString.java b/src/test/java/com/android/tools/r8/desugar/DefaultInterfaceWithIdentifierNameString.java
index 211050e..9eb054c 100644
--- a/src/test/java/com/android/tools/r8/desugar/DefaultInterfaceWithIdentifierNameString.java
+++ b/src/test/java/com/android/tools/r8/desugar/DefaultInterfaceWithIdentifierNameString.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.desugar;
 
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -54,9 +54,9 @@
 
   private void inspect(CodeInspector inspector) {
     ClassSubject classSubject = inspector.clazz(A.class);
-    assertThat(classSubject, isRenamed());
+    assertThat(classSubject, isPresentAndRenamed());
     ClassSubject companionClassSubject = inspector.companionClassFor(I.class);
-    assertThat(companionClassSubject, isRenamed());
+    assertThat(companionClassSubject, isPresentAndRenamed());
     companionClassSubject
         .allMethods()
         .forEach(
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/inliner/InliningIntoVisibilityBridgeTest.java b/src/test/java/com/android/tools/r8/ir/optimize/inliner/InliningIntoVisibilityBridgeTest.java
index 1c9148a..ec3c011 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/inliner/InliningIntoVisibilityBridgeTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/inliner/InliningIntoVisibilityBridgeTest.java
@@ -6,7 +6,7 @@
 
 import static com.android.tools.r8.ir.optimize.inliner.testclasses.InliningIntoVisibilityBridgeTestClasses.getClassA;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -74,8 +74,7 @@
       assertThat(classSubject, isPresent());
 
       MethodSubject methodSubject = classSubject.uniqueMethodWithName("method");
-      assertThat(methodSubject, isPresent());
-      assertThat(methodSubject, isRenamed());
+      assertThat(methodSubject, isPresentAndRenamed());
       assertEquals(neverInline, methodSubject.isBridge());
       assertEquals(neverInline, methodSubject.isSynthetic());
     }
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnnotationTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnnotationTest.java
index 11c47de..0b65d77 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnnotationTest.java
@@ -5,9 +5,9 @@
 package com.android.tools.r8.kotlin.metadata;
 
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
-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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -150,12 +150,11 @@
   private void inspect(CodeInspector inspector) {
     // Assert that foo is renamed.
     ClassSubject foo = inspector.clazz(PKG_LIB + ".Foo");
-    assertThat(foo, isRenamed());
+    assertThat(foo, isPresentAndRenamed());
     assertEquals(FOO_FINAL_NAME, foo.getFinalName());
     // Assert that bar exists and is not renamed.
     ClassSubject bar = inspector.clazz(PKG_LIB + ".Bar");
-    assertThat(bar, isPresent());
-    assertThat(bar, isNotRenamed());
+    assertThat(bar, isPresentAndNotRenamed());
     // Check that the annotation type on the type alias has been renamed
     inspectTypeAliasAnnotation(inspector, foo, bar);
   }
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnonymousTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnonymousTest.java
index f4ee57a..14cbe0b 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnonymousTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnonymousTest.java
@@ -5,7 +5,7 @@
 package com.android.tools.r8.kotlin.metadata;
 
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import com.android.tools.r8.TestParameters;
@@ -108,6 +108,6 @@
     System.out.println(
         KotlinMetadataWriter.kotlinMetadataToString("", clazz.getKotlinClassMetadata()));
     ClassSubject anonymousClass = inspector.clazz(PKG + ".anonymous_lib.Test$internalProp$1");
-    assertThat(anonymousClass, isRenamed());
+    assertThat(anonymousClass, isPresentAndRenamed());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteFlexibleUpperBoundTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteFlexibleUpperBoundTest.java
index 90b74f9..d5b9fd0 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteFlexibleUpperBoundTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteFlexibleUpperBoundTest.java
@@ -6,8 +6,8 @@
 
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -120,11 +120,10 @@
     // We are checking that A is renamed, and that the flexible upper bound information is
     // reflecting that.
     ClassSubject a = inspector.clazz(PKG_LIB + ".A");
-    assertThat(a, isRenamed());
+    assertThat(a, isPresentAndRenamed());
 
     ClassSubject flexibleUpperBound = inspector.clazz(PKG_LIB + ".FlexibleUpperBound");
-    assertThat(flexibleUpperBound, isPresent());
-    assertThat(flexibleUpperBound, not(isRenamed()));
+    assertThat(flexibleUpperBound, isPresentAndNotRenamed());
 
     List<KmPropertySubject> properties = flexibleUpperBound.getKmClass().getProperties();
     assertEquals(1, properties.size());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInClasspathTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInClasspathTypeTest.java
index 4aa0a2c..2103f0d 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInClasspathTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInClasspathTypeTest.java
@@ -6,8 +6,8 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionFunction;
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -129,11 +129,10 @@
     String extraClassName = PKG + ".classpath_lib_ext.Extra";
 
     ClassSubject impl = inspector.clazz(implClassName);
-    assertThat(impl, isRenamed());
+    assertThat(impl, isPresentAndRenamed());
 
     ClassSubject implKt = inspector.clazz(implKtClassName);
-    assertThat(implKt, isPresent());
-    assertThat(implKt, not(isRenamed()));
+    assertThat(implKt, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmPackageSubject kmPackage = implKt.getKmPackage();
     assertThat(kmPackage, isPresent());
@@ -142,8 +141,7 @@
     assertThat(kmFunction, isExtensionFunction());
 
     ClassSubject extra = inspector.clazz(extraClassName);
-    assertThat(extra, isPresent());
-    assertThat(extra, not(isRenamed()));
+    assertThat(extra, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = extra.getKmClass();
     assertThat(kmClass, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInCompanionTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInCompanionTest.java
index 38a6815..4c49518 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInCompanionTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInCompanionTest.java
@@ -5,7 +5,8 @@
 
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -170,15 +171,13 @@
 
     ClassSubject sup = inspector.clazz(superClassName);
     if (keptAll) {
-      assertThat(sup, isPresent());
-      assertThat(sup, not(isRenamed()));
+      assertThat(sup, isPresentAndNotRenamed());
     } else {
-      assertThat(sup, isRenamed());
+      assertThat(sup, isPresentAndRenamed());
     }
 
     ClassSubject impl = inspector.clazz(bClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
@@ -192,21 +191,18 @@
 
     // The backing field for the property in the companion, with @JvmField
     FieldSubject elt2 = impl.uniqueFieldWithName("elt2");
-    assertThat(elt2, isPresent());
-    assertThat(elt2, not(isRenamed()));
+    assertThat(elt2, isPresentAndNotRenamed());
 
     FieldSubject companionObject = impl.uniqueFieldWithName("Companion");
-    assertThat(companionObject, isPresent());
-    assertThat(companionObject, not(isRenamed()));
+    assertThat(companionObject, isPresentAndNotRenamed());
     assertEquals(companionObject.getFinalName(), kmClass.getCompanionObject());
 
     // Bridge for the property in the companion that needs a backing field.
     MethodSubject elt1Bridge = impl.uniqueMethodWithName("access$getElt1$cp");
     if (keptAll) {
-      assertThat(elt1Bridge, isPresent());
-      assertThat(elt1Bridge, not(isRenamed()));
+      assertThat(elt1Bridge, isPresentAndNotRenamed());
     } else {
-      assertThat(elt1Bridge, isRenamed());
+      assertThat(elt1Bridge, isPresentAndRenamed());
     }
 
     // With @JvmField, no bridge is added.
@@ -218,8 +214,7 @@
     assertThat(fooBridge, not(isPresent()));
 
     ClassSubject companion = inspector.clazz(companionClassName);
-    assertThat(companion, isPresent());
-    assertThat(companion, not(isRenamed()));
+    assertThat(companion, isPresentAndNotRenamed());
 
     List<String> nestedClassDescriptors = kmClass.getNestedClassDescriptors();
     assertEquals(1, nestedClassDescriptors.size());
@@ -236,19 +231,16 @@
     assertThat(kmProperty, isPresent());
 
     MethodSubject elt1Getter = companion.uniqueMethodWithName("getElt1");
-    assertThat(elt1Getter, isPresent());
-    assertThat(elt1Getter, not(isRenamed()));
+    assertThat(elt1Getter, isPresentAndNotRenamed());
 
     // Note that there is no getter for property with @JvmField.
     MethodSubject elt2Getter = companion.uniqueMethodWithName("getElt2");
     assertThat(elt2Getter, not(isPresent()));
 
     MethodSubject fooGetter = companion.uniqueMethodWithName("getFoo");
-    assertThat(fooGetter, isPresent());
-    assertThat(fooGetter, not(isRenamed()));
+    assertThat(fooGetter, isPresentAndNotRenamed());
 
     MethodSubject barSetter = companion.uniqueMethodWithName("setBar");
-    assertThat(barSetter, isPresent());
-    assertThat(barSetter, not(isRenamed()));
+    assertThat(barSetter, isPresentAndNotRenamed());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionFunctionTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionFunctionTest.java
index 41d1f09..4f8b4a4 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionFunctionTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionFunctionTest.java
@@ -6,7 +6,8 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionFunction;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -127,8 +128,7 @@
     assertThat(inspector.clazz(superClassName), not(isPresent()));
 
     ClassSubject impl = inspector.clazz(bClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
@@ -180,12 +180,10 @@
     String bClassName = PKG + ".extension_function_lib.B";
 
     ClassSubject sup = inspector.clazz(superClassName);
-    assertThat(sup, isPresent());
-    assertThat(sup, isRenamed());
+    assertThat(sup, isPresentAndRenamed());
 
     ClassSubject impl = inspector.clazz(bClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
@@ -206,8 +204,7 @@
     assertThat(impl, isPresent());
 
     ClassSubject bKt = inspector.clazz(bKtClassName);
-    assertThat(bKt, isPresent());
-    assertThat(bKt, not(isRenamed()));
+    assertThat(bKt, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmPackageSubject kmPackage = bKt.getKmPackage();
     assertThat(kmPackage, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionPropertyTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionPropertyTest.java
index c627171..9e81bf2 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionPropertyTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionPropertyTest.java
@@ -7,7 +7,8 @@
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionFunction;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionProperty;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertNotNull;
@@ -124,8 +125,7 @@
     assertThat(inspector.clazz(superClassName), not(isPresent()));
 
     ClassSubject impl = inspector.clazz(bClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
@@ -137,8 +137,7 @@
     assertThat(kmFunction, not(isExtensionFunction()));
 
     ClassSubject bKt = inspector.clazz(bKtClassName);
-    assertThat(bKt, isPresent());
-    assertThat(bKt, not(isRenamed()));
+    assertThat(bKt, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmPackageSubject kmPackage = bKt.getKmPackage();
     assertThat(kmPackage, isPresent());
@@ -187,11 +186,10 @@
     String bKtClassName = PKG + ".extension_property_lib.BKt";
 
     ClassSubject sup = inspector.clazz(superClassName);
-    assertThat(sup, isRenamed());
+    assertThat(sup, isPresentAndRenamed());
 
     ClassSubject impl = inspector.clazz(bClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
@@ -202,8 +200,7 @@
         supertype -> supertype.getFinalDescriptor().equals(sup.getFinalDescriptor())));
 
     ClassSubject bKt = inspector.clazz(bKtClassName);
-    assertThat(bKt, isPresent());
-    assertThat(bKt, not(isRenamed()));
+    assertThat(bKt, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmPackageSubject kmPackage = bKt.getKmPackage();
     assertThat(kmPackage, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java
index 7cfa4a7..dcb6dbe 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java
@@ -6,7 +6,8 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionFunction;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -122,8 +123,7 @@
     assertThat(inspector.clazz(superClassName), not(isPresent()));
 
     ClassSubject impl = inspector.clazz(bClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
 
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
@@ -133,8 +133,7 @@
         supertype -> supertype.getFinalDescriptor().contains("Super")));
 
     ClassSubject bKt = inspector.clazz(bKtClassName);
-    assertThat(bKt, isPresent());
-    assertThat(bKt, not(isRenamed()));
+    assertThat(bKt, isPresentAndNotRenamed());
 
     // API entry is kept, hence the presence of Metadata.
     KmPackageSubject kmPackage = bKt.getKmPackage();
@@ -183,10 +182,10 @@
     String bKtClassName = PKG + ".function_lib.BKt";
 
     ClassSubject sup = inspector.clazz(superClassName);
-    assertThat(sup, isRenamed());
+    assertThat(sup, isPresentAndRenamed());
 
     MethodSubject foo = sup.uniqueMethodWithName("foo");
-    assertThat(foo, isRenamed());
+    assertThat(foo, isPresentAndRenamed());
 
     KmClassSubject kmClass = sup.getKmClass();
     assertThat(kmClass, isPresent());
@@ -198,8 +197,7 @@
     assertEquals(foo.getJvmMethodSignatureAsString(), kmFunction.signature().asString());
 
     ClassSubject impl = inspector.clazz(bClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
 
     // API entry is kept, hence the presence of Metadata.
     kmClass = impl.getKmClass();
@@ -211,8 +209,7 @@
         supertype -> supertype.getFinalDescriptor().equals(sup.getFinalDescriptor())));
 
     ClassSubject bKt = inspector.clazz(bKtClassName);
-    assertThat(bKt, isPresent());
-    assertThat(bKt, not(isRenamed()));
+    assertThat(bKt, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmPackageSubject kmPackage = bKt.getKmPackage();
     assertThat(kmPackage, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithDefaultValueTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithDefaultValueTest.java
index 79ad6e5..4cd9b6a 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithDefaultValueTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithDefaultValueTest.java
@@ -6,8 +6,7 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionFunction;
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -120,16 +119,13 @@
     String libClassName = PKG + ".default_value_lib.LibKt";
 
     ClassSubject libKt = inspector.clazz(libClassName);
-    assertThat(libKt, isPresent());
-    assertThat(libKt, not(isRenamed()));
+    assertThat(libKt, isPresentAndNotRenamed());
 
     MethodSubject methodSubject = libKt.uniqueMethodWithName("applyMap");
-    assertThat(methodSubject, isPresent());
-    assertThat(methodSubject, not(isRenamed()));
+    assertThat(methodSubject, isPresentAndNotRenamed());
 
     methodSubject = libKt.uniqueMethodWithName("applyMap$default");
-    assertThat(methodSubject, isPresent());
-    assertThat(methodSubject, not(isRenamed()));
+    assertThat(methodSubject, isPresentAndNotRenamed());
 
     KmPackageSubject kmPackage = libKt.getKmPackage();
     assertThat(kmPackage, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithVarargTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithVarargTest.java
index d82b5c6..0914a23 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithVarargTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithVarargTest.java
@@ -6,7 +6,7 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionFunction;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -123,20 +123,16 @@
     String libClassName = PKG + ".vararg_lib.LibKt";
 
     ClassSubject cls = inspector.clazz(className);
-    assertThat(cls, isPresent());
-    assertThat(cls, not(isRenamed()));
+    assertThat(cls, isPresentAndNotRenamed());
 
     MethodSubject foo = cls.uniqueMethodWithName("foo");
-    assertThat(foo, isPresent());
-    assertThat(foo, not(isRenamed()));
+    assertThat(foo, isPresentAndNotRenamed());
 
     ClassSubject libKt = inspector.clazz(libClassName);
-    assertThat(libKt, isPresent());
-    assertThat(libKt, not(isRenamed()));
+    assertThat(libKt, isPresentAndNotRenamed());
 
     MethodSubject bar = libKt.uniqueMethodWithName("bar");
-    assertThat(bar, isPresent());
-    assertThat(bar, not(isRenamed()));
+    assertThat(bar, isPresentAndNotRenamed());
 
     KmPackageSubject kmPackage = libKt.getKmPackage();
     assertThat(kmPackage, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInLibraryTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInLibraryTypeTest.java
index 12b361b..159bf66 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInLibraryTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInLibraryTypeTest.java
@@ -5,10 +5,9 @@
 
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
 import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -122,8 +121,7 @@
   private void inspect(CodeInspector inspector) {
     String extClassName = PKG + ".libtype_lib_ext.ExtKt";
     ClassSubject ext = inspector.clazz(extClassName);
-    assertThat(ext, isPresent());
-    assertThat(ext, not(isRenamed()));
+    assertThat(ext, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmPackageSubject kmPackage = ext.getKmPackage();
     assertThat(kmPackage, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInMultifileClassTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInMultifileClassTest.java
index 09d62d7..45a419d 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInMultifileClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInMultifileClassTest.java
@@ -6,7 +6,8 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionFunction;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -121,11 +122,9 @@
     String utilClassName = PKG + ".multifileclass_lib.UtilKt";
 
     ClassSubject util = inspector.clazz(utilClassName);
-    assertThat(util, isPresent());
-    assertThat(util, not(isRenamed()));
+    assertThat(util, isPresentAndNotRenamed());
     MethodSubject commaJoinOfInt = util.uniqueMethodWithName("commaSeparatedJoinOfInt");
-    assertThat(commaJoinOfInt, isPresent());
-    assertThat(commaJoinOfInt, not(isRenamed()));
+    assertThat(commaJoinOfInt, isPresentAndNotRenamed());
     MethodSubject joinOfInt = util.uniqueMethodWithName("joinOfInt");
     assertThat(joinOfInt, not(isPresent()));
 
@@ -167,14 +166,11 @@
     String utilClassName = PKG + ".multifileclass_lib.UtilKt";
 
     ClassSubject util = inspector.clazz(utilClassName);
-    assertThat(util, isPresent());
-    assertThat(util, not(isRenamed()));
+    assertThat(util, isPresentAndNotRenamed());
     MethodSubject commaJoinOfInt = util.uniqueMethodWithName("commaSeparatedJoinOfInt");
-    assertThat(commaJoinOfInt, isPresent());
-    assertThat(commaJoinOfInt, not(isRenamed()));
+    assertThat(commaJoinOfInt, isPresentAndNotRenamed());
     MethodSubject joinOfInt = util.uniqueMethodWithName("joinOfInt");
-    assertThat(joinOfInt, isPresent());
-    assertThat(joinOfInt, isRenamed());
+    assertThat(joinOfInt, isPresentAndRenamed());
 
     inspectMetadataForFacade(inspector, util);
 
@@ -195,19 +191,18 @@
     for (String partClassName : partClassNames) {
       ClassSubject partClass =
           inspector.clazz(DescriptorUtils.getJavaTypeFromBinaryName(partClassName));
-      assertThat(partClass, isRenamed());
+      assertThat(partClass, isPresentAndRenamed());
     }
   }
 
   private void inspectSignedKt(CodeInspector inspector) {
     String signedClassName = PKG + ".multifileclass_lib.UtilKt__SignedKt";
     ClassSubject signed = inspector.clazz(signedClassName);
-    assertThat(signed, isRenamed());
+    assertThat(signed, isPresentAndRenamed());
     MethodSubject commaJoinOfInt = signed.uniqueMethodWithName("commaSeparatedJoinOfInt");
-    assertThat(commaJoinOfInt, isPresent());
-    assertThat(commaJoinOfInt, not(isRenamed()));
+    assertThat(commaJoinOfInt, isPresentAndNotRenamed());
     MethodSubject joinOfInt = signed.uniqueMethodWithName("joinOfInt");
-    assertThat(joinOfInt, isRenamed());
+    assertThat(joinOfInt, isPresentAndRenamed());
 
     // API entry is kept, hence the presence of Metadata.
     KmPackageSubject kmPackage = signed.getKmPackage();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInNestedClassTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInNestedClassTest.java
index 3c218fe..eada4da 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInNestedClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInNestedClassTest.java
@@ -6,8 +6,8 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.DescriptorUtils.descriptorToJavaType;
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -119,28 +119,30 @@
     String nestedClassName = outerClassName + "$Nested";
 
     ClassSubject inner = inspector.clazz(innerClassName);
-    assertThat(inner, isPresent());
-    assertThat(inner, not(isRenamed()));
+    assertThat(inner, isPresentAndNotRenamed());
 
     ClassSubject nested = inspector.clazz(nestedClassName);
-    assertThat(nested, isRenamed());
+    assertThat(nested, isPresentAndRenamed());
 
     ClassSubject outer = inspector.clazz(outerClassName);
-    assertThat(outer, isPresent());
-    assertThat(outer, not(isRenamed()));
+    assertThat(outer, isPresentAndNotRenamed());
 
     KmClassSubject kmClass = outer.getKmClass();
     assertThat(kmClass, isPresent());
 
     assertFalse(kmClass.getNestedClassDescriptors().isEmpty());
-    kmClass.getNestedClassDescriptors().forEach(nestedClassDescriptor -> {
-      ClassSubject nestedClass = inspector.clazz(descriptorToJavaType(nestedClassDescriptor));
-      if (nestedClass.getOriginalName().contains("Inner")) {
-        assertThat(nestedClass, not(isRenamed()));
-      } else {
-        assertThat(nestedClass, isRenamed());
-      }
-      assertEquals(nestedClassDescriptor, nestedClass.getFinalDescriptor());
-    });
+    kmClass
+        .getNestedClassDescriptors()
+        .forEach(
+            nestedClassDescriptor -> {
+              ClassSubject nestedClass =
+                  inspector.clazz(descriptorToJavaType(nestedClassDescriptor));
+              if (nestedClass.getOriginalName().contains("Inner")) {
+                assertThat(nestedClass, isPresentAndNotRenamed());
+              } else {
+                assertThat(nestedClass, isPresentAndRenamed());
+              }
+              assertEquals(nestedClassDescriptor, nestedClass.getFinalDescriptor());
+            });
   }
 }
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInParameterTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInParameterTypeTest.java
index 53c8e4f..b4ae665 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInParameterTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInParameterTypeTest.java
@@ -5,8 +5,8 @@
 
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -112,11 +112,10 @@
     String implClassName = PKG + ".parametertype_lib.Impl";
 
     ClassSubject itf = inspector.clazz(itfClassName);
-    assertThat(itf, isRenamed());
+    assertThat(itf, isPresentAndRenamed());
 
     ClassSubject impl = inspector.clazz(implClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTest.java
index f97fd1c..c479093 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTest.java
@@ -6,7 +6,8 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionProperty;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static junit.framework.TestCase.assertNull;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -116,14 +117,12 @@
   private void inspectGetterOnly(CodeInspector inspector) {
     String personClassName = PKG + ".fragile_property_lib.Person";
     ClassSubject person = inspector.clazz(personClassName);
-    assertThat(person, isPresent());
-    assertThat(person, not(isRenamed()));
+    assertThat(person, isPresentAndNotRenamed());
 
     FieldSubject backingField = person.uniqueFieldWithName("name");
-    assertThat(backingField, isRenamed());
+    assertThat(backingField, isPresentAndRenamed());
     MethodSubject getterForName = person.uniqueMethodWithName("getName");
-    assertThat(getterForName, isPresent());
-    assertThat(getterForName, not(isRenamed()));
+    assertThat(getterForName, isPresentAndNotRenamed());
     MethodSubject setterForName = person.uniqueMethodWithName("setName");
     assertThat(setterForName, not(isPresent()));
 
@@ -213,8 +212,7 @@
   private void inspectSetterOnly(CodeInspector inspector) {
     String personClassName = PKG + ".fragile_property_lib.Person";
     ClassSubject person = inspector.clazz(personClassName);
-    assertThat(person, isPresent());
-    assertThat(person, not(isRenamed()));
+    assertThat(person, isPresentAndNotRenamed());
 
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = person.getKmClass();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTypeTest.java
index dea1c4a..eb9ff61 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTypeTest.java
@@ -5,8 +5,8 @@
 
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -110,11 +110,10 @@
     String implClassName = PKG + ".propertytype_lib.Impl";
 
     ClassSubject itf = inspector.clazz(itfClassName);
-    assertThat(itf, isRenamed());
+    assertThat(itf, isPresentAndRenamed());
 
     ClassSubject impl = inspector.clazz(implClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInRenamedTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInRenamedTypeTest.java
index f474cf1..bb77f38 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInRenamedTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInRenamedTypeTest.java
@@ -6,9 +6,9 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.DescriptorUtils.getDescriptorFromKotlinClassifier;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -115,8 +115,7 @@
   private void inspect(CodeInspector inspector) {
     String pkg = getClass().getPackage().getName();
     ClassSubject kept = inspector.clazz(pkg + ".anno.Kept");
-    assertThat(kept, isPresent());
-    assertThat(kept, not(isRenamed()));
+    assertThat(kept, isPresentAndNotRenamed());
     // API entry is kept, hence @Metadata exists.
     KmClassSubject kmClass = kept.getKmClass();
     assertThat(kmClass, isPresent());
@@ -127,7 +126,7 @@
     assertThat(anno, isPresent());
 
     ClassSubject renamed = inspector.clazz(pkg + ".anno.Renamed");
-    assertThat(renamed, isRenamed());
+    assertThat(renamed, isPresentAndRenamed());
     // @Anno is kept.
     anno = renamed.annotation(annoName);
     assertThat(anno, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInReturnTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInReturnTypeTest.java
index 63fc38d..47b0b82 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInReturnTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInReturnTypeTest.java
@@ -5,8 +5,8 @@
 
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -112,11 +112,10 @@
     String implClassName = PKG + ".returntype_lib.Impl";
 
     ClassSubject itf = inspector.clazz(itfClassName);
-    assertThat(itf, isRenamed());
+    assertThat(itf, isPresentAndRenamed());
 
     ClassSubject impl = inspector.clazz(implClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java
index 318a765..1bb1c44 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java
@@ -7,9 +7,9 @@
 import static com.android.tools.r8.utils.DescriptorUtils.descriptorToJavaType;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionFunction;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -122,26 +122,27 @@
     String libClassName = PKG + ".sealed_lib.LibKt";
 
     ClassSubject num = inspector.clazz(numClassName);
-    assertThat(num, isRenamed());
+    assertThat(num, isPresentAndRenamed());
 
     ClassSubject expr = inspector.clazz(exprClassName);
-    assertThat(expr, isPresent());
-    assertThat(expr, not(isRenamed()));
+    assertThat(expr, isPresentAndNotRenamed());
 
     KmClassSubject kmClass = expr.getKmClass();
     assertThat(kmClass, isPresent());
 
     assertFalse(kmClass.getSealedSubclassDescriptors().isEmpty());
-    kmClass.getSealedSubclassDescriptors().forEach(sealedSubclassDescriptor -> {
-      ClassSubject sealedSubclass =
-          inspector.clazz(descriptorToJavaType(sealedSubclassDescriptor));
-      assertThat(sealedSubclass, isRenamed());
-      assertEquals(sealedSubclassDescriptor, sealedSubclass.getFinalDescriptor());
-    });
+    kmClass
+        .getSealedSubclassDescriptors()
+        .forEach(
+            sealedSubclassDescriptor -> {
+              ClassSubject sealedSubclass =
+                  inspector.clazz(descriptorToJavaType(sealedSubclassDescriptor));
+              assertThat(sealedSubclass, isPresentAndRenamed());
+              assertEquals(sealedSubclassDescriptor, sealedSubclass.getFinalDescriptor());
+            });
 
     ClassSubject libKt = inspector.clazz(libClassName);
-    assertThat(expr, isPresent());
-    assertThat(expr, not(isRenamed()));
+    assertThat(expr, isPresentAndNotRenamed());
 
     KmPackageSubject kmPackage = libKt.getKmPackage();
     assertThat(kmPackage, isPresent());
@@ -184,15 +185,13 @@
     String libClassName = PKG + ".sealed_lib.LibKt";
 
     ClassSubject expr = inspector.clazz(exprClassName);
-    assertThat(expr, isPresent());
-    assertThat(expr, not(isRenamed()));
+    assertThat(expr, isPresentAndNotRenamed());
 
     KmClassSubject kmClass = expr.getKmClass();
     assertThat(kmClass, isPresent());
 
     ClassSubject libKt = inspector.clazz(libClassName);
-    assertThat(expr, isPresent());
-    assertThat(expr, not(isRenamed()));
+    assertThat(expr, isPresentAndNotRenamed());
 
     KmPackageSubject kmPackage = libKt.getKmPackage();
     assertThat(kmPackage, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSuperTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSuperTypeTest.java
index 8eb76bb..578a7ec 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSuperTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSuperTypeTest.java
@@ -5,7 +5,8 @@
 
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertTrue;
@@ -114,8 +115,7 @@
     assertThat(inspector.clazz(itfClassName), not(isPresent()));
 
     ClassSubject impl = inspector.clazz(implClassName);
-    assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
@@ -160,11 +160,11 @@
     String implClassName = PKG + ".supertype_lib.Impl";
 
     ClassSubject itf = inspector.clazz(itfClassName);
-    assertThat(itf, isRenamed());
+    assertThat(itf, isPresentAndRenamed());
 
     ClassSubject impl = inspector.clazz(implClassName);
     assertThat(impl, isPresent());
-    assertThat(impl, not(isRenamed()));
+    assertThat(impl, isPresentAndNotRenamed());
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeAliasTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeAliasTest.java
index 2c14c8d..ac4085f 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeAliasTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeAliasTest.java
@@ -6,11 +6,11 @@
 import static com.android.tools.r8.KotlinCompilerTool.KOTLINC;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isDexClass;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertNotNull;
 import static junit.framework.TestCase.assertTrue;
-import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import com.android.tools.r8.TestParameters;
@@ -168,15 +168,13 @@
     String libKtClassName = packageName + ".LibKt";
 
     ClassSubject itf = inspector.clazz(itfClassName);
-    assertThat(itf, isRenamed());
+    assertThat(itf, isPresentAndRenamed());
 
     ClassSubject libKt = inspector.clazz(libKtClassName);
-    assertThat(libKt, isPresent());
-    assertThat(libKt, not(isRenamed()));
+    assertThat(libKt, isPresentAndNotRenamed());
 
     MethodSubject seq = libKt.uniqueMethodWithName("seq");
-    assertThat(seq, isPresent());
-    assertThat(seq, not(isRenamed()));
+    assertThat(seq, isPresentAndNotRenamed());
 
     // API entry is kept, hence the presence of Metadata.
     KmPackageSubject kmPackage = libKt.getKmPackage();
@@ -219,7 +217,7 @@
 
     // Check that Arr has been renamed.
     ClassSubject arr = inspector.clazz(packageName + ".Arr");
-    assertThat(arr, isRenamed());
+    assertThat(arr, isPresentAndRenamed());
 
     ClassSubject libKt = inspector.clazz(libKtClassName);
     KmPackageSubject kmPackage = libKt.getKmPackage();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java
index df35c97..52ae0b3 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java
@@ -7,7 +7,7 @@
 import static com.android.tools.r8.utils.codeinspector.Matchers.isDexClass;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionFunction;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -171,7 +171,7 @@
     assertThat(someClass, isPresent());
     ClassSubject classThatShouldBeObfuscated =
         inspector.clazz(LIB_PKG + "ClassThatWillBeObfuscated");
-    assertThat(classThatShouldBeObfuscated, isRenamed());
+    assertThat(classThatShouldBeObfuscated, isPresentAndRenamed());
 
     // Check that the type-parameters of Invariant is marked as INVARIANT.
     ClassSubject invariant = inspector.clazz(LIB_PKG + "Invariant");
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataStripTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataStripTest.java
index 043a48a..dec2ff2 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataStripTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataStripTest.java
@@ -4,7 +4,8 @@
 package com.android.tools.r8.kotlin.metadata;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -59,14 +60,12 @@
             .run(parameters.getRuntime(), mainClassName);
     CodeInspector inspector = result.inspector();
     ClassSubject clazz = inspector.clazz(mainClassName);
-    assertThat(clazz, isPresent());
-    assertThat(clazz, not(isRenamed()));
+    assertThat(clazz, isPresentAndNotRenamed());
     // Main class is kept, hence the presence of Metadata.
     AnnotationSubject annotationSubject = clazz.annotation(METADATA_TYPE);
     assertThat(annotationSubject, isPresent());
     ClassSubject impl1 = inspector.clazz(implementer1ClassName);
-    assertThat(impl1, isPresent());
-    assertThat(impl1, isRenamed());
+    assertThat(impl1, isPresentAndRenamed());
     // All other classes can be renamed, hence the absence of Metadata;
     assertThat(impl1.annotation(METADATA_TYPE), not(isPresent()));
   }
diff --git a/src/test/java/com/android/tools/r8/naming/AbstractMethodRenamingTest.java b/src/test/java/com/android/tools/r8/naming/AbstractMethodRenamingTest.java
index 71b158d..9f44e4b 100644
--- a/src/test/java/com/android/tools/r8/naming/AbstractMethodRenamingTest.java
+++ b/src/test/java/com/android/tools/r8/naming/AbstractMethodRenamingTest.java
@@ -3,8 +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.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -81,26 +80,20 @@
 
   private void inspect(CodeInspector inspector) {
     ClassSubject base = inspector.clazz(Base.class);
-    assertThat(base, isPresent());
-    assertThat(base, isRenamed());
+    assertThat(base, isPresentAndRenamed());
     MethodSubject foo = base.uniqueMethodWithName("foo");
-    assertThat(foo, isPresent());
-    assertThat(foo, isRenamed());
+    assertThat(foo, isPresentAndRenamed());
 
     ClassSubject sub1 = inspector.clazz(Sub1.class);
-    assertThat(sub1, isPresent());
-    assertThat(sub1, isRenamed());
+    assertThat(sub1, isPresentAndRenamed());
     MethodSubject fooInSub1 = sub1.uniqueMethodWithName("foo");
-    assertThat(fooInSub1, isPresent());
-    assertThat(fooInSub1, isRenamed());
+    assertThat(fooInSub1, isPresentAndRenamed());
     assertEquals(foo.getFinalName(), fooInSub1.getFinalName());
 
     ClassSubject sub2 = inspector.clazz(Sub1.class);
-    assertThat(sub2, isPresent());
-    assertThat(sub2, isRenamed());
+    assertThat(sub2, isPresentAndRenamed());
     MethodSubject fooInSub2 = sub2.uniqueMethodWithName("foo");
-    assertThat(fooInSub2, isPresent());
-    assertThat(fooInSub2, isRenamed());
+    assertThat(fooInSub2, isPresentAndRenamed());
     assertEquals(foo.getFinalName(), fooInSub2.getFinalName());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/naming/AbstractR8KotlinNamingTestBase.java b/src/test/java/com/android/tools/r8/naming/AbstractR8KotlinNamingTestBase.java
index 2815aed..9f2d940 100644
--- a/src/test/java/com/android/tools/r8/naming/AbstractR8KotlinNamingTestBase.java
+++ b/src/test/java/com/android/tools/r8/naming/AbstractR8KotlinNamingTestBase.java
@@ -3,8 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.naming;
 
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
-import static org.hamcrest.CoreMatchers.not;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import com.android.tools.r8.ToolHelper.KotlinTargetVersion;
@@ -29,65 +29,65 @@
 
   protected ClassSubject checkClassIsRenamed(CodeInspector inspector, String className) {
     ClassSubject classSubject = inspector.clazz(className);
-    assertThat(classSubject, isRenamed());
+    assertThat(classSubject, isPresentAndRenamed());
     return classSubject;
   }
 
   protected ClassSubject checkClassIsNotRenamed(CodeInspector inspector, String className) {
     ClassSubject classSubject = inspector.clazz(className);
-    assertThat(classSubject, not(isRenamed()));
+    assertThat(classSubject, isPresentAndNotRenamed());
     return classSubject;
   }
 
   protected FieldSubject checkFieldIsRenamed(
       ClassSubject classSubject, String fieldType, String fieldName) {
     FieldSubject fieldSubject = checkFieldIsKept(classSubject, fieldType, fieldName);
-    assertThat(fieldSubject, isRenamed());
+    assertThat(fieldSubject, isPresentAndRenamed());
     return fieldSubject;
   }
 
   protected FieldSubject checkFieldIsRenamed(ClassSubject classSubject, String fieldName) {
     FieldSubject fieldSubject = checkFieldIsKept(classSubject, fieldName);
-    assertThat(fieldSubject, isRenamed());
+    assertThat(fieldSubject, isPresentAndRenamed());
     return fieldSubject;
   }
 
   protected FieldSubject checkFieldIsNotRenamed(
       ClassSubject classSubject, String fieldType, String fieldName) {
     FieldSubject fieldSubject = checkFieldIsKept(classSubject, fieldType, fieldName);
-    assertThat(fieldSubject, not(isRenamed()));
+    assertThat(fieldSubject, isPresentAndNotRenamed());
     return fieldSubject;
   }
 
   protected FieldSubject checkFieldIsNotRenamed(ClassSubject classSubject, String fieldName) {
     FieldSubject fieldSubject = checkFieldIsKept(classSubject, fieldName);
-    assertThat(fieldSubject, not(isRenamed()));
+    assertThat(fieldSubject, isPresentAndNotRenamed());
     return fieldSubject;
   }
 
   protected MethodSubject checkMethodIsRenamed(
       ClassSubject classSubject, MethodSignature methodSignature) {
     MethodSubject methodSubject = checkMethodIsKept(classSubject, methodSignature);
-    assertThat(methodSubject, isRenamed());
+    assertThat(methodSubject, isPresentAndRenamed());
     return methodSubject;
   }
 
   protected MethodSubject checkMethodIsRenamed(ClassSubject classSubject, String methodName) {
     MethodSubject methodSubject = checkMethodIsKept(classSubject, methodName);
-    assertThat(methodSubject, isRenamed());
+    assertThat(methodSubject, isPresentAndRenamed());
     return methodSubject;
   }
 
   protected MethodSubject checkMethodIsNotRenamed(
       ClassSubject classSubject, MethodSignature methodSignature) {
     MethodSubject methodSubject = checkMethodIsKept(classSubject, methodSignature);
-    assertThat(methodSubject, not(isRenamed()));
+    assertThat(methodSubject, isPresentAndNotRenamed());
     return methodSubject;
   }
 
   protected MethodSubject checkMethodIsNotRenamed(ClassSubject classSubject, String methodName) {
     MethodSubject methodSubject = checkMethodIsKept(classSubject, methodName);
-    assertThat(methodSubject, not(isRenamed()));
+    assertThat(methodSubject, isPresentAndNotRenamed());
     return methodSubject;
   }
 
diff --git a/src/test/java/com/android/tools/r8/naming/AvoidRTest.java b/src/test/java/com/android/tools/r8/naming/AvoidRTest.java
index 5c2d882..8feb257 100644
--- a/src/test/java/com/android/tools/r8/naming/AvoidRTest.java
+++ b/src/test/java/com/android/tools/r8/naming/AvoidRTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.naming;
 
 import static com.android.tools.r8.utils.DescriptorUtils.getUnqualifiedClassNameFromDescriptor;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertTrue;
@@ -60,19 +60,23 @@
     }
     builder.addProgramClassFileData(jasminBuilder.buildClasses());
     Set<String> usedDescriptors = new HashSet<>();
-    builder.noTreeShaking()
+    builder
+        .noTreeShaking()
         .addKeepRules("-classobfuscationdictionary " + dictionary)
         .compile()
-        .inspect(codeInspector -> {
-          codeInspector.forAllClasses(classSubject -> {
-            assertThat(classSubject, isRenamed());
-            String renamedDescriptor = classSubject.getFinalDescriptor();
-            assertTrue(usedDescriptors.add(renamedDescriptor));
-            assertNotEquals("R", getUnqualifiedClassNameFromDescriptor(renamedDescriptor));
-            assertTrue(expectedNames.contains(
-                getUnqualifiedClassNameFromDescriptor(renamedDescriptor)));
-          });
-        });
+        .inspect(
+            codeInspector -> {
+              codeInspector.forAllClasses(
+                  classSubject -> {
+                    assertThat(classSubject, isPresentAndRenamed());
+                    String renamedDescriptor = classSubject.getFinalDescriptor();
+                    assertTrue(usedDescriptors.add(renamedDescriptor));
+                    assertNotEquals("R", getUnqualifiedClassNameFromDescriptor(renamedDescriptor));
+                    assertTrue(
+                        expectedNames.contains(
+                            getUnqualifiedClassNameFromDescriptor(renamedDescriptor)));
+                  });
+            });
   }
 
   @Test
@@ -84,15 +88,18 @@
     }
     builder.addProgramClassFileData(jasminBuilder.buildClasses());
     Set<String> usedNames = new HashSet<>();
-    builder.noTreeShaking()
+    builder
+        .noTreeShaking()
         .compile()
-        .inspect(codeInspector -> {
-          codeInspector.forAllClasses(classSubject -> {
-            assertThat(classSubject, isRenamed());
-            assertTrue(usedNames.add(classSubject.getFinalName()));
-            assertNotEquals("R", classSubject.getFinalName());
-          });
-        });
+        .inspect(
+            codeInspector -> {
+              codeInspector.forAllClasses(
+                  classSubject -> {
+                    assertThat(classSubject, isPresentAndRenamed());
+                    assertTrue(usedNames.add(classSubject.getFinalName()));
+                    assertNotEquals("R", classSubject.getFinalName());
+                  });
+            });
     assertTrue(usedNames.contains("Q"));
     assertTrue(usedNames.contains("S"));
   }
@@ -114,17 +121,20 @@
     }
     builder.addProgramClassFileData(jasminBuilder.buildClasses());
     Set<String> usedDescriptors = new HashSet<>();
-    builder.noTreeShaking()
+    builder
+        .noTreeShaking()
         .addKeepRules(keepRule)
         .compile()
-        .inspect(codeInspector -> {
-          codeInspector.forAllClasses(classSubject -> {
-            assertThat(classSubject, isRenamed());
-            String renamedDescriptor = classSubject.getFinalDescriptor();
-            assertTrue(usedDescriptors.add(renamedDescriptor));
-            assertNotEquals("R", getUnqualifiedClassNameFromDescriptor(renamedDescriptor));
-          });
-        });
+        .inspect(
+            codeInspector -> {
+              codeInspector.forAllClasses(
+                  classSubject -> {
+                    assertThat(classSubject, isPresentAndRenamed());
+                    String renamedDescriptor = classSubject.getFinalDescriptor();
+                    assertTrue(usedDescriptors.add(renamedDescriptor));
+                    assertNotEquals("R", getUnqualifiedClassNameFromDescriptor(renamedDescriptor));
+                  });
+            });
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/naming/ClassNameMinifierOriginalClassNameTest.java b/src/test/java/com/android/tools/r8/naming/ClassNameMinifierOriginalClassNameTest.java
index 553fe0c..779eb8a 100644
--- a/src/test/java/com/android/tools/r8/naming/ClassNameMinifierOriginalClassNameTest.java
+++ b/src/test/java/com/android/tools/r8/naming/ClassNameMinifierOriginalClassNameTest.java
@@ -5,7 +5,7 @@
 package com.android.tools.r8.naming;
 
 import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -62,7 +62,7 @@
         .inspect(
             inspector -> {
               assertEquals(1, inspector.allClasses().size());
-              assertThat(inspector.clazz(B.class), isRenamed());
+              assertThat(inspector.clazz(B.class), isPresentAndRenamed());
               assertEquals(A.class.getTypeName(), inspector.clazz(B.class).getFinalName());
             });
   }
diff --git a/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeInSubInterfaceTest.java b/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeInSubInterfaceTest.java
index 8c50aa7..3eae470 100644
--- a/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeInSubInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeInSubInterfaceTest.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.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
@@ -94,13 +94,13 @@
   private void inspect(CodeInspector inspector, boolean overloadAggressively)
       throws NoSuchMethodException {
     ClassSubject superInterface = inspector.clazz(SuperInterface.class);
-    assertThat(superInterface, isRenamed());
+    assertThat(superInterface, isPresentAndRenamed());
     MethodSubject foo1 = superInterface.uniqueMethodWithName("foo");
-    assertThat(foo1, isRenamed());
+    assertThat(foo1, isPresentAndRenamed());
     ClassSubject subInterface = inspector.clazz(SubInterface.class);
-    assertThat(subInterface, isRenamed());
+    assertThat(subInterface, isPresentAndRenamed());
     MethodSubject foo2 = subInterface.method(SubInterface.class.getDeclaredMethod("foo"));
-    assertThat(foo2, isRenamed());
+    assertThat(foo2, isPresentAndRenamed());
     if (overloadAggressively && parameters.isDexRuntime()) {
       assertNotEquals(foo1.getFinalName(), foo2.getFinalName());
     } else {
diff --git a/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeTest.java b/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeTest.java
index 6cb9837..5d11b24 100644
--- a/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeTest.java
+++ b/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeTest.java
@@ -5,7 +5,7 @@
 package com.android.tools.r8.naming;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -83,7 +83,7 @@
     Set<String> minifiedMethodNames = new HashSet<>();
     for (Set<MethodSubject> methodSubjects : methodSubjectsByName.values()) {
       for (MethodSubject methodSubject : methodSubjects) {
-        assertThat(methodSubject, isRenamed());
+        assertThat(methodSubject, isPresentAndRenamed());
         minifiedMethodNames.add(methodSubject.getFinalName());
       }
     }
diff --git a/src/test/java/com/android/tools/r8/naming/EnumMinification.java b/src/test/java/com/android/tools/r8/naming/EnumMinification.java
index 177a7f0..6a5ff3e 100644
--- a/src/test/java/com/android/tools/r8/naming/EnumMinification.java
+++ b/src/test/java/com/android/tools/r8/naming/EnumMinification.java
@@ -5,7 +5,8 @@
 package com.android.tools.r8.naming;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 
@@ -65,12 +66,14 @@
     ClassSubject clazz = inspector.clazz(enumTypeName);
     // The class and fields - including field $VALUES and method valueOf - can be renamed. Only
     // the values() method needs to be
-    assertThat(clazz, isRenamed());
-    assertThat(clazz.uniqueFieldWithName("VALUE1"), isRenamed());
-    assertThat(clazz.uniqueFieldWithName("VALUE2"), isRenamed());
-    assertThat(clazz.uniqueFieldWithName("$VALUES"), isRenamed());
-    assertThat(clazz.uniqueMethodWithName("valueOf"), valueOfKept ? isRenamed() : not(isPresent()));
-    assertThat(clazz.uniqueMethodWithName("values"), not(isRenamed()));
+    assertThat(clazz, isPresentAndRenamed());
+    assertThat(clazz.uniqueFieldWithName("VALUE1"), isPresentAndRenamed());
+    assertThat(clazz.uniqueFieldWithName("VALUE2"), isPresentAndRenamed());
+    assertThat(clazz.uniqueFieldWithName("$VALUES"), isPresentAndRenamed());
+    assertThat(
+        clazz.uniqueMethodWithName("valueOf"),
+        valueOfKept ? isPresentAndRenamed() : not(isPresent()));
+    assertThat(clazz.uniqueMethodWithName("values"), isPresentAndNotRenamed());
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/naming/ForNameRenamingTest.java b/src/test/java/com/android/tools/r8/naming/ForNameRenamingTest.java
index 1d776b5..c69ecd0 100644
--- a/src/test/java/com/android/tools/r8/naming/ForNameRenamingTest.java
+++ b/src/test/java/com/android/tools/r8/naming/ForNameRenamingTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.naming;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -48,8 +48,7 @@
 
   private void inspect(CodeInspector inspector) {
     ClassSubject boo = inspector.clazz(Boo.class);
-    assertThat(boo, isPresent());
-    assertThat(boo, isRenamed());
+    assertThat(boo, isPresentAndRenamed());
 
     ClassSubject main = inspector.clazz(MAIN);
     assertThat(main, isPresent());
diff --git a/src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java b/src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
index 5eca4d1..f72abf5 100644
--- a/src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
+++ b/src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
@@ -4,8 +4,7 @@
 package com.android.tools.r8.naming;
 
 import static com.android.tools.r8.utils.DescriptorUtils.getPackageNameFromDescriptor;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -44,15 +43,13 @@
 
     public void inspect(CodeInspector inspector) {
       ClassSubject top = inspector.clazz(Top.class);
-      assertThat(top, isPresent());
-      assertThat(top, isRenamed());
+      assertThat(top, isPresentAndRenamed());
       assertEquals(
           getPackageNameFromDescriptor(top.getOriginalDescriptor()),
           getPackageNameFromDescriptor(top.getFinalDescriptor()));
 
       ClassSubject sub = inspector.clazz(SubClass.class);
-      assertThat(sub, isPresent());
-      assertThat(sub, isRenamed());
+      assertThat(sub, isPresentAndRenamed());
       switch (this) {
         case SINGLE_ASTERISK:
           assertNotEquals(
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 bcb02da..07dad43 100644
--- a/src/test/java/com/android/tools/r8/naming/MinifierClassSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MinifierClassSignatureTest.java
@@ -5,7 +5,7 @@
 package com.android.tools.r8.naming;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -327,13 +327,13 @@
                     .setProguardMapConsumer(StringConsumer.emptyConsumer())
                     .build()));
     // All classes are kept, and renamed.
-    assertThat(inspector.clazz("Simple"), isRenamed());
-    assertThat(inspector.clazz("Base"), isRenamed());
-    assertThat(inspector.clazz("Outer"), isRenamed());
-    assertThat(inspector.clazz("Outer$Inner"), isRenamed());
-    assertThat(inspector.clazz("Outer$ExtendsInner"), isRenamed());
-    assertThat(inspector.clazz("Outer$Inner$InnerInner"), isRenamed());
-    assertThat(inspector.clazz("Outer$Inner$ExtendsInnerInner"), isRenamed());
+    assertThat(inspector.clazz("Simple"), isPresentAndRenamed());
+    assertThat(inspector.clazz("Base"), isPresentAndRenamed());
+    assertThat(inspector.clazz("Outer"), isPresentAndRenamed());
+    assertThat(inspector.clazz("Outer$Inner"), isPresentAndRenamed());
+    assertThat(inspector.clazz("Outer$ExtendsInner"), isPresentAndRenamed());
+    assertThat(inspector.clazz("Outer$Inner$InnerInner"), isPresentAndRenamed());
+    assertThat(inspector.clazz("Outer$Inner$ExtendsInnerInner"), isPresentAndRenamed());
 
     // Test that classes with have their original signature if the default was provided.
     if (!signatures.containsKey("Simple")) {
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 5737496..12b18e4 100644
--- a/src/test/java/com/android/tools/r8/naming/MinifierFieldSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MinifierFieldSignatureTest.java
@@ -5,7 +5,7 @@
 package com.android.tools.r8.naming;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -193,8 +193,8 @@
                     .build()));
     // All classes are kept, and renamed.
     ClassSubject clazz = inspector.clazz("Fields");
-    assertThat(clazz, isRenamed());
-    assertThat(inspector.clazz("Fields$Inner"), isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
+    assertThat(inspector.clazz("Fields$Inner"), isPresentAndRenamed());
 
     FieldSubject anX = lookupAnX(inspector);
     FieldSubject anArrayOfX = lookupAnArrayOfX(inspector);
@@ -202,10 +202,10 @@
     FieldSubject aFieldsOfXInner = clazz.field("Fields$Inner", "aFieldsOfXInner");
 
     // Check that all fields have been renamed
-    assertThat(anX, isRenamed());
-    assertThat(anArrayOfX, isRenamed());
-    assertThat(aFieldsOfX, isRenamed());
-    assertThat(aFieldsOfXInner, isRenamed());
+    assertThat(anX, isPresentAndRenamed());
+    assertThat(anArrayOfX, isPresentAndRenamed());
+    assertThat(aFieldsOfX, isPresentAndRenamed());
+    assertThat(aFieldsOfXInner, isPresentAndRenamed());
 
     //System.out.println(generic.getFinalSignatureAttribute());
     //System.out.println(generic.getOriginalSignatureAttribute());
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 b19ed16..a275bdb 100644
--- a/src/test/java/com/android/tools/r8/naming/MinifierMethodSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MinifierMethodSignatureTest.java
@@ -5,7 +5,7 @@
 package com.android.tools.r8.naming;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -215,8 +215,8 @@
                     .build()));
     // All classes are kept, and renamed.
     ClassSubject clazz = inspector.clazz("Methods");
-    assertThat(clazz, isRenamed());
-    assertThat(inspector.clazz("Methods$Inner"), isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
+    assertThat(inspector.clazz("Methods$Inner"), isPresentAndRenamed());
 
     MethodSubject generic = lookupGeneric(inspector);
     MethodSubject parameterizedReturn = lookupParameterizedReturn(inspector);
@@ -225,10 +225,10 @@
         clazz.method("void", "parametrizedThrows", ImmutableList.of());
 
     // Check that all methods have been renamed
-    assertThat(generic, isRenamed());
-    assertThat(parameterizedReturn, isRenamed());
-    assertThat(parameterizedArguments, isRenamed());
-    assertThat(parametrizedThrows, isRenamed());
+    assertThat(generic, isPresentAndRenamed());
+    assertThat(parameterizedReturn, isPresentAndRenamed());
+    assertThat(parameterizedArguments, isPresentAndRenamed());
+    assertThat(parametrizedThrows, isPresentAndRenamed());
 
     // Test that methods have their original signature if the default was provided.
     if (!signatures.containsKey("generic")) {
diff --git a/src/test/java/com/android/tools/r8/naming/OverloadedReservedFieldNamingTest.java b/src/test/java/com/android/tools/r8/naming/OverloadedReservedFieldNamingTest.java
index 18bc136..11c9154 100644
--- a/src/test/java/com/android/tools/r8/naming/OverloadedReservedFieldNamingTest.java
+++ b/src/test/java/com/android/tools/r8/naming/OverloadedReservedFieldNamingTest.java
@@ -5,8 +5,7 @@
 package com.android.tools.r8.naming;
 
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -59,8 +58,7 @@
     assertThat(classSubject, isPresent());
 
     FieldSubject fieldSubject = classSubject.uniqueFieldWithName("a");
-    assertThat(fieldSubject, isPresent());
-    assertThat(fieldSubject, not(isRenamed()));
+    assertThat(fieldSubject, isPresentAndNotRenamed());
 
     FieldSubject helloFieldSubject = classSubject.uniqueFieldWithName("hello");
     assertThat(helloFieldSubject, isPresent());
diff --git a/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSubClassTest.java b/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSubClassTest.java
index 943e4bf..67b86ce 100644
--- a/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSubClassTest.java
+++ b/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSubClassTest.java
@@ -4,8 +4,8 @@
 package com.android.tools.r8.naming;
 
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -102,40 +102,40 @@
     assertThat(aFieldSubject, isPresent());
 
     if (reserveName) {
-      assertThat(f1FieldSubject, isRenamed());
+      assertThat(f1FieldSubject, isPresentAndRenamed());
       assertEquals("e", f1FieldSubject.getFinalName());
 
-      assertThat(f2FieldSubject, isRenamed());
+      assertThat(f2FieldSubject, isPresentAndRenamed());
       assertEquals("f", f2FieldSubject.getFinalName());
 
-      assertThat(f3FieldSubject, isRenamed());
+      assertThat(f3FieldSubject, isPresentAndRenamed());
       assertEquals("b", f3FieldSubject.getFinalName());
 
-      assertThat(f4FieldSubject, isRenamed());
+      assertThat(f4FieldSubject, isPresentAndRenamed());
       assertEquals("c", f4FieldSubject.getFinalName());
 
-      assertThat(f5FieldSubject, isRenamed());
+      assertThat(f5FieldSubject, isPresentAndRenamed());
       assertEquals("d", f5FieldSubject.getFinalName());
 
       // B.a should not be renamed because it is not allowed to be minified.
-      assertThat(aFieldSubject, not(isRenamed()));
+      assertThat(aFieldSubject, isPresentAndNotRenamed());
     } else {
-      assertThat(f1FieldSubject, isRenamed());
+      assertThat(f1FieldSubject, isPresentAndRenamed());
       assertEquals("d", f1FieldSubject.getFinalName());
 
-      assertThat(f2FieldSubject, isRenamed());
+      assertThat(f2FieldSubject, isPresentAndRenamed());
       assertEquals("e", f2FieldSubject.getFinalName());
 
-      assertThat(f3FieldSubject, isRenamed());
+      assertThat(f3FieldSubject, isPresentAndRenamed());
       assertEquals("a", f3FieldSubject.getFinalName());
 
-      assertThat(f4FieldSubject, isRenamed());
+      assertThat(f4FieldSubject, isPresentAndRenamed());
       assertEquals("b", f4FieldSubject.getFinalName());
 
-      assertThat(f5FieldSubject, isRenamed());
+      assertThat(f5FieldSubject, isPresentAndRenamed());
       assertEquals("c", f5FieldSubject.getFinalName());
 
-      assertThat(aFieldSubject, isRenamed());
+      assertThat(aFieldSubject, isPresentAndRenamed());
       assertEquals("f", aFieldSubject.getFinalName());
     }
   }
diff --git a/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSubInterfaceTest.java b/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSubInterfaceTest.java
index 309c156..89804e8 100644
--- a/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSubInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSubInterfaceTest.java
@@ -4,8 +4,8 @@
 package com.android.tools.r8.naming;
 
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assume.assumeFalse;
@@ -69,13 +69,13 @@
 
     FieldSubject f1FieldSubject = iClassSubject.uniqueFieldWithName("f1");
     assertThat(f1FieldSubject, isPresent());
-    assertThat(f1FieldSubject, isRenamed());
+    assertThat(f1FieldSubject, isPresentAndRenamed());
 
     FieldSubject aFieldSubject = jClassSubject.uniqueFieldWithName("a");
     assertThat(aFieldSubject, isPresent());
 
     if (reserveName) {
-      assertThat(aFieldSubject, not(isRenamed()));
+      assertThat(aFieldSubject, isPresentAndNotRenamed());
 
       // Interface fields are visited/renamed before fields on classes. Thus, the interface field
       // I.f1 will be visited first and assigned the name b (since the name a is reserved).
@@ -88,7 +88,7 @@
 
       // The interface field J.a will be visited after I.f1, and will therefore be assigned the name
       // b.
-      assertThat(aFieldSubject, isRenamed());
+      assertThat(aFieldSubject, isPresentAndRenamed());
       assertEquals("b", aFieldSubject.getFinalName());
     }
 
@@ -121,7 +121,7 @@
 
     FieldSubject f2FieldSubject = aClassSubject.uniqueFieldWithName("f2");
     assertThat(f2FieldSubject, isPresent());
-    assertThat(f2FieldSubject, isRenamed());
+    assertThat(f2FieldSubject, isPresentAndRenamed());
 
     assertEquals(expectedNameForF2, f2FieldSubject.getFinalName());
   }
diff --git a/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSuperClassTest.java b/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSuperClassTest.java
index c687947..e7f32e3 100644
--- a/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSuperClassTest.java
+++ b/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSuperClassTest.java
@@ -4,8 +4,8 @@
 package com.android.tools.r8.naming;
 
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
@@ -63,7 +63,7 @@
     // Fields are visited/renamed according to the class hierarchy order. Thus, the field A.a will
     // be visited first and assigned the name a. As it ends up receiving the same name as in the
     // original program, it has not technically been renamed.
-    assertThat(aFieldSubject, not(isRenamed()));
+    assertThat(aFieldSubject, isPresentAndNotRenamed());
 
     inspect(inspector);
   }
@@ -90,16 +90,14 @@
     assertThat(aSub1ClassSubject, isPresent());
 
     FieldSubject fooFieldSubject = aSub1ClassSubject.uniqueFieldWithName("foo");
-    assertThat(fooFieldSubject, isPresent());
-    assertThat(fooFieldSubject, isRenamed());
+    assertThat(fooFieldSubject, isPresentAndRenamed());
     assertNotEquals("a", fooFieldSubject.getFinalName());
 
     ClassSubject aSub2ClassSubject = inspector.clazz(ASub2.class);
     assertThat(aSub2ClassSubject, isPresent());
 
     FieldSubject barFieldSubject = aSub2ClassSubject.uniqueFieldWithName("bar");
-    assertThat(barFieldSubject, isPresent());
-    assertThat(barFieldSubject, isRenamed());
+    assertThat(barFieldSubject, isPresentAndRenamed());
     assertNotEquals("a", barFieldSubject.getFinalName());
 
     // Verify that ASub1.foo and ASub2.bar has been renamed to the same name.
diff --git a/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSuperInterfaceTest.java b/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSuperInterfaceTest.java
index 4af8655..599799e 100644
--- a/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSuperInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/naming/ReservedFieldNameInSuperInterfaceTest.java
@@ -4,8 +4,8 @@
 package com.android.tools.r8.naming;
 
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assume.assumeFalse;
@@ -66,7 +66,7 @@
     // Interface fields are visited/renamed before fields on classes. Thus, the interface field I.a
     // will be visited first and assigned the name a. As it ends up receiving the same name as in
     // the input program, it has not technically been renamed.
-    assertThat(aFieldSubject, not(isRenamed()));
+    assertThat(aFieldSubject, isPresentAndNotRenamed());
 
     inspect(inspector);
   }
@@ -95,7 +95,7 @@
 
     FieldSubject f1FieldSubject = jClassSubject.uniqueFieldWithName("f1");
     assertThat(f1FieldSubject, isPresent());
-    assertThat(f1FieldSubject, isRenamed());
+    assertThat(f1FieldSubject, isPresentAndRenamed());
     assertEquals("b", f1FieldSubject.getFinalName());
 
     ClassSubject aClassSubject = inspector.clazz(A.class);
@@ -103,7 +103,7 @@
 
     FieldSubject f2FieldSubject = aClassSubject.uniqueFieldWithName("f2");
     assertThat(f2FieldSubject, isPresent());
-    assertThat(f2FieldSubject, isRenamed());
+    assertThat(f2FieldSubject, isPresentAndRenamed());
     assertEquals("c", f2FieldSubject.getFinalName());
   }
 
diff --git a/src/test/java/com/android/tools/r8/naming/applymapping/ApplyMappingDesugarLambdaTest.java b/src/test/java/com/android/tools/r8/naming/applymapping/ApplyMappingDesugarLambdaTest.java
index e0d117f..0d0af87 100644
--- a/src/test/java/com/android/tools/r8/naming/applymapping/ApplyMappingDesugarLambdaTest.java
+++ b/src/test/java/com/android/tools/r8/naming/applymapping/ApplyMappingDesugarLambdaTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.naming.applymapping;
 
 import static com.android.tools.r8.Collectors.toSingle;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertNotSame;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -58,7 +58,7 @@
             .compile()
             .inspect(
                 inspector -> {
-                  assertThat(inspector.clazz(A.class), isRenamed());
+                  assertThat(inspector.clazz(A.class), isPresentAndRenamed());
                   assertEquals(finalName, inspector.clazz(A.class).getFinalName());
                 });
 
diff --git a/src/test/java/com/android/tools/r8/naming/applymapping/sourcelibrary/MemberResolutionAsmTest.java b/src/test/java/com/android/tools/r8/naming/applymapping/sourcelibrary/MemberResolutionAsmTest.java
index 837c7df..1d188fb 100644
--- a/src/test/java/com/android/tools/r8/naming/applymapping/sourcelibrary/MemberResolutionAsmTest.java
+++ b/src/test/java/com/android/tools/r8/naming/applymapping/sourcelibrary/MemberResolutionAsmTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.naming.applymapping.sourcelibrary;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -113,18 +113,15 @@
             .inspector();
 
     ClassSubject base = codeInspector.clazz("HasMapping");
-    assertThat(base, isPresent());
-    assertThat(base, isRenamed());
+    assertThat(base, isPresentAndRenamed());
     assertEquals("X", base.getFinalName());
     MethodSubject x = base.method("void", "foo", ImmutableList.of());
-    assertThat(x, isPresent());
-    assertThat(x, isRenamed());
+    assertThat(x, isPresentAndRenamed());
     assertEquals("a", x.getFinalName());
 
     // To ensure still getting illegal-access error we need to rename consistently.
     ClassSubject sub = codeInspector.clazz("NoMapping");
-    assertThat(sub, isPresent());
-    assertThat(sub, isRenamed());
+    assertThat(sub, isPresentAndRenamed());
     assertEquals("Y", sub.getFinalName());
     MethodSubject y = sub.method("void", "a", ImmutableList.of());
     assertThat(y, isPresent());
@@ -212,17 +209,14 @@
 
     CodeInspector codeInspector = compileResult.inspector();
     ClassSubject base = codeInspector.clazz("A");
-    assertThat(base, isPresent());
-    assertThat(base, isRenamed());
+    assertThat(base, isPresentAndRenamed());
     assertEquals("X", base.getFinalName());
     MethodSubject x = base.method("void", "x", ImmutableList.of());
-    assertThat(x, isPresent());
-    assertThat(x, isRenamed());
+    assertThat(x, isPresentAndRenamed());
     assertEquals("y", x.getFinalName());
 
     ClassSubject sub = codeInspector.clazz("B");
-    assertThat(sub, isPresent());
-    assertThat(sub, isRenamed());
+    assertThat(sub, isPresentAndRenamed());
     assertEquals("Y", sub.getFinalName());
     MethodSubject subX = sub.method("void", "x", ImmutableList.of());
     assertThat(subX, not(isPresent()));
diff --git a/src/test/java/com/android/tools/r8/naming/applymapping/sourcelibrary/MemberResolutionTest.java b/src/test/java/com/android/tools/r8/naming/applymapping/sourcelibrary/MemberResolutionTest.java
index 3b683fa..725c5a9 100644
--- a/src/test/java/com/android/tools/r8/naming/applymapping/sourcelibrary/MemberResolutionTest.java
+++ b/src/test/java/com/android/tools/r8/naming/applymapping/sourcelibrary/MemberResolutionTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.naming.applymapping.sourcelibrary;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -133,23 +133,19 @@
     ClassSubject base = inspector.clazz(AbstractChecker.class);
     assertThat(base, isPresent());
     FieldSubject p = base.field("java.lang.String", "tag");
-    assertThat(p, isPresent());
-    assertThat(p, isRenamed());
+    assertThat(p, isPresentAndRenamed());
     assertEquals("p", p.getFinalName());
     MethodSubject x = base.method("void", "check", ImmutableList.of());
-    assertThat(x, isPresent());
-    assertThat(x, isRenamed());
+    assertThat(x, isPresentAndRenamed());
     assertEquals("x", x.getFinalName());
 
     ClassSubject sub = inspector.clazz(ConcreteChecker.class);
     assertThat(sub, isPresent());
     FieldSubject q = sub.field("java.lang.String", "tag");
-    assertThat(q, isPresent());
-    assertThat(q, isRenamed());
+    assertThat(q, isPresentAndRenamed());
     assertEquals("q", q.getFinalName());
     MethodSubject y = sub.method("void", "check", ImmutableList.of());
-    assertThat(y, isPresent());
-    assertThat(y, isRenamed());
+    assertThat(y, isPresentAndRenamed());
     assertEquals("y", y.getFinalName());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/naming/b116840216/ReserveOuterClassNameTest.java b/src/test/java/com/android/tools/r8/naming/b116840216/ReserveOuterClassNameTest.java
index d138e1b..5da3af5 100644
--- a/src/test/java/com/android/tools/r8/naming/b116840216/ReserveOuterClassNameTest.java
+++ b/src/test/java/com/android/tools/r8/naming/b116840216/ReserveOuterClassNameTest.java
@@ -3,9 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.naming.b116840216;
 
-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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import com.android.tools.r8.CompatProguardCommandBuilder;
@@ -89,25 +88,19 @@
 
     CodeInspector inspector = new CodeInspector(processedApp);
     ClassSubject mainSubject = inspector.clazz(mainClass);
-    assertThat(mainSubject, isPresent());
-    assertThat(mainSubject, not(isRenamed()));
+    assertThat(mainSubject, isPresentAndNotRenamed());
     MethodSubject mainMethod = mainSubject.mainMethod();
-    assertThat(mainMethod, isPresent());
-    assertThat(mainMethod, not(isRenamed()));
+    assertThat(mainMethod, isPresentAndNotRenamed());
 
     ClassSubject outer = inspector.clazz(Outer.class);
-    assertThat(outer, isPresent());
-    assertThat(outer, not(isRenamed()));
+    assertThat(outer, isPresentAndNotRenamed());
     MethodSubject bar = outer.method("void", "bar", ImmutableList.of());
-    assertThat(bar, isPresent());
-    assertThat(bar, isRenamed());
+    assertThat(bar, isPresentAndRenamed());
 
     ClassSubject inner = inspector.clazz(Outer.Inner.class);
-    assertThat(inner, isPresent());
-    assertThat(inner, not(isRenamed()));
+    assertThat(inner, isPresentAndNotRenamed());
     MethodSubject foo = inner.method("void", "foo", ImmutableList.of());
-    assertThat(foo, isPresent());
-    assertThat(foo, isRenamed());
+    assertThat(foo, isPresentAndRenamed());
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/naming/b124357885/B124357885Test.java b/src/test/java/com/android/tools/r8/naming/b124357885/B124357885Test.java
index e1cd05a..18d0719 100644
--- a/src/test/java/com/android/tools/r8/naming/b124357885/B124357885Test.java
+++ b/src/test/java/com/android/tools/r8/naming/b124357885/B124357885Test.java
@@ -4,9 +4,9 @@
 
 package com.android.tools.r8.naming.b124357885;
 
-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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -68,23 +68,25 @@
 
   @Test
   public void test() throws Exception {
-    R8TestCompileResult compileResult = testForR8(Backend.DEX)
-        .addProgramClasses(Main.class, Service.class, Foo.class, FooImpl.class)
-        .addKeepMainRule(Main.class)
-        .addKeepRules("-keepattributes Signature,InnerClasses,EnclosingMethod")
-        .minification(minification)
-        .compile()
-        .inspect(inspector -> {
-          assertThat(inspector.clazz(Main.class), isNotRenamed());
-          assertThat(inspector.clazz(Service.class), isRenamed(minification));
-          assertThat(inspector.clazz(Foo.class), not(isPresent()));
-          assertThat(inspector.clazz(FooImpl.class), isRenamed(minification));
-          // TODO(124477502): Using uniqueMethodWithName("fooList") does not work.
-          assertEquals(1, inspector.clazz(Service.class).allMethods().size());
-          MethodSubject fooList = inspector.clazz(Service.class).allMethods().get(0);
-          AnnotationSubject signature = fooList.annotation("dalvik.annotation.Signature");
-          checkSignatureAnnotation(inspector, signature);
-        });
+    R8TestCompileResult compileResult =
+        testForR8(Backend.DEX)
+            .addProgramClasses(Main.class, Service.class, Foo.class, FooImpl.class)
+            .addKeepMainRule(Main.class)
+            .addKeepRules("-keepattributes Signature,InnerClasses,EnclosingMethod")
+            .minification(minification)
+            .compile()
+            .inspect(
+                inspector -> {
+                  assertThat(inspector.clazz(Main.class), isPresentAndNotRenamed());
+                  assertThat(inspector.clazz(Service.class), isPresentAndRenamed(minification));
+                  assertThat(inspector.clazz(Foo.class), not(isPresent()));
+                  assertThat(inspector.clazz(FooImpl.class), isPresentAndRenamed(minification));
+                  // TODO(124477502): Using uniqueMethodWithName("fooList") does not work.
+                  assertEquals(1, inspector.clazz(Service.class).allMethods().size());
+                  MethodSubject fooList = inspector.clazz(Service.class).allMethods().get(0);
+                  AnnotationSubject signature = fooList.annotation("dalvik.annotation.Signature");
+                  checkSignatureAnnotation(inspector, signature);
+                });
 
         String fooImplFinalName = compileResult.inspector().clazz(FooImpl.class).getFinalName();
 
diff --git a/src/test/java/com/android/tools/r8/naming/b126592786/B126592786.java b/src/test/java/com/android/tools/r8/naming/b126592786/B126592786.java
index 2f909be..78f0d0c 100644
--- a/src/test/java/com/android/tools/r8/naming/b126592786/B126592786.java
+++ b/src/test/java/com/android/tools/r8/naming/b126592786/B126592786.java
@@ -5,7 +5,7 @@
 package com.android.tools.r8.naming.b126592786;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -55,19 +55,20 @@
             "}",
             "-keepattributes InnerClasses,EnclosingMethod,Signature ")
         .compile()
-        .inspect(inspector -> {
-            String genericTypeDescriptor = "Ljava/lang/Object;";
-            if (genericTypeLive) {
-              ClassSubject genericType = inspector.clazz(GenericType.class);
-              assertThat(genericType, isRenamed(minify));
-              genericTypeDescriptor = genericType.getFinalDescriptor();
-            }
-            String expectedSignature = "Ljava/util/List<" + genericTypeDescriptor + ">;";
-            FieldSubject list = inspector.clazz(A.class).uniqueFieldWithName("list");
-            assertThat(list, isPresent());
-            assertThat(list.getSignatureAnnotation(), isPresent());
-            assertEquals(expectedSignature, list.getSignatureAnnotationValue());
-        })
+        .inspect(
+            inspector -> {
+              String genericTypeDescriptor = "Ljava/lang/Object;";
+              if (genericTypeLive) {
+                ClassSubject genericType = inspector.clazz(GenericType.class);
+                assertThat(genericType, isPresentAndRenamed(minify));
+                genericTypeDescriptor = genericType.getFinalDescriptor();
+              }
+              String expectedSignature = "Ljava/util/List<" + genericTypeDescriptor + ">;";
+              FieldSubject list = inspector.clazz(A.class).uniqueFieldWithName("list");
+              assertThat(list, isPresent());
+              assertThat(list.getSignatureAnnotation(), isPresent());
+              assertEquals(expectedSignature, list.getSignatureAnnotationValue());
+            })
         .run(mainClass)
         .assertSuccess();
   }
diff --git a/src/test/java/com/android/tools/r8/naming/b128656974/B128656974.java b/src/test/java/com/android/tools/r8/naming/b128656974/B128656974.java
index f063f9e..56ed80c 100644
--- a/src/test/java/com/android/tools/r8/naming/b128656974/B128656974.java
+++ b/src/test/java/com/android/tools/r8/naming/b128656974/B128656974.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.naming.b128656974;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertNotEquals;
 
@@ -40,8 +40,7 @@
               ClassSubject greetingBase = inspector.clazz(Greeting.getGreetingBase());
               assertThat(greetingBase, isPresent());
               FieldSubject greeting = greetingBase.uniqueFieldWithName("greeting");
-              assertThat(greeting, isPresent());
-              assertThat(greeting, isRenamed());
+              assertThat(greeting, isPresentAndRenamed());
               assertNotEquals("a", greeting.getFinalName());
             });
   }
@@ -88,8 +87,7 @@
               ClassSubject base = inspector.clazz(TestClassBase.class);
               assertThat(base, isPresent());
               MethodSubject foo = base.uniqueMethodWithName("foo");
-              assertThat(foo, isPresent());
-              assertThat(foo, isRenamed());
+              assertThat(foo, isPresentAndRenamed());
               assertNotEquals("a", foo.getFinalName());
             });
   }
diff --git a/src/test/java/com/android/tools/r8/naming/b130791310/B130791310.java b/src/test/java/com/android/tools/r8/naming/b130791310/B130791310.java
index d8f3910..bb27506 100644
--- a/src/test/java/com/android/tools/r8/naming/b130791310/B130791310.java
+++ b/src/test/java/com/android/tools/r8/naming/b130791310/B130791310.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.naming.b130791310;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assume.assumeFalse;
@@ -110,13 +110,11 @@
 
   private void inspect(CodeInspector inspector, boolean isR8) {
     ClassSubject holder = inspector.clazz(SomeLogic.class);
-    assertThat(holder, isPresent());
-    assertThat(holder, not(isRenamed()));
+    assertThat(holder, isPresentAndNotRenamed());
     MethodSubject someMethod = holder.uniqueMethodWithName("someMethod");
     if (isR8) {
       if (onlyForceInlining) {
-        assertThat(someMethod, isPresent());
-        assertThat(someMethod, not(isRenamed()));
+        assertThat(someMethod, isPresentAndNotRenamed());
       } else {
         assertThat(someMethod, not(isPresent()));
       }
@@ -126,8 +124,7 @@
         // method signature modification.
         assertThat(someMethod, not(isPresent()));
       } else {
-        assertThat(someMethod, isPresent());
-        assertThat(someMethod, not(isRenamed()));
+        assertThat(someMethod, isPresentAndNotRenamed());
       }
     }
   }
diff --git a/src/test/java/com/android/tools/r8/naming/b133686361/AlreadyRenamedAbstractMethodRenamingTest.java b/src/test/java/com/android/tools/r8/naming/b133686361/AlreadyRenamedAbstractMethodRenamingTest.java
index d104210..7cda3cd 100644
--- a/src/test/java/com/android/tools/r8/naming/b133686361/AlreadyRenamedAbstractMethodRenamingTest.java
+++ b/src/test/java/com/android/tools/r8/naming/b133686361/AlreadyRenamedAbstractMethodRenamingTest.java
@@ -3,9 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.naming.b133686361;
 
-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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -88,26 +87,20 @@
 
   private void inspect(CodeInspector inspector) {
     ClassSubject base = inspector.clazz(Base.class);
-    assertThat(base, isPresent());
-    assertThat(base, isRenamed());
+    assertThat(base, isPresentAndRenamed());
     MethodSubject a = base.uniqueMethodWithName("a");
-    assertThat(a, isPresent());
-    assertThat(a, not(isRenamed()));
+    assertThat(a, isPresentAndNotRenamed());
 
     ClassSubject sub1 = inspector.clazz(Sub1.class);
-    assertThat(sub1, isPresent());
-    assertThat(sub1, isRenamed());
+    assertThat(sub1, isPresentAndRenamed());
     MethodSubject aInSub1 = sub1.uniqueMethodWithName("a");
-    assertThat(aInSub1, isPresent());
-    assertThat(aInSub1, not(isRenamed()));
+    assertThat(aInSub1, isPresentAndNotRenamed());
     assertEquals(a.getFinalName(), aInSub1.getFinalName());
 
     ClassSubject sub2 = inspector.clazz(Sub1.class);
-    assertThat(sub2, isPresent());
-    assertThat(sub2, isRenamed());
+    assertThat(sub2, isPresentAndRenamed());
     MethodSubject aInSub2 = sub2.uniqueMethodWithName("a");
-    assertThat(aInSub2, isPresent());
-    assertThat(aInSub2, not(isRenamed()));
+    assertThat(aInSub2, isPresentAndNotRenamed());
     assertEquals(a.getFinalName(), aInSub2.getFinalName());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/naming/identifiernamestring/ClassNameComparisonSwitchTest.java b/src/test/java/com/android/tools/r8/naming/identifiernamestring/ClassNameComparisonSwitchTest.java
index 97a96cc..81038cf 100644
--- a/src/test/java/com/android/tools/r8/naming/identifiernamestring/ClassNameComparisonSwitchTest.java
+++ b/src/test/java/com/android/tools/r8/naming/identifiernamestring/ClassNameComparisonSwitchTest.java
@@ -4,8 +4,7 @@
 
 package com.android.tools.r8.naming.identifiernamestring;
 
-import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -51,8 +50,7 @@
   private void verifyClassesHaveBeenMinified(CodeInspector inspector) {
     for (Class<?> clazz : ImmutableList.of(A.class, B.class, C.class)) {
       ClassSubject classSubject = inspector.clazz(clazz);
-      assertThat(classSubject, isPresent());
-      assertThat(classSubject, isRenamed());
+      assertThat(classSubject, isPresentAndRenamed());
     }
   }
 
diff --git a/src/test/java/com/android/tools/r8/proguard/NonExistingConfigFileTest.java b/src/test/java/com/android/tools/r8/proguard/NonExistingConfigFileTest.java
index 7d0dc70..b241eff 100644
--- a/src/test/java/com/android/tools/r8/proguard/NonExistingConfigFileTest.java
+++ b/src/test/java/com/android/tools/r8/proguard/NonExistingConfigFileTest.java
@@ -3,8 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.proguard;
 
-import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.fail;
@@ -28,11 +27,11 @@
         .addKeepRuleFiles(pg)
         .compile()
         .assertNoMessages()
-        .inspect(inspector -> {
-          ClassSubject clazz = inspector.clazz(TestClass.class);
-          assertThat(clazz, isPresent());
-          assertThat(clazz, isRenamed());
-        });
+        .inspect(
+            inspector -> {
+              ClassSubject clazz = inspector.clazz(TestClass.class);
+              assertThat(clazz, isPresentAndRenamed());
+            });
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java b/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java
index b7017e7..ddaf47f 100644
--- a/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/AsterisksTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.shaking;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -75,11 +75,9 @@
     );
     CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
     ClassSubject classSubject = codeInspector.clazz(B111974287.class);
-    assertThat(classSubject, isPresent());
-    assertThat(classSubject, not(isRenamed()));
+    assertThat(classSubject, isPresentAndNotRenamed());
     FieldSubject fieldSubject = classSubject.field(B111974287.class.getTypeName(), "self");
-    assertThat(fieldSubject, isPresent());
-    assertThat(fieldSubject, not(isRenamed()));
+    assertThat(fieldSubject, isPresentAndNotRenamed());
     fieldSubject = classSubject.field(B111974287.class.getTypeName() + "[]", "clones");
     // TODO(b/111974287): Proguard6 kept and renamed the field with array type.
     if (shrinker == Shrinker.PROGUARD6) {
@@ -97,16 +95,14 @@
     );
     CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
     ClassSubject classSubject = codeInspector.clazz(B111974287.class);
-    assertThat(classSubject, isPresent());
-    assertThat(classSubject, not(isRenamed()));
+    assertThat(classSubject, isPresentAndNotRenamed());
     DexClass clazz = classSubject.getDexProgramClass();
     assertEquals(3, clazz.getMethodCollection().numberOfVirtualMethods());
     for (DexEncodedMethod encodedMethod : clazz.virtualMethods()) {
       assertTrue(encodedMethod.method.name.toString().startsWith("foo"));
       MethodSubject methodSubject =
           classSubject.method(MethodSignature.fromDexMethod(encodedMethod.method));
-      assertThat(methodSubject, isPresent());
-      assertThat(methodSubject, not(isRenamed()));
+      assertThat(methodSubject, isPresentAndNotRenamed());
     }
   }
 
@@ -119,14 +115,11 @@
     );
     CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
     ClassSubject classSubject = codeInspector.clazz(B111974287.class);
-    assertThat(classSubject, isPresent());
-    assertThat(classSubject, not(isRenamed()));
+    assertThat(classSubject, isPresentAndNotRenamed());
     FieldSubject fieldSubject = classSubject.field(B111974287.class.getTypeName(), "self");
-    assertThat(fieldSubject, isPresent());
-    assertThat(fieldSubject, not(isRenamed()));
+    assertThat(fieldSubject, isPresentAndNotRenamed());
     fieldSubject = classSubject.field(B111974287.class.getTypeName() + "[]", "clones");
-    assertThat(fieldSubject, isPresent());
-    assertThat(fieldSubject, not(isRenamed()));
+    assertThat(fieldSubject, isPresentAndNotRenamed());
   }
 
   @Test
@@ -138,16 +131,14 @@
     );
     CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
     ClassSubject classSubject = codeInspector.clazz(B111974287.class);
-    assertThat(classSubject, isPresent());
-    assertThat(classSubject, not(isRenamed()));
+    assertThat(classSubject, isPresentAndNotRenamed());
     DexClass clazz = classSubject.getDexProgramClass();
     assertEquals(3, clazz.getMethodCollection().numberOfVirtualMethods());
     for (DexEncodedMethod encodedMethod : clazz.virtualMethods()) {
       assertTrue(encodedMethod.method.name.toString().startsWith("foo"));
       MethodSubject methodSubject =
           classSubject.method(MethodSignature.fromDexMethod(encodedMethod.method));
-      assertThat(methodSubject, isPresent());
-      assertThat(methodSubject, not(isRenamed()));
+      assertThat(methodSubject, isPresentAndNotRenamed());
     }
   }
 
@@ -160,16 +151,14 @@
     );
     CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
     ClassSubject classSubject = codeInspector.clazz(B111974287.class);
-    assertThat(classSubject, isPresent());
-    assertThat(classSubject, not(isRenamed()));
+    assertThat(classSubject, isPresentAndNotRenamed());
     DexClass clazz = classSubject.getDexProgramClass();
     assertEquals(3, clazz.getMethodCollection().numberOfVirtualMethods());
     for (DexEncodedMethod encodedMethod : clazz.virtualMethods()) {
       assertTrue(encodedMethod.method.name.toString().startsWith("foo"));
       MethodSubject methodSubject =
           classSubject.method(MethodSignature.fromDexMethod(encodedMethod.method));
-      assertThat(methodSubject, isPresent());
-      assertThat(methodSubject, not(isRenamed()));
+      assertThat(methodSubject, isPresentAndNotRenamed());
     }
   }
 
diff --git a/src/test/java/com/android/tools/r8/shaking/AtomicFieldUpdaterTest.java b/src/test/java/com/android/tools/r8/shaking/AtomicFieldUpdaterTest.java
index f9a6bea..7015177 100644
--- a/src/test/java/com/android/tools/r8/shaking/AtomicFieldUpdaterTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/AtomicFieldUpdaterTest.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.shaking;
 
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
@@ -50,8 +50,8 @@
     // Verify that the field is still there.
     CodeInspector inspector = new CodeInspector(output, proguardMapPath);
     ClassSubject classSubject = inspector.clazz(AtomicFieldUpdaterTestClass.A.class.getName());
-    assertThat(classSubject, isRenamed());
-    assertThat(classSubject.field("int", "field"), isRenamed());
+    assertThat(classSubject, isPresentAndRenamed());
+    assertThat(classSubject.field("int", "field"), isPresentAndRenamed());
     // Check that the code runs.
     assertEquals(
         runOnJava(AtomicFieldUpdaterTestClass.class),
diff --git a/src/test/java/com/android/tools/r8/shaking/FieldReadsJasminTest.java b/src/test/java/com/android/tools/r8/shaking/FieldReadsJasminTest.java
index ac18813..3c15d88 100644
--- a/src/test/java/com/android/tools/r8/shaking/FieldReadsJasminTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/FieldReadsJasminTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.shaking;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -173,7 +173,7 @@
         .inspect(
             inspector -> {
               FieldSubject fld = inspector.clazz(fieldHolder.name).uniqueFieldWithName(fieldName);
-              assertThat(fld, isRenamed());
+              assertThat(fld, isPresentAndRenamed());
 
               ClassSubject classSubject = inspector.clazz(clazz.name);
               assertThat(classSubject, isPresent());
@@ -370,7 +370,7 @@
       boolean isR8) {
     FieldSubject fld = inspector.clazz(fieldHolder.name).uniqueFieldWithName(fieldName);
     if (isR8) {
-      assertThat(fld, isRenamed());
+      assertThat(fld, isPresentAndRenamed());
     } else {
       assertThat(fld, isPresent());
     }
diff --git a/src/test/java/com/android/tools/r8/shaking/NonVirtualOverrideTest.java b/src/test/java/com/android/tools/r8/shaking/NonVirtualOverrideTest.java
index 8673412..bee167f 100644
--- a/src/test/java/com/android/tools/r8/shaking/NonVirtualOverrideTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/NonVirtualOverrideTest.java
@@ -5,7 +5,7 @@
 package com.android.tools.r8.shaking;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -183,7 +183,7 @@
     if (!enableClassInlining && !enableVerticalClassMerging) {
       CodeInspector inspector = compiled.inspector();
       ClassSubject classSubject = inspector.clazz(B.class.getName());
-      assertThat(classSubject, isRenamed());
+      assertThat(classSubject, isPresentAndRenamed());
       assertThat(classSubject.method("void", "m1", ImmutableList.of()), isPresent());
       assertThat(classSubject.method("void", "m2", ImmutableList.of()), not(isPresent()));
       assertThat(classSubject.method("void", "m3", ImmutableList.of()), isPresent());
diff --git a/src/test/java/com/android/tools/r8/shaking/ParameterTypeTest.java b/src/test/java/com/android/tools/r8/shaking/ParameterTypeTest.java
index 5cdbd87..59c649b 100644
--- a/src/test/java/com/android/tools/r8/shaking/ParameterTypeTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ParameterTypeTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.shaking;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -136,14 +136,14 @@
             .inspector();
 
     ClassSubject superInterface1 = inspector.clazz(B112452064SuperInterface1.class);
-    assertThat(superInterface1, isRenamed());
+    assertThat(superInterface1, isPresentAndRenamed());
     MethodSubject foo = superInterface1.uniqueMethodWithName("foo");
     assertThat(foo, not(isPresent()));
     ClassSubject superInterface2 = inspector.clazz(B112452064SuperInterface2.class);
     if (enableVerticalClassMerging) {
       assertThat(superInterface2, not(isPresent()));
     } else {
-      assertThat(superInterface2, isRenamed());
+      assertThat(superInterface2, isPresentAndRenamed());
     }
     MethodSubject bar = superInterface2.uniqueMethodWithName("bar");
     assertThat(bar, not(isPresent()));
@@ -152,7 +152,7 @@
       assertThat(subInterface, not(isPresent()));
     } else {
       assertThat(subInterface, isPresent());
-      assertThat(subInterface, isRenamed());
+      assertThat(subInterface, isPresentAndRenamed());
     }
   }
 
diff --git a/src/test/java/com/android/tools/r8/shaking/ReturnTypeTest.java b/src/test/java/com/android/tools/r8/shaking/ReturnTypeTest.java
index 4c25b86..98b7f80 100644
--- a/src/test/java/com/android/tools/r8/shaking/ReturnTypeTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ReturnTypeTest.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.shaking;
 
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assume.assumeTrue;
 
@@ -93,7 +93,7 @@
         .inspect(
             inspector -> {
               ClassSubject returnType = inspector.clazz(B112517039ReturnType.class);
-              assertThat(returnType, isRenamed());
+              assertThat(returnType, isPresentAndRenamed());
             });
   }
 }
diff --git a/src/test/java/com/android/tools/r8/shaking/annotations/AnnotationsOnFieldsTest.java b/src/test/java/com/android/tools/r8/shaking/annotations/AnnotationsOnFieldsTest.java
index d24d8c1..edd818e 100644
--- a/src/test/java/com/android/tools/r8/shaking/annotations/AnnotationsOnFieldsTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/annotations/AnnotationsOnFieldsTest.java
@@ -1,7 +1,7 @@
 package com.android.tools.r8.shaking.annotations;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -59,18 +59,18 @@
             inspector -> {
               ClassSubject clazz = inspector.clazz(TestClass.class);
               assertThat(clazz, isPresent());
-              assertThat(clazz, isRenamed());
+              assertThat(clazz, isPresentAndRenamed());
 
               FieldSubject field = clazz.uniqueFieldWithName("field");
               assertThat(field, isPresent());
               assertThat(field.annotation(FieldAnnotation.class.getTypeName()), isPresent());
-              assertThat(inspector.clazz(FieldAnnotationUse.class), isRenamed());
+              assertThat(inspector.clazz(FieldAnnotationUse.class), isPresentAndRenamed());
 
               FieldSubject staticField = clazz.uniqueFieldWithName("staticField");
               assertThat(staticField, isPresent());
               assertThat(
                   staticField.annotation(StaticFieldAnnotation.class.getTypeName()), isPresent());
-              assertThat(inspector.clazz(StaticFieldAnnotationUse.class), isRenamed());
+              assertThat(inspector.clazz(StaticFieldAnnotationUse.class), isPresentAndRenamed());
             })
         .run(MainClass.class)
         .assertSuccess();
diff --git a/src/test/java/com/android/tools/r8/shaking/annotations/ReflectiveAnnotationUseTest.java b/src/test/java/com/android/tools/r8/shaking/annotations/ReflectiveAnnotationUseTest.java
index 84ceffa..c975c82 100644
--- a/src/test/java/com/android/tools/r8/shaking/annotations/ReflectiveAnnotationUseTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/annotations/ReflectiveAnnotationUseTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.shaking.annotations;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.not;
@@ -105,20 +105,15 @@
             .assertSuccessWithOutput(JAVA_OUTPUT)
             .inspector();
     ClassSubject clazz = inspector.clazz(ANNOTATION_NAME);
-    assertThat(clazz, isPresent());
-    assertThat(clazz, not(isRenamed()));
+    assertThat(clazz, isPresentAndNotRenamed());
     MethodSubject f1 = clazz.uniqueMethodWithName("f1");
-    assertThat(f1, isPresent());
-    assertThat(f1, not(isRenamed()));
+    assertThat(f1, isPresentAndNotRenamed());
     MethodSubject f2 = clazz.uniqueMethodWithName("f2");
-    assertThat(f2, isPresent());
-    assertThat(f2, not(isRenamed()));
+    assertThat(f2, isPresentAndNotRenamed());
     MethodSubject f3 = clazz.uniqueMethodWithName("f3");
-    assertThat(f3, isPresent());
-    assertThat(f3, not(isRenamed()));
+    assertThat(f3, isPresentAndNotRenamed());
     MethodSubject f4 = clazz.uniqueMethodWithName("f4");
-    assertThat(f4, isPresent());
-    assertThat(f4, not(isRenamed()));
+    assertThat(f4, isPresentAndNotRenamed());
 
     ClassSubject impl = inspector.clazz(IMPL_CLASS_NAME);
     assertThat(impl, isPresent());
@@ -152,11 +147,9 @@
     assertThat(clazz, isPresent());
     assertEquals(minify, clazz.isRenamed());
     MethodSubject f1 = clazz.uniqueMethodWithName("f1");
-    assertThat(f1, isPresent());
-    assertThat(f1, not(isRenamed()));
+    assertThat(f1, isPresentAndNotRenamed());
     MethodSubject f2 = clazz.uniqueMethodWithName("f2");
-    assertThat(f2, isPresent());
-    assertThat(f2, not(isRenamed()));
+    assertThat(f2, isPresentAndNotRenamed());
     MethodSubject f3 = clazz.uniqueMethodWithName("f3");
     assertThat(f3, not(isPresent()));
     MethodSubject f4 = clazz.uniqueMethodWithName("f4");
@@ -190,11 +183,9 @@
     assertThat(clazz, isPresent());
     assertEquals(minify, clazz.isRenamed());
     MethodSubject f1 = clazz.uniqueMethodWithName("f1");
-    assertThat(f1, isPresent());
-    assertThat(f1, not(isRenamed()));
+    assertThat(f1, isPresentAndNotRenamed());
     MethodSubject f2 = clazz.uniqueMethodWithName("f2");
-    assertThat(f2, isPresent());
-    assertThat(f2, not(isRenamed()));
+    assertThat(f2, isPresentAndNotRenamed());
     MethodSubject f3 = clazz.uniqueMethodWithName("f3");
     assertThat(f3, not(isPresent()));
     MethodSubject f4 = clazz.uniqueMethodWithName("f4");
diff --git a/src/test/java/com/android/tools/r8/shaking/attributes/KeepInnerClassesEnclosingMethodAnnotationsTest.java b/src/test/java/com/android/tools/r8/shaking/attributes/KeepInnerClassesEnclosingMethodAnnotationsTest.java
index 3b060f0..87c3303 100644
--- a/src/test/java/com/android/tools/r8/shaking/attributes/KeepInnerClassesEnclosingMethodAnnotationsTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/attributes/KeepInnerClassesEnclosingMethodAnnotationsTest.java
@@ -6,7 +6,8 @@
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isMemberClass;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -123,8 +124,8 @@
                 "-keepattributes InnerClasses,EnclosingMethod",
                 "-keep class **Outer*",
                 keepMainProguardConfiguration(Main.class)));
-    assertThat(result.outer, not(isRenamed()));
-    assertThat(result.inner, not(isRenamed()));
+    assertThat(result.outer, isPresentAndNotRenamed());
+    assertThat(result.inner, isPresentAndNotRenamed());
     assertThat(result.inner, isMemberClass());
     fullInnerClassesEnclosingMethodInformation(result);
   }
@@ -134,8 +135,8 @@
     TestResult result =
         runShrinker(
             ImmutableList.of("-keep class **Outer*", keepMainProguardConfiguration(Main.class)));
-    assertThat(result.outer, not(isRenamed()));
-    assertThat(result.inner, not(isRenamed()));
+    assertThat(result.outer, isPresentAndNotRenamed());
+    assertThat(result.inner, isPresentAndNotRenamed());
     assertThat(result.inner, not(isMemberClass()));
     noInnerClassesEnclosingMethodInformation(result);
   }
@@ -148,8 +149,8 @@
                 "-keepattributes InnerClasses,EnclosingMethod",
                 "-keep class **Outer$Inner",
                 keepMainProguardConfiguration(Main.class)));
-    assertThat(result.outer, not(isRenamed()));
-    assertThat(result.inner, not(isRenamed()));
+    assertThat(result.outer, isPresentAndNotRenamed());
+    assertThat(result.inner, isPresentAndNotRenamed());
     assertThat(result.inner, isMemberClass());
     fullInnerClassesEnclosingMethodInformation(result);
   }
@@ -162,8 +163,8 @@
                 "-keepattributes InnerClasses,EnclosingMethod",
                 "-keep class **Outer",
                 keepMainProguardConfiguration(Main.class)));
-    assertThat(result.outer, not(isRenamed()));
-    assertThat(result.inner, isRenamed());
+    assertThat(result.outer, isPresentAndNotRenamed());
+    assertThat(result.inner, isPresentAndRenamed());
     assertThat(result.inner, isMemberClass());
     fullInnerClassesEnclosingMethodInformation(result);
   }
diff --git a/src/test/java/com/android/tools/r8/shaking/b113138046/NativeMethodTest.java b/src/test/java/com/android/tools/r8/shaking/b113138046/NativeMethodTest.java
index 15fba7f..686c35b 100644
--- a/src/test/java/com/android/tools/r8/shaking/b113138046/NativeMethodTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/b113138046/NativeMethodTest.java
@@ -3,8 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.shaking.b113138046;
 
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
-import static org.hamcrest.CoreMatchers.not;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
@@ -63,7 +62,7 @@
           "void", "foo", ImmutableList.of(Handler.class.getCanonicalName()));
       assertEquals(expectedFooPresence, nativeFoo.isPresent());
       if (expectedFooPresence) {
-        assertThat(nativeFoo, not(isRenamed()));
+        assertThat(nativeFoo, isPresentAndNotRenamed());
         DexEncodedMethod method = nativeFoo.getMethod();
         assertTrue(method.accessFlags.isNative());
         assertNull(method.getCode());
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/ConditionalKeepIfKeptTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/ConditionalKeepIfKeptTest.java
index 790ea8d..34c9293 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/ConditionalKeepIfKeptTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/ConditionalKeepIfKeptTest.java
@@ -4,8 +4,8 @@
 package com.android.tools.r8.shaking.ifrule;
 
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -160,10 +160,10 @@
               ClassSubject classSubject = inspector.clazz(StaticallyReferenced.class);
               assertThat(classSubject, isPresent());
               assertEquals(3, classSubject.allMethods().size());
-              classSubject.allMethods().forEach(m -> assertThat(m, not(isRenamed())));
+              classSubject.allMethods().forEach(m -> assertThat(m, isPresentAndNotRenamed()));
               // Keeping methods will cause the fields to be kept too (but allow renaming them).
               assertEquals(2, classSubject.allFields().size());
-              classSubject.allFields().forEach(f -> assertThat(f, isRenamed()));
+              classSubject.allFields().forEach(f -> assertThat(f, isPresentAndRenamed()));
             });
   }
 
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 50d64f8..74d2cfb 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,9 +3,9 @@
 // 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.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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -108,7 +108,7 @@
     }
 
     ClassSubject clazz = codeInspector.clazz(DependentUser.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     // Members of DependentUser are not used anywhere.
     MethodSubject m = clazz.method("void", "callFoo", ImmutableList.of());
     assertThat(m, not(isPresent()));
@@ -117,7 +117,7 @@
 
     // Although DependentUser#callFoo is shrinked, Dependent is kept via -if.
     clazz = codeInspector.clazz(Dependent.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     // But, its members are gone.
     m = clazz.method("java.lang.String", "foo", ImmutableList.of());
     assertThat(m, not(isPresent()));
@@ -145,7 +145,7 @@
     }
 
     ClassSubject clazz = codeInspector.clazz(DependentUser.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     // Members of DependentUser are not used anywhere.
     MethodSubject m = clazz.method("void", "callFoo", ImmutableList.of());
     assertThat(m, not(isPresent()));
@@ -154,7 +154,7 @@
 
     // Although DependentUser#callFoo is shrinked, Dependent is kept via -if.
     clazz = codeInspector.clazz(Dependent.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     // But, its members are gone.
     m = clazz.method("java.lang.String", "foo", ImmutableList.of());
     assertThat(m, not(isPresent()));
@@ -178,19 +178,19 @@
     }
 
     ClassSubject clazz = codeInspector.clazz(DependentUser.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     MethodSubject m = clazz.method("void", "callFoo", ImmutableList.of());
-    assertThat(m, isRenamed());
+    assertThat(m, isPresentAndRenamed());
     FieldSubject f = clazz.field("int", "canBeShrinked");
     assertThat(f, not(isPresent()));
 
     // Dependent is kept due to DependentUser#callFoo, but renamed.
     clazz = codeInspector.clazz(Dependent.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     m = clazz.method("java.lang.String", "foo", ImmutableList.of());
-    assertThat(m, isRenamed());
+    assertThat(m, isPresentAndRenamed());
     f = clazz.field("int", "intField");
-    assertThat(f, isRenamed());
+    assertThat(f, isPresentAndRenamed());
   }
 
   @Test
@@ -227,19 +227,19 @@
     }
 
     ClassSubject clazz = codeInspector.clazz(DependentUser.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     MethodSubject m = clazz.method("void", "callFoo", ImmutableList.of());
-    assertThat(m, isRenamed());
+    assertThat(m, isPresentAndRenamed());
     FieldSubject f = clazz.field("int", "canBeShrinked");
     assertThat(f, not(isPresent()));
 
     // Dependent is kept due to DependentUser#callFoo, but renamed.
     clazz = codeInspector.clazz(Dependent.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     m = clazz.method("java.lang.String", "foo", ImmutableList.of());
-    assertThat(m, isRenamed());
+    assertThat(m, isPresentAndRenamed());
     f = clazz.field("int", "intField");
-    assertThat(f, isRenamed());
+    assertThat(f, isPresentAndRenamed());
   }
 
   @Test
@@ -276,19 +276,19 @@
     }
 
     ClassSubject clazz = codeInspector.clazz(DependentUser.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     MethodSubject m = clazz.method("void", "callFoo", ImmutableList.of());
-    assertThat(m, isRenamed());
+    assertThat(m, isPresentAndRenamed());
     FieldSubject f = clazz.field("int", "canBeShrinked");
     assertThat(f, not(isPresent()));
 
     // Dependent is kept due to DependentUser#callFoo, but renamed.
     clazz = codeInspector.clazz(Dependent.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     m = clazz.method("java.lang.String", "foo", ImmutableList.of());
-    assertThat(m, isRenamed());
+    assertThat(m, isPresentAndRenamed());
     f = clazz.field("int", "intField");
-    assertThat(f, isRenamed());
+    assertThat(f, isPresentAndRenamed());
   }
 
   @Test
@@ -307,11 +307,11 @@
 
     ClassSubject clazz = codeInspector.clazz(Dependent.class);
     // Only class name is not renamed, if triggered.
-    assertThat(clazz, keepPrecondition ? isNotRenamed() : isRenamed());
+    assertThat(clazz, keepPrecondition ? isPresentAndNotRenamed() : isPresentAndRenamed());
     MethodSubject m = clazz.method("java.lang.String", "foo", ImmutableList.of());
-    assertThat(m, isRenamed());
+    assertThat(m, isPresentAndRenamed());
     FieldSubject f = clazz.field("int", "intField");
-    assertThat(f, isRenamed());
+    assertThat(f, isPresentAndRenamed());
   }
 
   @Test
@@ -332,12 +332,12 @@
 
     ClassSubject clazz = codeInspector.clazz(Dependent.class);
     // Class name is not renamed, if triggered.
-    assertThat(clazz, keepPrecondition ? isNotRenamed() : isRenamed());
+    assertThat(clazz, keepPrecondition ? isPresentAndNotRenamed() : isPresentAndRenamed());
     MethodSubject m = clazz.method("java.lang.String", "foo", ImmutableList.of());
     // Method name is not renamed either, if triggered.
-    assertThat(m, keepPrecondition ? isNotRenamed() : isRenamed());
+    assertThat(m, keepPrecondition ? isPresentAndNotRenamed() : isPresentAndRenamed());
     FieldSubject f = clazz.field("int", "intField");
-    assertThat(f, isRenamed());
+    assertThat(f, isPresentAndRenamed());
   }
 
   @Test
@@ -357,11 +357,11 @@
     CodeInspector codeInspector = inspectAfterShrinking(shrinker, CLASSES, config);
 
     ClassSubject clazz = codeInspector.clazz(Dependent.class);
-    assertThat(clazz, isRenamed());
+    assertThat(clazz, isPresentAndRenamed());
     MethodSubject m = clazz.method("java.lang.String", "foo", ImmutableList.of());
     // Only method name is not renamed, if triggered.
-    assertThat(m, keepPrecondition ? isNotRenamed() : isRenamed());
+    assertThat(m, keepPrecondition ? isPresentAndNotRenamed() : isPresentAndRenamed());
     FieldSubject f = clazz.field("int", "intField");
-    assertThat(f, isRenamed());
+    assertThat(f, isPresentAndRenamed());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnTargetedMethodTest.java b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnTargetedMethodTest.java
index 35d802c..153bf38 100644
--- a/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnTargetedMethodTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ifrule/IfOnTargetedMethodTest.java
@@ -4,8 +4,7 @@
 
 package com.android.tools.r8.shaking.ifrule;
 
-import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import com.android.tools.r8.TestBase;
@@ -35,8 +34,7 @@
             .inspector();
 
     ClassSubject interfaceSubject = inspector.clazz(Interface.class);
-    assertThat(interfaceSubject, isPresent());
-    assertThat(interfaceSubject, isRenamed());
+    assertThat(interfaceSubject, isPresentAndRenamed());
   }
 
   static class TestClass {
diff --git a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersRuleOnIndirectlyInstantiatedClassTest.java b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersRuleOnIndirectlyInstantiatedClassTest.java
index 327f61d..5b47f4f 100644
--- a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersRuleOnIndirectlyInstantiatedClassTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepClassMembersRuleOnIndirectlyInstantiatedClassTest.java
@@ -5,8 +5,7 @@
 package com.android.tools.r8.shaking.keepclassmembers;
 
 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 com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import com.android.tools.r8.NeverInline;
@@ -59,8 +58,7 @@
     assertThat(classSubject, isPresent());
 
     FieldSubject fieldSubject = classSubject.uniqueFieldWithName("greeting");
-    assertThat(fieldSubject, isPresent());
-    assertThat(fieldSubject, not(isRenamed()));
+    assertThat(fieldSubject, isPresentAndNotRenamed());
   }
 
   static class TestClass {
diff --git a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepInterfaceMethodTest.java b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepInterfaceMethodTest.java
index e6baeae..93309e8 100644
--- a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepInterfaceMethodTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/KeepInterfaceMethodTest.java
@@ -4,8 +4,8 @@
 
 package com.android.tools.r8.shaking.keepclassmembers;
 
-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.isPresentAndNotRenamed;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assume.assumeTrue;
 
@@ -96,7 +96,7 @@
     ClassSubject clazzSubject = inspector.clazz(clazz);
     assertThat(clazzSubject, isPresent());
     MethodSubject foo = clazzSubject.uniqueMethodWithName("foo");
-    assertThat(foo, isNotRenamed());
+    assertThat(foo, isPresentAndNotRenamed());
   }
 
   public interface I {
diff --git a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/b115867670/B115867670.java b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/b115867670/B115867670.java
index f2f6731..45c7a00 100644
--- a/src/test/java/com/android/tools/r8/shaking/keepclassmembers/b115867670/B115867670.java
+++ b/src/test/java/com/android/tools/r8/shaking/keepclassmembers/b115867670/B115867670.java
@@ -5,7 +5,8 @@
 package com.android.tools.r8.shaking.keepclassmembers.b115867670;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -105,7 +106,7 @@
       assertThat(cls, isPresent());
       assertFalse("Class " + clazz.getSimpleName() + " should not be abstract", cls.isAbstract());
       assertEquals(1, cls.asFoundClassSubject().allFields().size());
-      cls.forAllFields(field -> assertThat(field, not(isRenamed())));
+      cls.forAllFields(field -> assertThat(field, isPresentAndNotRenamed()));
     }
   }
 
@@ -114,10 +115,10 @@
     for (Class clazz : new Class[] {Foo.class, Foo.Interaction.class, Foo.Request.class}) {
       ClassSubject cls = inspector.clazz(clazz);
       assertThat(cls, isPresent());
-      assertThat(cls, isRenamed());
+      assertThat(cls, isPresentAndRenamed());
       assertFalse("Class " + clazz.getSimpleName() + " should not be abstract", cls.isAbstract());
       assertEquals(1, cls.asFoundClassSubject().allFields().size());
-      cls.forAllFields(field -> assertThat(field, isRenamed()));
+      cls.forAllFields(field -> assertThat(field, isPresentAndRenamed()));
     }
   }
 
diff --git a/src/test/java/com/android/tools/r8/shaking/proxy/MockitoTest.java b/src/test/java/com/android/tools/r8/shaking/proxy/MockitoTest.java
index a084679..cea851e 100644
--- a/src/test/java/com/android/tools/r8/shaking/proxy/MockitoTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/proxy/MockitoTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.shaking.proxy;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -86,7 +86,6 @@
     ClassSubject itf = inspector.clazz(M_I);
     assertThat(itf, isPresent());
     MethodSubject mtd = itf.uniqueMethodWithName("onEnterForeground");
-    assertThat(mtd, isPresent());
-    assertThat(mtd, not(isRenamed()));
+    assertThat(mtd, isPresentAndNotRenamed());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/shaking/staticinterfacemethods/defaultmethods/StaticInterfaceMethodsTest.java b/src/test/java/com/android/tools/r8/shaking/staticinterfacemethods/defaultmethods/StaticInterfaceMethodsTest.java
index 49fec87..5439ead 100644
--- a/src/test/java/com/android/tools/r8/shaking/staticinterfacemethods/defaultmethods/StaticInterfaceMethodsTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/staticinterfacemethods/defaultmethods/StaticInterfaceMethodsTest.java
@@ -5,9 +5,9 @@
 package com.android.tools.r8.shaking.staticinterfacemethods.defaultmethods;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isStatic;
-import static org.hamcrest.CoreMatchers.allOf;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertFalse;
@@ -130,7 +130,7 @@
     ClassSubject companionClass = clazz.toCompanionClass();
     MethodSubject method = clazz.method("int", "method", ImmutableList.of());
     if (parameters.canUseDefaultAndStaticInterfaceMethods()) {
-      assertThat(clazz, allowObfuscation ? isRenamed() : allOf(isPresent(), not(isRenamed())));
+      assertThat(clazz, allowObfuscation ? isPresentAndRenamed() : isPresentAndNotRenamed());
       assertThat(method, isStatic());
       assertThat(companionClass, not(isPresent()));
     } else {
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java b/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
index 949903d..5842c9b 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
@@ -123,7 +123,7 @@
     };
   }
 
-  public static Matcher<Subject> isRenamed() {
+  public static Matcher<Subject> isPresentAndRenamed() {
     return new TypeSafeMatcher<Subject>() {
       @Override
       protected boolean matchesSafely(Subject subject) {
@@ -143,7 +143,7 @@
     };
   }
 
-  public static Matcher<Subject> isNotRenamed() {
+  public static Matcher<Subject> isPresentAndNotRenamed() {
     return new TypeSafeMatcher<Subject>() {
       @Override
       protected boolean matchesSafely(Subject subject) {
@@ -163,8 +163,8 @@
     };
   }
 
-  public static Matcher<Subject> isRenamed(boolean isRenamed) {
-    return isRenamed ? isRenamed() : isNotRenamed();
+  public static Matcher<Subject> isPresentAndRenamed(boolean isRenamed) {
+    return isRenamed ? isPresentAndRenamed() : isPresentAndNotRenamed();
   }
 
   public static Matcher<MemberSubject> isStatic() {