aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/ast
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-08-29 14:02:51 +0200
committerMartin Odersky <odersky@gmail.com>2013-08-29 14:05:17 +0200
commite47b840e7b3d4f77a32fe823dd2eaf703aff36b3 (patch)
tree0ea557deb28befcbfe48ba71e7e99dbe76184472 /src/dotty/tools/dotc/ast
parent3f1cad077c84c0a4bdd8fce909284734e19f3856 (diff)
downloaddotty-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.scala16
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