Desugared library: test create methods in Files
- Document differences to fix
- Fix Conversion of FileAttribute<Set<PosixPermission>>
Change-Id: I157ee87f459e32bea04ea2d420f751c47f8c0e3c
diff --git a/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriteDescription.java b/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriteDescription.java
index 089a293..b02dc00 100644
--- a/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriteDescription.java
+++ b/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriteDescription.java
@@ -28,24 +28,23 @@
"j$/nio/file/spi/FileTypeDetector",
"j$/nio/file/Path",
"j$/nio/file/WatchEvent",
- "j$/nio/file/OpenOption");
+ "j$/nio/file/OpenOption",
+ "j$/nio/file/attribute/FileAttribute");
- static Map<String, String> getJavaWrapConvertOwnerMap() {
- return computeConvertOwnerMap("$Wrapper");
- }
-
- static Map<String, String> getJ$WrapConvertOwnerMap() {
- return computeConvertOwnerMap("$VivifiedWrapper");
- }
-
- private static HashMap<String, String> computeConvertOwnerMap(String suffix) {
+ static Map<String, String> getWrapConvertOwnerMap() {
HashMap<String, String> map = new HashMap<>();
for (String theEnum : ENUM_WRAP_CONVERT_OWNER) {
map.put(theEnum, theEnum + "$EnumConversion");
+ map.put(withJavaPrefix(theEnum), theEnum + "$EnumConversion");
}
for (String owner : WRAP_CONVERT_OWNER) {
- map.put(owner, owner + suffix);
+ map.put(withJavaPrefix(owner), owner + "$Wrapper");
+ map.put(owner, owner + "$VivifiedWrapper");
}
return map;
}
+
+ private static String withJavaPrefix(String descriptor) {
+ return "java" + descriptor.substring(2);
+ }
}
diff --git a/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriter.java b/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriter.java
index 0848c09..95a5ecc 100644
--- a/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriter.java
+++ b/buildSrc/src/main/java/desugaredlibrary/CustomConversionAsmRewriter.java
@@ -39,10 +39,8 @@
}
private final CustomConversionVersion legacy;
- private final Map<String, String> javaWrapConvertOwnerMap =
- CustomConversionAsmRewriteDescription.getJavaWrapConvertOwnerMap();
- private final Map<String, String> j$WrapConvertOwnerMap =
- CustomConversionAsmRewriteDescription.getJ$WrapConvertOwnerMap();
+ private final Map<String, String> wrapConvertOwnerMap =
+ CustomConversionAsmRewriteDescription.getWrapConvertOwnerMap();
public static void generateJars(Path jar, Path outputDirectory) throws IOException {
for (CustomConversionVersion version : CustomConversionVersion.values()) {
@@ -148,30 +146,14 @@
private void convertInvoke(int opcode, String owner, String descriptor, boolean isInterface) {
String firstArg = extractFirstArg(descriptor);
- assert sameBaseName(firstArg, owner);
- if (!javaWrapConvertOwnerMap.containsKey(owner)
- || !j$WrapConvertOwnerMap.containsKey(owner)
+ if (!wrapConvertOwnerMap.containsKey(firstArg)
|| !(firstArg.startsWith("java") || firstArg.startsWith("j$"))) {
throw new RuntimeException(
"Cannot transform wrap_convert method for " + firstArg + " (owner: " + owner + ")");
}
- if (firstArg.startsWith("java")) {
- String newOwner = javaWrapConvertOwnerMap.get(owner);
- super.visitMethodInsn(opcode, newOwner, CONVERT, descriptor, isInterface);
- return;
- }
- assert firstArg.startsWith("j$");
- String newOwner = j$WrapConvertOwnerMap.get(owner);
+ String newOwner = wrapConvertOwnerMap.get(firstArg);
super.visitMethodInsn(opcode, newOwner, CONVERT, descriptor, isInterface);
}
- private boolean sameBaseName(String firstArg, String owner) {
- assert owner.startsWith("j$");
- if (firstArg.equals(owner)) {
- return true;
- }
- String javaName = owner.replace("j$", "java");
- return firstArg.equals(javaName);
- }
}
}