Skip to content

Commit 715b037

Browse files
committed
Rename TopLevelStatement to Tree
1 parent 8568a99 commit 715b037

File tree

7 files changed

+25
-31
lines changed

7 files changed

+25
-31
lines changed

compiler/src/dotty/tools/dotc/tasty/TastyImpl.scala

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,9 @@ object TastyImpl extends scala.tasty.Tasty {
5151

5252
// ===== Trees ====================================================
5353

54+
type Tree = tpd.Tree
5455

55-
// ----- Top Level Statements -----------------------------------------------
56-
57-
type TopLevelStatement = tpd.Tree
58-
59-
implicit def TopLevelStatementDeco(t: TopLevelStatement): AbstractTopLevelStatement = new AbstractTopLevelStatement {
56+
implicit def TreeDeco(t: Tree): AbstractTree = new AbstractTree {
6057
def pos(implicit ctx: Context): Position = new TastyPosition(t.pos)
6158
}
6259

@@ -65,7 +62,7 @@ object TastyImpl extends scala.tasty.Tasty {
6562
def packageClauseClassTag: ClassTag[PackageClause] = implicitly[ClassTag[PackageClause]]
6663

6764
val PackageClause: PackageClauseExtractor = new PackageClauseExtractor {
68-
def unapply(x: PackageClause)(implicit ctx: Context): Option[(Term, List[TopLevelStatement])] = x match {
65+
def unapply(x: PackageClause)(implicit ctx: Context): Option[(Term, List[Tree])] = x match {
6966
case x: tpd.PackageDef @unchecked => Some((x.pid, x.stats))
7067
case _ => None
7168
}

library/src/scala/tasty/Tasty.scala

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,18 @@ abstract class Tasty {
4141

4242
// ===== Trees ====================================================
4343

44-
// ----- Top Level Statements -----------------------------------------------
44+
type Tree
4545

46-
type TopLevelStatement
46+
trait AbstractTree extends Positioned
47+
implicit def TreeDeco(t: Tree): AbstractTree
4748

48-
trait AbstractTopLevelStatement extends Positioned
49-
implicit def TopLevelStatementDeco(t: TopLevelStatement): AbstractTopLevelStatement
50-
51-
type PackageClause <: TopLevelStatement
49+
type PackageClause <: Tree
5250

5351
implicit def packageClauseClassTag: ClassTag[PackageClause]
5452

5553
val PackageClause: PackageClauseExtractor
5654
abstract class PackageClauseExtractor {
57-
def unapply(x: PackageClause)(implicit ctx: Context): Option[(Term, List[TopLevelStatement])]
55+
def unapply(x: PackageClause)(implicit ctx: Context): Option[(Term, List[Tree])]
5856
}
5957

6058
trait AbstractPackageClause {
@@ -64,7 +62,7 @@ abstract class Tasty {
6462

6563
// ----- Statements -----------------------------------------------
6664

67-
type Statement <: TopLevelStatement
65+
type Statement <: Tree
6866

6967
type Import <: Statement
7068

library/src/scala/tasty/util/TastyPrinter.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import scala.tasty.Tasty
44

55
object TastyPrinter {
66

7-
def stringOfTree(tasty: Tasty)(tree: tasty.TopLevelStatement)(implicit ctx: tasty.Context): String = {
7+
def stringOfTree(tasty: Tasty)(tree: tasty.Tree)(implicit ctx: tasty.Context): String = {
88
implicit val buff: StringBuilder = new StringBuilder
99
visitTree(tasty)(tree)
1010
buff.toString()
@@ -34,7 +34,7 @@ object TastyPrinter {
3434
buff.toString()
3535
}
3636

37-
private def visitTree(tasty: Tasty)(x: tasty.TopLevelStatement)(implicit buff: StringBuilder, ctx: tasty.Context): Unit = {
37+
private def visitTree(tasty: Tasty)(x: tasty.Tree)(implicit buff: StringBuilder, ctx: tasty.Context): Unit = {
3838
import tasty._
3939
x match {
4040
case Ident(name) =>
@@ -274,12 +274,12 @@ object TastyPrinter {
274274
}
275275
}
276276

277-
private def visitTrees(tasty: Tasty)(list: List[tasty.TopLevelStatement])(implicit buff: StringBuilder, ctx: tasty.Context): Unit = {
277+
private def visitTrees(tasty: Tasty)(list: List[tasty.Tree])(implicit buff: StringBuilder, ctx: tasty.Context): Unit = {
278278
list match {
279279
case x0 :: xs =>
280280
buff append "List("
281281
visitTree(tasty)(x0)
282-
def visitNext(xs: List[tasty.TopLevelStatement]): Unit = xs match {
282+
def visitNext(xs: List[tasty.Tree]): Unit = xs match {
283283
case y :: ys =>
284284
buff append ", "
285285
visitTree(tasty)(y)

library/src/scala/tasty/util/TreeAccumulator.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@ abstract class TreeAccumulator[X, T <: Tasty with Singleton](val tasty: T) {
66
import tasty._
77

88
// Ties the knot of the traversal: call `foldOver(x, tree))` to dive in the `tree` node.
9-
def foldTree(x: X, tree: TopLevelStatement)(implicit ctx: Context): X
9+
def foldTree(x: X, tree: Tree)(implicit ctx: Context): X
1010
def foldTypeTree(x: X, tree: MaybeTypeTree)(implicit ctx: Context): X
1111
def foldCaseDef(x: X, tree: CaseDef)(implicit ctx: Context): X
1212
def foldPattern(x: X, tree: Pattern)(implicit ctx: Context): X
1313
def foldParent(x: X, tree: Parent)(implicit ctx: Context): X
1414

15-
def foldTree(x: X, trees: Traversable[TopLevelStatement])(implicit ctx: Context): X = (x /: trees)(foldTree)
15+
def foldTree(x: X, trees: Traversable[Tree])(implicit ctx: Context): X = (x /: trees)(foldTree)
1616
def foldTypeTree(x: X, trees: Traversable[MaybeTypeTree])(implicit ctx: Context): X = (x /: trees)(foldTypeTree)
1717
def foldCaseDef(x: X, trees: Traversable[CaseDef])(implicit ctx: Context): X = (x /: trees)(foldCaseDef)
1818
def foldPattern(x: X, trees: Traversable[Pattern])(implicit ctx: Context): X = (x /: trees)(foldPattern)
1919
def foldParent(x: X, trees: Traversable[Parent])(implicit ctx: Context): X = (x /: trees)(foldParent)
2020

21-
def foldOverTree(x: X, tree: TopLevelStatement)(implicit ctx: Context): X = {
21+
def foldOverTree(x: X, tree: Tree)(implicit ctx: Context): X = {
2222
def localCtx(definition: Definition): Context = definition.localContext
2323
tree match {
2424
case Ident(_) =>

library/src/scala/tasty/util/TreeTraverser.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@ import scala.tasty.Tasty
55
abstract class TreeTraverser[T <: Tasty with Singleton](tasty0: T) extends TreeAccumulator[Unit, T](tasty0) {
66
import tasty._
77

8-
def traverseTree(tree: TopLevelStatement)(implicit ctx: Context): Unit = traverseTreeChildren(tree)
8+
def traverseTree(tree: Tree)(implicit ctx: Context): Unit = traverseTreeChildren(tree)
99
def traverseTypeTree(tree: MaybeTypeTree)(implicit ctx: Context): Unit = traverseTypeTreeChildren(tree)
1010
def traverseCaseDef(tree: CaseDef)(implicit ctx: Context): Unit = traverseCaseDef(tree)
1111
def traversePattern(tree: Pattern)(implicit ctx: Context): Unit = traversePatternChildren(tree)
1212
def traverseParent(tree: Parent)(implicit ctx: Context): Unit = traverseParentChildren(tree)
1313

14-
def foldTree(x: Unit, tree: TopLevelStatement)(implicit ctx: Context): Unit = traverseTree(tree)
14+
def foldTree(x: Unit, tree: Tree)(implicit ctx: Context): Unit = traverseTree(tree)
1515
def foldTypeTree(x: Unit, tree: MaybeTypeTree)(implicit ctx: Context) = traverseTypeTree(tree)
1616
def foldCaseDef(x: Unit, tree: CaseDef)(implicit ctx: Context) = traverseCaseDef(tree)
1717
def foldPattern(x: Unit, tree: Pattern)(implicit ctx: Context) = traversePattern(tree)
1818
def foldParent(x: Unit, tree: Parent)(implicit ctx: Context) = traverseParent(tree)
1919

20-
protected def traverseTreeChildren(tree: TopLevelStatement)(implicit ctx: Context): Unit = foldOverTree((), tree)
20+
protected def traverseTreeChildren(tree: Tree)(implicit ctx: Context): Unit = foldOverTree((), tree)
2121
protected def traverseTypeTreeChildren(tree: MaybeTypeTree)(implicit ctx: Context): Unit = foldOverTypeTree((), tree)
2222
protected def traverseCaseDefChildren(tree: CaseDef)(implicit ctx: Context): Unit = foldOverCaseDef((), tree)
2323
protected def traversePatternChildren(tree: Pattern)(implicit ctx: Context): Unit = foldOverPattern((), tree)

tests/pos/tasty/definitions.scala

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@ object definitions {
44

55
// ====== Trees ======================================
66

7-
trait Tree extends Positioned
7+
sealed trait Tree // Top level statement
88

99
// ------ Statements ---------------------------------
1010

11-
sealed trait TopLevelStatement extends Tree
12-
sealed trait Statement extends TopLevelStatement
11+
sealed trait Statement extends Tree
1312

14-
case class PackageClause(pkg: Term, body: List[TopLevelStatement]) extends TopLevelStatement
13+
case class PackageClause(pkg: Term, body: List[Tree]) extends Tree
1514

1615
case class Import(expr: Term, selector: List[ImportSelector]) extends Statement
1716

@@ -82,7 +81,7 @@ object definitions {
8281
}
8382

8483
/** Trees denoting types */
85-
enum TypeTree extends Tree {
84+
enum TypeTree extends Positioned {
8685
def tpe: Type = ???
8786
case Synthetic()
8887
case Ident(name: String, override val tpe: Type)
@@ -102,7 +101,7 @@ object definitions {
102101
}
103102

104103
/** Trees denoting patterns */
105-
enum Pattern extends Tree {
104+
enum Pattern extends Positioned {
106105
def tpe: Type = ???
107106
case Value(v: Term)
108107
case Bind(name: String, pat: Pattern)

tests/run/tasty-extractors-owners/quoted_1.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ object Macros {
1818

1919
val printer = new TreeTraverser(u.tasty) {
2020
import tasty._
21-
override def traverseTree(tree: TopLevelStatement)(implicit ctx: Context): Unit = {
21+
override def traverseTree(tree: Tree)(implicit ctx: Context): Unit = {
2222
tree match {
2323
case tree @ DefDef(name, _, _, _, _) =>
2424
buff.append(name)

0 commit comments

Comments
 (0)