diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala | 2 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Definitions.scala | 83 |
2 files changed, 38 insertions, 47 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index d737de6976..f2c3a1c788 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -89,7 +89,7 @@ abstract class GenJVM extends SubComponent { val PublicStatic = ACC_PUBLIC | ACC_STATIC val PublicStaticFinal = ACC_PUBLIC | ACC_STATIC | ACC_FINAL - val StringBuilderClass = definitions.getClass2("scala.StringBuilder", "scala.collection.mutable.StringBuilder").fullName + val StringBuilderClass = definitions.getClass("scala.collection.mutable.StringBuilder").fullName val BoxesRunTime = "scala.runtime.BoxesRunTime" val StringBuilderType = new JObjectType(StringBuilderClass) diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala index 4446f8c10d..da4b5a83da 100644 --- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala +++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala @@ -214,28 +214,19 @@ trait Definitions extends reflect.generic.StandardDefinitions { lazy val EqualsPatternClass = { val clazz = newClass(ScalaPackageClass, nme.EQUALS_PATTERN_NAME, Nil) clazz setInfo PolyType(List(newTypeParam(clazz, 0)), ClassInfoType(anyparam, new Scope, clazz)) - - clazz } // collections classes - lazy val IteratorClass = getClass2("scala.Iterator", "scala.collection.Iterator") - lazy val TraversableClass = getClass("scala.collection.Traversable") - lazy val IterableClass = getClass2("scala.Iterable", "scala.collection.Iterable") - def Iterable_next = getMember(IterableClass, nme.next) - def Iterable_hasNext = getMember(IterableClass, nme.hasNext) - - lazy val SeqClass = getClass2("scala.Seq", "scala.collection.Seq") - lazy val SeqModule = getModule2("scala.Seq", "scala.collection.Seq") - def Seq_length = getMember(SeqClass, nme.length) - - lazy val ListModule = getModule2("scala.List", "scala.collection.immutable.List") - lazy val ListClass = getClass2("scala.List", "scala.collection.immutable.List") - def List_isEmpty = getMember(ListClass, nme.isEmpty) - def List_head = getMember(ListClass, nme.head) - def List_tail = getMember(ListClass, nme.tail) - lazy val ConsClass = getClass2("scala.$colon$colon", "scala.collection.immutable.$colon$colon") - lazy val NilModule = getModule2("scala.Nil", "scala.collection.immutable.Nil") + lazy val ConsClass = getClass("scala.collection.immutable.$colon$colon") + lazy val IterableClass = getClass("scala.collection.Iterable") + lazy val IteratorClass = getClass("scala.collection.Iterator") + lazy val ListClass = getClass("scala.collection.immutable.List") + lazy val SeqClass = getClass("scala.collection.Seq") + lazy val TraversableClass = getClass("scala.collection.Traversable") + + lazy val ListModule = getModule("scala.collection.immutable.List") + lazy val NilModule = getModule("scala.collection.immutable.Nil") + lazy val SeqModule = getModule("scala.collection.Seq") // arrays and their members lazy val ArrayModule = getModule("scala.Array") @@ -276,9 +267,9 @@ trait Definitions extends reflect.generic.StandardDefinitions { lazy val DynamicDispatch_DontSetTarget = getMember(DynamicDispatchClass, "DontSetTarget") // Option classes - lazy val OptionClass: Symbol = getClass("scala.Option") - lazy val SomeClass: Symbol = getClass("scala.Some") - lazy val NoneModule: Symbol = getModule("scala.None") + lazy val OptionClass: Symbol = getClass("scala.Option") + lazy val SomeClass: Symbol = getClass("scala.Some") + lazy val NoneModule: Symbol = getModule("scala.None") def isOptionType(tp: Type) = cond(tp.normalize) { case TypeRef(_, OptionClass, List(_)) => true } def isSomeType(tp: Type) = cond(tp.normalize) { case TypeRef(_, SomeClass, List(_)) => true } @@ -363,7 +354,7 @@ trait Definitions extends reflect.generic.StandardDefinitions { def functionType(formals: List[Type], restpe: Type) = if (formals.length <= MaxFunctionArity) { val sym = FunctionClass(formals.length) - typeRef(sym.typeConstructor.prefix, sym, formals ::: List(restpe)) + typeRef(sym.typeConstructor.prefix, sym, formals :+ restpe) } else NoType def abstractFunctionForFunctionType(tp: Type) = tp.normalize match { @@ -499,17 +490,8 @@ trait Definitions extends reflect.generic.StandardDefinitions { attr } - def getModule(fullname: Name): Symbol = getModuleOrClass(fullname, true) - def getModule2(name1: Name, name2: Name) = try { - getModuleOrClass(name1, true) - } catch { - case ex1: FatalError => - try { - getModuleOrClass(name2, true) - } catch { - case ex2: FatalError => throw ex1 - } - } + def getModule(fullname: Name): Symbol = + getModuleOrClass(fullname, true) def getClass(fullname: Name): Symbol = { var result = getModuleOrClass(fullname, false) @@ -517,18 +499,6 @@ trait Definitions extends reflect.generic.StandardDefinitions { result } - def getClass2(name1: Name, name2: Name) = try { - var result = getModuleOrClass(name1, false) - if (result.isAliasType) getClass(name2) else result - } catch { - case ex1: FatalError => - try { - getModuleOrClass(name2, false) - } catch { - case ex2: FatalError => throw ex1 - } - } - def getMember(owner: Symbol, name: Name): Symbol = { if (owner == NoSymbol) return NoSymbol val result = owner.info.nonPrivateMember(name) @@ -837,6 +807,27 @@ trait Definitions extends reflect.generic.StandardDefinitions { else flatNameString(etp.typeSymbol, '.') } + /** getModule2/getClass2 aren't needed at present but may be again, + * so for now they're mothballed. + */ + // def getModule2(name1: Name, name2: Name) = { + // try getModuleOrClass(name1, true) + // catch { case ex1: FatalError => + // try getModuleOrClass(name2, true) + // catch { case ex2: FatalError => throw ex1 } + // } + // } + // def getClass2(name1: Name, name2: Name) = { + // try { + // val result = getModuleOrClass(name1, false) + // if (result.isAliasType) getClass(name2) else result + // } + // catch { case ex1: FatalError => + // try getModuleOrClass(name2, false) + // catch { case ex2: FatalError => throw ex1 } + // } + // } + private var isInitialized = false def init { |