diff options
author | Sébastien Doeraene <sjrdoeraene@gmail.com> | 2013-09-19 17:13:51 +0200 |
---|---|---|
committer | Sébastien Doeraene <sjrdoeraene@gmail.com> | 2013-09-19 17:25:26 +0200 |
commit | a3f71badf67bbaac1a4ba16f68211ea6e31aa473 (patch) | |
tree | c1140e545988b1618f306ac93f49b7dc0b507150 /src | |
parent | a8543ef28f8fc0152208f4eef763344657bf9e5a (diff) | |
download | scala-a3f71badf67bbaac1a4ba16f68211ea6e31aa473.tar.gz scala-a3f71badf67bbaac1a4ba16f68211ea6e31aa473.tar.bz2 scala-a3f71badf67bbaac1a4ba16f68211ea6e31aa473.zip |
Don't avoid to load trait impl .class without inliner.
When the inliner is on, it is necessary to load class
files containing the implementation of traits, i.e.,
those ending in $class.class. This is needed to be
able to inline these methods. However it is useless
if the inliner is disabled.
The previous logic avoided to put these files on the
classpath when the inliner was off. However, this
complicates things, and it makes the classpath
mechanism dependent on something totally unrelated.
On this basis, this commit removes that logic, and
instead trait impl .class files are always kept on
the classpath.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/util/ClassPath.scala | 4 | ||||
-rw-r--r-- | src/compiler/scala/tools/util/PathResolver.scala | 2 |
2 files changed, 2 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/util/ClassPath.scala b/src/compiler/scala/tools/nsc/util/ClassPath.scala index 906a575d90..fb5dfb58de 100644 --- a/src/compiler/scala/tools/nsc/util/ClassPath.scala +++ b/src/compiler/scala/tools/nsc/util/ClassPath.scala @@ -139,9 +139,7 @@ object ClassPath { def newClassPath(dir: AbstractFile) = new DirectoryClassPath(dir, this) } - object DefaultJavaContext extends JavaContext { - override def isValidName(name: String) = !ReflectionUtils.scalacShouldntLoadClassfile(name) - } + object DefaultJavaContext extends JavaContext private def endsClass(s: String) = s.length > 6 && s.substring(s.length - 6) == ".class" private def endsScala(s: String) = s.length > 6 && s.substring(s.length - 6) == ".scala" diff --git a/src/compiler/scala/tools/util/PathResolver.scala b/src/compiler/scala/tools/util/PathResolver.scala index 82f2c5dc74..6022344208 100644 --- a/src/compiler/scala/tools/util/PathResolver.scala +++ b/src/compiler/scala/tools/util/PathResolver.scala @@ -193,7 +193,7 @@ object PathResolver { class PathResolver(settings: Settings, context: JavaContext) { import PathResolver.{ Defaults, Environment, AsLines, MkLines, ppcp } - def this(settings: Settings) = this(settings, if (settings.inline) new JavaContext else DefaultJavaContext) + def this(settings: Settings) = this(settings, DefaultJavaContext) private def cmdLineOrElse(name: String, alt: String) = { (commandLineFor(name) match { |