Skip to content

Commit

Permalink
Move DesugarUnsafe to sun/misc/ package
Browse files Browse the repository at this point in the history
#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
  • Loading branch information
Googler authored and copybara-github committed Feb 27, 2021
1 parent ea70a3a commit d37b8b4
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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
}
Expand All @@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ public abstract class ClassName implements TypeMappable<ClassName>, Comparable<C
"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 =
Expand Down

0 comments on commit d37b8b4

Please sign in to comment.