A trait allowing to look for classpath entries in directories. It provides common logic for
classes handling class and source files.
It makes use of the fact that in the case of nested directories it's easy to find a file
when we have a name of a package.
It abstracts over the file representation to work with both JFile and AbstractFile.
Returns the class file and / or source file for a given external name, e.g., "java.lang.String".
If there is both a class file and source file, the compiler can decide whether to read the
class file or compile the source file.
Returns the class file and / or source file for a given external name, e.g., "java.lang.String".
If there is both a class file and source file, the compiler can decide whether to read the
class file or compile the source file.
Internally this seems to be used only by ScriptRunner, but only to call .isDefined. That
could probably be implemented differently.
Returns the classfile for an external name, e.g., "java.lang.String". This method does not
return source files.
Returns the classfile for an external name, e.g., "java.lang.String". This method does not
return source files.
This method is used by the classfile parser. When parsing a Java class, its own inner classes
are entered with a ClassfileLoader that parses the classfile returned by this method.
It is also used in the backend, by the inliner, to obtain the bytecode when inlining from the
classpath. It's also used by scalap.
Returns packages and classes (source or classfile) that are members of inPackage (not
recursively). The inPackage contains a full package name, e.g., "scala.collection".
Returns packages and classes (source or classfile) that are members of inPackage (not
recursively). The inPackage contains a full package name, e.g., "scala.collection".
This is the main method uses to find classes, see class PackageLoader. The
rootMirror.rootLoader is created with inPackage = "".