Skip to content

Commit 5073cce

Browse files
committed
wip
1 parent 279fc9f commit 5073cce

File tree

2 files changed

+8
-13
lines changed

2 files changed

+8
-13
lines changed

compiler/src/dotty/tools/dotc/tastyreflect/TreeOpsImpl.scala

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@ trait TreeOpsImpl extends scala.tasty.reflect.TreeOps with RootPositionImpl with
4949
def copy(original: DefDef)(name: String, typeParams: List[TypeDef], paramss: List[List[ValDef]], tpt: TypeTree, rhs: Option[Term])(implicit ctx: Context): DefDef =
5050
tpd.cpy.DefDef(original)(name.toTermName, typeParams, paramss, tpt, rhs.getOrElse(tpd.EmptyTree))
5151

52-
def unapply(tree: Tree)(implicit ctx: Context): Option[(String, List[TypeDef], List[List[ValDef]], TypeTree, Option[Term])] = tree match {
53-
case x: tpd.DefDef =>
54-
Some((x.name.toString, x.tparams, x.vparamss, x.tpt, optional(x.rhs)))
55-
case _ => None
56-
}
5752
}
5853

5954

@@ -80,10 +75,6 @@ trait TreeOpsImpl extends scala.tasty.reflect.TreeOps with RootPositionImpl with
8075
def apply(symbol: TypeSymbol)(implicit ctx: Context): TypeDef = withDefaultPos(ctx => tpd.TypeDef(symbol)(ctx))
8176
def copy(original: TypeDef)(name: String, rhs: TypeOrBoundsTree)(implicit ctx: Context): TypeDef =
8277
tpd.cpy.TypeDef(original)(name.toTypeName, rhs)
83-
def unapply(tree: Tree)(implicit ctx: Context): Option[(String, TypeOrBoundsTree /* TypeTree | TypeBoundsTree */)] = tree match {
84-
case x: tpd.TypeDef if !x.symbol.isClass => Some((x.name.toString, x.rhs))
85-
case _ => None
86-
}
8778
}
8879

8980
// ----- Terms ----------------------------------------------------

library/src/scala/tasty/reflect/TreeOps.scala

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,14 @@ trait TreeOps extends Core {
102102
abstract class DefDefModule {
103103
def apply(symbol: DefSymbol, rhsFn: List[Type] => List[List[Term]] => Option[Term])(implicit ctx: Context): DefDef
104104
def copy(original: DefDef)(name: String, typeParams: List[TypeDef], paramss: List[List[ValDef]], tpt: TypeTree, rhs: Option[Term])(implicit ctx: Context): DefDef
105-
def unapply(tree: Tree)(implicit ctx: Context): Option[(String, List[TypeDef], List[List[ValDef]], TypeTree, Option[Term])]
105+
def unapply(tree: Tree)(implicit ctx: Context): Option[(String, List[TypeDef], List[List[ValDef]], TypeTree, Option[Term])] =
106+
kernel.isDefDef(tree).map(x => (x.name, x.typeParams, x.paramss, x.returnTpt, x.rhs))
106107
}
107108

108109
implicit class DefDefAPI(self: DefDef) {
109110
def typeParams(implicit ctx: Context): List[TypeDef] = kernel.DefDef_typeParams(self)
110111
def paramss(implicit ctx: Context): List[List[ValDef]] = kernel.DefDef_paramss(self)
111-
def returnTpt(implicit ctx: Context): TypeTree = kernel.DefDef_returnTpt(self)
112+
def returnTpt(implicit ctx: Context): TypeTree = kernel.DefDef_returnTpt(self) // TODO rename to tpt
112113
def rhs(implicit ctx: Context): Option[Term] = kernel.DefDef_rhs(self)
113114
def symbol(implicit ctx: Context): DefSymbol = kernel.DefDef_symbol(self)
114115
}
@@ -142,7 +143,8 @@ trait TreeOps extends Core {
142143
abstract class TypeDefModule {
143144
def apply(symbol: TypeSymbol)(implicit ctx: Context): TypeDef
144145
def copy(original: TypeDef)(name: String, rhs: TypeOrBoundsTree)(implicit ctx: Context): TypeDef
145-
def unapply(tree: Tree)(implicit ctx: Context): Option[(String, TypeOrBoundsTree /* TypeTree | TypeBoundsTree */)]
146+
def unapply(tree: Tree)(implicit ctx: Context): Option[(String, TypeOrBoundsTree /* TypeTree | TypeBoundsTree */)] =
147+
kernel.isTypeDef(tree).map(x => (x.name, x.rhs))
146148
}
147149

148150
implicit class TypeDefAPI(self: TypeDef) {
@@ -153,7 +155,8 @@ trait TreeOps extends Core {
153155
// PackageDef
154156

155157
object IsPackageDef {
156-
def unapply(tree: Tree)(implicit ctx: Context): Option[PackageDef] = kernel.isPackageDef(tree)
158+
def unapply(tree: Tree)(implicit ctx: Context): Option[PackageDef] =
159+
kernel.isPackageDef(tree)
157160
}
158161

159162
implicit class PackageDefAPI(self: PackageDef) {
@@ -180,6 +183,7 @@ trait TreeOps extends Core {
180183
/** Matches any term */
181184
def unapply(tree: Tree)(implicit ctx: Context): Option[Term] =
182185
kernel.isTerm(tree)
186+
183187
/** Matches any term */
184188
def unapply(parent: TermOrTypeTree)(implicit ctx: Context, dummy: DummyImplicit): Option[Term] =
185189
kernel.isTermNotTypeTree(parent)

0 commit comments

Comments
 (0)