diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-12-11 14:57:35 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-12-11 14:57:35 +0000 |
commit | fffe6449d14387df980f25aee9e9c1795b5f13aa (patch) | |
tree | f6780a17aaac96fc2bf2aa536111ff00949985e1 /src/compiler/scala/tools/nsc/Global.scala | |
parent | e378965dc26c8f1123b87b6b60418bb4872e395b (diff) | |
download | scala-fffe6449d14387df980f25aee9e9c1795b5f13aa.tar.gz scala-fffe6449d14387df980f25aee9e9c1795b5f13aa.tar.bz2 scala-fffe6449d14387df980f25aee9e9c1795b5f13aa.zip |
fixes #2610 and fixes #2687.
Diffstat (limited to 'src/compiler/scala/tools/nsc/Global.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/Global.scala | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala index 645eb1ecf6..dfa8dcbef4 100644 --- a/src/compiler/scala/tools/nsc/Global.scala +++ b/src/compiler/scala/tools/nsc/Global.scala @@ -521,7 +521,8 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable protected def computeInternalPhases() { phasesSet += syntaxAnalyzer // The parser phasesSet += analyzer.namerFactory // note: types are there because otherwise - phasesSet += analyzer.typerFactory // consistency check after refchecks would fail. + phasesSet += analyzer.packageObjects // consistency check after refchecks would fail. + phasesSet += analyzer.typerFactory phasesSet += superAccessors // add super accessors phasesSet += pickler // serialize symbol tables phasesSet += refchecks // perform reference and override checking, translate nested objects @@ -733,7 +734,7 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable /** Compile list of source files */ def compileSources(_sources: List[SourceFile]) { val depSources = dependencyAnalysis.filter(_sources.removeDuplicates) // bug #1268, scalac confused by duplicated filenames - val sources = pkgObjectsFirst(depSources) + val sources = scalaObjectFirst(depSources) if (reporter.hasErrors) return // there is a problem already, e.g. a // plugin was passed a bad option @@ -883,18 +884,15 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable if (!pclazz.isRoot) resetPackageClass(pclazz.owner) } - private def pkgObjectsFirst(files: List[SourceFile]) = { + private def scalaObjectFirst(files: List[SourceFile]) = { def inScalaFolder(f: SourceFile) = f.file.container.name == "scala" val res = new ListBuffer[SourceFile] - var scalaObject: Option[SourceFile] = None for (file <- files) file.file.name match { - case "ScalaObject.scala" if inScalaFolder(file) => scalaObject = Some(file) - case "package.scala" => file +=: res // prepend package objects - case _ => res += file // append all others + case "ScalaObject.scala" if inScalaFolder(file) => file +=: res + case _ => res += file } - scalaObject.map(res.+=:(_)) // ScalaObject 1st - res.toList // then package objects, then others + res.toList } } // class Run |