diff options
author | Martin Odersky <odersky@gmail.com> | 2013-12-22 16:19:09 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-12-22 16:20:42 +0100 |
commit | 70e57128bb7623998f76aaf2ad8541d438b4b2b8 (patch) | |
tree | 9ed809c518562ef87a5b57f9a580d042e1ca3e95 /src/dotty/tools/dotc/core/Definitions.scala | |
parent | 5bf4a7188afdf336186bd200d963828e2bcc27e0 (diff) | |
download | dotty-70e57128bb7623998f76aaf2ad8541d438b4b2b8.tar.gz dotty-70e57128bb7623998f76aaf2ad8541d438b4b2b8.tar.bz2 dotty-70e57128bb7623998f76aaf2ad8541d438b4b2b8.zip |
Normalize parents to be class refs
Previously, alias type refs were also accepted. But this is the wrong assumption for computeMembersNames. So, e.g. instead of leaving an AnyRef we now expand to Object.
Also making ==, != take an Any instead of Object
Diffstat (limited to 'src/dotty/tools/dotc/core/Definitions.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/Definitions.scala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala index 96e4f0138..a2527c9f2 100644 --- a/src/dotty/tools/dotc/core/Definitions.scala +++ b/src/dotty/tools/dotc/core/Definitions.scala @@ -45,7 +45,7 @@ class Definitions(implicit ctx: Context) { if (tpe.typeParams.nonEmpty) tpe.appliedTo(typeParam.typeRef) else tpe val parents = parentConstrs.toList map instantiate - val parentRefs: List[TypeRef] = ctx.normalizeToRefs(parents, cls, paramDecls) + val parentRefs: List[TypeRef] = ctx.normalizeToClassRefs(parents, cls, paramDecls) denot.info = ClassInfo(ScalaPackageClass.thisType, cls, parentRefs, paramDecls) } } @@ -98,8 +98,8 @@ class Definitions(implicit ctx: Context) { lazy val AnyRefAlias: TypeSymbol = newAliasType(tpnme.AnyRef, ObjectType) lazy val Object_## = newMethod(ObjectClass, nme.HASHHASH, ExprType(IntType), Final) - lazy val Object_== = newMethod(ObjectClass, nme.EQ, methOfAnyRef(BooleanType), Final) - lazy val Object_!= = newMethod(ObjectClass, nme.NE, methOfAnyRef(BooleanType), Final) + lazy val Object_== = newMethod(ObjectClass, nme.EQ, methOfAny(BooleanType), Final) + lazy val Object_!= = newMethod(ObjectClass, nme.NE, methOfAny(BooleanType), Final) lazy val Object_eq = newMethod(ObjectClass, nme.eq, methOfAnyRef(BooleanType), Final) lazy val Object_ne = newMethod(ObjectClass, nme.ne, methOfAnyRef(BooleanType), Final) lazy val Object_isInstanceOf = newT1EmptyParamsMethod(ObjectClass, nme.isInstanceOf_Ob, _ => BooleanType, Final | Synthetic) |