Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

59 lines (44 sloc) 1.798 kb
/* NSC -- new Scala compiler
* Copyright 2005-2013 LAMP/EPFL
* @author Paul Phillips
*/
package scala.tools.nsc
package backend
import util.ClassPath
import io.AbstractFile
/** The platform dependent pieces of Global.
*/
trait Platform {
val global: Global
import global._
/** The binary classfile representation type */
type BinaryRepr
/** The compiler classpath. */
def classPath: ClassPath[BinaryRepr]
/** The root symbol loader. */
def rootLoader: LazyType
/** Update classpath with a substitution that maps entries to entries */
def updateClassPath(subst: Map[ClassPath[BinaryRepr], ClassPath[BinaryRepr]])
/** Any platform-specific phases. */
def platformPhases: List[SubComponent]
/** Symbol for a method which compares two objects. */
def externalEquals: Symbol
/** The various ways a boxed primitive might materialize at runtime. */
def isMaybeBoxed(sym: Symbol): Boolean
/** Create a new class loader to load class file `bin` */
def newClassLoader(bin: BinaryRepr): loaders.SymbolLoader
/**
* Tells whether a class should be loaded and entered into the package
* scope. On .NET, this method returns `false` for all synthetic classes
* (anonymous classes, implementation classes, module classes), their
* symtab is encoded in the pickle of another class.
*/
def doLoad(cls: ClassPath[BinaryRepr]#ClassRep): Boolean
/**
* Tells whether a class with both a binary and a source representation
* (found in classpath and in sourcepath) should be re-compiled. Behaves
* on the JVM similar to javac, i.e. if the source file is newer than the classfile,
* a re-compile is triggered. On .NET by contrast classfiles always take precedence.
*/
def needCompile(bin: BinaryRepr, src: AbstractFile): Boolean
}
Jump to Line
Something went wrong with that request. Please try again.