Automatic code cleanup.

PiperOrigin-RevId: 246390819
diff --git a/src/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.java b/src/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.java
index 1eccf72..6df4008 100644
--- a/src/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.java
+++ b/src/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.java
@@ -65,7 +65,7 @@
         (descriptor, expected) -> {
           InferredType type = InferredType.create(descriptor);
           assertThat(type.descriptor()).isEqualTo(descriptor);
-          assertThat(type).isSameAs(expected);
+          assertThat(type).isSameInstanceAs(expected);
         });
   }
 }
diff --git a/src/test/java/com/google/devtools/build/android/dexer/DexConversionEnqueuerTest.java b/src/test/java/com/google/devtools/build/android/dexer/DexConversionEnqueuerTest.java
index b032f96..84295dc 100644
--- a/src/test/java/com/google/devtools/build/android/dexer/DexConversionEnqueuerTest.java
+++ b/src/test/java/com/google/devtools/build/android/dexer/DexConversionEnqueuerTest.java
@@ -132,7 +132,7 @@
     assertThat(f.isDone()).isTrue();
     assertThat(f.get().getEntry().getName()).isEqualTo(filename + ".dex");
     assertThat(f.get().getEntry().getTime()).isEqualTo(FILE_TIME);
-    assertThat(f.get().getContent()).isSameAs(dexcode);
+    assertThat(f.get().getContent()).isSameInstanceAs(dexcode);
   }
 
   private byte[] testConvertClassToDex() throws Exception {
@@ -151,7 +151,7 @@
     Dex dex = new Dex(dexcode);
     assertThat(dex.classDefs()).hasSize(1);
     assertThat(cache.getIfPresent(DexingKey.create(false, false, PositionList.LINES, bytecode)))
-        .isSameAs(dexcode);
+        .isSameInstanceAs(dexcode);
     assertThat(cache.getIfPresent(DexingKey.create(false, false, PositionList.NONE, bytecode)))
         .isNull();
     assertThat(cache.getIfPresent(DexingKey.create(true, false, PositionList.LINES, bytecode)))
diff --git a/src/test/java/com/google/devtools/build/android/dexer/DexFileAggregatorTest.java b/src/test/java/com/google/devtools/build/android/dexer/DexFileAggregatorTest.java
index c578229..7c92c15 100644
--- a/src/test/java/com/google/devtools/build/android/dexer/DexFileAggregatorTest.java
+++ b/src/test/java/com/google/devtools/build/android/dexer/DexFileAggregatorTest.java
@@ -156,7 +156,7 @@
     dexer.add(dex2);  // this should start a new shard
     // Make sure there was one file written and that file is dex
     verify(dest).addFile(any(ZipEntry.class), written.capture());
-    assertThat(written.getValue()).isSameAs(dex);
+    assertThat(written.getValue()).isSameInstanceAs(dex);
     dexer.close();
     verify(dest).addFile(any(ZipEntry.class), eq(dex2));
   }
diff --git a/src/test/java/com/google/devtools/build/android/junctions/NoopJunctionCreatorTest.java b/src/test/java/com/google/devtools/build/android/junctions/NoopJunctionCreatorTest.java
index a99d568..6f7dbae 100644
--- a/src/test/java/com/google/devtools/build/android/junctions/NoopJunctionCreatorTest.java
+++ b/src/test/java/com/google/devtools/build/android/junctions/NoopJunctionCreatorTest.java
@@ -44,6 +44,6 @@
 
     Path p = tmproot.resolve("foo");
     // Cast Path to Object to disambiguate which assertThat-overload to use.
-    assertThat((Object) jc.create(p)).isSameAs(p);
+    assertThat((Object) jc.create(p)).isSameInstanceAs(p);
   }
 }
diff --git a/src/test/java/com/google/devtools/build/android/ziputils/SplitZipTest.java b/src/test/java/com/google/devtools/build/android/ziputils/SplitZipTest.java
index 31e70d6..f9f6e46 100644
--- a/src/test/java/com/google/devtools/build/android/ziputils/SplitZipTest.java
+++ b/src/test/java/com/google/devtools/build/android/ziputils/SplitZipTest.java
@@ -66,7 +66,7 @@
               "out/shard1.jar"))
           .addOutput(new ZipOut(fileSystem.getOutputChannel("out/shard2.jar", false),
               "out/shard2.jar"));
-      assertThat(result).isSameAs(instance);
+      assertThat(result).isSameInstanceAs(instance);
   }
 
   @Test
@@ -74,7 +74,7 @@
     SplitZip instance = new SplitZip();
     String res = "res";
     SplitZip result = instance.setResourceFile(res);
-    assertThat(result).isSameAs(instance);
+    assertThat(result).isSameInstanceAs(instance);
   }
 
   @Test
@@ -89,9 +89,9 @@
   public void testSetMainClassListFile() {
     SplitZip instance = new SplitZip();
     SplitZip result = instance.setMainClassListFile((String) null);
-    assertThat(result).isSameAs(instance);
+    assertThat(result).isSameInstanceAs(instance);
     result = instance.setMainClassListFile("no format checks");
-    assertThat(result).isSameAs(instance);
+    assertThat(result).isSameInstanceAs(instance);
   }
 
   @Test
@@ -109,7 +109,7 @@
   public void testSetEntryDate() {
     SplitZip instance = new SplitZip();
     SplitZip result = instance.setEntryDate(null);
-    assertThat(result).isSameAs(instance);
+    assertThat(result).isSameInstanceAs(instance);
   }
 
   @Test
@@ -118,7 +118,7 @@
     Date now = new Date();
     instance.setEntryDate(now);
     Date result = instance.getEntryDate();
-    assertThat(now).isSameAs(result);
+    assertThat(now).isSameInstanceAs(result);
     instance.setEntryDate(null);
     assertThat(instance.getEntryDate()).isNull();
   }
@@ -127,7 +127,7 @@
   public void testUseDefaultEntryDate() {
     SplitZip instance = new SplitZip();
     SplitZip result = instance.useDefaultEntryDate();
-    assertThat(result).isSameAs(instance);
+    assertThat(result).isSameInstanceAs(instance);
     Date date = instance.getEntryDate();
     assertThat(date).isEqualTo(DosTime.DOS_EPOCH);
   }
diff --git a/src/test/java/com/google/devtools/build/android/ziputils/ViewTest.java b/src/test/java/com/google/devtools/build/android/ziputils/ViewTest.java
index e9a7915..01e4bcd 100644
--- a/src/test/java/com/google/devtools/build/android/ziputils/ViewTest.java
+++ b/src/test/java/com/google/devtools/build/android/ziputils/ViewTest.java
@@ -50,7 +50,7 @@
     ByteBuffer buffer = ByteBuffer.allocate(100);
     TestView instance = new TestView(buffer);
     View<TestView> result = instance.at(fileOffset);
-    assertWithMessage("didn't return this").that(result).isSameAs(instance);
+    assertWithMessage("didn't return this").that(result).isSameInstanceAs(instance);
 
     long resultValue = instance.fileOffset();
     assertWithMessage("didn't return set value").that(resultValue).isEqualTo(fileOffset);
diff --git a/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java b/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
index 09bdf59..b0a050e 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
@@ -280,7 +280,7 @@
   public void testRootRelativePathIsSameAsExecPath() throws Exception {
     ArtifactRoot root = ArtifactRoot.asSourceRoot(Root.fromPath(scratch.dir("/foo")));
     Artifact a = new Artifact(scratch.file("/foo/bar1.h"), root);
-    assertThat(a.getRootRelativePath()).isSameAs(a.getExecPath());
+    assertThat(a.getRootRelativePath()).isSameInstanceAs(a.getExecPath());
   }
 
   @Test
@@ -344,13 +344,13 @@
         (SourceArtifact) objectCodecs.deserialize(objectCodecs.serialize(sourceArtifact));
     SourceArtifact deserialized2 =
         (SourceArtifact) objectCodecs.deserialize(objectCodecs.serialize(sourceArtifact));
-    assertThat(deserialized1).isSameAs(deserialized2);
+    assertThat(deserialized1).isSameInstanceAs(deserialized2);
 
     Artifact sourceArtifactFromFactory =
         artifactFactory.getSourceArtifact(pathFragment, root, owner);
     Artifact deserialized =
         (Artifact) objectCodecs.deserialize(objectCodecs.serialize(sourceArtifactFromFactory));
-    assertThat(sourceArtifactFromFactory).isSameAs(deserialized);
+    assertThat(sourceArtifactFromFactory).isSameInstanceAs(deserialized);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/actions/CompositeRunfilesSupplierTest.java b/src/test/java/com/google/devtools/build/lib/actions/CompositeRunfilesSupplierTest.java
index 5b9d06d..3ebc001 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/CompositeRunfilesSupplierTest.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/CompositeRunfilesSupplierTest.java
@@ -58,17 +58,17 @@
     assertThat(
             CompositeRunfilesSupplier.of(
                 EmptyRunfilesSupplier.INSTANCE, EmptyRunfilesSupplier.INSTANCE))
-        .isSameAs(EmptyRunfilesSupplier.INSTANCE);
+        .isSameInstanceAs(EmptyRunfilesSupplier.INSTANCE);
     assertThat(CompositeRunfilesSupplier.of(EmptyRunfilesSupplier.INSTANCE, mockFirst))
-        .isSameAs(mockFirst);
+        .isSameInstanceAs(mockFirst);
     assertThat(CompositeRunfilesSupplier.of(mockFirst, EmptyRunfilesSupplier.INSTANCE))
-        .isSameAs(mockFirst);
+        .isSameInstanceAs(mockFirst);
   }
 
   @Test
   public void fromSuppliersSeleton() {
     assertThat(CompositeRunfilesSupplier.fromSuppliers(ImmutableList.of(mockFirst)))
-        .isSameAs(mockFirst);
+        .isSameInstanceAs(mockFirst);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/actions/FailActionTest.java b/src/test/java/com/google/devtools/build/lib/actions/FailActionTest.java
index 4204aef..ae2ec55 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/FailActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/FailActionTest.java
@@ -49,7 +49,7 @@
     outputs = ImmutableList.of(anOutput);
     failAction = new FailAction(NULL_ACTION_OWNER, outputs, errorMessage);
     actionGraph.registerAction(failAction);
-    assertThat(actionGraph.getGeneratingAction(anOutput)).isSameAs(failAction);
+    assertThat(actionGraph.getGeneratingAction(anOutput)).isSameInstanceAs(failAction);
   }
 
   @Test
@@ -71,6 +71,6 @@
 
   @Test
   public void testPrimaryOutput() {
-    assertThat(failAction.getPrimaryOutput()).isSameAs(anOutput);
+    assertThat(failAction.getPrimaryOutput()).isSameInstanceAs(anOutput);
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java
index 16a19d5..7492cf4 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java
@@ -84,7 +84,7 @@
     ConfiguredTarget old = getConfiguredTarget("//java/a:A");
     update("//java/a:A");
     ConfiguredTarget current = getConfiguredTarget("//java/a:A");
-    assertThat(current).isSameAs(old);
+    assertThat(current).isSameInstanceAs(old);
   }
 
   @Test
@@ -99,7 +99,7 @@
     ConfiguredTarget old = getConfiguredTarget("//java/a:A");
     update("//java/a:A");
     ConfiguredTarget current = getConfiguredTarget("//java/a:A");
-    assertThat(current).isSameAs(old);
+    assertThat(current).isSameInstanceAs(old);
   }
 
   @Test
@@ -469,7 +469,7 @@
 
     update(aTarget);
     ConfiguredTarget updated2CT = getConfiguredTarget(aTarget);
-    assertThat(updated2CT).isSameAs(updatedCT);
+    assertThat(updated2CT).isSameInstanceAs(updatedCT);
   }
 
   @Test
@@ -492,7 +492,7 @@
     ConfiguredTarget newAConfTarget = getConfiguredTarget(aTarget);
     ConfiguredTarget newBConfTarget = getConfiguredTarget(bTarget);
 
-    assertThat(newAConfTarget).isSameAs(oldAConfTarget);
+    assertThat(newAConfTarget).isSameInstanceAs(oldAConfTarget);
     assertThat(newBConfTarget).isNotSameInstanceAs(oldBConfTarget);
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AspectCollectionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AspectCollectionTest.java
index b6cd781..536756e 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/AspectCollectionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/AspectCollectionTest.java
@@ -395,10 +395,9 @@
   private static void collectAndValidateAspectDeps(AspectDeps aspectDeps,
       HashMap<AspectDescriptor, AspectDeps> allDeps) {
     if (allDeps.containsKey(aspectDeps.getAspect())) {
-      assertWithMessage(
-          String.format("Two different deps for aspect %s", aspectDeps.getAspect()))
+      assertWithMessage(String.format("Two different deps for aspect %s", aspectDeps.getAspect()))
           .that(allDeps.get(aspectDeps.getAspect()))
-          .isSameAs(aspectDeps);
+          .isSameInstanceAs(aspectDeps);
       return;
     }
     allDeps.put(aspectDeps.getAspect(), aspectDeps);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
index 561d3f0..67478cd 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
@@ -96,7 +96,7 @@
 
     ConfiguredTargetAndData ruleCTAT = getConfiguredTargetAndTarget("//pkg:foo");
 
-    assertThat(ruleCTAT.getTarget()).isSameAs(ruleTarget);
+    assertThat(ruleCTAT.getTarget()).isSameInstanceAs(ruleTarget);
   }
 
   @Test
@@ -163,7 +163,7 @@
     assertThat(outputArtifact.getRootRelativePath()).isEqualTo(PathFragment.create("pkg/a.out"));
 
     Action action = getGeneratingAction(outputArtifact);
-    assertThat(action.getClass()).isSameAs(FailAction.class);
+    assertThat(action.getClass()).isSameInstanceAs(FailAction.class);
   }
 
   @Test
@@ -724,7 +724,7 @@
     Artifact aout = Iterables.getOnlyElement(
         target.getProvider(FileProvider.class).getFilesToBuild());
     Action action = getGeneratingAction(aout);
-    assertThat(action.getClass()).isSameAs(FailAction.class);
+    assertThat(action.getClass()).isSameInstanceAs(FailAction.class);
   }
 
   /**
@@ -787,7 +787,7 @@
     Artifact aout = Iterables.getOnlyElement(
         target.getProvider(FileProvider.class).getFilesToBuild());
     Action action = getGeneratingAction(aout);
-    assertThat(action.getClass()).isSameAs(FailAction.class);
+    assertThat(action.getClass()).isSameInstanceAs(FailAction.class);
   }
 
   /**
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/OutputFileConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/analysis/OutputFileConfiguredTargetTest.java
index 220a504..032c2cf 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/OutputFileConfiguredTargetTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/OutputFileConfiguredTargetTest.java
@@ -41,7 +41,7 @@
     OutputFileConfiguredTarget generatedSource = (OutputFileConfiguredTarget)
         getConfiguredTarget("//foo:generated.source", getHostConfiguration());
     assertThat(generatedSource.getGeneratingRule())
-        .isSameAs(getConfiguredTarget("//foo:generating_rule", getHostConfiguration()));
+        .isSameInstanceAs(getConfiguredTarget("//foo:generating_rule", getHostConfiguration()));
   }
 
   /**
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java
index 26a6dbc..457e3e5 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java
@@ -415,8 +415,8 @@
     ArtifactRoot root = ArtifactRoot.asSourceRoot(Root.fromPath(scratch.resolve("/workspace")));
     Artifact artifactA = new Artifact(PathFragment.create("a/target"), root);
     Runfiles runfilesB = new Runfiles.Builder("TESTING").addArtifact(artifactA).build();
-    assertThat(Runfiles.EMPTY.merge(runfilesB)).isSameAs(runfilesB);
-    assertThat(runfilesB.merge(Runfiles.EMPTY)).isSameAs(runfilesB);
+    assertThat(Runfiles.EMPTY.merge(runfilesB)).isSameInstanceAs(runfilesB);
+    assertThat(runfilesB.merge(Runfiles.EMPTY)).isSameInstanceAs(runfilesB);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
index ea710e1..c1feadb 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
@@ -226,7 +226,7 @@
     BuildConfiguration config3 = create("--j2objc_translation_flags=baz");
     // Shared because all j2objc options are the same:
     assertThat(config1.getFragment(J2ObjcConfiguration.class))
-        .isSameAs(config2.getFragment(J2ObjcConfiguration.class));
+        .isSameInstanceAs(config2.getFragment(J2ObjcConfiguration.class));
     // Distinct because the j2objc options differ:
     assertThat(config1.getFragment(J2ObjcConfiguration.class))
         .isNotSameInstanceAs(config3.getFragment(J2ObjcConfiguration.class));
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java
index e7a786b..4cbfa91 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildOptionsTest.java
@@ -177,7 +177,7 @@
     assertThat(reconstructedTwo).isEqualTo(two);
     assertThat(reconstructedTwo).isNotSameInstanceAs(two);
     BuildOptions reconstructedOne = one.applyDiff(BuildOptions.diffForReconstruction(one, one));
-    assertThat(reconstructedOne).isSameAs(one);
+    assertThat(reconstructedOne).isSameInstanceAs(one);
     BuildOptions otherFragment = BuildOptions.of(ImmutableList.of(CppOptions.class));
     assertThat(one.applyDiff(BuildOptions.diffForReconstruction(one, otherFragment)))
         .isEqualTo(otherFragment);
@@ -243,7 +243,7 @@
 
     BuildOptions reconstructedOne = one.applyDiff(BuildOptions.diffForReconstruction(one, one));
 
-    assertThat(reconstructedOne).isSameAs(one);
+    assertThat(reconstructedOne).isSameInstanceAs(one);
   }
 
   @Test
@@ -279,7 +279,7 @@
     BuildOptions base = BuildOptions.of(ImmutableList.of(CppOptions.class), "--compiler=a");
     BuildOptions original = BuildOptions.of(ImmutableList.of(CppOptions.class), "--compiler=b");
     BuildOptions reconstructed = base.applyDiff(BuildOptions.diffForReconstruction(base, original));
-    assertThat(reconstructed).isSameAs(original);
+    assertThat(reconstructed).isSameInstanceAs(original);
   }
 
   @Test
@@ -290,7 +290,7 @@
     OptionsDiffForReconstruction diff1 = BuildOptions.diffForReconstruction(one, two);
     OptionsDiffForReconstruction diff2 = BuildOptions.diffForReconstruction(one, two);
 
-    assertThat(diff1).isSameAs(diff2);
+    assertThat(diff1).isSameInstanceAs(diff2);
   }
 
   @Test
@@ -555,7 +555,7 @@
   public void trim_nothingTrimmed_returnsSameInstance() throws Exception {
     BuildOptions original = BuildOptions.of(ImmutableList.of(CppOptions.class, JavaOptions.class));
     BuildOptions trimmed = original.trim(ImmutableSet.of(CppOptions.class, JavaOptions.class));
-    assertThat(trimmed).isSameAs(original);
+    assertThat(trimmed).isSameInstanceAs(original);
   }
 
   private static OptionsDiffForReconstruction uncachedDiffForReconstruction(
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index a2f9d17..cc6615d 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -1152,7 +1152,7 @@
       Target outTarget = getTarget(expectedOut);
       if (!(outTarget instanceof OutputFile)) {
         fail("Target " + outTarget + " is not an output");
-        assertThat(((OutputFile) outTarget).getGeneratingRule()).isSameAs(ruleTarget);
+        assertThat(((OutputFile) outTarget).getGeneratingRule()).isSameInstanceAs(ruleTarget);
         // This ensures that the output artifact is wired up in the action graph
         getConfiguredTarget(expectedOut);
       }
@@ -1179,7 +1179,7 @@
       throws Exception {
     assertWithMessage("Action for " + labelA + " did not match " + labelB)
         .that(getGeneratingActionForLabel(labelB))
-        .isSameAs(getGeneratingActionForLabel(labelA));
+        .isSameInstanceAs(getGeneratingActionForLabel(labelA));
   }
 
   protected Artifact getSourceArtifact(PathFragment rootRelativePath, Root root) {
diff --git a/src/test/java/com/google/devtools/build/lib/cmdline/PackageIdentifierTest.java b/src/test/java/com/google/devtools/build/lib/cmdline/PackageIdentifierTest.java
index 9e8f3b6..022867c 100644
--- a/src/test/java/com/google/devtools/build/lib/cmdline/PackageIdentifierTest.java
+++ b/src/test/java/com/google/devtools/build/lib/cmdline/PackageIdentifierTest.java
@@ -93,7 +93,7 @@
     // Make sure package fragments are canonicalized.
     PackageIdentifier p1 = PackageIdentifier.create("@whatever", PathFragment.create("foo/bar"));
     PackageIdentifier p2 = PackageIdentifier.create("@whatever", PathFragment.create("foo/bar"));
-    assertThat(p1.getPackageFragment()).isSameAs(p2.getPackageFragment());
+    assertThat(p1.getPackageFragment()).isSameInstanceAs(p2.getPackageFragment());
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/collect/CollectionUtilsTest.java b/src/test/java/com/google/devtools/build/lib/collect/CollectionUtilsTest.java
index 7bf2f76..4daeca2 100644
--- a/src/test/java/com/google/devtools/build/lib/collect/CollectionUtilsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/collect/CollectionUtilsTest.java
@@ -99,7 +99,7 @@
   @Test
   public void testMakeImmutable() throws Exception {
     Iterable<Integer> immutableList = ImmutableList.of(1, 2, 3);
-    assertThat(CollectionUtils.makeImmutable(immutableList)).isSameAs(immutableList);
+    assertThat(CollectionUtils.makeImmutable(immutableList)).isSameInstanceAs(immutableList);
 
     Iterable<Integer> mutableList = Lists.newArrayList(1, 2, 3);
     Iterable<Integer> converted = CollectionUtils.makeImmutable(mutableList);
diff --git a/src/test/java/com/google/devtools/build/lib/collect/ImmutableSharedKeyMapTest.java b/src/test/java/com/google/devtools/build/lib/collect/ImmutableSharedKeyMapTest.java
index 02423ee..cf06049 100644
--- a/src/test/java/com/google/devtools/build/lib/collect/ImmutableSharedKeyMapTest.java
+++ b/src/test/java/com/google/devtools/build/lib/collect/ImmutableSharedKeyMapTest.java
@@ -34,8 +34,8 @@
     ImmutableSharedKeyMap<String, Object> map =
         ImmutableSharedKeyMap.<String, Object>builder().put("a", valueA).put("b", valueB).build();
 
-    assertThat(map.get("a")).isSameAs(valueA);
-    assertThat(map.get("b")).isSameAs(valueB);
+    assertThat(map.get("a")).isSameInstanceAs(valueA);
+    assertThat(map.get("b")).isSameInstanceAs(valueB);
     assertThat(map.get("c")).isNull();
 
     // Verify that we can find all items both by iteration and indexing
@@ -119,7 +119,7 @@
             .put(keyA, valueA)
             .put(keyB, valueB)
             .build();
-    assertThat(map.get(keyA)).isSameAs(valueA);
-    assertThat(map.get(keyB)).isSameAs(valueB);
+    assertThat(map.get(keyA)).isSameInstanceAs(valueA);
+    assertThat(map.get(keyB)).isSameInstanceAs(valueB);
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyListMultimapTest.java b/src/test/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyListMultimapTest.java
index f1627f4..b50120d 100644
--- a/src/test/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyListMultimapTest.java
+++ b/src/test/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyListMultimapTest.java
@@ -196,7 +196,7 @@
   @Test
   public void copyOfImmutableListMultimap() {
     Multimap<String, Integer> multimap = createMultimap();
-    assertThat(ImmutableSortedKeyListMultimap.copyOf(multimap)).isSameAs(multimap);
+    assertThat(ImmutableSortedKeyListMultimap.copyOf(multimap)).isSameInstanceAs(multimap);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyMapTest.java b/src/test/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyMapTest.java
index 95a1924..ce08b57 100644
--- a/src/test/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyMapTest.java
+++ b/src/test/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyMapTest.java
@@ -161,7 +161,7 @@
     ImmutableSortedKeyMap<String, Integer> copy
         = ImmutableSortedKeyMap.copyOf(Collections.<String, Integer>emptyMap());
     assertThat(copy).isEmpty();
-    assertThat(ImmutableSortedKeyMap.copyOf(copy)).isSameAs(copy);
+    assertThat(ImmutableSortedKeyMap.copyOf(copy)).isSameInstanceAs(copy);
   }
 
   @Test
@@ -169,7 +169,7 @@
     ImmutableSortedKeyMap<String, Integer> copy
         = ImmutableSortedKeyMap.copyOf(Collections.singletonMap("one", 1));
     assertMapEquals(copy, "one", 1);
-    assertThat(ImmutableSortedKeyMap.copyOf(copy)).isSameAs(copy);
+    assertThat(ImmutableSortedKeyMap.copyOf(copy)).isSameInstanceAs(copy);
   }
 
   @Test
@@ -181,7 +181,7 @@
 
     ImmutableSortedKeyMap<String, Integer> copy = ImmutableSortedKeyMap.copyOf(original);
     assertMapEquals(copy, "one", 1, "three", 3, "two", 2);
-    assertThat(ImmutableSortedKeyMap.copyOf(copy)).isSameAs(copy);
+    assertThat(ImmutableSortedKeyMap.copyOf(copy)).isSameInstanceAs(copy);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTest.java b/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTest.java
index 099c031..36b5b16 100644
--- a/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTest.java
@@ -301,7 +301,7 @@
             nestedSetStore.getContentsAndDeserialize(fingerprint, deserializationContext);
     asyncThread.join();
     Mockito.verify(nestedSetStorageEndpoint, times(1)).get(Mockito.eq(fingerprint));
-    assertThat(result).isSameAs(asyncResult.get());
+    assertThat(result).isSameInstanceAs(asyncResult.get());
     assertThat(result.isDone()).isFalse();
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetViewTest.java b/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetViewTest.java
index 04054b6..233a23cd 100644
--- a/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetViewTest.java
+++ b/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetViewTest.java
@@ -150,8 +150,8 @@
   public void testSplitNoSplit() {
     NestedSet<String> a = NestedSetBuilder.<String>stableOrder().add("a").add("b").build();
     NestedSetView<String> v = new NestedSetView<>(a);
-    assertThat(v.splitIfExceedsMaximumSize(2)).isSameAs(v);
-    assertThat(v.splitIfExceedsMaximumSize(100)).isSameAs(v);
+    assertThat(v.splitIfExceedsMaximumSize(2)).isSameInstanceAs(v);
+    assertThat(v.splitIfExceedsMaximumSize(100)).isSameInstanceAs(v);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/events/EventCollectorTest.java b/src/test/java/com/google/devtools/build/lib/events/EventCollectorTest.java
index ce339c9..047dd52 100644
--- a/src/test/java/com/google/devtools/build/lib/events/EventCollectorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/events/EventCollectorTest.java
@@ -35,7 +35,7 @@
     collector.handle(event);
     Event onlyEvent = events.iterator().next();
     assertThat(onlyEvent.getMessage()).isEqualTo(event.getMessage());
-    assertThat(onlyEvent.getLocation()).isSameAs(location);
+    assertThat(onlyEvent.getLocation()).isSameInstanceAs(location);
     assertThat(onlyEvent.getKind()).isEqualTo(event.getKind());
     assertThat(onlyEvent.getLocation().getStartOffset())
         .isEqualTo(event.getLocation().getStartOffset());
@@ -50,7 +50,7 @@
     Iterator<Event> collectedEventIt = collector.iterator();
     Event onlyEvent = collectedEventIt.next();
     assertThat(onlyEvent.getMessage()).isEqualTo(event.getMessage());
-    assertThat(onlyEvent.getLocation()).isSameAs(location);
+    assertThat(onlyEvent.getLocation()).isSameInstanceAs(location);
     assertThat(onlyEvent.getKind()).isEqualTo(event.getKind());
     assertThat(onlyEvent.getLocation().getStartOffset())
         .isEqualTo(event.getLocation().getStartOffset());
diff --git a/src/test/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategyTest.java b/src/test/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategyTest.java
index d22d182..e6e026c 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategyTest.java
@@ -119,7 +119,7 @@
                 // Ignoring the List<SpawnResult> return value.
                 new TestedSpawnStrategy(execRoot, spawnRunner)
                     .exec(SIMPLE_SPAWN, actionExecutionContext));
-    assertThat(e.getSpawnResult()).isSameAs(result);
+    assertThat(e.getSpawnResult()).isSameInstanceAs(result);
     // Must only be called exactly once.
     verify(spawnRunner).execAsync(any(Spawn.class), any(SpawnExecutionContext.class));
   }
@@ -193,7 +193,7 @@
                 // Ignoring the List<SpawnResult> return value.
                 new TestedSpawnStrategy(execRoot, spawnRunner)
                     .exec(SIMPLE_SPAWN, actionExecutionContext));
-    assertThat(e.getSpawnResult()).isSameAs(result);
+    assertThat(e.getSpawnResult()).isSameInstanceAs(result);
     // Must only be called exactly once.
     verify(spawnRunner).execAsync(any(Spawn.class), any(SpawnExecutionContext.class));
     verify(entry).store(eq(result));
diff --git a/src/test/java/com/google/devtools/build/lib/exec/StandaloneTestStrategyTest.java b/src/test/java/com/google/devtools/build/lib/exec/StandaloneTestStrategyTest.java
index 1ebc38c..11afe90 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/StandaloneTestStrategyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/StandaloneTestStrategyTest.java
@@ -203,7 +203,7 @@
     TestResult result = standaloneTestStrategy.postedResult;
     assertThat(result).isNotNull();
     assertThat(result.isCached()).isFalse();
-    assertThat(result.getTestAction()).isSameAs(testRunnerAction);
+    assertThat(result.getTestAction()).isSameInstanceAs(testRunnerAction);
     assertThat(result.getData().getTestPassed()).isTrue();
     assertThat(result.getData().getRemotelyCached()).isFalse();
     assertThat(result.getData().getIsRemoteStrategy()).isFalse();
@@ -272,7 +272,7 @@
     TestResult result = standaloneTestStrategy.postedResult;
     assertThat(result).isNotNull();
     assertThat(result.isCached()).isFalse();
-    assertThat(result.getTestAction()).isSameAs(testRunnerAction);
+    assertThat(result.getTestAction()).isSameInstanceAs(testRunnerAction);
     assertThat(result.getData().getStatus()).isEqualTo(BlazeTestStatus.FLAKY);
     assertThat(result.getData().getTestPassed()).isTrue();
     assertThat(result.getData().getRemotelyCached()).isFalse();
@@ -339,7 +339,7 @@
     TestResult result = standaloneTestStrategy.postedResult;
     assertThat(result).isNotNull();
     assertThat(result.isCached()).isFalse();
-    assertThat(result.getTestAction()).isSameAs(testRunnerAction);
+    assertThat(result.getTestAction()).isSameInstanceAs(testRunnerAction);
     assertThat(result.getData().getTestPassed()).isTrue();
     assertThat(result.getData().getRemotelyCached()).isFalse();
     assertThat(result.getData().getIsRemoteStrategy()).isTrue();
@@ -399,7 +399,7 @@
     TestResult result = standaloneTestStrategy.postedResult;
     assertThat(result).isNotNull();
     assertThat(result.isCached()).isFalse();
-    assertThat(result.getTestAction()).isSameAs(testRunnerAction);
+    assertThat(result.getTestAction()).isSameInstanceAs(testRunnerAction);
     assertThat(result.getData().getTestPassed()).isTrue();
     assertThat(result.getData().getRemotelyCached()).isTrue();
     assertThat(result.getData().getIsRemoteStrategy()).isFalse();
diff --git a/src/test/java/com/google/devtools/build/lib/packages/AttributeContainerTest.java b/src/test/java/com/google/devtools/build/lib/packages/AttributeContainerTest.java
index 688ae45..aeb5337 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/AttributeContainerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/AttributeContainerTest.java
@@ -140,7 +140,7 @@
 
           Location expectedLocation = i < locationCount ? locations[i] : null;
           assertThat(container.getAttributeLocation(attributes[i].getName()))
-              .isSameAs(expectedLocation);
+              .isSameInstanceAs(expectedLocation);
         }
       }
     }
diff --git a/src/test/java/com/google/devtools/build/lib/packages/InputFileTest.java b/src/test/java/com/google/devtools/build/lib/packages/InputFileTest.java
index 08cee58..7460df2 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/InputFileTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/InputFileTest.java
@@ -101,9 +101,9 @@
   @Test
   public void testEquivalenceRelation() throws NoSuchTargetException {
     InputFile inputFileX = (InputFile) pkg.getTarget("x");
-    assertThat(inputFileX).isSameAs(pkg.getTarget("x"));
+    assertThat(inputFileX).isSameInstanceAs(pkg.getTarget("x"));
     InputFile inputFileY = (InputFile) pkg.getTarget("subdir/y");
-    assertThat(inputFileY).isSameAs(pkg.getTarget("subdir/y"));
+    assertThat(inputFileY).isSameInstanceAs(pkg.getTarget("subdir/y"));
     new EqualsTester()
         .addEqualityGroup(inputFileX)
         .addEqualityGroup(inputFileY)
diff --git a/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java b/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java
index e1fddad..fd4fc3b 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java
@@ -51,7 +51,7 @@
   }
 
   private void checkTargetRetainsGeneratingRule(OutputFile output) throws Exception {
-    assertThat(output.getGeneratingRule()).isSameAs(rule);
+    assertThat(output.getGeneratingRule()).isSameInstanceAs(rule);
   }
 
   private void checkName(OutputFile output, String expectedName) throws Exception {
@@ -64,7 +64,7 @@
 
   @Test
   public void testGetAssociatedRule() throws Exception {
-    assertThat(pkg.getTarget("x").getAssociatedRule()).isSameAs(rule);
+    assertThat(pkg.getTarget("x").getAssociatedRule()).isSameInstanceAs(rule);
   }
 
   @Test
@@ -90,8 +90,8 @@
     OutputFile outputFileX2 = (OutputFile) pkg.getTarget("x");
     OutputFile outputFileY1 = (OutputFile) pkg.getTarget("subdir/y");
     OutputFile outputFileY2 = (OutputFile) pkg.getTarget("subdir/y");
-    assertThat(outputFileX2).isSameAs(outputFileX1);
-    assertThat(outputFileY2).isSameAs(outputFileY1);
+    assertThat(outputFileX2).isSameInstanceAs(outputFileX1);
+    assertThat(outputFileY2).isSameInstanceAs(outputFileY1);
     new EqualsTester()
         .addEqualityGroup(outputFileX1, outputFileX2)
         .addEqualityGroup(outputFileY1, outputFileY2)
diff --git a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
index b8ceb4f..4caa852 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
@@ -254,7 +254,7 @@
     assertThat(pkg.containsErrors()).isFalse();
     assertThat(pkg.getRule("pina-colada")).isNotNull();
     assertThat(pkg.getRule("pina-colada").containsErrors()).isFalse();
-    assertThat(Sets.newHashSet(pkg.getTargets(Rule.class)).size()).isSameAs(1);
+    assertThat(Sets.newHashSet(pkg.getTargets(Rule.class)).size()).isSameInstanceAs(1);
   }
 
   @Test
@@ -323,7 +323,7 @@
     assertThat(target.getName()).isEqualTo("BUILD");
 
     // Test that it's memoized:
-    assertThat(pkg.getTarget("BUILD")).isSameAs(target);
+    assertThat(pkg.getTarget("BUILD")).isSameInstanceAs(target);
   }
 
   @Test
@@ -339,13 +339,13 @@
     assertThat(pkg.containsErrors()).isFalse();
 
     // X is a rule with a circular self-dependency.
-    assertThat(pkg.getTarget("X").getClass()).isSameAs(Rule.class);
+    assertThat(pkg.getTarget("X").getClass()).isSameInstanceAs(Rule.class);
 
     // Y is a rule
-    assertThat(pkg.getTarget("Y").getClass()).isSameAs(Rule.class);
+    assertThat(pkg.getTarget("Y").getClass()).isSameInstanceAs(Rule.class);
 
     // Z is a file
-    assertThat(pkg.getTarget("Z").getClass()).isSameAs(InputFile.class);
+    assertThat(pkg.getTarget("Z").getClass()).isSameInstanceAs(InputFile.class);
 
     // A is nothing
     NoSuchTargetException e = assertThrows(NoSuchTargetException.class, () -> pkg.getTarget("A"));
@@ -419,7 +419,7 @@
 
     // Ensure that rule2's "out2" didn't overwrite rule1's:
     assertThat(((OutputFile) pkg.getTarget("out2")).getGeneratingRule())
-        .isSameAs(pkg.getRule("rule1"));
+        .isSameInstanceAs(pkg.getRule("rule1"));
 
     // None of rule2, its inputs, or its outputs should belong to pkg:
     List<Target> found = new ArrayList<>();
diff --git a/src/test/java/com/google/devtools/build/lib/packages/PackageLoadingOptimizationsTest.java b/src/test/java/com/google/devtools/build/lib/packages/PackageLoadingOptimizationsTest.java
index 024063b..d08a6b4 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/PackageLoadingOptimizationsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/PackageLoadingOptimizationsTest.java
@@ -50,7 +50,7 @@
     assertThat(allLists).hasSize(10);
     ImmutableList<Label> firstList = allLists.get(0);
     for (int i = 1; i < allLists.size(); i++) {
-      assertThat(allLists.get(i)).isSameAs(firstList);
+      assertThat(allLists.get(i)).isSameInstanceAs(firstList);
     }
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
index 8670560..95479d3 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
@@ -300,7 +300,7 @@
     reporter.removeHandler(failFastHandler);
     createRule(depsRuleClass, "depsRule", attributeValues, testRuleLocation);
 
-    assertThat(eventCollector.count()).isSameAs(3);
+    assertThat(eventCollector.count()).isSameInstanceAs(3);
     assertDupError("//testpackage:dup1", "list1", "depsRule");
     assertDupError("//testpackage:dup1", "list3", "depsRule");
     assertDupError("//testpackage:dup2", "list3", "depsRule");
@@ -448,7 +448,7 @@
     Set<String> set = new HashSet<>();
     for (OutputFile outputFile : rule.getOutputFiles()) {
       set.add(outputFile.getName());
-      assertThat(outputFile.getGeneratingRule()).isSameAs(rule);
+      assertThat(outputFile.getGeneratingRule()).isSameInstanceAs(rule);
     }
     assertThat(set).containsExactly("foo-myrule.bar", "libmyrule-wazoo-myrule.mumble",
         "stuff-explicit_out-bar", "explicit_out");
@@ -692,7 +692,7 @@
     List<String> actual = new ArrayList<>();
     for (OutputFile outputFile : rule.getOutputFiles()) {
       actual.add(outputFile.getName());
-      assertThat(outputFile.getGeneratingRule()).isSameAs(rule);
+      assertThat(outputFile.getGeneratingRule()).isSameInstanceAs(rule);
     }
     assertWithMessage("unexpected output set").that(actual).containsExactly("first-myrule",
         "second-myrule", "out-third", "out-fourth", "third", "fourth");
@@ -842,7 +842,7 @@
     reporter.removeHandler(failFastHandler);
     createRule(childRuleClass, "child_rule", childValues, testRuleLocation);
 
-    assertThat(eventCollector.count()).isSameAs(1);
+    assertThat(eventCollector.count()).isSameInstanceAs(1);
     assertContainsEvent("//testpackage:child_rule: missing value for mandatory "
         + "attribute 'attr' in 'child_rule' rule");
   }
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java
index 75c6b92..777b760 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java
@@ -71,14 +71,14 @@
             /*env=*/ null,
             new AttributeContainer(ruleClass));
 
-    assertThat(rule.getAssociatedRule()).isSameAs(rule);
+    assertThat(rule.getAssociatedRule()).isSameInstanceAs(rule);
 
     // pkg.getRules() = [rule]
     Package pkg = pkgBuilder.build();
     assertThat(Sets.newHashSet(pkg.getTargets(Rule.class))).hasSize(1);
     assertThat(pkg.getTargets(Rule.class).iterator().next()).isEqualTo(rule);
 
-    assertThat(pkg.getTarget("foo")).isSameAs(rule);
+    assertThat(pkg.getTarget("foo")).isSameInstanceAs(rule);
 
     assertThat(rule.getLabel()).isEqualTo(Label.parseAbsolute("//mypkg:foo", ImmutableMap.of()));
     assertThat(rule.getName()).isEqualTo("foo");
diff --git a/src/test/java/com/google/devtools/build/lib/packages/TestTimeoutTest.java b/src/test/java/com/google/devtools/build/lib/packages/TestTimeoutTest.java
index 6871fd1..6a26f71 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/TestTimeoutTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/TestTimeoutTest.java
@@ -36,10 +36,10 @@
 
   @Test
   public void testBasicConversion() throws Exception {
-    assertThat(TestTimeout.valueOf("SHORT")).isSameAs(SHORT);
-    assertThat(TestTimeout.valueOf("MODERATE")).isSameAs(MODERATE);
-    assertThat(TestTimeout.valueOf("LONG")).isSameAs(LONG);
-    assertThat(TestTimeout.valueOf("ETERNAL")).isSameAs(ETERNAL);
+    assertThat(TestTimeout.valueOf("SHORT")).isSameInstanceAs(SHORT);
+    assertThat(TestTimeout.valueOf("MODERATE")).isSameInstanceAs(MODERATE);
+    assertThat(TestTimeout.valueOf("LONG")).isSameInstanceAs(LONG);
+    assertThat(TestTimeout.valueOf("ETERNAL")).isSameInstanceAs(ETERNAL);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/PackageFactoryTestBase.java b/src/test/java/com/google/devtools/build/lib/packages/util/PackageFactoryTestBase.java
index d6c53c1..7c3adb0 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/PackageFactoryTestBase.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/PackageFactoryTestBase.java
@@ -94,7 +94,7 @@
     for (String outName : outNames) {
       OutputFile out = (OutputFile) pkg.getTarget(outName);
       assertThat(rule.getOutputFiles()).contains(out);
-      assertThat(out.getGeneratingRule()).isSameAs(rule);
+      assertThat(out.getGeneratingRule()).isSameInstanceAs(rule);
       assertThat(out.getName()).isEqualTo(outName);
       assertThat(out.getTargetKind()).isEqualTo("generated file");
     }
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java
index 0854b52..16775f7 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java
@@ -182,7 +182,7 @@
     FileSystemUtils.writeContent(
         path, "cc_library(name = 'bar')\n".getBytes(StandardCharsets.ISO_8859_1));
     assertThat(getPackage("pkg"))
-        .isSameAs(oldPkg); // Change only becomes visible after invalidatePackages.
+        .isSameInstanceAs(oldPkg); // Change only becomes visible after invalidatePackages.
 
     invalidatePackages();
 
@@ -218,7 +218,7 @@
     // Change ctime to 1.
     clock.advanceMillis(1);
     path.setLastModifiedTime(1001);
-    assertThat(getPackage("pkg")).isSameAs(oldPkg); // change not yet visible
+    assertThat(getPackage("pkg")).isSameInstanceAs(oldPkg); // change not yet visible
 
     invalidatePackages();
 
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
index ff64aa5..7ab05be 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
@@ -124,7 +124,7 @@
 
     tester.sync();
     Target newTarget = tester.getTarget("//base:hello");
-    assertThat(newTarget).isSameAs(oldTarget);
+    assertThat(newTarget).isSameInstanceAs(oldTarget);
   }
 
   @Test
@@ -149,7 +149,7 @@
     tester.modifyFile("base/foo.txt", "other");
     tester.sync();
     Target newTarget = tester.getTarget("//base:hello");
-    assertThat(newTarget).isSameAs(oldTarget);
+    assertThat(newTarget).isSameInstanceAs(oldTarget);
   }
 
   @Test
@@ -162,7 +162,7 @@
     tester.removeFile("base/foo.txt");
     tester.sync();
     Target newTarget = tester.getTarget("//base:hello");
-    assertThat(newTarget).isSameAs(oldTarget);
+    assertThat(newTarget).isSameInstanceAs(oldTarget);
   }
 
   @Test
@@ -244,7 +244,7 @@
     tester.sync();
 
     Target fg2 = tester.getTarget("//a:fg");
-    assertThat(fg2).isSameAs(fg1);
+    assertThat(fg2).isSameInstanceAs(fg1);
   }
 
   @Test
@@ -354,7 +354,7 @@
     // Write file in directory to force reload of top-level glob.
     tester.addFile("pkg/irrelevant_file");
     tester.addFile("pkg/bar/irrelevant_file"); // Subglob is also reloaded.
-    assertThat(tester.getTarget("//pkg:pkg").getPackage()).isSameAs(pkg);
+    assertThat(tester.getTarget("//pkg:pkg").getPackage()).isSameInstanceAs(pkg);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java
index d27d60e..5fc8679 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java
@@ -206,7 +206,7 @@
     assertThat(pkg1.getName()).isEqualTo("pkg1");
     assertThat(pkg1.getFilename().asPath().getPathString()).isEqualTo("/workspace/pkg1/BUILD");
     assertThat(getPackageManager().getPackage(reporter, PackageIdentifier.createInMainRepo("pkg1")))
-        .isSameAs(pkg1);
+        .isSameInstanceAs(pkg1);
   }
 
   @Test
@@ -323,7 +323,7 @@
     setOptions("--package_path=/workspace:/otherroot");
 
     Package oldPkg = getPackage("pkg");
-    assertThat(getPackage("pkg")).isSameAs(oldPkg); // change not yet visible
+    assertThat(getPackage("pkg")).isSameInstanceAs(oldPkg); // change not yet visible
     assertThat(oldPkg.getFilename().asPath()).isEqualTo(buildFile1);
     assertThat(oldPkg.getSourceRoot()).isEqualTo(Root.fromPath(rootDirectory));
 
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/PathPackageLocatorTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/PathPackageLocatorTest.java
index f8374ac..f17aa96 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/PathPackageLocatorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/PathPackageLocatorTest.java
@@ -326,7 +326,7 @@
         workspace,
         workspace,
         BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY);
-    assertThat(eventCollector.count()).isSameAs(0);
+    assertThat(eventCollector.count()).isSameInstanceAs(0);
 
     PathPackageLocator.create(
         null,
@@ -335,7 +335,7 @@
         workspace,
         workspace.getRelative("foo"),
         BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY);
-    assertThat(eventCollector.count()).isSameAs(1);
+    assertThat(eventCollector.count()).isSameInstanceAs(1);
     assertContainsEvent("The package path element 'foo' will be taken relative");
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/profiler/ProfilerChartTest.java b/src/test/java/com/google/devtools/build/lib/profiler/ProfilerChartTest.java
index dcbb24b..cf294a3 100644
--- a/src/test/java/com/google/devtools/build/lib/profiler/ProfilerChartTest.java
+++ b/src/test/java/com/google/devtools/build/lib/profiler/ProfilerChartTest.java
@@ -128,11 +128,11 @@
     assertThat(types.get(2).getName()).isEqualTo(type3.getName());
     assertThat(types.get(2).getColor()).isEqualTo(type3.getColor());
 
-    assertThat(chart.lookUpType("name3")).isSameAs(type3);
-    assertThat(chart.lookUpType("name2")).isSameAs(type2);
-    assertThat(chart.lookUpType("name1")).isSameAs(type1);
+    assertThat(chart.lookUpType("name3")).isSameInstanceAs(type3);
+    assertThat(chart.lookUpType("name2")).isSameInstanceAs(type2);
+    assertThat(chart.lookUpType("name1")).isSameInstanceAs(type1);
 
-    assertThat(chart.lookUpType("wergl")).isSameAs(Chart.UNKNOWN_TYPE);
+    assertThat(chart.lookUpType("wergl")).isSameInstanceAs(Chart.UNKNOWN_TYPE);
     types = chart.getSortedTypes();
     assertThat(types).hasSize(4);
 
@@ -155,7 +155,7 @@
     ChartBar bar = rows.get(0).getBars().get(0);
     assertThat(bar.getStart()).isEqualTo(2);
     assertThat(bar.getStop()).isEqualTo(3);
-    assertThat(bar.getType()).isSameAs(type1);
+    assertThat(bar.getType()).isSameInstanceAs(type1);
     assertThat(bar.getLabel()).isEqualTo("label1");
   }
 
@@ -207,7 +207,7 @@
     assertThat(bar1.getRow()).isEqualTo(row1);
     assertThat(bar1.getStart()).isEqualTo(1);
     assertThat(bar1.getStop()).isEqualTo(2);
-    assertThat(bar1.getType()).isSameAs(type);
+    assertThat(bar1.getType()).isSameInstanceAs(type);
     assertThat(bar1.getLabel()).isEqualTo("label1");
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/remote/ByteStreamUploaderTest.java b/src/test/java/com/google/devtools/build/lib/remote/ByteStreamUploaderTest.java
index 03f7b6f..2e39fdf 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/ByteStreamUploaderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/ByteStreamUploaderTest.java
@@ -692,7 +692,7 @@
 
     blocker.countDown();
 
-    assertThat(upload1).isSameAs(upload2);
+    assertThat(upload1).isSameInstanceAs(upload2);
 
     upload1.get();
 
diff --git a/src/test/java/com/google/devtools/build/lib/remote/RemoteActionFileSystemTest.java b/src/test/java/com/google/devtools/build/lib/remote/RemoteActionFileSystemTest.java
index e3c5a3b..40b6f81 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/RemoteActionFileSystemTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/RemoteActionFileSystemTest.java
@@ -86,7 +86,7 @@
     Path localActionFsPath = actionFs.getPath(localArtifact.getPath().asFragment());
     String actualLocalContents =
         FileSystemUtils.readContent(localActionFsPath, StandardCharsets.UTF_8);
-    assertThat(remoteActionFsPath.getFileSystem()).isSameAs(actionFs);
+    assertThat(remoteActionFsPath.getFileSystem()).isSameInstanceAs(actionFs);
     assertThat(actualRemoteContents).isEqualTo("remote contents");
     assertThat(actualLocalContents).isEqualTo("local contents");
     verify(inputFetcher)
@@ -115,7 +115,7 @@
     symlinkActionFs.createSymbolicLink(actionFs.getPath(remoteArtifact.getPath().asFragment()));
 
     // assert
-    assertThat(symlinkActionFs.getFileSystem()).isSameAs(actionFs);
+    assertThat(symlinkActionFs.getFileSystem()).isSameInstanceAs(actionFs);
     verify(inputFetcher)
         .downloadFile(eq(remoteArtifact.getPath()), eq(inputs.getMetadata(remoteArtifact)));
     String symlinkTargetContents =
diff --git a/src/test/java/com/google/devtools/build/lib/remote/RemoteRetrierTest.java b/src/test/java/com/google/devtools/build/lib/remote/RemoteRetrierTest.java
index 61efcd0..6d687bc 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/RemoteRetrierTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/RemoteRetrierTest.java
@@ -158,6 +158,6 @@
                     () -> {
                       throw thrown;
                     }));
-    assertThat(expected).isSameAs(thrown);
+    assertThat(expected).isSameInstanceAs(thrown);
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
index 1bcf7e3..17f6be6 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
@@ -261,7 +261,7 @@
     when(res.status()).thenReturn(Status.EXECUTION_FAILED);
     when(localRunner.exec(eq(spawn), eq(policy))).thenReturn(res);
 
-    assertThat(runner.exec(spawn, policy)).isSameAs(res);
+    assertThat(runner.exec(spawn, policy)).isSameInstanceAs(res);
 
     verify(localRunner).exec(eq(spawn), eq(policy));
     verify(runner)
@@ -401,7 +401,7 @@
     when(localRunner.exec(eq(spawn), eq(policy))).thenThrow(err);
 
     IOException e = assertThrows(IOException.class, () -> runner.exec(spawn, policy));
-    assertThat(e).isSameAs(err);
+    assertThat(e).isSameInstanceAs(err);
 
     verify(localRunner).exec(eq(spawn), eq(policy));
   }
@@ -424,7 +424,7 @@
     when(localRunner.exec(eq(spawn), eq(policy))).thenThrow(err);
 
     IOException e = assertThrows(IOException.class, () -> runner.exec(spawn, policy));
-    assertThat(e).isSameAs(err);
+    assertThat(e).isSameInstanceAs(err);
 
     verify(localRunner).exec(eq(spawn), eq(policy));
   }
@@ -445,7 +445,7 @@
     when(localRunner.exec(eq(spawn), eq(policy))).thenThrow(err);
 
     IOException e = assertThrows(IOException.class, () -> runner.exec(spawn, policy));
-    assertThat(e).isSameAs(err);
+    assertThat(e).isSameInstanceAs(err);
 
     verify(localRunner).exec(eq(spawn), eq(policy));
   }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidCommonTest.java
index c63eaa3..81de74d 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidCommonTest.java
@@ -93,13 +93,14 @@
   public void testMultidexModeEnum() throws Exception {
     assertThat(MultidexMode.getValidValues()).containsExactly("native", "legacy", "manual_main_dex",
         "off");
-    assertThat(MultidexMode.fromValue("native")).isSameAs(MultidexMode.NATIVE);
+    assertThat(MultidexMode.fromValue("native")).isSameInstanceAs(MultidexMode.NATIVE);
     assertThat(MultidexMode.NATIVE.getAttributeValue()).isEqualTo("native");
-    assertThat(MultidexMode.fromValue("legacy")).isSameAs(MultidexMode.LEGACY);
+    assertThat(MultidexMode.fromValue("legacy")).isSameInstanceAs(MultidexMode.LEGACY);
     assertThat(MultidexMode.LEGACY.getAttributeValue()).isEqualTo("legacy");
-    assertThat(MultidexMode.fromValue("manual_main_dex")).isSameAs(MultidexMode.MANUAL_MAIN_DEX);
+    assertThat(MultidexMode.fromValue("manual_main_dex"))
+        .isSameInstanceAs(MultidexMode.MANUAL_MAIN_DEX);
     assertThat(MultidexMode.MANUAL_MAIN_DEX.getAttributeValue()).isEqualTo("manual_main_dex");
-    assertThat(MultidexMode.fromValue("off")).isSameAs(MultidexMode.OFF);
+    assertThat(MultidexMode.fromValue("off")).isSameInstanceAs(MultidexMode.OFF);
     assertThat(MultidexMode.OFF.getAttributeValue()).isEqualTo("off");
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDataConverterTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDataConverterTest.java
index 51bcd14..8544da5 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDataConverterTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidDataConverterTest.java
@@ -115,7 +115,7 @@
 
   private static <T> Function<String, T> getFunction(T t) {
     return x -> {
-      assertThat(x).isSameAs(TO_MAP);
+      assertThat(x).isSameInstanceAs(TO_MAP);
       return t;
     };
   }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
index 561e3c1..aa6a4a2 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
@@ -743,7 +743,7 @@
     SpawnAction sourceJarAction = (SpawnAction) actionsTestUtil().getActionForArtifactEndingWith(
         actionsTestUtil().artifactClosureOf(outputGroup), "libidl-idl.srcjar");
 
-    assertThat(sourceJarAction).isSameAs(classJarAction);
+    assertThat(sourceJarAction).isSameInstanceAs(classJarAction);
 
     PathFragment genfilesPath =
         getTargetConfiguration()
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java
index 0c27b57..e23b3f2 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java
@@ -490,7 +490,7 @@
     ResourceFilter filter =
         resourceFilterFactory.getResourceFilter(errorConsumer, resourceDeps, localResources);
 
-    assertThat(resourceDeps.filter(errorConsumer, filter)).isSameAs(resourceDeps);
+    assertThat(resourceDeps.filter(errorConsumer, filter)).isSameInstanceAs(resourceDeps);
 
     return localResources.filterLocalResources(errorConsumer, filter).getResources();
   }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTransitionFactoryTest.java b/src/test/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTransitionFactoryTest.java
index dbdd071..c0be600 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTransitionFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTransitionFactoryTest.java
@@ -63,7 +63,7 @@
     BuildOptions original = getOptionsWithoutFlagFragment();
     BuildOptions converted = transition.patch(original);
 
-    assertThat(converted).isSameAs(original);
+    assertThat(converted).isSameInstanceAs(original);
     assertThat(original.contains(ConfigFeatureFlagOptions.class)).isFalse();
   }
 
@@ -85,7 +85,7 @@
     BuildOptions original = getOptionsWithoutFlagFragment();
     BuildOptions converted = transition.patch(original);
 
-    assertThat(converted).isSameAs(original);
+    assertThat(converted).isSameInstanceAs(original);
     assertThat(original.contains(ConfigFeatureFlagOptions.class)).isFalse();
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
index 04314d5..3134fe5 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
@@ -1222,7 +1222,7 @@
     ConfiguredTarget myConfiguredTarget = getConfiguredTarget("//java/test:my");
     ConfiguredTarget javaLibraryTarget = getConfiguredTarget("//java/test:jl");
 
-    assertThat(myConfiguredTarget.get("java")).isSameAs(javaLibraryTarget.get("java"));
+    assertThat(myConfiguredTarget.get("java")).isSameInstanceAs(javaLibraryTarget.get("java"));
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/python/PyStructUtilsTest.java b/src/test/java/com/google/devtools/build/lib/rules/python/PyStructUtilsTest.java
index c555ed7..21f8cb8 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/python/PyStructUtilsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/python/PyStructUtilsTest.java
@@ -107,7 +107,7 @@
         makeStruct(
             ImmutableMap.of(
                 PyStructUtils.TRANSITIVE_SOURCES, SkylarkNestedSet.of(Artifact.class, sources)));
-    assertThat(PyStructUtils.getTransitiveSources(info)).isSameAs(sources);
+    assertThat(PyStructUtils.getTransitiveSources(info)).isSameInstanceAs(sources);
   }
 
   @Test
@@ -162,7 +162,7 @@
     StructImpl info =
         makeStruct(
             ImmutableMap.of(PyStructUtils.IMPORTS, SkylarkNestedSet.of(String.class, imports)));
-    assertThat(PyStructUtils.getImports(info)).isSameAs(imports);
+    assertThat(PyStructUtils.getImports(info)).isSameInstanceAs(imports);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java b/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java
index 205ff99..76c9ede 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java
@@ -335,7 +335,7 @@
 
     /** Asserts that both commands were executed on the same thread. */
     public void assertOnSameThreadAs(CommandState other) {
-      assertThat(thread).isSameAs(other.thread);
+      assertThat(thread).isSameInstanceAs(other.thread);
     }
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/TestSummaryTest.java b/src/test/java/com/google/devtools/build/lib/runtime/TestSummaryTest.java
index 7415d99..a8be253 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/TestSummaryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/TestSummaryTest.java
@@ -198,7 +198,7 @@
     // No need to copy if built twice in a row; no direct setters on the object.
     TestSummary summary = basicBuilder.build();
     TestSummary sameSummary = basicBuilder.build();
-    assertThat(sameSummary).isSameAs(summary);
+    assertThat(sameSummary).isSameInstanceAs(summary);
 
     basicBuilder.addTestTimes(ImmutableList.of(40L));
 
diff --git a/src/test/java/com/google/devtools/build/lib/shell/ConsumersTest.java b/src/test/java/com/google/devtools/build/lib/shell/ConsumersTest.java
index aa397c9..4a6a3c0 100644
--- a/src/test/java/com/google/devtools/build/lib/shell/ConsumersTest.java
+++ b/src/test/java/com/google/devtools/build/lib/shell/ConsumersTest.java
@@ -85,7 +85,7 @@
     } catch (IOException e) {
       fail();
     } catch (OutOfMemoryError e) {
-      assertWithMessage("OutOfMemoryError is not masked").that(e).isSameAs(error);
+      assertWithMessage("OutOfMemoryError is not masked").that(e).isSameInstanceAs(error);
     }
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java
index eb62a85..3d2e4bd 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java
@@ -51,7 +51,7 @@
   }
 
   private static void verifyEquivalent(GlobDescriptor orig, GlobDescriptor deserialized) {
-    assertThat(deserialized).isSameAs(orig);
+    assertThat(deserialized).isSameInstanceAs(orig);
   }
 
   @Test
@@ -70,7 +70,7 @@
         original.getSubdir(),
         original.getPattern(),
         original.excludeDirs());
-    assertThat(sameCopy).isSameAs(original);
+    assertThat(sameCopy).isSameInstanceAs(original);
 
     GlobDescriptor diffCopy = GlobDescriptor.create(
         original.getPackageId(),
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
index 153b0ee..3a2c36c 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
@@ -429,7 +429,7 @@
             reporter,
             ModifiedFileSet.builder().modify(PathFragment.create("foo/irrelevant")).build(),
             Root.fromPath(rootDirectory));
-    assertThat(validPackage(skyKey)).isSameAs(value);
+    assertThat(validPackage(skyKey)).isSameInstanceAs(value);
   }
 
   @Test
@@ -447,7 +447,7 @@
             reporter,
             ModifiedFileSet.builder().modify(PathFragment.create("foo/irrelevant")).build(),
             Root.fromPath(rootDirectory));
-    assertThat(validPackage(skyKey)).isSameAs(value);
+    assertThat(validPackage(skyKey)).isSameInstanceAs(value);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/DeserializationContextTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/DeserializationContextTest.java
index 31efc08..fc8f5b2 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/DeserializationContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/DeserializationContextTest.java
@@ -52,7 +52,8 @@
     when(codedInputStream.readSInt32()).thenReturn(1);
     DeserializationContext deserializationContext =
         new DeserializationContext(registry, ImmutableMap.of());
-    assertThat((Object) deserializationContext.deserialize(codedInputStream)).isSameAs(constant);
+    assertThat((Object) deserializationContext.deserialize(codedInputStream))
+        .isSameInstanceAs(constant);
     Mockito.verify(codedInputStream).readSInt32();
     Mockito.verify(registry).maybeGetConstantByTag(1);
   }
@@ -70,7 +71,8 @@
     Object returnValue = new Object();
     when(codecDescriptor.deserialize(deserializationContext, codedInputStream))
         .thenReturn(returnValue);
-    assertThat((Object) deserializationContext.deserialize(codedInputStream)).isSameAs(returnValue);
+    assertThat((Object) deserializationContext.deserialize(codedInputStream))
+        .isSameInstanceAs(returnValue);
     Mockito.verify(codedInputStream).readSInt32();
     Mockito.verify(registry).getCodecDescriptorByTag(1);
     Mockito.verify(codecDescriptor).deserialize(deserializationContext, codedInputStream);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecRegistryTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecRegistryTest.java
index c0841c5..ed9ad23 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecRegistryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecRegistryTest.java
@@ -40,12 +40,14 @@
             .build();
 
     CodecDescriptor fooDescriptor = underTest.getCodecDescriptorForObject("hello");
-    assertThat(fooDescriptor.getCodec()).isSameAs(codec1);
-    assertThat(underTest.getCodecDescriptorByTag(fooDescriptor.getTag())).isSameAs(fooDescriptor);
+    assertThat(fooDescriptor.getCodec()).isSameInstanceAs(codec1);
+    assertThat(underTest.getCodecDescriptorByTag(fooDescriptor.getTag()))
+        .isSameInstanceAs(fooDescriptor);
 
     CodecDescriptor barDescriptor = underTest.getCodecDescriptorForObject(1);
-    assertThat(barDescriptor.getCodec()).isSameAs(codec2);
-    assertThat(underTest.getCodecDescriptorByTag(barDescriptor.getTag())).isSameAs(barDescriptor);
+    assertThat(barDescriptor.getCodec()).isSameInstanceAs(codec2);
+    assertThat(underTest.getCodecDescriptorByTag(barDescriptor.getTag()))
+        .isSameInstanceAs(barDescriptor);
 
     assertThat(barDescriptor.getTag()).isNotEqualTo(fooDescriptor.getTag());
 
@@ -66,16 +68,16 @@
             .build();
 
     CodecDescriptor fooDescriptor = underTest.getCodecDescriptorForObject("value1");
-    assertThat(fooDescriptor.getCodec()).isSameAs(codec);
+    assertThat(fooDescriptor.getCodec()).isSameInstanceAs(codec);
 
     CodecDescriptor barDefaultDescriptor = underTest.getCodecDescriptorForObject(15);
     assertThat(barDefaultDescriptor.getCodec()).isNotSameInstanceAs(codec);
     assertThat(barDefaultDescriptor.getTag()).isNotEqualTo(fooDescriptor.getTag());
     assertThat(underTest.getCodecDescriptorByTag(barDefaultDescriptor.getTag()))
-        .isSameAs(barDefaultDescriptor);
+        .isSameInstanceAs(barDefaultDescriptor);
 
     assertThat(underTest.getCodecDescriptorForObject((byte) 9).getCodec().getClass())
-        .isSameAs(barDefaultDescriptor.getCodec().getClass());
+        .isSameInstanceAs(barDefaultDescriptor.getCodec().getClass());
 
     // Bogus tags still throw.
     assertThrows(NoCodecException.class, () -> underTest.getCodecDescriptorByTag(42));
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
index 7bda34c..cac9a11 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
@@ -805,7 +805,7 @@
     Object l1 = evalRuleClassCode("Label('//foo/foo:foo')");
     // Implicitly creates a new pkgContext and environment, yet labels should be the same.
     Object l2 = evalRuleClassCode("Label('//foo/foo:foo')");
-    assertThat(l1).isSameAs(l2);
+    assertThat(l1).isSameInstanceAs(l2);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
index ca45d46..5bd3ff2 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
@@ -798,7 +798,7 @@
   public void testConfiguration() throws Exception {
     SkylarkRuleContext ruleContext = createRuleContext("//foo:foo");
     Object result = evalRuleContextCode(ruleContext, "ruleContext.configuration");
-    assertThat(ruleContext.getRuleContext().getConfiguration()).isSameAs(result);
+    assertThat(ruleContext.getRuleContext().getConfiguration()).isSameInstanceAs(result);
   }
 
   @Test
@@ -819,7 +819,7 @@
   public void testHostConfiguration() throws Exception {
     SkylarkRuleContext ruleContext = createRuleContext("//foo:foo");
     Object result = evalRuleContextCode(ruleContext, "ruleContext.host_configuration");
-    assertThat(ruleContext.getRuleContext().getHostConfiguration()).isSameAs(result);
+    assertThat(ruleContext.getRuleContext().getHostConfiguration()).isSameInstanceAs(result);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/RuntimeTest.java b/src/test/java/com/google/devtools/build/lib/syntax/RuntimeTest.java
index 5444ef8..06e68ba 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/RuntimeTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/RuntimeTest.java
@@ -78,8 +78,8 @@
     reg.registerBuiltin(DummyType.class, "eq2", equalValue2);
     List<Object> values = reg.getBuiltins();
     assertThat(values).hasSize(2);
-    assertThat(values.get(0)).isSameAs(equalValue1);
-    assertThat(values.get(1)).isSameAs(equalValue2);
+    assertThat(values.get(0)).isSameInstanceAs(equalValue1);
+    assertThat(values.get(1)).isSameInstanceAs(equalValue2);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/FakeAttributeMapper.java b/src/test/java/com/google/devtools/build/lib/testutil/FakeAttributeMapper.java
index a73d46e..19e0cab 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/FakeAttributeMapper.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/FakeAttributeMapper.java
@@ -94,7 +94,7 @@
     }
 
     private <U> U validateAndGet(Type<U> otherType) {
-      assertThat(type).isSameAs(otherType);
+      assertThat(type).isSameInstanceAs(otherType);
       return otherType.cast(value);
     }
   }
diff --git a/src/test/java/com/google/devtools/build/lib/util/PairTest.java b/src/test/java/com/google/devtools/build/lib/util/PairTest.java
index 15879b4..f4c31e6 100644
--- a/src/test/java/com/google/devtools/build/lib/util/PairTest.java
+++ b/src/test/java/com/google/devtools/build/lib/util/PairTest.java
@@ -31,8 +31,8 @@
     Object a = new Object();
     Object b = new Object();
     Pair<Object, Object> p = Pair.of(a, b);
-    assertThat(p.first).isSameAs(a);
-    assertThat(p.second).isSameAs(b);
+    assertThat(p.first).isSameInstanceAs(a);
+    assertThat(p.second).isSameInstanceAs(b);
     assertThat(p).isEqualTo(Pair.of(a, b));
     assertThat(p.hashCode()).isEqualTo(31 * a.hashCode() + b.hashCode());
   }
diff --git a/src/test/java/com/google/devtools/build/lib/util/StringCanonicalizerTest.java b/src/test/java/com/google/devtools/build/lib/util/StringCanonicalizerTest.java
index 2874b6d..6e4d2a6 100644
--- a/src/test/java/com/google/devtools/build/lib/util/StringCanonicalizerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/util/StringCanonicalizerTest.java
@@ -36,6 +36,6 @@
   public void twoSameStringsAreCanonicalized() {
     String stringA1 = StringCanonicalizer.intern(new String("A"));
     String stringA2 = StringCanonicalizer.intern(new String("A"));
-    assertThat(stringA2).isSameAs(stringA1);
+    assertThat(stringA2).isSameInstanceAs(stringA1);
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/util/io/OutErrTest.java b/src/test/java/com/google/devtools/build/lib/util/io/OutErrTest.java
index d9f0e17..e7ec852 100644
--- a/src/test/java/com/google/devtools/build/lib/util/io/OutErrTest.java
+++ b/src/test/java/com/google/devtools/build/lib/util/io/OutErrTest.java
@@ -30,8 +30,8 @@
 
   @Test
   public void testRetainsOutErr() {
-    assertThat(outErr.getOutputStream()).isSameAs(out);
-    assertThat(outErr.getErrorStream()).isSameAs(err);
+    assertThat(outErr.getOutputStream()).isSameInstanceAs(out);
+    assertThat(outErr.getErrorStream()).isSameInstanceAs(err);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/DigestHashFunctionGlobalsTest.java b/src/test/java/com/google/devtools/build/lib/vfs/DigestHashFunctionGlobalsTest.java
index a822da0..6da57f5 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/DigestHashFunctionGlobalsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/DigestHashFunctionGlobalsTest.java
@@ -49,42 +49,42 @@
 
   @Test
   public void convertReturnsTheSameValueAsTheConstant() throws Exception {
-    assertThat(converter.convert("sha-256")).isSameAs(DigestHashFunction.SHA256);
-    assertThat(converter.convert("SHA-256")).isSameAs(DigestHashFunction.SHA256);
-    assertThat(converter.convert("SHA256")).isSameAs(DigestHashFunction.SHA256);
-    assertThat(converter.convert("sha256")).isSameAs(DigestHashFunction.SHA256);
+    assertThat(converter.convert("sha-256")).isSameInstanceAs(DigestHashFunction.SHA256);
+    assertThat(converter.convert("SHA-256")).isSameInstanceAs(DigestHashFunction.SHA256);
+    assertThat(converter.convert("SHA256")).isSameInstanceAs(DigestHashFunction.SHA256);
+    assertThat(converter.convert("sha256")).isSameInstanceAs(DigestHashFunction.SHA256);
 
-    assertThat(converter.convert("SHA-1")).isSameAs(DigestHashFunction.SHA1);
-    assertThat(converter.convert("sha-1")).isSameAs(DigestHashFunction.SHA1);
-    assertThat(converter.convert("SHA1")).isSameAs(DigestHashFunction.SHA1);
-    assertThat(converter.convert("sha1")).isSameAs(DigestHashFunction.SHA1);
+    assertThat(converter.convert("SHA-1")).isSameInstanceAs(DigestHashFunction.SHA1);
+    assertThat(converter.convert("sha-1")).isSameInstanceAs(DigestHashFunction.SHA1);
+    assertThat(converter.convert("SHA1")).isSameInstanceAs(DigestHashFunction.SHA1);
+    assertThat(converter.convert("sha1")).isSameInstanceAs(DigestHashFunction.SHA1);
 
-    assertThat(converter.convert("MD5")).isSameAs(DigestHashFunction.MD5);
-    assertThat(converter.convert("md5")).isSameAs(DigestHashFunction.MD5);
+    assertThat(converter.convert("MD5")).isSameInstanceAs(DigestHashFunction.MD5);
+    assertThat(converter.convert("md5")).isSameInstanceAs(DigestHashFunction.MD5);
   }
 
   @Test
   public void lateRegistrationGetsPickedUpByConverter() throws Exception {
     DigestHashFunction.register(Hashing.goodFastHash(32), "SHA-512");
 
-    assertThat(converter.convert("SHA-512")).isSameAs(converter.convert("sha-512"));
+    assertThat(converter.convert("SHA-512")).isSameInstanceAs(converter.convert("sha-512"));
   }
 
   @Test
   public void lateRegistrationWithAlternativeNamesGetsPickedUpByConverter() throws Exception {
     DigestHashFunction.register(Hashing.goodFastHash(64), "SHA-384", "SHA384", "SHA_384");
 
-    assertThat(converter.convert("SHA-384")).isSameAs(converter.convert("SHA-384"));
-    assertThat(converter.convert("Sha-384")).isSameAs(converter.convert("SHA-384"));
-    assertThat(converter.convert("sha-384")).isSameAs(converter.convert("SHA-384"));
+    assertThat(converter.convert("SHA-384")).isSameInstanceAs(converter.convert("SHA-384"));
+    assertThat(converter.convert("Sha-384")).isSameInstanceAs(converter.convert("SHA-384"));
+    assertThat(converter.convert("sha-384")).isSameInstanceAs(converter.convert("SHA-384"));
 
-    assertThat(converter.convert("SHA384")).isSameAs(converter.convert("SHA-384"));
-    assertThat(converter.convert("Sha384")).isSameAs(converter.convert("SHA-384"));
-    assertThat(converter.convert("sha384")).isSameAs(converter.convert("SHA-384"));
+    assertThat(converter.convert("SHA384")).isSameInstanceAs(converter.convert("SHA-384"));
+    assertThat(converter.convert("Sha384")).isSameInstanceAs(converter.convert("SHA-384"));
+    assertThat(converter.convert("sha384")).isSameInstanceAs(converter.convert("SHA-384"));
 
-    assertThat(converter.convert("SHA_384")).isSameAs(converter.convert("SHA-384"));
-    assertThat(converter.convert("Sha_384")).isSameAs(converter.convert("SHA-384"));
-    assertThat(converter.convert("sha_384")).isSameAs(converter.convert("SHA-384"));
+    assertThat(converter.convert("SHA_384")).isSameInstanceAs(converter.convert("SHA-384"));
+    assertThat(converter.convert("Sha_384")).isSameInstanceAs(converter.convert("SHA-384"));
+    assertThat(converter.convert("sha_384")).isSameInstanceAs(converter.convert("SHA-384"));
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemsTest.java b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemsTest.java
index 58589de..0fad961 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemsTest.java
@@ -28,12 +28,14 @@
 
   @Test
   public void testFileSystemsCreatesOnlyOneDefaultNative() {
-    assertThat(FileSystems.getNativeFileSystem()).isSameAs(FileSystems.getNativeFileSystem());
+    assertThat(FileSystems.getNativeFileSystem())
+        .isSameInstanceAs(FileSystems.getNativeFileSystem());
   }
 
   @Test
   public void testFileSystemsCreatesOnlyOneDefaultJavaIo() {
-    assertThat(FileSystems.getJavaIoFileSystem()).isSameAs(FileSystems.getJavaIoFileSystem());
+    assertThat(FileSystems.getJavaIoFileSystem())
+        .isSameInstanceAs(FileSystems.getJavaIoFileSystem());
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/PathAbstractTest.java b/src/test/java/com/google/devtools/build/lib/vfs/PathAbstractTest.java
index 2998386..a328f88 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/PathAbstractTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/PathAbstractTest.java
@@ -60,7 +60,7 @@
   @Test
   public void testNormalStringsDoNotAllocate() {
     String normal1 = "/a/b/hello.txt";
-    assertThat(create(normal1).getPathString()).isSameAs(normal1);
+    assertThat(create(normal1).getPathString()).isSameInstanceAs(normal1);
 
     // Sanity check our testing strategy
     String notNormal = "/a/../b";
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/RootTest.java b/src/test/java/com/google/devtools/build/lib/vfs/RootTest.java
index 6858533..888ecfb 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/RootTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/RootTest.java
@@ -70,7 +70,7 @@
     FileSystem fs2 = new InMemoryFileSystem(BlazeClock.instance());
     Root root = Root.fromPath(fs.getPath("/foo"));
     Root root2 = Root.toFileSystem(root, fs2);
-    assertThat(root2.asPath().getFileSystem()).isSameAs(fs2);
+    assertThat(root2.asPath().getFileSystem()).isSameInstanceAs(fs2);
     assertThat(root2.asPath().asFragment()).isEqualTo(PathFragment.create("/foo"));
     assertThat(root.isAbsolute()).isFalse();
   }
diff --git a/src/test/java/com/google/devtools/build/skyframe/ErrorInfoTest.java b/src/test/java/com/google/devtools/build/skyframe/ErrorInfoTest.java
index b3b5f56..f9e6409 100644
--- a/src/test/java/com/google/devtools/build/skyframe/ErrorInfoTest.java
+++ b/src/test/java/com/google/devtools/build/skyframe/ErrorInfoTest.java
@@ -57,8 +57,8 @@
         isTransitivelyTransient);
 
     assertThat(errorInfo.getRootCauses()).containsExactly(causeOfException);
-    assertThat(errorInfo.getException()).isSameAs(exception);
-    assertThat(errorInfo.getRootCauseOfException()).isSameAs(causeOfException);
+    assertThat(errorInfo.getException()).isSameInstanceAs(exception);
+    assertThat(errorInfo.getRootCauseOfException()).isSameInstanceAs(causeOfException);
     assertThat(errorInfo.getCycleInfo()).isEmpty();
     assertThat(errorInfo.isDirectlyTransient()).isEqualTo(isDirectlyTransient);
     assertThat(errorInfo.isTransitivelyTransient()).isEqualTo(
@@ -137,8 +137,8 @@
     // For simplicity we test the current implementation detail that we choose the first non-null
     // (exception, cause) pair that we encounter. This isn't necessarily a requirement of the
     // interface, but it makes the test convenient and is a way to document the current behavior.
-    assertThat(errorInfo.getException()).isSameAs(exception1);
-    assertThat(errorInfo.getRootCauseOfException()).isSameAs(causeOfException1);
+    assertThat(errorInfo.getException()).isSameInstanceAs(exception1);
+    assertThat(errorInfo.getRootCauseOfException()).isSameInstanceAs(causeOfException1);
 
     assertThat(errorInfo.getCycleInfo()).containsExactly(
         new CycleInfo(
diff --git a/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java b/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
index 6331052..7f80c8b 100644
--- a/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
+++ b/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
@@ -4126,7 +4126,7 @@
         .setConstantValue(value);
     tester.invalidateTransientErrors();
     StringValue stringValue = (StringValue) tester.evalAndGet(/*keepGoing=*/true, errorKey);
-    assertThat(value).isSameAs(stringValue);
+    assertThat(value).isSameInstanceAs(stringValue);
     // Value builder will now throw, but we should never get to it because it isn't dirty.
     tester.getOrCreate(errorKey, /*markAsModified=*/false).setHasTransientError(true);
     tester.invalidateTransientErrors();
diff --git a/src/test/java/com/google/devtools/build/skyframe/ParallelEvaluatorTest.java b/src/test/java/com/google/devtools/build/skyframe/ParallelEvaluatorTest.java
index 73444e2..83bc083 100644
--- a/src/test/java/com/google/devtools/build/skyframe/ParallelEvaluatorTest.java
+++ b/src/test/java/com/google/devtools/build/skyframe/ParallelEvaluatorTest.java
@@ -919,7 +919,7 @@
     ErrorInfo error = result.getError(topKey);
     assertThat(error.getRootCauses()).containsExactly(catastropheKey);
     if (keepGoing) {
-      assertThat(result.getCatastrophe()).isSameAs(catastrophe);
+      assertThat(result.getCatastrophe()).isSameInstanceAs(catastrophe);
     }
   }
 
@@ -1693,7 +1693,7 @@
     assertThatEvaluationResult(result2)
         .hasErrorEntryForKeyThat(topKey)
         .hasExceptionThat()
-        .isSameAs(topException);
+        .isSameInstanceAs(topException);
     assertThat(numComputes.get()).isEqualTo(2);
   }
 
@@ -1941,7 +1941,7 @@
         .setComputedValue(CONCATENATE);
     EvaluationResult<StringValue> result = eval(keepGoing, ImmutableList.of(topKey));
     assertThat(result.keyNames()).isEmpty();
-    assertThat(result.getError(topKey).getException()).isSameAs(exception);
+    assertThat(result.getError(topKey).getException()).isSameInstanceAs(exception);
     assertThat(result.getError(topKey).getRootCauses()).containsExactly(errorKey);
   }
 
@@ -2016,7 +2016,7 @@
       assertThatEvaluationResult(result).hasError();
     } else {
       assertThatEvaluationResult(result).hasNoError();
-      assertThat(result.get(topKey)).isSameAs(topValue);
+      assertThat(result.get(topKey)).isSameInstanceAs(topValue);
     }
   }
 
diff --git a/src/test/java/com/google/devtools/common/options/EnumConverterTest.java b/src/test/java/com/google/devtools/common/options/EnumConverterTest.java
index d9e13e0..beb764b 100644
--- a/src/test/java/com/google/devtools/common/options/EnumConverterTest.java
+++ b/src/test/java/com/google/devtools/common/options/EnumConverterTest.java
@@ -75,7 +75,7 @@
   @Test
   public void converterIsCaseInsensitive() throws Exception {
     FruitConverter converter = new FruitConverter();
-    assertThat(converter.convert("bAnANa")).isSameAs(Fruit.Banana);
+    assertThat(converter.convert("bAnANa")).isSameInstanceAs(Fruit.Banana);
   }
 
   // Regression test: lists of enum using a subclass of EnumConverter don't work
diff --git a/src/test/java/com/google/devtools/common/options/OptionDefinitionTest.java b/src/test/java/com/google/devtools/common/options/OptionDefinitionTest.java
index eb9dbe3..fc8985d 100644
--- a/src/test/java/com/google/devtools/common/options/OptionDefinitionTest.java
+++ b/src/test/java/com/google/devtools/common/options/OptionDefinitionTest.java
@@ -127,7 +127,7 @@
 
     // Expect reference equality, since we didn't recompute the value
     Converter<?> secondConverter = mockOptionDef.getConverter();
-    assertThat(secondConverter).isSameAs(converter);
+    assertThat(secondConverter).isSameInstanceAs(converter);
 
     mockOptionDef.getDefaultValue();
 
@@ -163,7 +163,7 @@
 
     // Expect reference equality, since we didn't recompute the value
     Converter<?> secondConverter = mockOptionDef.getConverter();
-    assertThat(secondConverter).isSameAs(converter);
+    assertThat(secondConverter).isSameInstanceAs(converter);
 
     mockOptionDef.getDefaultValue();
 
diff --git a/src/test/java/com/google/devtools/common/options/OptionsParserTest.java b/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
index 378e2bc..9a3d88c 100644
--- a/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
+++ b/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
@@ -777,7 +777,7 @@
 
     ParsedOptionDescription effectiveInstance = optionValue.getCanonicalInstances().get(0);
     assertThat(effectiveInstance.getExpandedFrom().getOptionDefinition())
-        .isSameAs(expansionDescription.getOptionDefinition());
+        .isSameInstanceAs(expansionDescription.getOptionDefinition());
     assertThat(effectiveInstance.getImplicitDependent()).isNull();
 
     assertThat(parser.getWarnings()).isEmpty();