diff options
author | Martin Odersky <odersky@gmail.com> | 2015-06-19 23:08:11 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-06-19 23:08:11 +0200 |
commit | 4a3be27db24c8a28da88d9a79d547849a7b28c2f (patch) | |
tree | b17bf7329f2ac95f96328d3a14bcb2d5d329f038 | |
parent | bb75d4039ee127dfee2630609924f7f3c9132ff6 (diff) | |
download | dotty-4a3be27db24c8a28da88d9a79d547849a7b28c2f.tar.gz dotty-4a3be27db24c8a28da88d9a79d547849a7b28c2f.tar.bz2 dotty-4a3be27db24c8a28da88d9a79d547849a7b28c2f.zip |
The expected type of a constructor body is Unit
Thsi was not true for erased typechecking.
-rw-r--r-- | src/dotty/tools/dotc/transform/Erasure.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/transform/Erasure.scala b/src/dotty/tools/dotc/transform/Erasure.scala index 1664db456..962297517 100644 --- a/src/dotty/tools/dotc/transform/Erasure.scala +++ b/src/dotty/tools/dotc/transform/Erasure.scala @@ -479,7 +479,9 @@ object Erasure extends TypeTestsCasts{ val MethodType(pnames, ptypes) = sym.info.resultType effectiveSym = sym.copy(info = MethodType(pnames, ptypes, defn.ObjectType)) } - val restpe = effectiveSym.info.resultType + val restpe = + if (effectiveSym.isConstructor) defn.UnitType + else effectiveSym.info.resultType val ddef1 = untpd.cpy.DefDef(ddef)( tparams = Nil, vparamss = (outer.paramDefs(effectiveSym) ::: ddef.vparamss.flatten) :: Nil, |