|
| 1 | +package dotty.tools.dotc.tastyreflect |
| 2 | + |
| 3 | +import dotty.tools.dotc.core.Symbols._ |
| 4 | + |
| 5 | +import dotty.tools.dotc.tastyreflect.FromSymbol._ |
| 6 | + |
| 7 | +trait StandardDefinitions extends scala.tasty.reflect.StandardDefinitions { |
| 8 | + tasty: TastyImpl => |
| 9 | + |
| 10 | + private implicit def ctx: Context = rootContext |
| 11 | + |
| 12 | + val definitions: DefinitionsApi = new DefinitionsApi { |
| 13 | + |
| 14 | + def RootPackage: PackageDef = packageDefFromSym(defn.RootPackage) |
| 15 | + |
| 16 | + def ScalaPackage: PackageDef = packageDefFromSym(defn.ScalaPackageVal) |
| 17 | + |
| 18 | + def AnyClass: ClassDef = classDef(defn.AnyClass) |
| 19 | + def AnyValClass: ClassDef = classDef(defn.AnyValClass) |
| 20 | + def ObjectClass: ClassDef = classDef(defn.ObjectClass) |
| 21 | + def AnyRefClass: TypeDef = typeDefFromSym(defn.AnyRefAlias) |
| 22 | + def NullClass: ClassDef = classDef(defn.AnyClass) |
| 23 | + def NothingClass: ClassDef = classDef(defn.NothingClass) |
| 24 | + def UnitClass: ClassDef = classDef(defn.UnitClass) |
| 25 | + def ByteClass: ClassDef = classDef(defn.ByteClass) |
| 26 | + def ShortClass: ClassDef = classDef(defn.ShortClass) |
| 27 | + def CharClass: ClassDef = classDef(defn.CharClass) |
| 28 | + def IntClass: ClassDef = classDef(defn.IntClass) |
| 29 | + def LongClass: ClassDef = classDef(defn.LongClass) |
| 30 | + def FloatClass: ClassDef = classDef(defn.FloatClass) |
| 31 | + def DoubleClass: ClassDef = classDef(defn.DoubleClass) |
| 32 | + def BooleanClass: ClassDef = classDef(defn.BooleanClass) |
| 33 | + def StringClass: ClassDef = classDef(defn.StringClass) |
| 34 | + def ClassClass: ClassDef = classDef(defn.ClassClass) |
| 35 | + def ArrayClass: ClassDef = classDef(defn.ArrayClass) |
| 36 | + def PredefModule: ValDef = valDefFromSym(defn.ScalaPredefModule.asTerm) |
| 37 | + |
| 38 | + def JavaLangPackage: PackageDef = packageDefFromSym(defn.JavaLangPackageVal) |
| 39 | + |
| 40 | + def ArrayModule: ValDef = valDefFromSym(defn.ArrayClass.companionModule.asTerm) |
| 41 | + |
| 42 | + def Array_apply: DefDef = defDefFromSym(defn.Array_apply.asTerm) |
| 43 | + def Array_clone: DefDef = defDefFromSym(defn.Array_clone.asTerm) |
| 44 | + def Array_length: DefDef = defDefFromSym(defn.Array_length.asTerm) |
| 45 | + def Array_update: DefDef = defDefFromSym(defn.Array_update.asTerm) |
| 46 | + |
| 47 | + def RepeatedParamClass: ClassDef = classDef(defn.RepeatedParamClass) |
| 48 | + |
| 49 | + def OptionClass: TypeDef = classDef(defn.OptionClass) |
| 50 | + def NoneModule: ValDef = valDefFromSym(defn.NoneClass.companionModule.asTerm) |
| 51 | + def SomeModule: ValDef = valDefFromSym(defn.SomeClass.companionModule.asTerm) |
| 52 | + |
| 53 | + def ProductClass: ClassDef = classDef(defn.ProductClass) |
| 54 | + def FunctionClass(arity: Int, isImplicit: Boolean = false, isErased: Boolean = false): ClassDef = |
| 55 | + classDef(defn.FunctionClass(arity, isImplicit, isErased).asClass) |
| 56 | + def TupleClass(arity: Int): ClassDef = classDef(defn.TupleType(arity).classSymbol.asClass) |
| 57 | + |
| 58 | + |
| 59 | + def ScalaPrimitiveValueClasses: List[ClassDef] = |
| 60 | + UnitClass :: BooleanClass :: ScalaNumericValueClasses |
| 61 | + def ScalaNumericValueClasses: List[ClassDef] = |
| 62 | + ByteClass :: ShortClass :: IntClass :: LongClass :: FloatClass :: DoubleClass :: CharClass :: Nil |
| 63 | + |
| 64 | + def UnitType: Type = defn.UnitType |
| 65 | + def ByteType: Type = defn.ByteType |
| 66 | + def ShortType: Type = defn.ShortType |
| 67 | + def CharType: Type = defn.CharType |
| 68 | + def IntType: Type = defn.IntType |
| 69 | + def LongType: Type = defn.LongType |
| 70 | + def FloatType: Type = defn.FloatType |
| 71 | + def DoubleType: Type = defn.DoubleType |
| 72 | + def BooleanType: Type = defn.BooleanType |
| 73 | + def AnyType: Type = defn.AnyType |
| 74 | + def AnyValType: Type = defn.AnyValType |
| 75 | + def AnyRefType: Type = defn.AnyRefType |
| 76 | + def ObjectType: Type = defn.ObjectType |
| 77 | + def NothingType: Type = defn.NothingType |
| 78 | + def NullType: Type = defn.NullType |
| 79 | + } |
| 80 | +} |
0 commit comments