aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Typer.scala
diff options
context:
space:
mode:
authorodersky <odersky@gmail.com>2014-03-12 17:31:33 +0100
committerodersky <odersky@gmail.com>2014-03-12 17:31:33 +0100
commitdb950e5e168f6fd71a367da343e352139e8d653e (patch)
treecc9e6b9d36bbd66c8454406cc9e28f5011ef2272 /src/dotty/tools/dotc/typer/Typer.scala
parent6e7dd1b0e18bcdd767ea5625f03094bc41a049bd (diff)
parent66291018e0512b2d4e7d6bac017ab47b95939275 (diff)
downloaddotty-db950e5e168f6fd71a367da343e352139e8d653e.tar.gz
dotty-db950e5e168f6fd71a367da343e352139e8d653e.tar.bz2
dotty-db950e5e168f6fd71a367da343e352139e8d653e.zip
Merge pull request #61 from odersky/fixes-t00xx
Fixes t00xx
Diffstat (limited to 'src/dotty/tools/dotc/typer/Typer.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala
index 7bef0268e..c17c9d6d7 100644
--- a/src/dotty/tools/dotc/typer/Typer.scala
+++ b/src/dotty/tools/dotc/typer/Typer.scala
@@ -701,8 +701,9 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
val TypeBoundsTree(lo, hi) = desugar.typeBoundsTree(tree)
val lo1 = typed(lo)
val hi1 = typed(hi)
- if (!(lo1.tpe <:< hi1.tpe))
- ctx.error(i"lower bound ${lo1.tpe} does not conform to upper bound ${hi1.tpe}", tree.pos)
+ // need to do in later phase, as this might cause a cyclic reference error. See pos/t0039.scala
+ // if (!(lo1.tpe <:< hi1.tpe))
+ // ctx.error(i"lower bound ${lo1.tpe} does not conform to upper bound ${hi1.tpe}", tree.pos)
assignType(cpy.TypeBoundsTree(tree, lo1, hi1), lo1, hi1)
}
@@ -788,7 +789,7 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
val constr1 = typed(constr).asInstanceOf[DefDef]
val parents1 = ensureConstrCall(ensureFirstIsClass(
parents mapconserve typedParent, cdef.pos.toSynthetic))
- val self1 = typed(self).asInstanceOf[ValDef]
+ val self1 = typed(self)(ctx.outer).asInstanceOf[ValDef] // outer context where class memebers are not visible
val localDummy = ctx.newLocalDummy(cls, impl.pos)
val body1 = typedStats(body, localDummy)(inClassContext(self1.symbol))
checkNoDoubleDefs(cls)