Skip to content

Commit 873e44e

Browse files
committed
Remove subtypes of Symbol
1 parent 6b7dc95 commit 873e44e

File tree

9 files changed

+80
-177
lines changed

9 files changed

+80
-177
lines changed

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

Lines changed: 22 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
156156
if (self.symbol.is(core.Flags.JavaDefined)) Nil // FIXME should also support java packages
157157
else self.symbol.info.decls.iterator.map(definitionFromSym).toList
158158

159-
def PackageDef_symbol(self: PackageDef)(given Context): PackageDefSymbol = self.symbol
159+
def PackageDef_symbol(self: PackageDef)(given Context): Symbol = self.symbol
160160

161161
type ClassDef = tpd.TypeDef
162162

@@ -170,7 +170,7 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
170170
def ClassDef_derived(self: ClassDef)(given Context): List[TypeTree] = ClassDef_rhs(self).derived.asInstanceOf[List[TypeTree]]
171171
def ClassDef_self(self: ClassDef)(given Context): Option[ValDef] = optional(ClassDef_rhs(self).self)
172172
def ClassDef_body(self: ClassDef)(given Context): List[Statement] = ClassDef_rhs(self).body
173-
def ClassDef_symbol(self: ClassDef)(given Context): ClassDefSymbol = self.symbol.asClass
173+
def ClassDef_symbol(self: ClassDef)(given Context): Symbol = self.symbol.asClass
174174
private def ClassDef_rhs(self: ClassDef) = self.rhs.asInstanceOf[tpd.Template]
175175

176176
def ClassDef_copy(original: ClassDef)(name: String, constr: DefDef, parents: List[Term | TypeTree], derived: List[TypeTree], selfOpt: Option[ValDef], body: List[Statement])(given Context): ClassDef = {
@@ -186,9 +186,9 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
186186
}
187187

188188
def TypeDef_rhs(self: TypeDef)(given Context): TypeTree | TypeBoundsTree = self.rhs
189-
def TypeDef_symbol(self: TypeDef)(given Context): TypeDefSymbol = self.symbol.asType
189+
def TypeDef_symbol(self: TypeDef)(given Context): Symbol = self.symbol.asType
190190

191-
def TypeDef_apply(symbol: TypeDefSymbol)(given Context): TypeDef = withDefaultPos(tpd.TypeDef(symbol))
191+
def TypeDef_apply(symbol: Symbol)(given Context): TypeDef = withDefaultPos(tpd.TypeDef(symbol.asType))
192192
def TypeDef_copy(original: TypeDef)(name: String, rhs: TypeTree | TypeBoundsTree)(given Context): TypeDef =
193193
tpd.cpy.TypeDef(original)(name.toTypeName, rhs)
194194

@@ -203,10 +203,10 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
203203
def DefDef_paramss(self: DefDef)(given Context): List[List[ValDef]] = self.vparamss
204204
def DefDef_returnTpt(self: DefDef)(given Context): TypeTree = self.tpt
205205
def DefDef_rhs(self: DefDef)(given Context): Option[Tree] = optional(self.rhs)
206-
def DefDef_symbol(self: DefDef)(given Context): DefDefSymbol = self.symbol.asTerm
206+
def DefDef_symbol(self: DefDef)(given Context): Symbol = self.symbol.asTerm
207207

208-
def DefDef_apply(symbol: DefDefSymbol, rhsFn: List[Type] => List[List[Term]] => Option[Term])(given Context): DefDef =
209-
withDefaultPos(tpd.polyDefDef(symbol, tparams => vparamss => rhsFn(tparams)(vparamss).getOrElse(tpd.EmptyTree)))
208+
def DefDef_apply(symbol: Symbol, rhsFn: List[Type] => List[List[Term]] => Option[Term])(given Context): DefDef =
209+
withDefaultPos(tpd.polyDefDef(symbol.asTerm, tparams => vparamss => rhsFn(tparams)(vparamss).getOrElse(tpd.EmptyTree)))
210210

211211
def DefDef_copy(original: DefDef)(name: String, typeParams: List[TypeDef], paramss: List[List[ValDef]], tpt: TypeTree, rhs: Option[Term])(given Context): DefDef =
212212
tpd.cpy.DefDef(original)(name.toTermName, typeParams, paramss, tpt, rhs.getOrElse(tpd.EmptyTree))
@@ -220,10 +220,10 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
220220

221221
def ValDef_tpt(self: ValDef)(given Context): TypeTree = self.tpt
222222
def ValDef_rhs(self: ValDef)(given Context): Option[Tree] = optional(self.rhs)
223-
def ValDef_symbol(self: ValDef)(given Context): ValDefSymbol = self.symbol.asTerm
223+
def ValDef_symbol(self: ValDef)(given Context): Symbol = self.symbol.asTerm
224224

225-
def ValDef_apply(symbol: ValDefSymbol, rhs: Option[Term])(given Context): ValDef =
226-
tpd.ValDef(symbol, rhs.getOrElse(tpd.EmptyTree))
225+
def ValDef_apply(symbol: Symbol, rhs: Option[Term])(given Context): ValDef =
226+
tpd.ValDef(symbol.asTerm, rhs.getOrElse(tpd.EmptyTree))
227227

228228
def ValDef_copy(original: ValDef)(name: String, tpt: TypeTree, rhs: Option[Term])(given Context): ValDef =
229229
tpd.cpy.ValDef(original)(name.toTermName, tpt, rhs.getOrElse(tpd.EmptyTree))
@@ -319,8 +319,8 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
319319

320320
def This_id(self: This)(given Context): Option[Id] = optional(self.qual)
321321

322-
def This_apply(cls: ClassDefSymbol)(given Context): This =
323-
withDefaultPos(tpd.This(cls))
322+
def This_apply(cls: Symbol)(given Context): This =
323+
withDefaultPos(tpd.This(cls.asClass))
324324

325325
def This_copy(original: Tree)(qual: Option[Id])(given Context): This =
326326
tpd.cpy.This(original)(qual.getOrElse(untpd.EmptyTypeIdent))
@@ -1088,7 +1088,7 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
10881088

10891089
def Type_simplified(self: Type)(given Context): Type = self.simplified
10901090

1091-
def Type_classSymbol(self: Type)(given Context): Option[ClassDefSymbol] =
1091+
def Type_classSymbol(self: Type)(given Context): Option[Symbol] =
10921092
if (self.classSymbol.exists) Some(self.classSymbol.asClass) else None
10931093

10941094
def Type_typeSymbol(self: Type)(given Context): Symbol = self.typeSymbol
@@ -1100,7 +1100,7 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
11001100
def Type_memberType(self: Type)(member: Symbol)(given Context): Type =
11011101
member.info.asSeenFrom(self, member.owner)
11021102

1103-
def Type_derivesFrom(self: Type)(cls: ClassDefSymbol)(given Context): Boolean =
1103+
def Type_derivesFrom(self: Type)(cls: Symbol)(given Context): Boolean =
11041104
self.derivesFrom(cls)
11051105

11061106
def Type_isFunctionType(self: Type)(given Context): Boolean =
@@ -1516,17 +1516,11 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
15161516
def Symbol_isAbstractType(self: Symbol)(given Context): Boolean = self.isAbstractType
15171517
def Symbol_isClassConstructor(self: Symbol)(given Context): Boolean = self.isClassConstructor
15181518

1519-
type PackageDefSymbol = core.Symbols.Symbol
1520-
15211519
def isPackageDefSymbol(symbol: Symbol)(given Context): Boolean =
15221520
symbol.is(core.Flags.Package)
15231521

1524-
type TypeSymbol = core.Symbols.TypeSymbol
1525-
15261522
def isTypeSymbol(symbol: Symbol)(given Context): Boolean = symbol.isType
15271523

1528-
type ClassDefSymbol = core.Symbols.ClassSymbol
1529-
15301524
def isClassDefSymbol(symbol: Symbol)(given Context): Boolean = symbol.isClass
15311525

15321526
def Symbol_fields(self: Symbol)(given Context): List[Symbol] =
@@ -1537,68 +1531,58 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
15371531
if (isField(sym)) sym else core.Symbols.NoSymbol
15381532
}
15391533

1540-
def Symbol_classMethod(self: Symbol)(name: String)(given Context): List[DefDefSymbol] =
1534+
def Symbol_classMethod(self: Symbol)(name: String)(given Context): List[Symbol] =
15411535
self.typeRef.decls.iterator.collect {
15421536
case sym if isMethod(sym) && sym.name.toString == name => sym.asTerm
15431537
}.toList
15441538

1545-
def Symbol_classMethods(self: Symbol)(given Context): List[DefDefSymbol] =
1539+
def Symbol_classMethods(self: Symbol)(given Context): List[Symbol] =
15461540
self.typeRef.decls.iterator.collect {
15471541
case sym if isMethod(sym) => sym.asTerm
15481542
}.toList
15491543

15501544
private def appliedTypeRef(sym: Symbol): Type = sym.typeRef.appliedTo(sym.typeParams.map(_.typeRef))
15511545

1552-
def Symbol_method(self: Symbol)(name: String)(given Context): List[DefDefSymbol] =
1546+
def Symbol_method(self: Symbol)(name: String)(given Context): List[Symbol] =
15531547
appliedTypeRef(self).allMembers.iterator.map(_.symbol).collect {
15541548
case sym if isMethod(sym) && sym.name.toString == name => sym.asTerm
15551549
}.toList
15561550

1557-
def Symbol_methods(self: Symbol)(given Context): List[DefDefSymbol] =
1551+
def Symbol_methods(self: Symbol)(given Context): List[Symbol] =
15581552
appliedTypeRef(self).allMembers.iterator.map(_.symbol).collect {
15591553
case sym if isMethod(sym) => sym.asTerm
15601554
}.toList
15611555

15621556
private def isMethod(sym: Symbol)(given Context): Boolean =
15631557
sym.isTerm && sym.is(Flags.Method) && !sym.isConstructor
15641558

1565-
def Symbol_caseFields(self: Symbol)(given Context): List[ValDefSymbol] =
1559+
def Symbol_caseFields(self: Symbol)(given Context): List[Symbol] =
15661560
if (!self.isClass) Nil
15671561
else self.asClass.paramAccessors.collect {
15681562
case sym if sym.is(Flags.CaseAccessor) => sym.asTerm
15691563
}
15701564

15711565
private def isField(sym: Symbol)(given Context): Boolean = sym.isTerm && !sym.is(Flags.Method)
15721566

1573-
def Symbol_of(fullName: String)(given ctx: Context): ClassDefSymbol = ctx.requiredClass(fullName)
1574-
1575-
type TypeDefSymbol = core.Symbols.TypeSymbol
1567+
def Symbol_of(fullName: String)(given ctx: Context): Symbol = ctx.requiredClass(fullName)
15761568

15771569
def isTypeDefSymbol(symbol: Symbol)(given Context): Boolean =
15781570
symbol.isType && !symbol.is(core.Flags.Case)
15791571

15801572
def Symbol_isTypeParam(self: Symbol)(given Context): Boolean =
15811573
self.isTypeParam
15821574

1583-
type TypeBindSymbol = core.Symbols.TypeSymbol
1584-
15851575
def isTypeBindSymbol(symbol: Symbol)(given Context): Boolean =
15861576
symbol.isType && symbol.is(core.Flags.Case)
15871577

1588-
type TermSymbol = core.Symbols.TermSymbol
1589-
15901578
def isTermSymbol(symbol: Symbol)(given Context): Boolean = symbol.isTerm
15911579

1592-
type DefDefSymbol = core.Symbols.TermSymbol
1593-
15941580
def isDefDefSymbol(symbol: Symbol)(given Context): Boolean =
15951581
symbol.isTerm && symbol.is(core.Flags.Method)
15961582

15971583
def Symbol_signature(self: Symbol)(given Context): Signature =
15981584
self.signature
15991585

1600-
type ValDefSymbol = core.Symbols.TermSymbol
1601-
16021586
def isValDefSymbol(symbol: Symbol)(given Context): Boolean =
16031587
symbol.isTerm && !symbol.is(core.Flags.Method) && !symbol.is(core.Flags.Case)
16041588

@@ -1608,14 +1592,10 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
16081592

16091593
def Symbol_companionModule(self: Symbol)(given Context): Symbol = self.companionModule
16101594

1611-
type BindSymbol = core.Symbols.TermSymbol
1612-
16131595
def isBindSymbol(symbol: Symbol)(given Context): Boolean =
16141596
symbol.isTerm && symbol.is(core.Flags.Case)
16151597

1616-
type NoSymbol = core.Symbols.NoSymbol.type
1617-
1618-
def Symbol_noSymbol(given ctx: Context): NoSymbol = core.Symbols.NoSymbol
1598+
def Symbol_noSymbol(given ctx: Context): Symbol = core.Symbols.NoSymbol
16191599

16201600
def isNoSymbol(symbol: Symbol)(given Context): Boolean = symbol eq core.Symbols.NoSymbol
16211601

@@ -1762,7 +1742,7 @@ class ReflectionCompilerInterface(val rootContext: core.Contexts.Context) extend
17621742
def Definitions_Array_length: Symbol = defn.Array_length.asTerm
17631743
def Definitions_Array_update: Symbol = defn.Array_update.asTerm
17641744

1765-
def Definitions_RepeatedParamClass: ClassDefSymbol = defn.RepeatedParamClass
1745+
def Definitions_RepeatedParamClass: Symbol = defn.RepeatedParamClass
17661746

17671747
def Definitions_OptionClass: Symbol = defn.OptionClass
17681748
def Definitions_NoneModule: Symbol = defn.NoneModule

0 commit comments

Comments
 (0)