From 80ac7d006350c0d60ff1b293ee955c3435288a9e Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 3 May 2013 10:15:10 -0700 Subject: Absolutized paths involving the scala package. Confusing, now-it-happens now-it-doesn't mysteries lurk in the darkness. When scala packages are declared like this: package scala.collection.mutable Then paths relative to scala can easily be broken via the unlucky presence of an empty (or nonempty) directory. Example: // a.scala package scala.foo class Bar { new util.Random } % scalac ./a.scala % mkdir util % scalac ./a.scala ./a.scala:4: error: type Random is not a member of package util new util.Random ^ one error found There are two ways to play defense against this: - don't use relative paths; okay sometimes, less so others - don't "opt out" of the scala package This commit mostly pursues the latter, with occasional doses of the former. I created a scratch directory containing these empty directories: actors annotation ant api asm beans cmd collection compat concurrent control convert docutil dtd duration event factory forkjoin generic hashing immutable impl include internal io logging macros man1 matching math meta model mutable nsc parallel parsing partest persistent process pull ref reflect reify remote runtime scalap scheduler script swing sys text threadpool tools transform unchecked util xml I stopped when I could compile the main src directories even with all those empties on my classpath. --- src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala | 4 +++- src/scaladoc/scala/tools/nsc/doc/html/Page.scala | 3 ++- src/scaladoc/scala/tools/nsc/doc/html/SyntaxHigh.scala | 3 ++- src/scaladoc/scala/tools/nsc/doc/html/page/ReferenceIndex.scala | 5 ++++- src/scaladoc/scala/tools/nsc/doc/html/page/Template.scala | 4 +++- .../scala/tools/nsc/doc/html/page/diagram/DotDiagramGenerator.scala | 4 +++- src/scaladoc/scala/tools/nsc/doc/model/IndexModelFactory.scala | 3 ++- src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala | 5 ++--- 8 files changed, 21 insertions(+), 10 deletions(-) (limited to 'src/scaladoc') diff --git a/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala b/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala index 9edd5afa13..159e16375c 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala @@ -3,7 +3,9 @@ * @author David Bernard, Manohar Jonnalagedda */ -package scala.tools.nsc +package scala +package tools +package nsc package doc package html diff --git a/src/scaladoc/scala/tools/nsc/doc/html/Page.scala b/src/scaladoc/scala/tools/nsc/doc/html/Page.scala index 91939cf3de..93950fd0a7 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/Page.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/Page.scala @@ -3,7 +3,8 @@ * @author David Bernard, Manohar Jonnalagedda */ -package scala.tools.nsc.doc.html +package scala +package tools.nsc.doc.html import scala.tools.nsc.doc.model._ import java.io.{FileOutputStream, File} diff --git a/src/scaladoc/scala/tools/nsc/doc/html/SyntaxHigh.scala b/src/scaladoc/scala/tools/nsc/doc/html/SyntaxHigh.scala index 348ea97c5b..fe0fc64033 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/SyntaxHigh.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/SyntaxHigh.scala @@ -3,7 +3,8 @@ * @author Stephane Micheloud */ -package scala.tools.nsc.doc.html +package scala +package tools.nsc.doc.html import scala.xml.NodeSeq import scala.annotation.tailrec diff --git a/src/scaladoc/scala/tools/nsc/doc/html/page/ReferenceIndex.scala b/src/scaladoc/scala/tools/nsc/doc/html/page/ReferenceIndex.scala index a74c2eedbd..84ee82f994 100755 --- a/src/scaladoc/scala/tools/nsc/doc/html/page/ReferenceIndex.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/page/ReferenceIndex.scala @@ -3,10 +3,13 @@ * @author Pedro Furlanetto */ -package scala.tools.nsc +package scala +package tools +package nsc package doc package html package page + import doc.model._ class ReferenceIndex(letter: Char, index: doc.Index, universe: Universe) extends HtmlPage { diff --git a/src/scaladoc/scala/tools/nsc/doc/html/page/Template.scala b/src/scaladoc/scala/tools/nsc/doc/html/page/Template.scala index 63509de4b5..45b169cdfc 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/page/Template.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/page/Template.scala @@ -3,7 +3,9 @@ * @author David Bernard, Manohar Jonnalagedda */ -package scala.tools.nsc +package scala +package tools +package nsc package doc package html package page diff --git a/src/scaladoc/scala/tools/nsc/doc/html/page/diagram/DotDiagramGenerator.scala b/src/scaladoc/scala/tools/nsc/doc/html/page/diagram/DotDiagramGenerator.scala index 7d146b4a5f..4ff436bdc6 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/page/diagram/DotDiagramGenerator.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/page/diagram/DotDiagramGenerator.scala @@ -2,7 +2,9 @@ * @author Damien Obrist * @author Vlad Ureche */ -package scala.tools.nsc +package scala +package tools +package nsc package doc package html package page diff --git a/src/scaladoc/scala/tools/nsc/doc/model/IndexModelFactory.scala b/src/scaladoc/scala/tools/nsc/doc/model/IndexModelFactory.scala index 1272906df5..53410fd4ad 100755 --- a/src/scaladoc/scala/tools/nsc/doc/model/IndexModelFactory.scala +++ b/src/scaladoc/scala/tools/nsc/doc/model/IndexModelFactory.scala @@ -3,7 +3,8 @@ * @author Pedro Furlanetto */ -package scala.tools.nsc +package scala +package tools.nsc package doc package model diff --git a/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala b/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala index 3831f64fab..aeae9b8a78 100644 --- a/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala +++ b/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala @@ -1,6 +1,7 @@ /* NSC -- new Scala compiler -- Copyright 2007-2013 LAMP/EPFL */ -package scala.tools.nsc +package scala +package tools.nsc package doc package model @@ -9,11 +10,9 @@ import diagram._ import scala.collection._ import scala.util.matching.Regex - import symtab.Flags import io._ - import model.{ RootPackage => RootPackageEntity } /** This trait extracts all required information for documentation from compilation units */ -- cgit v1.2.3