Move `DesugarUnsafe` to `sun/misc/` package
#desugar_jdk_libs #java11
- Keep `Desugar<X>` classes in the same package as its origin `<X>`. This is to easy track desugar-specific `Desugar<X>` classes, as well as keeping `Desugar<X>` with the same class and member visibility as its origin `<X>`, and maintaining package-level dependency graph the same as the OpenJDK version.
- Starter-example CL as including non `java/`-prefixed classes in `desugar_jdk_libs`
PiperOrigin-RevId: 359904867
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java b/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java
index 577aa3c..ebdc1a9 100644
--- a/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java
+++ b/src/tools/android/java/com/google/devtools/build/android/desugar/CoreLibrarySupport.java
@@ -93,7 +93,11 @@
this.retargetConfig = retargetConfig;
checkArgument(
renamedPrefixes.stream()
- .allMatch(prefix -> prefix.startsWith("java/") || prefix.startsWith("javadesugar/")),
+ .allMatch(
+ prefix ->
+ prefix.startsWith("java/")
+ || prefix.startsWith("sun/")
+ || prefix.startsWith("javadesugar/")),
"Unexpected renamedPrefixes: Actual (%s).",
renamedPrefixes);
this.renamedPrefixes = ImmutableSet.copyOf(renamedPrefixes);
@@ -111,7 +115,9 @@
public boolean isRenamedCoreLibrary(String internalName) {
String unprefixedName = rewriter.unprefix(internalName);
- if (!(unprefixedName.startsWith("java/") || unprefixedName.startsWith("javadesugar/"))
+ if (!(unprefixedName.startsWith("java/")
+ || unprefixedName.startsWith("sun/")
+ || unprefixedName.startsWith("javadesugar/"))
|| renamedPrefixes.isEmpty()) {
return false; // shortcut
}
@@ -126,6 +132,9 @@
if (internalName.startsWith("java/")) {
return "j$/" + internalName.substring(/* cut away "java/" prefix */ 5);
}
+ if (internalName.startsWith("sun/")) {
+ return "j$/" + internalName;
+ }
if (internalName.startsWith("javadesugar/")) {
return "jd$/" + internalName.substring(/* cut away "javadesugar/" prefix */ 12);
}
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/langmodel/ClassName.java b/src/tools/android/java/com/google/devtools/build/android/desugar/langmodel/ClassName.java
index 8aec995..3df1e51 100644
--- a/src/tools/android/java/com/google/devtools/build/android/desugar/langmodel/ClassName.java
+++ b/src/tools/android/java/com/google/devtools/build/android/desugar/langmodel/ClassName.java
@@ -107,6 +107,7 @@
"java/util/concurrent/atomic/DesugarAtomic",
"j$/util/concurrent/atomic/DesugarAtomic")
.put("javadesugar/testing/", "jd$/testing/")
+ .put("sun/misc/Desugar", "j$/sun/misc/Desugar")
.build();
public static final TypeMapper SHADOWED_TO_MIRRORED_TYPE_MAPPER =