summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/Global.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2009-12-11 14:57:35 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2009-12-11 14:57:35 +0000
commitfffe6449d14387df980f25aee9e9c1795b5f13aa (patch)
treef6780a17aaac96fc2bf2aa536111ff00949985e1 /src/compiler/scala/tools/nsc/Global.scala
parente378965dc26c8f1123b87b6b60418bb4872e395b (diff)
downloadscala-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.scala16
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