Removed dead package

git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25701 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
This commit is contained in:
odersky 2011-09-21 16:21:26 +00:00
parent ffaf970b55
commit b660971c29
9 changed files with 38 additions and 195 deletions

View File

@ -25,6 +25,7 @@ abstract class SymbolTable extends api.Universe
with TreePrinters
with Positions
with TypeDebugging
with Importers
with Required
{
def rootLoader: LazyType

View File

@ -2770,7 +2770,7 @@ A type's typeSymbol should never be inspected directly.
override def kind = "LazyType"
}
class LazyPolyType(override val typeParams: List[Symbol]) extends LazyType {
abstract class LazyPolyType(override val typeParams: List[Symbol]) extends LazyType {
override def safeToString =
(if (typeParams.isEmpty) "" else typeParamsString(this)) + super.safeToString
}

View File

@ -6,7 +6,7 @@ import java.lang.reflect.Array
/** The mirror for standard runtime reflection from Java.
*/
class Mirror extends Universe with RuntimeTypes with api.Mirror {
class Mirror extends Universe with RuntimeTypes with ToolBoxes with api.Mirror {
import definitions._

View File

@ -0,0 +1,35 @@
package scala.reflect
package runtime
import scala.tools.nsc.reporters.Reporter
import scala.tools.nsc.reporters.StoreReporter
import scala.tools.nsc.ReflectGlobal
import scala.tools.nsc.CompilerCommand
import scala.tools.nsc.Global
import scala.tools.nsc.typechecker.Modes
trait ToolBoxes extends { self: Universe =>
class ToolBox(val reporter: Reporter = new StoreReporter, val options: String = "") {
lazy val compiler: Global = {
val command = new CompilerCommand(options.split(" ").toList, reporter.error(scala.tools.nsc.util.NoPosition, _))
new ReflectGlobal(command.settings, reporter)
}
lazy val importer = new compiler.Importer {
val from: self.type = self
}
lazy val exporter = importer.reverse
def typeCheck(tree: Tree, expectedType: Type = WildcardType): Tree = {
new compiler.Run
val ctree: compiler.Tree = importer.importTree(tree)
val pt: compiler.Type = importer.importType(expectedType)
val ttree: compiler.Tree = compiler.typer.typed(ctree, compiler.analyzer.EXPRmode, pt)
exporter.importTree(ttree)
}
}
}

View File

@ -1,62 +0,0 @@
package scala.reflect
package std
import internal._
import collection.mutable.ListBuffer
trait JavaMappings { self: Mirror =>
import definitions._
type TypeParamMap = Map[java.lang.reflect.TypeVariable[_], Symbol]
private val localDummy = definitions.RootClass.newValue(NoPosition, "<local-dummy>").setFlag(Flags.SYNTHETIC).setInfo(NoType)
def fromJava(clazz: java.lang.Class[_]): Symbol = clazz match {
case java.lang.Boolean.TYPE => BooleanClass
case java.lang.Character.TYPE => CharClass
case java.lang.Byte.TYPE => ByteClass
case java.lang.Short.TYPE => ShortClass
case java.lang.Integer.TYPE => IntClass
case java.lang.Long.TYPE => LongClass
case java.lang.Float.TYPE => FloatClass
case java.lang.Double.TYPE => DoubleClass
case java.lang.Void.TYPE => UnitClass
case _ => definitions.getClass(clazz.getName)
}
def fromJavaType(jtpe: java.lang.reflect.Type)(implicit tparMap: TypeParamMap): Type = jtpe match {
case clazz: java.lang.Class[_] =>
if (clazz.isArray) arrayType(fromJavaType(clazz.getComponentType))
else {
val sym = fromJava(clazz)
if (clazz.isLocalClass) typeRef(NoPrefix, sym, List())
else if (clazz.isMemberClass) typeRef(fromJavaType(clazz.getDeclaringClass), sym, List())
else sym.tpe
}
case ptpe: java.lang.reflect.ParameterizedType =>
val TypeRef(pre0, sym, _) = fromJavaType(ptpe.getRawType)
val jpre = ptpe.getOwnerType
val pre = if (jpre != null) fromJavaType(jpre) else pre0
val exbuf = new ListBuffer[Symbol]
def fromJavaArgType(jtp: java.lang.reflect.Type) = fromJavaType(jtp) match {
case BoundedWildcardType(bounds) =>
val tparam = pre.typeSymbol.newTypeParameter(NoPosition, newTypeName("x$" + exbuf.length)).setInfo(bounds)
exbuf += tparam
tparam.tpe
case tp => tp
}
val args = ptpe.getActualTypeArguments.toList map fromJavaArgType
existentialAbstraction(exbuf.toList, typeRef(pre, sym, args))
case gtpe: java.lang.reflect.GenericArrayType =>
val etpe = fromJavaType(gtpe.getGenericComponentType)
arrayType(etpe)
case wtpe: java.lang.reflect.WildcardType =>
BoundedWildcardType(
TypeBounds(
(wtpe.getLowerBounds map fromJavaType).headOption getOrElse NothingClass.tpe,
intersectionType((wtpe.getUpperBounds map fromJavaType).toList)))
case vtpe: java.lang.reflect.TypeVariable[_] =>
tparMap(vtpe).tpe
}
}

View File

@ -1,14 +0,0 @@
package scala.reflect
package std
import internal._
abstract class Mirror extends SymbolTable
with JavaMappings
with SymbolCompleters
with Positions { self =>
val unpickler = new internal.pickling.UnPickler { val global: self.type = self }
override val settings = new ReflectSettings
}

View File

@ -1,13 +0,0 @@
package scala.reflect
package std
trait Positions {
class Position {
def focus: Position = this
def isRange: Boolean = false
def show: String = toString
}
val NoPosition: Position = new Position
}

View File

@ -1,24 +0,0 @@
package scala.reflect
package std
class ReflectSettings extends internal.settings.MutableSettings {
def newSetting[TT](init: TT) = new SettingValue {
type T = TT
v = init
override def isDefault = v == init
}
val overrideObjects = newSetting(false)
val debug = newSetting(false)
val YdepMethTpes = newSetting(false)
val Ynotnull = newSetting(false)
val explaintypes = newSetting(false)
val verbose = newSetting(false)
val uniqid = newSetting(false)
val Xprintpos = newSetting(false)
val printtypes = newSetting(false)
val Yrecursion = newSetting(0)
val maxClassfileName = newSetting(255)
}

View File

@ -1,80 +0,0 @@
package scala.reflect
package std
import java.io.File
import internal._
trait SymbolCompleters { self: Mirror =>
class PackageCompleter(owner: Symbol) extends LazyType {
override def isComplete = true
override def complete(sym: Symbol) {}
private val knownMembers = new Scope
override def findMember(name: Name, excludedFlags: Long, requiredFlags: Long, stableOnly: Boolean): Symbol = {
if (name == nme.ANYNAME) abort("cannot enumerate members of a package")
else {
val sym = knownMembers.lookup(name)
if (sym != NoSymbol) sym
else {
def prepare(sym: Symbol, tpe: Type): Symbol = {
knownMembers.enter(sym)
sym.setInfo(tpe)
}
try {
val prefix = if (owner.isRoot) "" else owner.fullName + "."
val jclazz = java.lang.Class.forName(prefix + name)
val classRoot = owner.newClass(NoPosition, name.toTypeName)
val moduleRoot = owner.newModule(NoPosition, name.toTermName)
val loader = new ClassCompleter(classRoot, moduleRoot, jclazz)
prepare(classRoot, loader)
prepare(moduleRoot, loader)
if (name.isTypeName) classRoot else moduleRoot
} catch {
case ex: ClassNotFoundException =>
if (name.isTermName) {
// looking for module, construct package symbol instead
val pkg = owner.newPackage(NoPosition, name)
prepare(pkg, new PackageCompleter(pkg))
} else
NoSymbol
}
}
}
}
}
class ClassCompleter(classRoot: Symbol, moduleRoot: Symbol, jclazz: java.lang.Class[_]) extends LazyType {
import definitions._
def scalaSigAttr(jclazz: java.lang.Class[_]): Option[Array[Byte]] =
jclazz.getAnnotation(classOf[ScalaSignature]) match {
case sig: ScalaSignature => Some(sig.bytes.getBytes())
case _ => jclazz.getAnnotation(classOf[ScalaLongSignature]) match {
case sig: ScalaLongSignature => Some(sig.bytes flatMap (_.getBytes))
case _ => None
}
}
def readJava(classRoot: Symbol, moduleRoot: Symbol) {
}
var _isComplete = false
override def isComplete = _isComplete
override def complete(sym: Symbol) {
_isComplete = true
scalaSigAttr(jclazz) match {
case Some(bytes) =>
val filename = classRoot.fullName.replace('.', File.separatorChar)
unpickler.unpickle(bytes, 0, classRoot, moduleRoot, filename)
case None =>
readJava(classRoot, moduleRoot)
}
}
}
val rootLoader = new PackageCompleter(definitions.RootClass)
}