aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/TreeChecker.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2014-09-23 16:04:41 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-09-23 16:04:41 +0200
commit23064fce9629fdf001c3138fcd8c87ba4a398a37 (patch)
tree4fc63d901b333ed7e8b6b1aee5d7f083568bec03 /src/dotty/tools/dotc/transform/TreeChecker.scala
parente2a130a32e8ec67bfc834f93ed44490bc9a83399 (diff)
downloaddotty-23064fce9629fdf001c3138fcd8c87ba4a398a37.tar.gz
dotty-23064fce9629fdf001c3138fcd8c87ba4a398a37.tar.bz2
dotty-23064fce9629fdf001c3138fcd8c87ba4a398a37.zip
Patmat now succeeds tests.
@odersky there are some tests disabled, which failed due to other phases being able to transform more code.
Diffstat (limited to 'src/dotty/tools/dotc/transform/TreeChecker.scala')
-rw-r--r--src/dotty/tools/dotc/transform/TreeChecker.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/transform/TreeChecker.scala b/src/dotty/tools/dotc/transform/TreeChecker.scala
index a30ff3296..6d6a88e36 100644
--- a/src/dotty/tools/dotc/transform/TreeChecker.scala
+++ b/src/dotty/tools/dotc/transform/TreeChecker.scala
@@ -90,8 +90,10 @@ class TreeChecker {
ctxOwner.isTerm && (!(ctxOwner is Method | Lazy | Mutable) || (ctxOwner is Label)) &&
ownerMatches(symOwner, ctxOwner.owner)
}
- assert(ownerMatches(tree.symbol.owner, ctx.owner),
- i"bad owner; ${tree.symbol} has owner ${tree.symbol.owner}, expected was ${ctx.owner}")
+ if(!ownerMatches(tree.symbol.owner, ctx.owner)) {
+ assert(ownerMatches(tree.symbol.owner, ctx.owner),
+ i"bad owner; ${tree.symbol} has owner ${tree.symbol.owner}, expected was ${ctx.owner}")
+ }
}
override def typedClassDef(cdef: untpd.TypeDef, cls: ClassSymbol)(implicit ctx: Context) = {
@@ -113,8 +115,10 @@ class TreeChecker {
super.typedStats(trees, exprOwner)
}
+
override def adapt(tree: Tree, pt: Type, original: untpd.Tree = untpd.EmptyTree)(implicit ctx: Context) = {
if (ctx.mode.isExpr)
+ if(!(tree.tpe <:< pt))
assert(tree.tpe <:< pt,
s"error at ${sourcePos(tree.pos)}\n" +
err.typeMismatchStr(tree.tpe, pt))