diff options
author | Martin Odersky <odersky@gmail.com> | 2014-08-17 10:51:45 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-08-17 13:00:03 +0200 |
commit | f91f030290ac817888a6249d91118f42b560ab87 (patch) | |
tree | aff75c7376ece580e77e4a2a9276e7437f7f2b67 /src/dotty/tools/dotc/transform/TreeChecker.scala | |
parent | 90aef309eaf72ab0c09494eb030c57789955bb21 (diff) | |
download | dotty-f91f030290ac817888a6249d91118f42b560ab87.tar.gz dotty-f91f030290ac817888a6249d91118f42b560ab87.tar.bz2 dotty-f91f030290ac817888a6249d91118f42b560ab87.zip |
Disabling adapt in TreeChecker
well-typed code should not need further adapations. That's why `adapt` is
replaced by a subtype assertion in TreeChecker.
Flushed out two instances where typechecking did not produce well-adapted trees -
one in typedClosure, the other manifested itself in typedSuper.
Diffstat (limited to 'src/dotty/tools/dotc/transform/TreeChecker.scala')
-rw-r--r-- | src/dotty/tools/dotc/transform/TreeChecker.scala | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/transform/TreeChecker.scala b/src/dotty/tools/dotc/transform/TreeChecker.scala index e22edf4df..473f38105 100644 --- a/src/dotty/tools/dotc/transform/TreeChecker.scala +++ b/src/dotty/tools/dotc/transform/TreeChecker.scala @@ -92,6 +92,11 @@ class TreeChecker { i"bad owner; $tree has owner ${tree.symbol.owner}, expected was ${ctx.owner}") super.index(trees) } + + override def adapt(tree: Tree, pt: Type, original: untpd.Tree = untpd.EmptyTree)(implicit ctx: Context) = { + if (ctx.mode.isExpr) assert(tree.tpe <:< pt, err.typeMismatchStr(tree.tpe, pt)) + tree + } } } |