Skip to content

Commit 774270c

Browse files
committed
Some polishings
Add outline for where positions go. Add some missing extends clauses. Add some mods fields in extractors.
1 parent 96e7a36 commit 774270c

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

tests/pos/TastyADT.scala

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,13 @@ object tasty {
1919

2020
case class SignedName(name: Name, resultSig: Name, paramSigs: List[Name]) extends PossiblySignedName
2121

22-
trait TopLevelStatement
22+
case class Position(firstOffset: Int, lastOffset: Int)
23+
24+
trait Positioned {
25+
def pos: Position = ???
26+
}
27+
28+
trait TopLevelStatement extends Positioned
2329

2430
trait Statement extends TopLevelStatement
2531

@@ -59,7 +65,7 @@ object tasty {
5965
object DefDef {
6066
def apply(name: Name, typeParams: List[TypeDef], paramss: List[List[ValDef]], returnTpt: Term, rhs: Term | Empty, mods: List[Modifier] = Nil) =
6167
new DefDef(name, _ => typeParams, _ => paramss, _ => returnTpt, _ => rhs, mods)
62-
def unapply(ddef: DefDef) = Some((ddef.name, ddef.typeParams, ddef.paramss, ddef.returnTpt, ddef.rhs))
68+
def unapply(ddef: DefDef) = Some((ddef.name, ddef.typeParams, ddef.paramss, ddef.returnTpt, ddef.rhs, ddef.mods))
6369
}
6470

6571
class TypeDef(
@@ -71,7 +77,7 @@ object tasty {
7177
}
7278
object TypeDef {
7379
def apply(name: Name, rhs: Term, mods: List[Modifier] = Nil) = new TypeDef(name, _ => rhs, mods)
74-
def unapply(tdef: TypeDef) = Some((tdef.name, tdef.rhs))
80+
def unapply(tdef: TypeDef) = Some((tdef.name, tdef.rhs, tdef.mods))
7581
}
7682

7783
class ClassDef(
@@ -83,7 +89,7 @@ object tasty {
8389
}
8490
object ClassDef {
8591
def apply(name: Name, rhs: Template, mods: List[Modifier] = Nil) = new ClassDef(name, _ => rhs, mods)
86-
def unapply(tdef: ClassDef) = Some((tdef.name, tdef.rhs))
92+
def unapply(tdef: ClassDef) = Some((tdef.name, tdef.rhs, tdef.mods))
8793
}
8894

8995
case class Template(
@@ -93,17 +99,17 @@ object tasty {
9399
self: ValDef | Empty,
94100
body: List[Statement])
95101

96-
case class Import(expr: Term, selector: List[ImportSelector])
102+
case class Import(expr: Term, selector: List[ImportSelector]) extends Statement
97103

98104
enum ImportSelector {
99105
case Simple(id: Id)
100106
case Rename(id1: Id, id2: Id)
101107
case Omit(id1: Id)
102108
}
103109

104-
case class Id(name: Name) // untyped ident
110+
case class Id(name: Name) extends Positioned // untyped ident
105111

106-
enum Term {
112+
enum Term extends Statement {
107113
def tpe: Type = ???
108114
case Ident(name: Name, override val tpe: Type)
109115
case Select(prefix: Term, name: PossiblySignedName)
@@ -128,7 +134,7 @@ object tasty {
128134
case Tpt(underlying: TypeTerm | Empty)
129135
}
130136

131-
enum TypeTerm {
137+
enum TypeTerm extends Positioned {
132138
def tpe: Type = ???
133139
case Ident(name: Name, override val tpe: Type)
134140
case Select(prefix: Term, name: Name)
@@ -142,7 +148,7 @@ object tasty {
142148
case ByName(tpt: TypeTerm)
143149
}
144150

145-
enum Pattern {
151+
enum Pattern extends Positioned {
146152
def tpe: Type = ???
147153
case Value(v: Term)
148154
case Bind(name: Name, pat: Pattern)
@@ -152,7 +158,7 @@ object tasty {
152158
case Wildcard()
153159
}
154160

155-
case class CaseDef(pat: Pattern, guard: Term | Empty, rhs: Term)
161+
case class CaseDef(pat: Pattern, guard: Term | Empty, rhs: Term) extends Positioned
156162

157163
sealed trait Type
158164

@@ -230,7 +236,7 @@ object tasty {
230236
case class TypeBounds(loBound: Type, hiBound: Type)
231237
}
232238

233-
enum Modifier {
239+
enum Modifier extends Positioned {
234240
case Private, Protected, Abstract, Final, Sealed, Case, Implicit, Erased, Lazy, Override, Inline,
235241
Macro, // inline method containing toplevel splices
236242
Static, // mapped to static Java member

0 commit comments

Comments
 (0)