Skip to content

Commit 32d7787

Browse files
committed
Refactor NamedTypeRef and NamedTermRef extractors
Align extractors with TypeRef and TermRef
1 parent 9d8db4d commit 32d7787

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

library/src/scala/tasty/reflect/Printers.scala

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -312,10 +312,10 @@ trait Printers
312312
this += "Type.TermRef(" += qual+= ", \"" += name += "\")"
313313
case Type.TypeRef(qual, name) =>
314314
this += "Type.TypeRef(" += qual += ", \"" += name += "\")"
315-
case Type.NamedTermRef(name, qual) =>
316-
this += "Type.NamedTermRef(\"" += name += "\", " += qual += ")"
317-
case Type.NamedTypeRef(name, qual) =>
318-
this += "Type.NamedTypeRef(\"" += name += "\", " += qual += ")"
315+
case Type.NamedTermRef(qual, name) =>
316+
this += "Type.NamedTermRef(" += qual += ", \"" += name += "\")"
317+
case Type.NamedTypeRef(qual, name) =>
318+
this += "Type.NamedTypeRef(" += qual += ", \"" += name += "\")"
319319
case Type.Refinement(parent, name, info) =>
320320
this += "Type.Refinement(" += parent += ", " += name += ", " += info += ")"
321321
case Type.AppliedType(tycon, args) =>
@@ -1555,7 +1555,7 @@ trait Printers
15551555
this
15561556
}
15571557

1558-
case Type.NamedTermRef(name, prefix) =>
1558+
case Type.NamedTermRef(prefix, name) =>
15591559
prefix match {
15601560
case Type.ThisType(Types.EmptyPackage()) =>
15611561
this += highlightTypeDef(name)
@@ -1568,7 +1568,7 @@ trait Printers
15681568
this += highlightTypeDef(name)
15691569
}
15701570

1571-
case Type.NamedTypeRef(name, prefix) =>
1571+
case Type.NamedTypeRef(prefix, name) =>
15721572
prefix match {
15731573
case NoPrefix() | Type.ThisType(Types.EmptyPackage()) =>
15741574
case IsType(prefix) => printType(prefix) += "."
@@ -1583,7 +1583,7 @@ trait Printers
15831583
tp match {
15841584
case Type.IsTypeLambda(tp) =>
15851585
printType(tpe.dealias)
1586-
case Type.NamedTypeRef("<repeated>", Types.ScalaPackage()) =>
1586+
case Type.NamedTypeRef(Types.ScalaPackage(), "<repeated>") =>
15871587
this += "_*"
15881588
case _ =>
15891589
printType(tp)
@@ -1620,7 +1620,7 @@ trait Printers
16201620
case Type.IsTypeRef(tp) if !tp.typeSymbol.flags.is(Flags.Object) =>
16211621
printFullClassName(tp)
16221622
this += highlightTypeDef(".this")
1623-
case Type.NamedTypeRef(name, prefix) if name.endsWith("$") =>
1623+
case Type.NamedTypeRef(prefix, name) if name.endsWith("$") =>
16241624
prefix match {
16251625
case NoPrefix() | Type.ThisType(Types.EmptyPackage() | Types.RootPackage()) =>
16261626
case _ =>
@@ -1707,9 +1707,9 @@ trait Printers
17071707
val annots = definition.symbol.annots.filter {
17081708
case Annotation(annot, _) =>
17091709
annot.tpe match {
1710-
case Type.NamedTypeRef(_, Type.IsTermRef(prefix)) if prefix.termSymbol.fullName == "scala.annotation.internal" => false
1711-
case Type.NamedTypeRef(_, Type.IsTypeRef(prefix)) if prefix.typeSymbol.fullName == "scala.annotation.internal" => false
1712-
case Type.NamedTypeRef("forceInline", Types.ScalaPackage()) => false
1710+
case Type.NamedTypeRef(Type.IsTermRef(prefix), _) if prefix.termSymbol.fullName == "scala.annotation.internal" => false
1711+
case Type.NamedTypeRef(Type.IsTypeRef(prefix), _) if prefix.typeSymbol.fullName == "scala.annotation.internal" => false
1712+
case Type.NamedTypeRef(Types.ScalaPackage(), "forceInline") => false
17131713
case _ => true
17141714
}
17151715
case x => throw new MatchError(x.showExtractors)
@@ -1893,30 +1893,30 @@ trait Printers
18931893

18941894
object JavaLangObject {
18951895
def unapply(tpe: Type) given (ctx: Context): Boolean = tpe match {
1896-
case Type.NamedTypeRef("Object", Type.IsTermRef(prefix)) => prefix.typeSymbol.fullName == "java.lang"
1896+
case Type.NamedTypeRef(Type.IsTermRef(prefix), "Object") => prefix.typeSymbol.fullName == "java.lang"
18971897
case _ => false
18981898
}
18991899
}
19001900

19011901
object Sequence {
19021902
def unapply(tpe: Type) given (ctx: Context): Option[Type] = tpe match {
1903-
case Type.AppliedType(Type.NamedTypeRef("Seq", Type.IsTermRef(prefix)), IsType(tp) :: Nil) if prefix.termSymbol.fullName == "scala.collection" => Some(tp)
1904-
case Type.AppliedType(Type.NamedTypeRef("Seq", Type.IsTypeRef(prefix)), IsType(tp) :: Nil) if prefix.typeSymbol.fullName == "scala.collection" => Some(tp)
1903+
case Type.AppliedType(Type.NamedTypeRef(Type.IsTermRef(prefix), "Seq"), IsType(tp) :: Nil) if prefix.termSymbol.fullName == "scala.collection" => Some(tp)
1904+
case Type.AppliedType(Type.NamedTypeRef(Type.IsTypeRef(prefix), "Seq"), IsType(tp) :: Nil) if prefix.typeSymbol.fullName == "scala.collection" => Some(tp)
19051905
case _ => None
19061906
}
19071907
}
19081908

19091909
object RepeatedAnnotation {
19101910
def unapply(tpe: Type) given (ctx: Context): Boolean = tpe match {
1911-
case Type.NamedTypeRef("Repeated", Type.IsTermRef(prefix)) => prefix.termSymbol.fullName == "scala.annotation.internal"
1912-
case Type.NamedTypeRef("Repeated", Type.IsTypeRef(prefix)) => prefix.typeSymbol.fullName == "scala.annotation.internal"
1911+
case Type.NamedTypeRef(Type.IsTermRef(prefix), "Repeated") => prefix.termSymbol.fullName == "scala.annotation.internal"
1912+
case Type.NamedTypeRef(Type.IsTypeRef(prefix), "Repeated") => prefix.typeSymbol.fullName == "scala.annotation.internal"
19131913
case _ => false
19141914
}
19151915
}
19161916

19171917
object Repeated {
19181918
def unapply(tpe: Type) given (ctx: Context): Option[Type] = tpe match {
1919-
case Type.AppliedType(Type.NamedTypeRef("<repeated>", ScalaPackage()), IsType(tp) :: Nil) => Some(tp)
1919+
case Type.AppliedType(Type.NamedTypeRef(ScalaPackage(), "<repeated>"), IsType(tp) :: Nil) => Some(tp)
19201920
case _ => None
19211921
}
19221922
}

library/src/scala/tasty/reflect/TypeOrBoundsOps.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ trait TypeOrBoundsOps extends Core {
110110
// TODO should qual be a Type?
111111
def apply(qual: TypeOrBounds, name: String) given (ctx: Context): NamedTermRef =
112112
internal.NamedTermRef_apply(qual, name)
113-
def unapply(typeOrBounds: TypeOrBounds) given (ctx: Context): Option[(String, TypeOrBounds /* Type | NoPrefix */)] =
114-
internal.matchNamedTermRef(typeOrBounds).map(x => (x.name, x.qualifier))
113+
def unapply(typeOrBounds: TypeOrBounds) given (ctx: Context): Option[(TypeOrBounds /* Type | NoPrefix */, String)] =
114+
internal.matchNamedTermRef(typeOrBounds).map(x => (x.qualifier, x.name))
115115
}
116116

117117
object IsNameTypeRef {
@@ -121,8 +121,8 @@ trait TypeOrBoundsOps extends Core {
121121
}
122122

123123
object NamedTypeRef {
124-
def unapply(typeOrBounds: TypeOrBounds) given (ctx: Context): Option[(String, TypeOrBounds /* Type | NoPrefix */)] =
125-
internal.matchNamedTypeRef(typeOrBounds).map(x => (x.name, x.qualifier))
124+
def unapply(typeOrBounds: TypeOrBounds) given (ctx: Context): Option[(TypeOrBounds /* Type | NoPrefix */, String)] =
125+
internal.matchNamedTypeRef(typeOrBounds).map(x => (x.qualifier, x.name))
126126
}
127127

128128
object IsSuperType {

tests/run-macros/i5941/macro_1.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ object Iso {
103103

104104
val companion = tpS match {
105105
case Type.TypeRef(prefix, name) => Type.NamedTermRef(prefix, name)
106-
case Type.NamedTypeRef(name, prefix) => Type.NamedTermRef(prefix, name)
106+
case Type.NamedTypeRef(prefix, name) => Type.NamedTermRef(prefix, name)
107107
}
108108

109109
if (cls.caseFields.size != 1) {
@@ -146,7 +146,7 @@ object Iso {
146146

147147
val companion = tpS match {
148148
case Type.TypeRef(prefix, name) => Type.NamedTermRef(prefix, name)
149-
case Type.NamedTypeRef(name, prefix) => Type.NamedTermRef(prefix, name)
149+
case Type.NamedTypeRef(prefix, name) => Type.NamedTermRef(prefix, name)
150150
}
151151

152152
val obj = Select.overloaded(Ident(companion), "apply", Nil, Nil).seal.cast[S]

0 commit comments

Comments
 (0)