Skip to content

Commit 18bb14c

Browse files
committed
Use Symbols instead of Definitions in StandardDefinitions
1 parent 17b1be4 commit 18bb14c

File tree

2 files changed

+70
-72
lines changed

2 files changed

+70
-72
lines changed

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

Lines changed: 37 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ trait StandardDefinitions extends scala.tasty.reflect.StandardDefinitions {
1111

1212
val definitions: DefinitionsApi = new DefinitionsApi {
1313

14-
// TODO return Symbols instead of Definitions
15-
1614
def RootPackage: Symbol = defn.RootPackage
1715
def RootClass: Symbol = defn.RootClass
1816

@@ -21,50 +19,50 @@ trait StandardDefinitions extends scala.tasty.reflect.StandardDefinitions {
2119
def ScalaPackage: Symbol = defn.ScalaPackageVal
2220
def ScalaPackageClass: Symbol = defn.ScalaPackageClass
2321

24-
def AnyClass: ClassDef = classDef(defn.AnyClass)
25-
def AnyValClass: ClassDef = classDef(defn.AnyValClass)
26-
def ObjectClass: ClassDef = classDef(defn.ObjectClass)
27-
def AnyRefClass: TypeDef = typeDefFromSym(defn.AnyRefAlias)
28-
def NullClass: ClassDef = classDef(defn.AnyClass)
29-
def NothingClass: ClassDef = classDef(defn.NothingClass)
30-
def UnitClass: ClassDef = classDef(defn.UnitClass)
31-
def ByteClass: ClassDef = classDef(defn.ByteClass)
32-
def ShortClass: ClassDef = classDef(defn.ShortClass)
33-
def CharClass: ClassDef = classDef(defn.CharClass)
34-
def IntClass: ClassDef = classDef(defn.IntClass)
35-
def LongClass: ClassDef = classDef(defn.LongClass)
36-
def FloatClass: ClassDef = classDef(defn.FloatClass)
37-
def DoubleClass: ClassDef = classDef(defn.DoubleClass)
38-
def BooleanClass: ClassDef = classDef(defn.BooleanClass)
39-
def StringClass: ClassDef = classDef(defn.StringClass)
40-
def ClassClass: ClassDef = classDef(defn.ClassClass)
41-
def ArrayClass: ClassDef = classDef(defn.ArrayClass)
42-
def PredefModule: ValDef = valDefFromSym(defn.ScalaPredefModule.asTerm)
43-
44-
def JavaLangPackage: PackageDef = packageDefFromSym(defn.JavaLangPackageVal)
45-
46-
def ArrayModule: ValDef = valDefFromSym(defn.ArrayClass.companionModule.asTerm)
47-
48-
def Array_apply: DefDef = defDefFromSym(defn.Array_apply.asTerm)
49-
def Array_clone: DefDef = defDefFromSym(defn.Array_clone.asTerm)
50-
def Array_length: DefDef = defDefFromSym(defn.Array_length.asTerm)
51-
def Array_update: DefDef = defDefFromSym(defn.Array_update.asTerm)
22+
def AnyClass: Symbol = defn.AnyClass
23+
def AnyValClass: Symbol = defn.AnyValClass
24+
def ObjectClass: Symbol = defn.ObjectClass
25+
def AnyRefClass: Symbol = defn.AnyRefAlias
26+
def NullClass: Symbol = defn.AnyClass
27+
def NothingClass: Symbol = defn.NothingClass
28+
def UnitClass: Symbol = defn.UnitClass
29+
def ByteClass: Symbol = defn.ByteClass
30+
def ShortClass: Symbol = defn.ShortClass
31+
def CharClass: Symbol = defn.CharClass
32+
def IntClass: Symbol = defn.IntClass
33+
def LongClass: Symbol = defn.LongClass
34+
def FloatClass: Symbol = defn.FloatClass
35+
def DoubleClass: Symbol = defn.DoubleClass
36+
def BooleanClass: Symbol = defn.BooleanClass
37+
def StringClass: Symbol = defn.StringClass
38+
def ClassClass: Symbol = defn.ClassClass
39+
def ArrayClass: Symbol = defn.ArrayClass
40+
def PredefModule: Symbol = defn.ScalaPredefModule.asTerm
41+
42+
def JavaLangPackage: Symbol = defn.JavaLangPackageVal
43+
44+
def ArrayModule: Symbol = defn.ArrayClass.companionModule.asTerm
45+
46+
def Array_apply: Symbol = defn.Array_apply.asTerm
47+
def Array_clone: Symbol = defn.Array_clone.asTerm
48+
def Array_length: Symbol = defn.Array_length.asTerm
49+
def Array_update: Symbol = defn.Array_update.asTerm
5250

5351
def RepeatedParamClass: Symbol = defn.RepeatedParamClass
5452

55-
def OptionClass: TypeDef = classDef(defn.OptionClass)
56-
def NoneModule: ValDef = valDefFromSym(defn.NoneClass.companionModule.asTerm)
57-
def SomeModule: ValDef = valDefFromSym(defn.SomeClass.companionModule.asTerm)
53+
def OptionClass: Symbol = defn.OptionClass
54+
def NoneModule: Symbol = defn.NoneClass.companionModule.asTerm
55+
def SomeModule: Symbol = defn.SomeClass.companionModule.asTerm
5856

59-
def ProductClass: ClassDef = classDef(defn.ProductClass)
60-
def FunctionClass(arity: Int, isImplicit: Boolean = false, isErased: Boolean = false): ClassDef =
61-
classDef(defn.FunctionClass(arity, isImplicit, isErased).asClass)
62-
def TupleClass(arity: Int): ClassDef = classDef(defn.TupleType(arity).classSymbol.asClass)
57+
def ProductClass: Symbol = defn.ProductClass
58+
def FunctionClass(arity: Int, isImplicit: Boolean = false, isErased: Boolean = false): Symbol =
59+
defn.FunctionClass(arity, isImplicit, isErased).asClass
60+
def TupleClass(arity: Int): Symbol = defn.TupleType(arity).classSymbol.asClass
6361

6462

65-
def ScalaPrimitiveValueClasses: List[ClassDef] =
63+
def ScalaPrimitiveValueClasses: List[Symbol] =
6664
UnitClass :: BooleanClass :: ScalaNumericValueClasses
67-
def ScalaNumericValueClasses: List[ClassDef] =
65+
def ScalaNumericValueClasses: List[Symbol] =
6866
ByteClass :: ShortClass :: IntClass :: LongClass :: FloatClass :: DoubleClass :: CharClass :: Nil
6967

7068
def UnitType: Type = defn.UnitType

library/src/scala/tasty/reflect/StandardDefinitions.scala

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -29,104 +29,104 @@ trait StandardDefinitions extends TastyCore {
2929
def ScalaPackageClass: Symbol
3030

3131
/** The class symbol of core class `scala.Any`. */
32-
def AnyClass : ClassDef
32+
def AnyClass: Symbol
3333

3434
/** The class symbol of core class `scala.AnyVal`. */
35-
def AnyValClass: ClassDef
35+
def AnyValClass: Symbol
3636

3737
/** The class symbol of core class `java.lang.Object`. */
38-
def ObjectClass: ClassDef
38+
def ObjectClass: Symbol
3939

4040
/** The type symbol of core class `scala.AnyRef`. */
41-
def AnyRefClass: TypeDef
41+
def AnyRefClass: Symbol
4242

4343
/** The class symbol of core class `scala.Null`. */
44-
def NullClass : ClassDef
44+
def NullClass: Symbol
4545

4646
/** The class symbol of core class `scala.Nothing`. */
47-
def NothingClass: ClassDef
47+
def NothingClass: Symbol
4848

4949
/** The class symbol of primitive class `scala.Unit`. */
50-
def UnitClass : ClassDef
50+
def UnitClass: Symbol
5151

5252
/** The class symbol of primitive class `scala.Byte`. */
53-
def ByteClass : ClassDef
53+
def ByteClass: Symbol
5454

5555
/** The class symbol of primitive class `scala.Short`. */
56-
def ShortClass : ClassDef
56+
def ShortClass: Symbol
5757

5858
/** The class symbol of primitive class `scala.Char`. */
59-
def CharClass : ClassDef
59+
def CharClass: Symbol
6060

6161
/** The class symbol of primitive class `scala.Int`. */
62-
def IntClass : ClassDef
62+
def IntClass: Symbol
6363

6464
/** The class symbol of primitive class `scala.Long`. */
65-
def LongClass : ClassDef
65+
def LongClass: Symbol
6666

6767
/** The class symbol of primitive class `scala.Float`. */
68-
def FloatClass : ClassDef
68+
def FloatClass: Symbol
6969

7070
/** The class symbol of primitive class `scala.Double`. */
71-
def DoubleClass : ClassDef
71+
def DoubleClass: Symbol
7272

7373
/** The class symbol of primitive class `scala.Boolean`. */
74-
def BooleanClass: ClassDef
74+
def BooleanClass: Symbol
7575

7676
/** The class symbol of class `scala.String`. */
77-
def StringClass : ClassDef
77+
def StringClass: Symbol
7878

7979
/** The class symbol of class `java.lang.Class`. */
80-
def ClassClass : ClassDef
80+
def ClassClass: Symbol
8181

8282
/** The class symbol of class `scala.Array`. */
83-
def ArrayClass : ClassDef
83+
def ArrayClass: Symbol
8484

8585
/** The module symbol of module `scala.Predef`. */
86-
def PredefModule: ValDef
86+
def PredefModule: Symbol
8787

8888
/** The module symbol of package `java.lang`. */
89-
def JavaLangPackage: PackageDef
89+
def JavaLangPackage: Symbol
9090

9191
/** The module symbol of module `scala.Array`. */
92-
def ArrayModule: ValDef
92+
def ArrayModule: Symbol
9393

9494
/** The method symbol of method `apply` in class `scala.Array`. */
95-
def Array_apply: DefDef
95+
def Array_apply: Symbol
9696

9797
/** The method symbol of method `clone` in class `scala.Array`. */
98-
def Array_clone: DefDef
98+
def Array_clone: Symbol
9999

100100
/** The method symbol of method `length` in class `scala.Array`. */
101-
def Array_length: DefDef
101+
def Array_length: Symbol
102102

103103
/** The method symbol of method `update` in class `scala.Array`. */
104-
def Array_update: DefDef
104+
def Array_update: Symbol
105105

106106
/** A dummy class symbol that is used to indicate repeated parameters
107107
* compiled by the Scala compiler.
108108
*/
109109
def RepeatedParamClass: Symbol
110110

111111
/** The class symbol of class `scala.Option`. */
112-
def OptionClass: ClassDef
112+
def OptionClass: Symbol
113113

114114
/** The module symbol of module `scala.None`. */
115-
def NoneModule: ValDef
115+
def NoneModule: Symbol
116116

117117
/** The module symbol of module `scala.Some`. */
118-
def SomeModule: ValDef
118+
def SomeModule: Symbol
119119

120120
/** Function-like object that maps arity to symbols for classes `scala.Product` */
121-
def ProductClass: ClassDef
121+
def ProductClass: Symbol
122122

123123
/** Function-like object that maps arity to symbols for classes `scala.FunctionX`.
124124
* - 0th element is `Function0`
125125
* - 1st element is `Function1`
126126
* - ...
127127
* - Nth element is `FunctionN`
128128
*/
129-
def FunctionClass(arity: Int, isImplicit: Boolean = false, isErased: Boolean = false): ClassDef
129+
def FunctionClass(arity: Int, isImplicit: Boolean = false, isErased: Boolean = false): Symbol
130130

131131
/** Function-like object that maps arity to symbols for classes `scala.TupleX`.
132132
* - 0th element is `NoSymbol`
@@ -137,7 +137,7 @@ trait StandardDefinitions extends TastyCore {
137137
* - 23nd element is `NoSymbol` // TODO update when we will have more tuples
138138
* - ...
139139
*/
140-
def TupleClass(arity: Int): ClassDef
140+
def TupleClass(arity: Int): Symbol
141141

142142
/** Contains Scala primitive value classes:
143143
* - Byte
@@ -150,7 +150,7 @@ trait StandardDefinitions extends TastyCore {
150150
* - Boolean
151151
* - Unit
152152
*/
153-
def ScalaPrimitiveValueClasses: List[ClassDef]
153+
def ScalaPrimitiveValueClasses: List[Symbol]
154154

155155
/** Contains Scala numeric value classes:
156156
* - Byte
@@ -161,7 +161,7 @@ trait StandardDefinitions extends TastyCore {
161161
* - Double
162162
* - Char
163163
*/
164-
def ScalaNumericValueClasses: List[ClassDef]
164+
def ScalaNumericValueClasses: List[Symbol]
165165
}
166166

167167
/** Defines standard types.

0 commit comments

Comments
 (0)