diff options
author | Martin Odersky <odersky@gmail.com> | 2015-02-13 12:47:45 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-03-18 11:11:06 +0100 |
commit | c078ad338e5e2f10a8229f74b7141e636dba2700 (patch) | |
tree | 8229630f73d77eb261990ccbba1a19f9187c74bd | |
parent | 93747cdb576d0a2cb17db1d392e1bdb56e8e6049 (diff) | |
download | dotty-c078ad338e5e2f10a8229f74b7141e636dba2700.tar.gz dotty-c078ad338e5e2f10a8229f74b7141e636dba2700.tar.bz2 dotty-c078ad338e5e2f10a8229f74b7141e636dba2700.zip |
Tweaks in comments
-rw-r--r-- | src/dotty/tools/dotc/core/Flags.scala | 8 | ||||
-rw-r--r-- | src/dotty/tools/dotc/typer/Namer.scala | 4 | ||||
-rw-r--r-- | src/dotty/tools/dotc/typer/Typer.scala | 4 |
3 files changed, 7 insertions, 9 deletions
diff --git a/src/dotty/tools/dotc/core/Flags.scala b/src/dotty/tools/dotc/core/Flags.scala index c2e7cd399..e57ba066e 100644 --- a/src/dotty/tools/dotc/core/Flags.scala +++ b/src/dotty/tools/dotc/core/Flags.scala @@ -287,7 +287,7 @@ object Flags { /** A trait that has only abstract methods as members * (and therefore can be represented by a Java interface */ - final val PureInterface = typeFlag(22, "interface") + final val PureInterface = typeFlag(22, "interface") // TODO when unpickling, reconstitute from context /** Labeled with of abstract & override */ final val AbsOverride = termFlag(22, "abstract override") @@ -336,7 +336,7 @@ object Flags { final val JavaStaticType = JavaStatic.toTypeFlags /** Trait is not an interface, but does not have fields or intialization code */ - final val NoInits = typeFlag(32, "<noInits>") // TODO reconstitute from context + final val NoInits = typeFlag(32, "<noInits>") // TODO when unpickling, reconstitute from context /** Variable is accessed from nested function. */ final val Captured = termFlag(32, "<captured>") @@ -367,7 +367,7 @@ object Flags { /** Symbol always defines a fresh named type */ final val Fresh = commonFlag(45, "<fresh>") - /** Symbol is defined in a super call */ // TODO reconstitute from context + /** Symbol is defined in a super call */ // TODO when unpickling, reconstitute from context final val InSuperCall = commonFlag(46, "<in supercall>") /** Symbol with private access is accessed outside its private scope */ @@ -554,7 +554,7 @@ object Flags { /** A Java interface, potentially with default methods */ final val JavaTrait = allOf(JavaDefined, Trait, NoInits) - /** A Java interface */ // TODO reconstitute from context + /** A Java interface */ // TODO when unpickling, reconstitute from context final val JavaInterface = allOf(JavaDefined, Trait) /** A Java companion object */ diff --git a/src/dotty/tools/dotc/typer/Namer.scala b/src/dotty/tools/dotc/typer/Namer.scala index 95f0b4165..c522a5998 100644 --- a/src/dotty/tools/dotc/typer/Namer.scala +++ b/src/dotty/tools/dotc/typer/Namer.scala @@ -497,9 +497,9 @@ class Namer { typer: Typer => denot.info = ClassInfo(cls.owner.thisType, cls, parentRefs, decls, selfInfo) if (cls is Trait) { if (body forall isNoInitMember) { - cls.setFlag(NoInits) // TODO set when unpickling + cls.setFlag(NoInits) if (body forall isPureInterfaceMember) - cls.setFlag(PureInterface) // TODO set when unpickling + cls.setFlag(PureInterface) } } } diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala index d194ccaae..974a42638 100644 --- a/src/dotty/tools/dotc/typer/Typer.scala +++ b/src/dotty/tools/dotc/typer/Typer.scala @@ -801,10 +801,8 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit typr.println(s"adding refinement $refinement") checkRefinementNonCyclic(refinement, refineCls, seen) val rsym = refinement.symbol - if ((rsym.is(Method) || rsym.isType) && rsym.allOverriddenSymbols.isEmpty) { - println(refineCls.baseClasses) + if ((rsym.is(Method) || rsym.isType) && rsym.allOverriddenSymbols.isEmpty) ctx.error(i"refinement $rsym without matching type in parent $parent", refinement.pos) - } val rinfo = if (rsym is Accessor) rsym.info.resultType else rsym.info RefinedType(parent, rsym.name, rt => rinfo.substThis(refineCls, SkolemType(rt))) // todo later: check that refinement is within bounds |