diff options
Diffstat (limited to 'src/compiler/scala/tools/nsc/symtab/Definitions.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Definitions.scala | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala index 18fd09e0ba..11c3db13ee 100644 --- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala +++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala @@ -365,10 +365,17 @@ trait Definitions { private def newCovariantPolyClass(owner: Symbol, name: Name, parent: Symbol => Type): Symbol = { val clazz = newClass(owner, name, List()) val tparam = newTypeParam(clazz, 0) setFlag COVARIANT + val p = parent(tparam) +/* p.typeSymbol.initialize + println(p.typeSymbol + " flags: " + Flags.flagsToString(p.typeSymbol.flags)) + val parents = /*if (p.typeSymbol.isTrait) + List(definitions.AnyRefClass.tpe, p) + else*/ List(p) + println("creating " + name + " with parents " + parents) */ clazz.setInfo( PolyType( List(tparam), - ClassInfoType(List(parent(tparam)), newClassScope(clazz), clazz))) + ClassInfoType(List(p), newClassScope(clazz), clazz))) } private def newAlias(owner: Symbol, name: Name, alias: Type): Symbol = { |