Revert "Desugared lib: Fix DirectoryStream apis"

This reverts commit 9933290e9b97a6f8c57ce4c480494f597955ea6b.

Reason for revert: I clicked submit by mistake.

Change-Id: I1e2e90b9b4130473d5c763f5fe739ada3814d112
diff --git a/src/library_desugar/java/j$/nio/file/Path.java b/src/library_desugar/java/j$/nio/file/Path.java
index 6030764..781ab5f 100644
--- a/src/library_desugar/java/j$/nio/file/Path.java
+++ b/src/library_desugar/java/j$/nio/file/Path.java
@@ -9,8 +9,4 @@
   public static j$.nio.file.Path wrap_convert(java.nio.file.Path path) {
     return null;
   }
-
-  public static java.nio.file.Path wrap_convert(j$.nio.file.Path path) {
-    return null;
-  }
 }
diff --git a/src/library_desugar/java/java/nio/file/PathApiFlips.java b/src/library_desugar/java/java/nio/file/PathApiFlips.java
deleted file mode 100644
index f7009ca..0000000
--- a/src/library_desugar/java/java/nio/file/PathApiFlips.java
+++ /dev/null
@@ -1,136 +0,0 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package java.nio.file;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.function.Consumer;
-
-/** For all wrappers, the spliterator is based on the iterator so no need to wrap it. */
-public class PathApiFlips {
-
-  public static Iterator<?> flipIteratorPath(Iterator<?> iterator) {
-    return new IteratorPathWrapper<>(iterator);
-  }
-
-  public static Iterable<?> flipIterablePath(Iterable<?> iterable) {
-    return new IterablePathWrapper<>(iterable);
-  }
-
-  public static java.nio.file.DirectoryStream<?> flipDirectoryStreamPath(
-      java.nio.file.DirectoryStream<?> directoryStream) {
-    return new DirectoryStreamPathWrapper<>(directoryStream);
-  }
-
-  public static java.nio.file.DirectoryStream.Filter<?> flipDirectoryStreamFilterPath(
-      java.nio.file.DirectoryStream.Filter<?> filter) {
-    return new DirectoryStreamFilterWrapper<>(filter);
-  }
-
-  /**
-   * The generic types inherit from java.lang.Object even if in practice it seems they are mainly
-   * used with Path. To be conservative, we use
-   */
-  @SuppressWarnings("unchecked")
-  public static <T> T convertPath(T maybePath) {
-    if (maybePath == null) {
-      return null;
-    }
-    if (maybePath instanceof java.nio.file.Path) {
-      return (T) j$.nio.file.Path.wrap_convert((java.nio.file.Path) maybePath);
-    }
-    if (maybePath instanceof j$.nio.file.Path) {
-      return (T) j$.nio.file.Path.wrap_convert((j$.nio.file.Path) maybePath);
-    }
-    return maybePath;
-  }
-
-  public static class DirectoryStreamFilterWrapper<T>
-      implements java.nio.file.DirectoryStream.Filter<T> {
-
-    private final java.nio.file.DirectoryStream.Filter<T> filter;
-
-    public DirectoryStreamFilterWrapper(java.nio.file.DirectoryStream.Filter<T> filter) {
-      this.filter = filter;
-    }
-
-    @Override
-    public boolean accept(T t) throws IOException {
-      return filter.accept(convertPath(t));
-    }
-  }
-
-  public static class IterablePathWrapper<T> implements Iterable<T> {
-
-    private final Iterable<T> iterable;
-
-    public IterablePathWrapper(Iterable<T> iterable) {
-      this.iterable = iterable;
-    }
-
-    @Override
-    public Iterator<T> iterator() {
-      return new IteratorPathWrapper<>(iterable.iterator());
-    }
-
-    @Override
-    public void forEach(Consumer<? super T> action) {
-      iterable.forEach(path -> action.accept(convertPath(path)));
-    }
-  }
-
-  public static class IteratorPathWrapper<T> implements Iterator<T> {
-
-    private final Iterator<T> iterator;
-
-    public IteratorPathWrapper(Iterator<T> iterator) {
-      this.iterator = iterator;
-    }
-
-    @Override
-    public boolean hasNext() {
-      return iterator.hasNext();
-    }
-
-    @Override
-    public T next() {
-      return convertPath(iterator.next());
-    }
-
-    @Override
-    public void remove() {
-      iterator.remove();
-    }
-
-    @Override
-    public void forEachRemaining(Consumer<? super T> action) {
-      iterator.forEachRemaining(path -> action.accept(convertPath(path)));
-    }
-  }
-
-  public static class DirectoryStreamPathWrapper<T> implements DirectoryStream<T> {
-
-    private final DirectoryStream<T> directoryStream;
-
-    public DirectoryStreamPathWrapper(DirectoryStream<T> directoryStream) {
-      this.directoryStream = directoryStream;
-    }
-
-    @Override
-    public Iterator<T> iterator() {
-      return new IteratorPathWrapper<>(directoryStream.iterator());
-    }
-
-    @Override
-    public void forEach(Consumer<? super T> action) {
-      directoryStream.forEach(path -> action.accept(convertPath(path)));
-    }
-
-    @Override
-    public void close() throws IOException {
-      directoryStream.close();
-    }
-  }
-}
diff --git a/src/library_desugar/jdk11/desugar_jdk_libs_nio.json b/src/library_desugar/jdk11/desugar_jdk_libs_nio.json
index 090d1f2..9bc2704 100644
--- a/src/library_desugar/jdk11/desugar_jdk_libs_nio.json
+++ b/src/library_desugar/jdk11/desugar_jdk_libs_nio.json
@@ -152,7 +152,6 @@
         "java.nio.file.ClosedWatchServiceException",
         "java.nio.file.DirectoryIteratorException",
         "java.nio.file.DirectoryNotEmptyException",
-        "java.nio.file.DirectoryStream",
         "java.nio.file.FileAlreadyExistsException",
         "java.nio.file.FileSystemAlreadyExistsException",
         "java.nio.file.FileSystemException",
@@ -174,7 +173,6 @@
         "java.nio.file.ClosedWatchServiceException",
         "java.nio.file.DirectoryIteratorException",
         "java.nio.file.DirectoryNotEmptyException",
-        "java.nio.file.DirectoryStream",
         "java.nio.file.FileAlreadyExistsException",
         "java.nio.file.FileSystemAlreadyExistsException",
         "java.nio.file.FileSystemException",
@@ -201,10 +199,7 @@
         "java.nio.file.attribute.BasicFileAttributes java.nio.file.spi.FileSystemProvider#readAttributes(java.nio.file.Path, java.lang.Class, java.nio.file.LinkOption[])": [1, "java.lang.Class java.nio.file.FileApiFlips#flipFileAttributes(java.lang.Class)"],
         "java.util.Set java.nio.file.attribute.PosixFileAttributes#permissions()": [-1, "java.util.Set java.nio.file.FileApiFlips#flipPosixPermissionSet(java.util.Set)"],
         "void java.nio.file.attribute.PosixFileAttributeView#setPermissions(java.util.Set)": [0, "java.util.Set java.nio.file.FileApiFlips#flipPosixPermissionSet(java.util.Set)"],
-        "java.util.Map java.nio.file.spi.FileSystemProvider#readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption[])" : [-1, "java.util.Map java.nio.file.FileApiFlips#flipMapWithMaybeFileTimeValues(java.util.Map)"],
-        "java.lang.Iterable java.nio.file.FileSystem#getRootDirectories()": [-1, "java.lang.Iterable java.nio.file.PathApiFlips#flipIterablePath(java.lang.Iterable)"],
-        "java.util.Iterator java.nio.file.Path#iterator()": [-1, "java.util.Iterator java.nio.file.PathApiFlips#flipIteratorPath(java.util.Iterator)"],
-        "java.nio.file.DirectoryStream java.nio.file.spi.FileSystemProvider#newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream$Filter)": [-1, "java.nio.file.DirectoryStream java.nio.file.PathApiFlips#flipDirectoryStreamPath(java.nio.file.DirectoryStream)", 1, "java.nio.file.DirectoryStream$Filter java.nio.file.PathApiFlips#flipDirectoryStreamFilterPath(java.nio.file.DirectoryStream$Filter)"]
+        "java.util.Map java.nio.file.spi.FileSystemProvider#readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption[])" : [-1, "java.util.Map java.nio.file.FileApiFlips#flipMapWithMaybeFileTimeValues(java.util.Map)"]
       },
       "wrapper_conversion": [
         "java.nio.channels.CompletionHandler",
@@ -230,6 +225,8 @@
         "java.nio.file.attribute.UserPrincipal",
         "java.nio.file.FileStore",
         "java.nio.file.attribute.FileStoreAttributeView",
+        "java.nio.file.DirectoryStream$Filter",
+        "java.nio.file.DirectoryStream",
         "java.nio.file.attribute.PosixFilePermission",
         "java.nio.file.attribute.BasicFileAttributes",
         "java.nio.file.attribute.PosixFileAttributes",
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ExtractWrapperTypesTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ExtractWrapperTypesTest.java
index a68f3ce..b5ca98b 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ExtractWrapperTypesTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ExtractWrapperTypesTest.java
@@ -123,7 +123,13 @@
 
   // TODO(b/238179854): Investigate how to fix these.
   private static final Set<String> MISSING_GENERIC_TYPE_CONVERSION_PATH =
-      ImmutableSet.of("java.lang.Iterable java.nio.file.FileSystem.getFileStores()");
+      ImmutableSet.of(
+          "java.lang.Iterable java.nio.file.FileSystem.getFileStores()",
+          "java.lang.Iterable java.nio.file.FileSystem.getRootDirectories()",
+          "java.util.Iterator java.nio.file.Path.iterator()",
+          "java.nio.file.DirectoryStream"
+              + " java.nio.file.spi.FileSystemProvider.newDirectoryStream(java.nio.file.Path,"
+              + " java.nio.file.DirectoryStream$Filter)");
 
   // TODO(b/238179854): Investigate how to fix these.
   private static final Set<String> MISSING_GENERIC_TYPE_CONVERSION_FLOW =
@@ -239,18 +245,6 @@
             .collect(Collectors.toSet());
     Set<String> maintainTypeInSet =
         specification.getMaintainType().stream().map(DexType::toString).collect(Collectors.toSet());
-    Map<String, boolean[]> genericConversionsInSpec = new HashMap<>();
-    specification
-        .getApiGenericConversion()
-        .forEach(
-            (method, generics) -> {
-              boolean[] indexes = new boolean[generics.length];
-              for (int i = 0; i < generics.length; i++) {
-                indexes[i] = generics[i] != null;
-              }
-              genericConversionsInSpec.put(method.toString(), indexes);
-            });
-
     assertEquals(
         Collections.emptySet(), Sets.intersection(wrappersInSpec, customConversionsInSpec));
 
@@ -263,7 +257,6 @@
             nonDesugaredJar,
             customConversionsInSpec,
             maintainTypeInSet,
-            genericConversionsInSpec,
             genericDependencies);
     Map<ClassReference, Set<ClassReference>> indirectWrappers =
         getIndirectlyReferencedWrapperTypes(
@@ -273,7 +266,6 @@
             customConversionsInSpec,
             maintainTypeInSet,
             specification.getWrappers(),
-            genericConversionsInSpec,
             genericDependencies);
     {
       Set<String> missingGenericDependency = new HashSet<>();
@@ -347,7 +339,6 @@
       CodeInspector nonDesugaredJar,
       Set<String> customConversions,
       Set<String> maintainType,
-      Map<String, boolean[]> genericConversionsInSpec,
       Set<DexEncodedMethod> genericDependencies) {
     Map<ClassReference, Set<MethodReference>> directWrappers = new HashMap<>();
     nonDesugaredJar.forAllClasses(
@@ -373,7 +364,6 @@
                 forEachType(
                     method,
                     t -> addType(adder, t, preDesugarTypes, customConversions, maintainType),
-                    genericConversionsInSpec,
                     genericDependencies);
               });
         });
@@ -383,20 +373,12 @@
   private void forEachType(
       FoundMethodSubject subject,
       Function<String, Boolean> process,
-      Map<String, boolean[]> genericConversionsInSpec,
       Set<DexEncodedMethod> generics) {
-    boolean[] genericConversions = genericConversionsInSpec.get(subject.toString());
     MethodSignature signature = subject.getFinalSignature().asMethodSignature();
-    if (genericConversions == null || !genericConversions[genericConversions.length - 1]) {
-      process.apply(signature.type);
+    process.apply(signature.type);
+    for (String parameter : signature.parameters) {
+      process.apply(parameter);
     }
-    for (int i = 0; i < signature.parameters.length; i++) {
-      if (genericConversions == null || !genericConversions[i]) {
-        process.apply(signature.parameters[i]);
-      }
-    }
-    // Even if the genericConversions are present, we check the generic types since conversions
-    // on such types will happen through the hand written custom wrappers.
     MethodTypeSignature genericSignature = subject.getMethod().getGenericSignature();
     if (genericSignature != null) {
       TypeSignature[] typeSignatures = new TypeSignature[signature.parameters.length + 1];
@@ -405,17 +387,15 @@
       }
       typeSignatures[signature.parameters.length] = genericSignature.returnType().typeSignature();
       for (TypeSignature typeSignature : typeSignatures) {
-        if (typeSignature != null) {
-          if ((typeSignature instanceof ClassTypeSignature)) {
-            for (FieldTypeSignature typeArgument :
-                ((ClassTypeSignature) typeSignature).typeArguments()) {
-              if (typeArgument instanceof ClassTypeSignature) {
-                String type = descriptorToJavaType(typeArgument.toString()).split("<")[0];
-                if (!GENERIC_NOT_NEEDED.contains(type)) {
-                  boolean added = process.apply(type);
-                  if (added) {
-                    generics.add(subject.getMethod());
-                  }
+        if ((typeSignature instanceof ClassTypeSignature)) {
+          for (FieldTypeSignature typeArgument :
+              ((ClassTypeSignature) typeSignature).typeArguments()) {
+            if (typeArgument instanceof ClassTypeSignature) {
+              String type = descriptorToJavaType(typeArgument.toString()).split("<")[0];
+              if (!GENERIC_NOT_NEEDED.contains(type)) {
+                boolean added = process.apply(type);
+                if (added) {
+                  generics.add(subject.getMethod());
                 }
               }
             }
@@ -432,7 +412,6 @@
       Set<String> customConversions,
       Set<String> maintainType,
       Map<DexType, WrapperDescriptor> wrapperDescriptorMap,
-      Map<String, boolean[]> genericConversionsInSpec,
       Set<DexEncodedMethod> genericDependencies) {
     Map<ClassReference, Set<ClassReference>> indirectWrappers = new HashMap<>();
     WorkList<ClassReference> worklist = WorkList.newEqualityWorkList(directWrappers.keySet());
@@ -456,7 +435,6 @@
             forEachType(
                 method,
                 t -> addType(adder, t, existing, customConversions, maintainType),
-                genericConversionsInSpec,
                 genericDependencies);
           });
       WrapperDescriptor descriptor = wrapperDescriptorMap.get(clazz.getDexProgramClass().getType());
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/FilesTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/FilesTest.java
index cef3785..9508e8c 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/FilesTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/FilesTest.java
@@ -18,7 +18,6 @@
 import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
 import java.nio.channels.SeekableByteChannel;
-import java.nio.file.DirectoryStream;
 import java.nio.file.Files;
 import java.nio.file.LinkOption;
 import java.nio.file.OpenOption;
@@ -29,7 +28,6 @@
 import java.nio.file.attribute.PosixFileAttributes;
 import java.nio.file.attribute.PosixFilePermission;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -52,10 +50,7 @@
           "null",
           "true",
           "unsupported",
-          "j$.nio.file.attribute",
-          "tmp",
-          "/",
-          "true");
+          "j$.nio.file.attribute");
   private static final String EXPECTED_RESULT_DESUGARING_FILE_SYSTEM_PLATFORM_CHANNEL =
       StringUtils.lines(
           "bytes written: 11",
@@ -67,10 +62,7 @@
           "null",
           "true",
           "unsupported",
-          "j$.nio.file.attribute",
-          "tmp",
-          "/",
-          "true");
+          "j$.nio.file.attribute");
   private static final String EXPECTED_RESULT_PLATFORM_FILE_SYSTEM_DESUGARING =
       StringUtils.lines(
           "bytes written: 11",
@@ -82,10 +74,7 @@
           "true",
           "true",
           "true",
-          "j$.nio.file.attribute",
-          "tmp",
-          "/",
-          "true");
+          "j$.nio.file.attribute");
   private static final String EXPECTED_RESULT_PLATFORM_FILE_SYSTEM =
       StringUtils.lines(
           "bytes written: 11",
@@ -97,10 +86,7 @@
           "true",
           "true",
           "true",
-          "java.nio.file.attribute",
-          "tmp",
-          "/",
-          "true");
+          "java.nio.file.attribute");
 
   private final TestParameters parameters;
   private final LibraryDesugaringSpecification libraryDesugaringSpecification;
@@ -158,18 +144,6 @@
       readThroughFileChannelAPI(path);
       attributeAccess(path);
       fspMethodsWithGeneric(path);
-      pathGeneric();
-    }
-
-    private static void pathGeneric() throws IOException {
-      Path tmpDict = Files.createTempDirectory("tmpDict");
-      Path tmpFile = Files.createFile(tmpDict.resolve("tmpFile"));
-      Iterator<Path> iterator = tmpDict.iterator();
-      System.out.println(iterator.next());
-      Iterable<Path> rootDirectories = tmpFile.getFileSystem().getRootDirectories();
-      System.out.println(rootDirectories.iterator().next());
-      DirectoryStream<Path> paths = Files.newDirectoryStream(tmpDict);
-      System.out.println(paths.iterator().hasNext());
     }
 
     private static void fspMethodsWithGeneric(Path path) throws IOException {