From ca8c69da8e69afc0b2536a68e367591fafb46b37 Mon Sep 17 00:00:00 2001 From: Seth Tisue Date: Wed, 6 Mar 2019 16:26:25 -0800 Subject: [PATCH] restore compat for PathResolver, ClassPathFactory constructors restore source compat and bincompat small followup to #7712. the community build found that a couple of projects (mima, classpath-shrinker) were using the old constructors. since it's easy to do, let's keep both source compat (with the default arguments) and bincompat (with the extra constructors, which we can toss for 2.13) --- .../scala/tools/nsc/classpath/ClassPathFactory.scala | 11 +++++++++-- src/compiler/scala/tools/util/PathResolver.scala | 6 +++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/compiler/scala/tools/nsc/classpath/ClassPathFactory.scala b/src/compiler/scala/tools/nsc/classpath/ClassPathFactory.scala index f2fb2b0224d7..39f2bb88541f 100644 --- a/src/compiler/scala/tools/nsc/classpath/ClassPathFactory.scala +++ b/src/compiler/scala/tools/nsc/classpath/ClassPathFactory.scala @@ -22,7 +22,11 @@ import scala.tools.nsc.util.ClassPath * Provides factory methods for classpath. When creating classpath instances for a given path, * it uses proper type of classpath depending on a types of particular files containing sources or classes. */ -class ClassPathFactory(settings: Settings, closeableRegistry: CloseableRegistry) { +class ClassPathFactory(settings: Settings, closeableRegistry: CloseableRegistry = new CloseableRegistry) { + + @deprecated("for bincompat in 2.12.x series", "2.12.9") // TODO remove from 2.13.x + def this(settings: Settings) = this(settings, new CloseableRegistry) + /** * Create a new classpath based on the abstract file. */ @@ -78,7 +82,10 @@ class ClassPathFactory(settings: Settings, closeableRegistry: CloseableRegistry) } object ClassPathFactory { - def newClassPath(file: AbstractFile, settings: Settings, closeableRegistry: CloseableRegistry): ClassPath = file match { + @deprecated("for bincompat in 2.12.x series", "2.12.9") // TODO remove from 2.13.x + def newClassPath(file: AbstractFile, settings: Settings): ClassPath = + newClassPath(file, settings, new CloseableRegistry) + def newClassPath(file: AbstractFile, settings: Settings, closeableRegistry: CloseableRegistry = new CloseableRegistry): ClassPath = file match { case vd: VirtualDirectory => VirtualDirectoryClassPath(vd) case _ => if (file.isJarOrZip) diff --git a/src/compiler/scala/tools/util/PathResolver.scala b/src/compiler/scala/tools/util/PathResolver.scala index cf454d5854f8..21f541babdac 100644 --- a/src/compiler/scala/tools/util/PathResolver.scala +++ b/src/compiler/scala/tools/util/PathResolver.scala @@ -206,7 +206,11 @@ object PathResolver { } } -final class PathResolver(settings: Settings, closeableRegistry: CloseableRegistry) { +final class PathResolver(settings: Settings, closeableRegistry: CloseableRegistry = new CloseableRegistry) { + + @deprecated("for bincompat in 2.12.x series", "2.12.9") // TODO remove from 2.13.x + def this(settings: Settings) = this(settings, new CloseableRegistry) + private val classPathFactory = new ClassPathFactory(settings, closeableRegistry) import PathResolver.{ AsLines, Defaults, ppcp }