diff options
author | Martin Odersky <odersky@gmail.com> | 2013-08-29 14:02:51 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-08-29 14:05:17 +0200 |
commit | e47b840e7b3d4f77a32fe823dd2eaf703aff36b3 (patch) | |
tree | 0ea557deb28befcbfe48ba71e7e99dbe76184472 /src/dotty/tools/dotc/ast | |
parent | 3f1cad077c84c0a4bdd8fce909284734e19f3856 (diff) | |
download | dotty-e47b840e7b3d4f77a32fe823dd2eaf703aff36b3.tar.gz dotty-e47b840e7b3d4f77a32fe823dd2eaf703aff36b3.tar.bz2 dotty-e47b840e7b3d4f77a32fe823dd2eaf703aff36b3.zip |
Reverting explicit arguments for zipoped/unzip
… after figuring out the root cause: conforms needs to be renamed because otherwise it shadows Predef.conforms.
Also fixing two bugs in Desugar.
Diffstat (limited to 'src/dotty/tools/dotc/ast')
-rw-r--r-- | src/dotty/tools/dotc/ast/Desugar.scala | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/ast/Desugar.scala b/src/dotty/tools/dotc/ast/Desugar.scala index f998ddec2..f58df1739 100644 --- a/src/dotty/tools/dotc/ast/Desugar.scala +++ b/src/dotty/tools/dotc/ast/Desugar.scala @@ -97,14 +97,22 @@ object desugar { def typeDef(tdef: TypeDef)(implicit ctx: Context): Tree = { val TypeDef(mods, name, rhs) = tdef + val rhs1 = rhs match { + case TypeBoundsTree(lo, hi) => + val lo1 = if (lo.isEmpty) untpd.TypeTree(defn.NothingType) else lo + val hi1 = if (hi.isEmpty) untpd.TypeTree(defn.AnyType) else hi + cpy.TypeBoundsTree(rhs, lo1, hi1) + case _ => + rhs + } if (mods is PrivateLocalParamAccessor) { val tparam = cpy.TypeDef(tdef, - tdef.mods &~ PrivateLocal | ExpandedName, tdef.name.expandedName(ctx.owner), tdef.rhs, tdef.tparams) + mods &~ PrivateLocal | ExpandedName, name.expandedName(ctx.owner), rhs1, tdef.tparams) val alias = cpy.TypeDef(tdef, - Modifiers(PrivateLocal | Synthetic), tdef.name, refOfDef(tparam)) + Modifiers(PrivateLocal | Synthetic), name, refOfDef(tparam)) Thicket(tparam, alias) } - else tdef + else cpy.TypeDef(tdef, mods, name, rhs1) } private val synthetic = Modifiers(Synthetic) @@ -201,7 +209,7 @@ object desugar { if (mods is Case) ctx.error("implicit classes may not case classes", cdef.pos) DefDef(Modifiers(Synthetic | Implicit), name.toTermName, - tparams, vparamss, EmptyTree, creatorExpr) :: Nil + tparams, vparamss, TypeTree(), creatorExpr) :: Nil } else Nil |