
scala.tools.nsc.backend.Platform.scala Maven / Gradle / Ivy
/*
* Scala (https://www.scala-lang.org)
*
* Copyright EPFL and Lightbend, Inc.
*
* Licensed under Apache License 2.0
* (http://www.apache.org/licenses/LICENSE-2.0).
*
* See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*/
package scala.tools.nsc
package backend
import io.AbstractFile
import scala.tools.nsc.util.ClassPath
/** The platform dependent pieces of Global.
*/
trait Platform {
val symbolTable: symtab.SymbolTable
import symbolTable._
/** The new implementation of compiler classpath. */
private[nsc] def classPath: ClassPath
/** Update classpath with a substitution that maps entries to entries */
def updateClassPath(subst: Map[ClassPath, ClassPath]): Unit
/** 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
/**
* 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: AbstractFile, src: AbstractFile): Boolean
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy