From d37b8b4f0b6aa7c13e9104ad5e3c1d44fff0be1e Mon Sep 17 00:00:00 2001 From: Googler Date: Fri, 26 Feb 2021 23:38:29 -0800 Subject: [PATCH] Move `DesugarUnsafe` to `sun/misc/` package #desugar_jdk_libs #java11 - Keep `Desugar` classes in the same package as its origin ``. This is to easy track desugar-specific `Desugar` classes, as well as keeping `Desugar` with the same class and member visibility as its origin ``, 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 --- .../build/android/desugar/CoreLibrarySupport.java | 13 +++++++++++-- .../build/android/desugar/langmodel/ClassName.java | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) 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 577aa3c4afadc4..ebdc1a985ff05b 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 @@ public CoreLibrarySupport( 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 CoreLibrarySupport( 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 @@ public String renameCoreLibrary(String internalName) { 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 8aec995cf46a51..3df1e51212f667 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 @@ public abstract class ClassName implements TypeMappable, Comparable