summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean McDirmid <sean.mcdirmid@gmail.com>2006-01-18 11:44:50 +0000
committerSean McDirmid <sean.mcdirmid@gmail.com>2006-01-18 11:44:50 +0000
commit39d0d659e701516c9bef030257e48b3e70053958 (patch)
tree97a11b09d065a81600cb2b8a7c4f2c8dee41cc88 /src
parente6d5f93be6f0d8bf866c38bb34e330d19bf70122 (diff)
downloadscala-39d0d659e701516c9bef030257e48b3e70053958.tar.gz
scala-39d0d659e701516c9bef030257e48b3e70053958.tar.bz2
scala-39d0d659e701516c9bef030257e48b3e70053958.zip
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/util/ClassPath.scala11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/util/ClassPath.scala b/src/compiler/scala/tools/nsc/util/ClassPath.scala
index 99cf969898..5ea11ee597 100644
--- a/src/compiler/scala/tools/nsc/util/ClassPath.scala
+++ b/src/compiler/scala/tools/nsc/util/ClassPath.scala
@@ -42,6 +42,7 @@ object ClassPath {
def source = if (sourceFile == null) null else new Source(sourceFile, false);
}
+
class Context(val classes : List[AbstractFile], val sources : List[Source]) {
def find(name : String, isDir : boolean) = if (isPackage) {
def find0(classes : List[AbstractFile], sources : List[Source]) : Context = {
@@ -57,7 +58,7 @@ object ClassPath {
if (sources.head == null) null;
else {
val source0 = sources.head.location.lookupPath(name + (if (!isDir) ".scala" else ""), isDir);
- if (source0 != null) source0;
+ if (source0 != null && isDir) source0;
else if (clazz != null && !isDir) sources.head.location; // directory where we can find source.
else null;
}
@@ -68,13 +69,15 @@ object ClassPath {
:: ret.sources);
}
}
- find0(classes, sources);
+ val ret = find0(classes, sources);
+ ret;
} else null;
def isPackage = {
- if (classes.head != null) classes.head.isDirectory();
- else sources.head.location.isDirectory();
+ if (!classes.isEmpty && classes.head != null) classes.head.isDirectory();
+ else if (!sources.isEmpty && sources.head.location != null) sources.head.location.isDirectory();
+ else true;
}
def name = {