blob: ec367b61bb7136fea914e60c0e4ae01f13ce2c73 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/* NSC -- new Scala compiler
* Copyright 2005-2010 LAMP/EPFL
* @author Paul Phillips
*/
package scala.tools.nsc
package backend
import io.AbstractFile
import util.JavaClassPath
import util.ClassPath.{ JavaContext, DefaultJavaContext }
import scala.tools.util.PathResolver
trait JavaPlatform extends Platform[AbstractFile] {
import global._
import definitions.{ BoxesRunTimeClass, getMember }
lazy val classPath = new PathResolver(settings).result
def rootLoader = new loaders.JavaPackageLoader(classPath)
private def depAnalysisPhase =
if (settings.make.isDefault) Nil
else List(dependencyAnalysis)
def platformPhases = List(
flatten, // get rid of inner classes
liftcode, // generate reified trees
genJVM // generate .class files
) ::: depAnalysisPhase
lazy val externalEquals = getMember(BoxesRunTimeClass, nme.equals_)
def externalEqualsNumNum = getMember(BoxesRunTimeClass, "equalsNumNum")
def externalEqualsNumChar = getMember(BoxesRunTimeClass, "equalsNumChar")
def externalEqualsNumObject = getMember(BoxesRunTimeClass, "equalsNumObject")
def isMaybeBoxed(sym: Symbol): Boolean = {
import definitions._
(sym == ObjectClass) ||
(sym == SerializableClass) ||
(sym == ComparableClass) ||
(sym isNonBottomSubClass BoxedNumberClass) ||
(sym isNonBottomSubClass BoxedCharacterClass)
}
}
|