Reland "Use the type as the prefix for external synthetics."

This reverts commit df524d261735db40ca981db5a83bd5b4bb9bd4f6.

Bug: 179174151
Change-Id: Ic327e901f7723249976fef8c31ccb860bc5b4dbb
diff --git a/src/main/java/com/android/tools/r8/synthesis/SyntheticClasspathClassReference.java b/src/main/java/com/android/tools/r8/synthesis/SyntheticClasspathClassReference.java
index 5b9ba3c..72beb13 100644
--- a/src/main/java/com/android/tools/r8/synthesis/SyntheticClasspathClassReference.java
+++ b/src/main/java/com/android/tools/r8/synthesis/SyntheticClasspathClassReference.java
@@ -34,9 +34,12 @@
   }
 
   @Override
-  SyntheticClasspathClassReference rewrite(NonIdentityGraphLens lens) {
+  SyntheticClasspathClassReference internalRewrite(
+      SynthesizingContext rewrittenContext, NonIdentityGraphLens lens) {
     assert type == lens.lookupType(type)
         : "Unexpected classpath rewrite of type " + type.toSourceString();
+    assert getContext() == rewrittenContext
+        : "Unexpected classpath rewrite of context type " + getContext();
     return this;
   }
 }