diff options
author | Sean McDirmid <sean.mcdirmid@gmail.com> | 2006-01-18 11:44:50 +0000 |
---|---|---|
committer | Sean McDirmid <sean.mcdirmid@gmail.com> | 2006-01-18 11:44:50 +0000 |
commit | 39d0d659e701516c9bef030257e48b3e70053958 (patch) | |
tree | 97a11b09d065a81600cb2b8a7c4f2c8dee41cc88 /src | |
parent | e6d5f93be6f0d8bf866c38bb34e330d19bf70122 (diff) | |
download | scala-39d0d659e701516c9bef030257e48b3e70053958.tar.gz scala-39d0d659e701516c9bef030257e48b3e70053958.tar.bz2 scala-39d0d659e701516c9bef030257e48b3e70053958.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/util/ClassPath.scala | 11 |
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 = { |