Missing Iterable overload in SourceDirectorySet


(Stefan Oehme) #1

If I call SourceDirectorySet.srcDirs(dirs) where dirs is a List, the result will be a one element array containing the List as its only element. Later on Gradle will complain that “Converting class java.util.ArrayList to File using toString() method has been deprecated”.

This is a common pitfall with varargs methods and can easily be solved by having an overloaded version which takes an Iterable. However I understand that you may not want to break this interface by adding new methods. But maybe in 2.0 you could throw an exception in the default implementation whenever someone passes in something that is not supported? This way there would at least be a stacktrace pointing to the wrong configuration instead of just a warning in the FileResolver.