diff --git a/compiler/src/dotty/tools/dotc/tastyreflect/ContextOpsImpl.scala b/compiler/src/dotty/tools/dotc/tastyreflect/ContextOpsImpl.scala index 5a9970a5a49c..c794f39b5e1f 100644 --- a/compiler/src/dotty/tools/dotc/tastyreflect/ContextOpsImpl.scala +++ b/compiler/src/dotty/tools/dotc/tastyreflect/ContextOpsImpl.scala @@ -9,7 +9,7 @@ trait ContextOpsImpl extends scala.tasty.reflect.ContextOps with TastyCoreImpl { val rootContext: Contexts.Context def ContextDeco(ctx: Context): ContextAPI = new ContextAPI { - def owner: Definition = definitionFromSym(ctx.owner)(ctx) + def owner: Symbol = ctx.owner def source: java.nio.file.Path = ctx.compilationUnit.source.file.jpath } diff --git a/compiler/src/dotty/tools/dotc/tastyreflect/StandardDefinitions.scala b/compiler/src/dotty/tools/dotc/tastyreflect/StandardDefinitions.scala index ff637da1436f..00cc6df81ddb 100644 --- a/compiler/src/dotty/tools/dotc/tastyreflect/StandardDefinitions.scala +++ b/compiler/src/dotty/tools/dotc/tastyreflect/StandardDefinitions.scala @@ -11,54 +11,58 @@ trait StandardDefinitions extends scala.tasty.reflect.StandardDefinitions { val definitions: DefinitionsApi = new DefinitionsApi { - def RootPackage: PackageDef = packageDefFromSym(defn.RootPackage) - - def ScalaPackage: PackageDef = packageDefFromSym(defn.ScalaPackageVal) - - def AnyClass: ClassDef = classDef(defn.AnyClass) - def AnyValClass: ClassDef = classDef(defn.AnyValClass) - def ObjectClass: ClassDef = classDef(defn.ObjectClass) - def AnyRefClass: TypeDef = typeDefFromSym(defn.AnyRefAlias) - def NullClass: ClassDef = classDef(defn.AnyClass) - def NothingClass: ClassDef = classDef(defn.NothingClass) - def UnitClass: ClassDef = classDef(defn.UnitClass) - def ByteClass: ClassDef = classDef(defn.ByteClass) - def ShortClass: ClassDef = classDef(defn.ShortClass) - def CharClass: ClassDef = classDef(defn.CharClass) - def IntClass: ClassDef = classDef(defn.IntClass) - def LongClass: ClassDef = classDef(defn.LongClass) - def FloatClass: ClassDef = classDef(defn.FloatClass) - def DoubleClass: ClassDef = classDef(defn.DoubleClass) - def BooleanClass: ClassDef = classDef(defn.BooleanClass) - def StringClass: ClassDef = classDef(defn.StringClass) - def ClassClass: ClassDef = classDef(defn.ClassClass) - def ArrayClass: ClassDef = classDef(defn.ArrayClass) - def PredefModule: ValDef = valDefFromSym(defn.ScalaPredefModule.asTerm) - - def JavaLangPackage: PackageDef = packageDefFromSym(defn.JavaLangPackageVal) - - def ArrayModule: ValDef = valDefFromSym(defn.ArrayClass.companionModule.asTerm) - - def Array_apply: DefDef = defDefFromSym(defn.Array_apply.asTerm) - def Array_clone: DefDef = defDefFromSym(defn.Array_clone.asTerm) - def Array_length: DefDef = defDefFromSym(defn.Array_length.asTerm) - def Array_update: DefDef = defDefFromSym(defn.Array_update.asTerm) - - def RepeatedParamClass: ClassDef = classDef(defn.RepeatedParamClass) - - def OptionClass: TypeDef = classDef(defn.OptionClass) - def NoneModule: ValDef = valDefFromSym(defn.NoneClass.companionModule.asTerm) - def SomeModule: ValDef = valDefFromSym(defn.SomeClass.companionModule.asTerm) - - def ProductClass: ClassDef = classDef(defn.ProductClass) - def FunctionClass(arity: Int, isImplicit: Boolean = false, isErased: Boolean = false): ClassDef = - classDef(defn.FunctionClass(arity, isImplicit, isErased).asClass) - def TupleClass(arity: Int): ClassDef = classDef(defn.TupleType(arity).classSymbol.asClass) - - - def ScalaPrimitiveValueClasses: List[ClassDef] = + def RootPackage: Symbol = defn.RootPackage + def RootClass: Symbol = defn.RootClass + + def EmptyPackageClass: Symbol = defn.EmptyPackageClass + + def ScalaPackage: Symbol = defn.ScalaPackageVal + def ScalaPackageClass: Symbol = defn.ScalaPackageClass + + def AnyClass: Symbol = defn.AnyClass + def AnyValClass: Symbol = defn.AnyValClass + def ObjectClass: Symbol = defn.ObjectClass + def AnyRefClass: Symbol = defn.AnyRefAlias + def NullClass: Symbol = defn.AnyClass + def NothingClass: Symbol = defn.NothingClass + def UnitClass: Symbol = defn.UnitClass + def ByteClass: Symbol = defn.ByteClass + def ShortClass: Symbol = defn.ShortClass + def CharClass: Symbol = defn.CharClass + def IntClass: Symbol = defn.IntClass + def LongClass: Symbol = defn.LongClass + def FloatClass: Symbol = defn.FloatClass + def DoubleClass: Symbol = defn.DoubleClass + def BooleanClass: Symbol = defn.BooleanClass + def StringClass: Symbol = defn.StringClass + def ClassClass: Symbol = defn.ClassClass + def ArrayClass: Symbol = defn.ArrayClass + def PredefModule: Symbol = defn.ScalaPredefModule.asTerm + + def JavaLangPackage: Symbol = defn.JavaLangPackageVal + + def ArrayModule: Symbol = defn.ArrayClass.companionModule.asTerm + + def Array_apply: Symbol = defn.Array_apply.asTerm + def Array_clone: Symbol = defn.Array_clone.asTerm + def Array_length: Symbol = defn.Array_length.asTerm + def Array_update: Symbol = defn.Array_update.asTerm + + def RepeatedParamClass: Symbol = defn.RepeatedParamClass + + def OptionClass: Symbol = defn.OptionClass + def NoneModule: Symbol = defn.NoneClass.companionModule.asTerm + def SomeModule: Symbol = defn.SomeClass.companionModule.asTerm + + def ProductClass: Symbol = defn.ProductClass + def FunctionClass(arity: Int, isImplicit: Boolean = false, isErased: Boolean = false): Symbol = + defn.FunctionClass(arity, isImplicit, isErased).asClass + def TupleClass(arity: Int): Symbol = defn.TupleType(arity).classSymbol.asClass + + + def ScalaPrimitiveValueClasses: List[Symbol] = UnitClass :: BooleanClass :: ScalaNumericValueClasses - def ScalaNumericValueClasses: List[ClassDef] = + def ScalaNumericValueClasses: List[Symbol] = ByteClass :: ShortClass :: IntClass :: LongClass :: FloatClass :: DoubleClass :: CharClass :: Nil def UnitType: Type = defn.UnitType diff --git a/compiler/src/dotty/tools/dotc/tastyreflect/SymbolOpsImpl.scala b/compiler/src/dotty/tools/dotc/tastyreflect/SymbolOpsImpl.scala index ae87bcc16b25..53e1299c1632 100644 --- a/compiler/src/dotty/tools/dotc/tastyreflect/SymbolOpsImpl.scala +++ b/compiler/src/dotty/tools/dotc/tastyreflect/SymbolOpsImpl.scala @@ -1,14 +1,49 @@ -package dotty.tools.dotc.tastyreflect +package dotty.tools.dotc +package tastyreflect import dotty.tools.dotc.core.Symbols._ trait SymbolOpsImpl extends scala.tasty.reflect.SymbolOps with TastyCoreImpl { def SymbolDeco(symbol: Symbol): SymbolAPI = new SymbolAPI { - def isEmpty: Boolean = symbol eq NoSymbol - def localContext(implicit ctx: Context): Context = ctx.withOwner(symbol) + + def exists(implicit ctx: Context): Boolean = symbol eq NoSymbol + def isClass(implicit ctx: Context): Boolean = symbol.isClass + + def flags(implicit ctx: Context): FlagSet = new FlagSet(symbol.flags) + + def privateWithin(implicit ctx: Context): Option[Type] = { + val within = symbol.privateWithin + if (within.exists && !symbol.is(core.Flags.Protected)) Some(within.typeRef) + else None + } + + def protectedWithin(implicit ctx: Context): Option[Type] = { + val within = symbol.privateWithin + if (within.exists && symbol.is(core.Flags.Protected)) Some(within.typeRef) + else None + } + + def name(implicit ctx: Context): String = symbol.name.toString + def fullName(implicit ctx: Context): String = symbol.fullName.toString + + def owner(implicit ctx: Context): Symbol = symbol.owner + + def localContext(implicit ctx: Context): Context = { + if (symbol.exists) ctx.withOwner(symbol) + else ctx + } + def tree(implicit ctx: Context): Option[Definition] = - if (isEmpty) None else Some(FromSymbol.definitionFromSym(symbol)) + if (exists) None else Some(FromSymbol.definitionFromSym(symbol)) + + def annots(implicit ctx: Context): List[Term] = { + symbol.annotations.flatMap { + case _: core.Annotations.LazyBodyAnnotation => Nil + case annot => annot.tree :: Nil + } + } + } } diff --git a/compiler/src/dotty/tools/dotc/tastyreflect/TreeOpsImpl.scala b/compiler/src/dotty/tools/dotc/tastyreflect/TreeOpsImpl.scala index d0ec292aec85..a4f891a0b641 100644 --- a/compiler/src/dotty/tools/dotc/tastyreflect/TreeOpsImpl.scala +++ b/compiler/src/dotty/tools/dotc/tastyreflect/TreeOpsImpl.scala @@ -60,36 +60,7 @@ trait TreeOpsImpl extends scala.tasty.reflect.TreeOps with TastyCoreImpl with He } def DefinitionDeco(definition: Definition): DefinitionAPI = new DefinitionAPI { - def name(implicit ctx: Context): String = definition.symbol.name.toString - - def owner(implicit ctx: Context): Definition = definitionFromSym(definition.symbol.owner) - - def flags(implicit ctx: Context): FlagSet = - new FlagSet(definition.symbol.flags) - - def privateWithin(implicit ctx: Context): Option[Type] = { - val within = definition.symbol.privateWithin - if (within.exists && !definition.symbol.is(core.Flags.Protected)) Some(within.typeRef) - else None - } - - def protectedWithin(implicit ctx: Context): Option[Type] = { - val within = definition.symbol.privateWithin - if (within.exists && definition.symbol.is(core.Flags.Protected)) Some(within.typeRef) - else None - } - - def annots(implicit ctx: Context): List[Term] = { - definition.symbol.annotations.flatMap { - case _: core.Annotations.LazyBodyAnnotation => Nil - case annot => annot.tree :: Nil - } - } - - def localContext(implicit ctx: Context): Context = - if (definition.hasType && definition.symbol.exists) ctx.withOwner(definition.symbol) - else ctx } // ClassDef diff --git a/compiler/src/dotty/tools/dotc/tastyreflect/TypeOrBoundsOpsImpl.scala b/compiler/src/dotty/tools/dotc/tastyreflect/TypeOrBoundsOpsImpl.scala index de9f1b6ce934..6fdffc033137 100644 --- a/compiler/src/dotty/tools/dotc/tastyreflect/TypeOrBoundsOpsImpl.scala +++ b/compiler/src/dotty/tools/dotc/tastyreflect/TypeOrBoundsOpsImpl.scala @@ -51,10 +51,10 @@ trait TypeOrBoundsOpsImpl extends scala.tasty.reflect.TypeOrBoundsOps with Tasty } object SymRef extends SymRefExtractor { - def unapply(x: TypeOrBounds)(implicit ctx: Context): Option[(Definition, TypeOrBounds /* Type | NoPrefix */)] = x match { + def unapply(x: TypeOrBounds)(implicit ctx: Context): Option[(Symbol, TypeOrBounds /* Type | NoPrefix */)] = x match { case tp: Types.NamedType => tp.designator match { - case sym: Symbol => Some((definitionFromSym(sym), tp.prefix)) + case sym: Symbol => Some((sym, tp.prefix)) case _ => None } case _ => None diff --git a/library/src/scala/tasty/reflect/ContextOps.scala b/library/src/scala/tasty/reflect/ContextOps.scala index 255a2473a37e..7aec769d2b98 100644 --- a/library/src/scala/tasty/reflect/ContextOps.scala +++ b/library/src/scala/tasty/reflect/ContextOps.scala @@ -4,7 +4,7 @@ package reflect trait ContextOps extends TastyCore { trait ContextAPI { - def owner: Definition + def owner: Symbol /** Returns the source file being compiled. The path is relative to the current working directory. */ def source: java.nio.file.Path diff --git a/library/src/scala/tasty/reflect/StandardDefinitions.scala b/library/src/scala/tasty/reflect/StandardDefinitions.scala index 3254b634ad96..6426cf9f8324 100644 --- a/library/src/scala/tasty/reflect/StandardDefinitions.scala +++ b/library/src/scala/tasty/reflect/StandardDefinitions.scala @@ -14,102 +14,111 @@ trait StandardDefinitions extends TastyCore { trait DefinitionsApi extends StandardTypes { /** The module symbol of root package `_root_`. */ - def RootPackage: PackageDef + def RootPackage: Symbol + + /** The class symbol of root package `_root_`. */ + def RootClass: Symbol + + /** The class symbol of empty package `_root_._empty_`. */ + def EmptyPackageClass: Symbol /** The module symbol of package `scala`. */ - def ScalaPackage: PackageDef + def ScalaPackage: Symbol + + /** The class symbol of package `scala`. */ + def ScalaPackageClass: Symbol /** The class symbol of core class `scala.Any`. */ - def AnyClass : ClassDef + def AnyClass: Symbol /** The class symbol of core class `scala.AnyVal`. */ - def AnyValClass: ClassDef + def AnyValClass: Symbol /** The class symbol of core class `java.lang.Object`. */ - def ObjectClass: ClassDef + def ObjectClass: Symbol /** The type symbol of core class `scala.AnyRef`. */ - def AnyRefClass: TypeDef + def AnyRefClass: Symbol /** The class symbol of core class `scala.Null`. */ - def NullClass : ClassDef + def NullClass: Symbol /** The class symbol of core class `scala.Nothing`. */ - def NothingClass: ClassDef + def NothingClass: Symbol /** The class symbol of primitive class `scala.Unit`. */ - def UnitClass : ClassDef + def UnitClass: Symbol /** The class symbol of primitive class `scala.Byte`. */ - def ByteClass : ClassDef + def ByteClass: Symbol /** The class symbol of primitive class `scala.Short`. */ - def ShortClass : ClassDef + def ShortClass: Symbol /** The class symbol of primitive class `scala.Char`. */ - def CharClass : ClassDef + def CharClass: Symbol /** The class symbol of primitive class `scala.Int`. */ - def IntClass : ClassDef + def IntClass: Symbol /** The class symbol of primitive class `scala.Long`. */ - def LongClass : ClassDef + def LongClass: Symbol /** The class symbol of primitive class `scala.Float`. */ - def FloatClass : ClassDef + def FloatClass: Symbol /** The class symbol of primitive class `scala.Double`. */ - def DoubleClass : ClassDef + def DoubleClass: Symbol /** The class symbol of primitive class `scala.Boolean`. */ - def BooleanClass: ClassDef + def BooleanClass: Symbol /** The class symbol of class `scala.String`. */ - def StringClass : ClassDef + def StringClass: Symbol /** The class symbol of class `java.lang.Class`. */ - def ClassClass : ClassDef + def ClassClass: Symbol /** The class symbol of class `scala.Array`. */ - def ArrayClass : ClassDef + def ArrayClass: Symbol /** The module symbol of module `scala.Predef`. */ - def PredefModule: ValDef + def PredefModule: Symbol /** The module symbol of package `java.lang`. */ - def JavaLangPackage: PackageDef + def JavaLangPackage: Symbol /** The module symbol of module `scala.Array`. */ - def ArrayModule: ValDef + def ArrayModule: Symbol /** The method symbol of method `apply` in class `scala.Array`. */ - def Array_apply: DefDef + def Array_apply: Symbol /** The method symbol of method `clone` in class `scala.Array`. */ - def Array_clone: DefDef + def Array_clone: Symbol /** The method symbol of method `length` in class `scala.Array`. */ - def Array_length: DefDef + def Array_length: Symbol /** The method symbol of method `update` in class `scala.Array`. */ - def Array_update: DefDef + def Array_update: Symbol /** A dummy class symbol that is used to indicate repeated parameters * compiled by the Scala compiler. */ - def RepeatedParamClass: ClassDef + def RepeatedParamClass: Symbol /** The class symbol of class `scala.Option`. */ - def OptionClass: ClassDef + def OptionClass: Symbol /** The module symbol of module `scala.None`. */ - def NoneModule: ValDef + def NoneModule: Symbol /** The module symbol of module `scala.Some`. */ - def SomeModule: ValDef + def SomeModule: Symbol /** Function-like object that maps arity to symbols for classes `scala.Product` */ - def ProductClass: ClassDef + def ProductClass: Symbol /** Function-like object that maps arity to symbols for classes `scala.FunctionX`. * - 0th element is `Function0` @@ -117,7 +126,7 @@ trait StandardDefinitions extends TastyCore { * - ... * - Nth element is `FunctionN` */ - def FunctionClass(arity: Int, isImplicit: Boolean = false, isErased: Boolean = false): ClassDef + def FunctionClass(arity: Int, isImplicit: Boolean = false, isErased: Boolean = false): Symbol /** Function-like object that maps arity to symbols for classes `scala.TupleX`. * - 0th element is `NoSymbol` @@ -128,7 +137,7 @@ trait StandardDefinitions extends TastyCore { * - 23nd element is `NoSymbol` // TODO update when we will have more tuples * - ... */ - def TupleClass(arity: Int): ClassDef + def TupleClass(arity: Int): Symbol /** Contains Scala primitive value classes: * - Byte @@ -141,7 +150,7 @@ trait StandardDefinitions extends TastyCore { * - Boolean * - Unit */ - def ScalaPrimitiveValueClasses: List[ClassDef] + def ScalaPrimitiveValueClasses: List[Symbol] /** Contains Scala numeric value classes: * - Byte @@ -152,7 +161,7 @@ trait StandardDefinitions extends TastyCore { * - Double * - Char */ - def ScalaNumericValueClasses: List[ClassDef] + def ScalaNumericValueClasses: List[Symbol] } /** Defines standard types. diff --git a/library/src/scala/tasty/reflect/SymbolOps.scala b/library/src/scala/tasty/reflect/SymbolOps.scala index 0ddbd73ba8b1..5e5849ab872b 100644 --- a/library/src/scala/tasty/reflect/SymbolOps.scala +++ b/library/src/scala/tasty/reflect/SymbolOps.scala @@ -5,9 +5,26 @@ package reflect trait SymbolOps extends TastyCore { trait SymbolAPI { - def isEmpty: Boolean + + def owner(implicit ctx: Context): Symbol + + def exists(implicit ctx: Context): Boolean + def isClass(implicit ctx: Context): Boolean + + def flags(implicit ctx: Context): FlagSet + + def privateWithin(implicit ctx: Context): Option[Type] + def protectedWithin(implicit ctx: Context): Option[Type] + + def name(implicit ctx: Context): String + def fullName(implicit ctx: Context): String + def localContext(implicit ctx: Context): Context + def tree(implicit ctx: Context): Option[Definition] + + def annots(implicit ctx: Context): List[Term] + } implicit def SymbolDeco(symbol: Symbol): SymbolAPI diff --git a/library/src/scala/tasty/reflect/TreeOps.scala b/library/src/scala/tasty/reflect/TreeOps.scala index 253c134859a3..d66f309ca47d 100644 --- a/library/src/scala/tasty/reflect/TreeOps.scala +++ b/library/src/scala/tasty/reflect/TreeOps.scala @@ -46,12 +46,6 @@ trait TreeOps extends TastyCore { trait DefinitionAPI { def name(implicit ctx: Context): String - def flags(implicit ctx: Context): FlagSet - def privateWithin(implicit ctx: Context): Option[Type] - def protectedWithin(implicit ctx: Context): Option[Type] - def annots(implicit ctx: Context): List[Term] - def owner(implicit ctx: Context): Definition - def localContext(implicit ctx: Context): Context } implicit def DefinitionDeco(definition: Definition): DefinitionAPI diff --git a/library/src/scala/tasty/reflect/TypeOrBoundsOps.scala b/library/src/scala/tasty/reflect/TypeOrBoundsOps.scala index 166a6210a47b..946467ec0644 100644 --- a/library/src/scala/tasty/reflect/TypeOrBoundsOps.scala +++ b/library/src/scala/tasty/reflect/TypeOrBoundsOps.scala @@ -49,7 +49,7 @@ trait TypeOrBoundsOps extends TastyCore { val SymRef: SymRefExtractor abstract class SymRefExtractor { - def unapply(typeOrBounds: TypeOrBounds)(implicit ctx: Context): Option[(Definition, TypeOrBounds /* Type | NoPrefix */)] + def unapply(typeOrBounds: TypeOrBounds)(implicit ctx: Context): Option[(Symbol, TypeOrBounds /* Type | NoPrefix */)] } val TermRef: TermRefExtractor diff --git a/library/src/scala/tasty/util/ShowExtractors.scala b/library/src/scala/tasty/util/ShowExtractors.scala index 532408a6fc99..22da8dd63343 100644 --- a/library/src/scala/tasty/util/ShowExtractors.scala +++ b/library/src/scala/tasty/util/ShowExtractors.scala @@ -160,15 +160,8 @@ class ShowExtractors[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty case Type.ConstantType(value) => this += "Type.ConstantType(" += value += ")" case Type.SymRef(sym, qual) => - def visitName(sym: Definition): Buffer = sym match { - case ValDef(name, _, _) => this += "ValDef(\"" += name += "\", _, _)" - case DefDef(name, _, _, _, _) => this += "DefDef(\"" += name += "\", _, _, _, _)" - case TypeDef(name, _) => this += "TypeDef(\"" += name += "\", _)" - case ClassDef(name, _, _, _, _) => this += "ClassDef(\"" += name += "\", _, _, _, _)" - case PackageDef(name, _) => this += "PackageDef(\"" += name += "\", _)" - } this += "Type.SymRef(" - visitName(sym) + this += "<" += sym.fullName += ">" this += ", " += qual += ")" case Type.TermRef(name, qual) => this += "Type.TermRef(\"" += name += "\", " += qual += ")" diff --git a/library/src/scala/tasty/util/ShowSourceCode.scala b/library/src/scala/tasty/util/ShowSourceCode.scala index fefbd3195c90..66e45970b8bc 100644 --- a/library/src/scala/tasty/util/ShowSourceCode.scala +++ b/library/src/scala/tasty/util/ShowSourceCode.scala @@ -72,7 +72,7 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty case tree @ PackageClause(name, stats) => val stats1 = stats.collect { case IsPackageClause(stat) => stat - case IsDefinition(stat) if !(stat.flags.isObject && stat.flags.isLazy) => stat + case IsDefinition(stat) if !(stat.symbol.flags.isObject && stat.symbol.flags.isLazy) => stat case stat @ Import(_, _) => stat } name match { @@ -93,14 +93,14 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty case IsClassDef(cdef @ ClassDef(name, DefDef(_, targs, argss, _, _), parents, self, stats)) => printDefAnnotations(cdef) - val flags = cdef.flags + val flags = cdef.symbol.flags if (flags.isImplicit) this += "implicit " if (flags.isSealed) this += "sealed " if (flags.isFinal && !flags.isObject) this += "final " if (flags.isCase) this += "case " if (name == "package$") { - this += "package object " += cdef.owner.name.stripSuffix("$") + this += "package object " += cdef.symbol.owner.name.stripSuffix("$") } else if (flags.isObject) this += "object " += name.stripSuffix("$") else if (flags.isTrait) this += "trait " += name @@ -148,20 +148,20 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty printSeparated(parents1) def keepDefinition(d: Definition): Boolean = { - val flags = d.flags + val flags = d.symbol.flags def isCaseClassUnOverridableMethod: Boolean = { // Currently the compiler does not allow overriding some of the methods generated for case classes - d.flags.isSynthetic && + d.symbol.flags.isSynthetic && (d match { - case DefDef("apply" | "unapply", _, _, _, _) if d.owner.flags.isObject => true - case DefDef(n, _, _, _, _) if d.owner.flags.isCase => + case DefDef("apply" | "unapply", _, _, _, _) if d.symbol.owner.flags.isObject => true + case DefDef(n, _, _, _, _) if d.symbol.owner.flags.isCase => n == "copy" || n.matches("copy\\$default\\$[1-9][0-9]*") || // default parameters for the copy method n.matches("_[1-9][0-9]*") // Getters from Product case _ => false }) } - def isInnerModuleObject = d.flags.isLazy && d.flags.isObject + def isInnerModuleObject = d.symbol.flags.isLazy && d.symbol.flags.isObject !flags.isParam && !flags.isParamAccessor && !flags.isFieldAccessor && !isCaseClassUnOverridableMethod && !isInnerModuleObject } val stats1 = stats.collect { @@ -207,14 +207,14 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty case IsValDef(vdef @ ValDef(name, tpt, rhs)) => printDefAnnotations(vdef) - val flags = vdef.flags + val flags = vdef.symbol.flags if (flags.isImplicit) this += "implicit " if (flags.isOverride) this += "override " printProtectedOrPrivate(vdef) if (flags.isLazy) this += "lazy " - if (vdef.flags.isMutable) this += "var " + if (vdef.symbol.flags.isMutable) this += "var " else this += "val " this += name += ": " @@ -242,7 +242,7 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty val isConstructor = name == "" - val flags = ddef.flags + val flags = ddef.symbol.flags if (flags.isImplicit) this += "implicit " if (flags.isTransparent) this += "transparent " if (flags.isOverride) this += "override " @@ -359,7 +359,7 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty case Term.Block(stats0, expr) => val stats = stats0.filter { - case IsValDef(tree) => !tree.flags.isObject + case IsValDef(tree) => !tree.symbol.flags.isObject case _ => true } @@ -589,8 +589,8 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty args match { case Nil => case arg :: _ => - if (arg.flags.isErased) this += "erased " - if (arg.flags.isImplicit) this += "implicit " + if (arg.symbol.flags.isErased) this += "erased " + if (arg.symbol.flags.isImplicit) this += "implicit " } def printSeparated(list: List[ValDef]): Unit = list match { @@ -620,20 +620,20 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty def printParamDef(arg: ValDef): Unit = { val name = arg.name - arg.owner match { - case DefDef("", _, _, _, _) => - val ClassDef(_, _, _, _, body) = arg.owner.owner + arg.symbol.owner.tree match { + case Some(DefDef("", _, _, _, _)) => + val Some(ClassDef(_, _, _, _, body)) = arg.symbol.owner.owner.tree body.collectFirst { - case IsValDef(vdef @ ValDef(`name`, _, _)) if vdef.flags.isParamAccessor => - if (!vdef.flags.isLocal) { + case IsValDef(vdef @ ValDef(`name`, _, _)) if vdef.symbol.flags.isParamAccessor => + if (!vdef.symbol.flags.isLocal) { var printedPrefix = false - if (vdef.flags.isOverride) { + if (vdef.symbol.flags.isOverride) { this += "override " printedPrefix = true } printedPrefix |= printProtectedOrPrivate(vdef) - if (vdef.flags.isMutable) this += "var " - else if (printedPrefix || !vdef.flags.isCaseAcessor) this += "val " + if (vdef.symbol.flags.isMutable) this += "var " + else if (printedPrefix || !vdef.symbol.flags.isCaseAcessor) this += "val " else this // val not explicitly needed } } @@ -743,10 +743,10 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty printTypeAndAnnots(tp) this += " " printAnnotation(annot) - case Type.SymRef(ClassDef("Null$" | "Nothing$", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("runtime", _), NoPrefix()))) => + case Type.SymRef(sym, _) if sym.isClass && (sym.fullName == "scala.runtime.Null$" || sym.fullName == "scala.runtime.Nothing$") => // scala.runtime.Null$ and scala.runtime.Nothing$ are not modules, those are their actual names printType(tpe) - case tpe @ Type.SymRef(ClassDef(name, _, _, _, _), _) if name.endsWith("$") => + case tpe @ Type.SymRef(sym, _) if sym.isClass && sym.name.endsWith("$") => printType(tpe) this += ".type" case tpe => printType(tpe) @@ -826,7 +826,7 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty case Type.SymRef(sym, prefix) => prefix match { case Types.EmptyPrefix() => - case IsType(prefix @ Type.SymRef(ClassDef(_, _, _, _, _), _)) => + case IsType(prefix @ Type.SymRef(sym, _)) if sym.isClass => printType(prefix) this += "#" case IsType(prefix) => @@ -892,7 +892,7 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty case Type.ThisType(tp) => tp match { - case Type.SymRef(cdef @ ClassDef(_, _, _, _, _), _) if !cdef.flags.isObject => + case Type.SymRef(cdef, _) if !cdef.flags.isObject => printFullClassName(tp) this += ".this" case Type.TypeRef(name, prefix) if name.endsWith("$") => @@ -955,10 +955,10 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty } def printDefAnnotations(definition: Definition): Buffer = { - val annots = definition.annots.filter { + val annots = definition.symbol.annots.filter { case Annotation(annot, _) => annot.tpe match { - case Type.TypeRef(_, Type.SymRef(PackageDef("internal", _), Type.ThisType(Type.SymRef(PackageDef("annotation", _), NoPrefix())))) => false + case Type.TypeRef(_, Type.SymRef(sym, _)) if sym.fullName == "scala.annotation.internal" => false case Type.TypeRef("forceInline", Types.ScalaPackage()) => false case _ => true } @@ -1055,19 +1055,20 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty def printProtectedOrPrivate(definition: Definition): Boolean = { var prefixWasPrinted = false def printWithin(within: Type) = within match { - case Type.SymRef(PackageDef(name, _), _) => this += name + case Type.SymRef(sym, _) => + this += sym.name case _ => printFullClassName(within) } - if (definition.flags.isProtected) { + if (definition.symbol.flags.isProtected) { this += "protected" - definition.protectedWithin match { + definition.symbol.protectedWithin match { case Some(within) => inSquare(printWithin(within)) case _ => } prefixWasPrinted = true } else { - definition.privateWithin match { + definition.symbol.privateWithin match { case Some(within) => this += "private" inSquare(printWithin(within)) @@ -1082,14 +1083,14 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty def printFullClassName(tp: TypeOrBounds): Unit = { def printClassPrefix(prefix: TypeOrBounds): Unit = prefix match { - case Type.SymRef(ClassDef(name, _, _, _, _), prefix2) => + case Type.SymRef(sym, prefix2) if sym.isClass => printClassPrefix(prefix2) - this += name += "." + this += sym.name += "." case _ => } - val Type.SymRef(ClassDef(name, _, _, _, _), prefix) = tp + val Type.SymRef(sym, prefix) = tp printClassPrefix(prefix) - this += name + this += sym.name } def +=(x: Boolean): this.type = { sb.append(x); this } @@ -1121,8 +1122,11 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty def unapply(arg: Tree)(implicit ctx: Context): Option[(String, List[Term])] = arg match { case IsTerm(arg @ Term.Apply(fn, args)) => fn.tpe match { - case Type.SymRef(DefDef(op, _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix()))) => - Some((op, args)) + case Type.SymRef(sym, Type.ThisType(Type.SymRef(sym2, _))) if sym2.name == "" => + sym.tree match { + case Some(DefDef(op, _, _, _, _)) => Some((op, args)) + case _ => None + } case _ => None } case _ => None @@ -1143,7 +1147,7 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty object JavaLangObject { def unapply(tpe: Type)(implicit ctx: Context): Boolean = tpe match { - case Type.TypeRef("Object", Type.SymRef(PackageDef("lang", _), Type.ThisType(Type.SymRef(PackageDef("java", _), NoPrefix())))) => true + case Type.TypeRef("Object", Type.SymRef(sym, _)) if sym.fullName == "java.lang" => true case _ => false } } @@ -1157,21 +1161,21 @@ class ShowSourceCode[T <: Tasty with Singleton](tasty0: T) extends Show[T](tasty object ScalaPackage { def unapply(tpe: TypeOrBounds)(implicit ctx: Context): Boolean = tpe match { - case Type.SymRef(PackageDef("scala", _), Type.ThisType(RootPackage())) => true + case Type.SymRef(sym, _) => sym == definitions.ScalaPackage case _ => false } } object RootPackage { def unapply(tpe: TypeOrBounds)(implicit ctx: Context): Boolean = tpe match { - case Type.SymRef(PackageDef("", _), NoPrefix()) => true + case Type.SymRef(sym, _) => sym.fullName == "" // TODO use Symbol.== case _ => false } } object EmptyPackage { def unapply(tpe: TypeOrBounds)(implicit ctx: Context): Boolean = tpe match { - case Type.SymRef(PackageDef("", _), NoPrefix() | Type.ThisType(RootPackage())) => true + case Type.SymRef(sym, _) => sym.fullName == "" case _ => false } } diff --git a/tests/neg/tasty-macro-assert/quoted_1.scala b/tests/neg/tasty-macro-assert/quoted_1.scala index bfc4dbe2341b..76f444240ffe 100644 --- a/tests/neg/tasty-macro-assert/quoted_1.scala +++ b/tests/neg/tasty-macro-assert/quoted_1.scala @@ -20,7 +20,11 @@ object Asserts { val tree = cond.toTasty def isOps(tpe: TypeOrBounds): Boolean = tpe match { - case Type.SymRef(DefDef("Ops", _, _, _, _), _) => true // TODO check that the parent is Asserts + case Type.SymRef(sym, _) => + sym.tree match { + case Some(DefDef("Ops", _, _, _, _)) => true // TODO check that the parent is Asserts + case _ => false + } case _ => false } diff --git a/tests/run/tasty-custom-show/quoted_1.scala b/tests/run/tasty-custom-show/quoted_1.scala index 19b716fecf6c..7f7d63e4c928 100644 --- a/tests/run/tasty-custom-show/quoted_1.scala +++ b/tests/run/tasty-custom-show/quoted_1.scala @@ -22,12 +22,12 @@ object Macros { case IsDefinition(tree @ DefDef(name, _, _, _, _)) => buff.append(name) buff.append("\n") - buff.append(tree.owner.show) + buff.append(tree.symbol.owner.tree.get.show) buff.append("\n\n") case IsDefinition(tree @ ValDef(name, _, _)) => buff.append(name) buff.append("\n") - buff.append(tree.owner.show) + buff.append(tree.symbol.owner.tree.get.show) buff.append("\n\n") case _ => } diff --git a/tests/run/tasty-definitions-1.check b/tests/run/tasty-definitions-1.check index 1cd04503f50d..266244b87d91 100644 --- a/tests/run/tasty-definitions-1.check +++ b/tests/run/tasty-definitions-1.check @@ -155,17 +155,17 @@ Tuple21 Tuple22 List(Unit, Boolean, Byte, Short, Int, Long, Float, Double, Char) List(Byte, Short, Int, Long, Float, Double, Char) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("Byte", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("Char", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("Int", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("Long", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("Float", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("Double", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("Boolean", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("Any", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("AnyVal", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(TypeDef("AnyRef", _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("Object", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("lang", _), NoPrefix()))) -Type.SymRef(ClassDef("Nothing", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) -Type.SymRef(ClassDef("Null", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) diff --git a/tests/run/tasty-eval/quoted_1.scala b/tests/run/tasty-eval/quoted_1.scala index dada0c5925f9..683ed0a970bb 100644 --- a/tests/run/tasty-eval/quoted_1.scala +++ b/tests/run/tasty-eval/quoted_1.scala @@ -23,11 +23,16 @@ object Macros { import tasty._ e.toTasty.tpe match { - case Type.SymRef(ValDef(_, tpt, _), pre) => - tpt.tpe match { - case Type.ConstantType(Constant.Int(i)) => Some(i) + case Type.SymRef(sym, pre) => + sym.tree match { + case Some(ValDef(_, tpt, _)) => + tpt.tpe match { + case Type.ConstantType(Constant.Int(i)) => Some(i) + case _ => None + } case _ => None } + case Type.ConstantType(Constant.Int(i)) => Some(i) case _ => None } diff --git a/tests/run/tasty-extractors-1.check b/tests/run/tasty-extractors-1.check index 61b5cc647af5..171702891e5c 100644 --- a/tests/run/tasty-extractors-1.check +++ b/tests/run/tasty-extractors-1.check @@ -17,16 +17,16 @@ Term.Literal(Constant.String("abc")) Type.ConstantType(Constant.String("abc")) Term.Inlined(None, Nil, Term.Apply(Term.Ident("println"), List(Term.Literal(Constant.String("abc"))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Typed(Term.Literal(Constant.Int(8)), TypeTree.TypeIdent("Int"))) -Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))) +Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))) Term.Inlined(None, Nil, Term.Typed(Term.Literal(Constant.Byte(8)), TypeTree.TypeIdent("Byte"))) -Type.SymRef(ClassDef("Byte", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))) +Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))) Term.Inlined(None, Nil, Term.Typed(Term.Literal(Constant.Short(8)), TypeTree.TypeIdent("Short"))) -Type.SymRef(ClassDef("Short", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))) +Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))) Term.Literal(Constant.Char(a)) Type.ConstantType(Constant.Char(a)) @@ -35,86 +35,86 @@ Term.Inlined(None, Nil, Term.Block(List(Term.Literal(Constant.Int(1)), Term.Lite Type.ConstantType(Constant.Int(3)) Term.Inlined(None, Nil, Term.If(Term.Typed(Term.Literal(Constant.Boolean(true)), TypeTree.TypeIdent("Boolean")), Term.Literal(Constant.Int(1)), Term.Literal(Constant.Int(2)))) -Type.SymRef(ClassDef("Int", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Match(Term.Literal(Constant.String("a")), List(CaseDef(Pattern.Value(Term.Literal(Constant.String("a"))), None, Term.Literal(Constant.Unit()))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Match(Term.Literal(Constant.String("b")), List(CaseDef(Pattern.Bind("n", Pattern.Value(Term.Ident("_"))), None, Term.Literal(Constant.Unit()))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Match(Term.Literal(Constant.String("c")), List(CaseDef(Pattern.Bind("n", Pattern.TypeTest(TypeTree.TypeIdent("String"))), None, Term.Literal(Constant.Unit()))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Match(Term.Literal(Constant.String("e")), List(CaseDef(Pattern.Value(Term.Ident("_")), None, Term.Literal(Constant.Unit()))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Match(Term.Literal(Constant.String("f")), List(CaseDef(Pattern.TypeTest(TypeTree.TypeIdent("String")), None, Term.Literal(Constant.Unit()))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Match(Term.Typed(Term.Literal(Constant.String("g")), TypeTree.TypeIdent("Any")), List(CaseDef(Pattern.Alternative(List(Pattern.TypeTest(TypeTree.TypeIdent("String")), Pattern.TypeTest(TypeTree.TypeIdent("Int")))), None, Term.Literal(Constant.Unit()))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Match(Term.Literal(Constant.String("h")), List(CaseDef(Pattern.Value(Term.Ident("_")), Some(Term.Literal(Constant.Boolean(false))), Term.Literal(Constant.Unit()))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ValDef("a", TypeTree.Synthetic(), Some(Term.Literal(Constant.String("o"))))), Term.Match(Term.Literal(Constant.String("i")), List(CaseDef(Pattern.Bind("a", Pattern.Value(Term.Ident("_"))), None, Term.Literal(Constant.Unit())))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Match(Term.Ident("Nil"), List(CaseDef(Pattern.Unapply(Term.TypeApply(Term.Select(Term.Ident("List"), "unapplySeq", Some(Signature(List(scala.collection.Seq), scala.Some))), List(TypeTree.Synthetic())), Nil, List(Pattern.Bind("a", Pattern.Value(Term.Ident("_"))), Pattern.Bind("b", Pattern.Value(Term.Ident("_"))), Pattern.Bind("c", Pattern.Value(Term.Ident("_"))))), None, Term.Literal(Constant.Unit()))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Try(Term.Literal(Constant.Int(1)), List(CaseDef(Pattern.Value(Term.Ident("_")), None, Term.Literal(Constant.Unit()))), None)) -Type.OrType(Type.SymRef(ClassDef("Int", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))), Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))) +Type.OrType(Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))), Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))) Term.Inlined(None, Nil, Term.Try(Term.Literal(Constant.Int(2)), Nil, Some(Term.Literal(Constant.Unit())))) Type.ConstantType(Constant.Int(2)) Term.Inlined(None, Nil, Term.Try(Term.Literal(Constant.Int(3)), List(CaseDef(Pattern.Value(Term.Ident("_")), None, Term.Literal(Constant.Unit()))), Some(Term.Literal(Constant.Unit())))) -Type.OrType(Type.SymRef(ClassDef("Int", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))), Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))) +Type.OrType(Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))), Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))) Term.Inlined(None, Nil, Term.Apply(Term.Select(Term.Literal(Constant.String("a")), "==", Some(Signature(List(java.lang.Object), scala.Boolean))), List(Term.Literal(Constant.String("b"))))) -Type.SymRef(ClassDef("Boolean", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Apply(Term.Select(Term.New(TypeTree.TypeIdent("Object")), "", Some(Signature(Nil, java.lang.Object))), Nil)) -Type.SymRef(ClassDef("Object", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("lang", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Apply(Term.Select(Term.Ident("Int"), "box", Some(Signature(List(scala.Int), java.lang.Integer))), List(Term.NamedArg("x", Term.Literal(Constant.Int(9)))))) -Type.SymRef(ClassDef("Integer", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("lang", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Apply(Term.TypeApply(Term.Select(Term.Ident("Ordering"), "apply", Some(Signature(List(scala.math.Ordering), scala.math.Ordering))), List(TypeTree.TypeIdent("Int"))), List(Term.Ident("Int")))) -Type.AppliedType(Type.SymRef(ClassDef("Ordering", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("math", _), NoPrefix()))), List(Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))))) +Type.AppliedType(Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))), List(Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))))) Term.Inlined(None, Nil, Term.Block(List(ValDef("a", TypeTree.TypeIdent("Int"), Some(Term.Literal(Constant.Int(3))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ValDef("b", TypeTree.TypeIdent("Int"), Some(Term.Literal(Constant.Int(3))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(DefDef("f1", Nil, Nil, TypeTree.TypeIdent("Int"), Some(Term.Literal(Constant.Int(3))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(DefDef("f2", Nil, Nil, TypeTree.TypeIdent("Int"), Some(Term.Return(Term.Literal(Constant.Int(4)))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(DefDef("f3", Nil, List(List(ValDef("i", TypeTree.TypeIdent("Int"), None))), TypeTree.TypeIdent("Int"), Some(Term.Ident("i")))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(DefDef("f4", Nil, List(List(ValDef("i", TypeTree.TypeIdent("Int"), None)), List(ValDef("j", TypeTree.TypeIdent("Int"), None))), TypeTree.TypeIdent("Int"), Some(Term.Apply(Term.Select(Term.Ident("i"), "+", Some(Signature(List(scala.Int), scala.Int))), List(Term.Ident("j")))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(DefDef("f5", Nil, List(List(ValDef("i", TypeTree.TypeIdent("Int"), None))), TypeTree.TypeIdent("Int"), Some(Term.Ident("i"))), DefDef("f5$default$1", Nil, Nil, TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(9))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(DefDef("f6", List(TypeDef("T", TypeBoundsTree(TypeTree.Synthetic(), TypeTree.Synthetic()))), List(List(ValDef("x", TypeTree.TypeIdent("T"), None))), TypeTree.TypeIdent("T"), Some(Term.Ident("x")))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(DefDef("f7", List(TypeDef("T", TypeBoundsTree(TypeTree.Synthetic(), TypeTree.Synthetic()))), List(List(ValDef("x", TypeTree.TypeIdent("T"), None))), TypeTree.Singleton(Term.Ident("x")), Some(Term.Ident("x")))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(DefDef("f8", Nil, List(List(ValDef("i", TypeTree.Annotated(TypeTree.Applied(TypeTree.Synthetic(), List(TypeTree.TypeIdent("Int"))), Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, scala.annotation.internal.Repeated))), Nil)), None))), TypeTree.TypeIdent("Int"), Some(Term.Literal(Constant.Int(9))))), Term.Apply(Term.Ident("f8"), List(Term.Typed(Term.Repeated(List(Term.Literal(Constant.Int(1)), Term.Literal(Constant.Int(2)), Term.Literal(Constant.Int(3)))), TypeTree.Synthetic()))))) -Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))) +Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))) Term.Inlined(None, Nil, Term.Block(List(DefDef("f9", Nil, List(List(ValDef("i", TypeTree.ByName(TypeTree.TypeIdent("Int")), None))), TypeTree.TypeIdent("Int"), Some(Term.Ident("i")))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) diff --git a/tests/run/tasty-extractors-2.check b/tests/run/tasty-extractors-2.check index aefe23bdf1f6..da2a76ae0429 100644 --- a/tests/run/tasty-extractors-2.check +++ b/tests/run/tasty-extractors-2.check @@ -1,105 +1,105 @@ Term.Inlined(None, Nil, Term.Block(List(ValDef("x", TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(1))))), Term.Assign(Term.Ident("x"), Term.Literal(Constant.Int(2))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(DefDef("$anonfun", Nil, List(List(ValDef("x", TypeTree.TypeIdent("Int"), None))), TypeTree.Synthetic(), Some(Term.Ident("x")))), Term.Lambda(Term.Ident("$anonfun"), None))) -Type.AppliedType(Type.SymRef(ClassDef("Function1", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))), List(Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))), Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))))) +Type.AppliedType(Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))), List(Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))), Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))))) Term.Inlined(None, Nil, Term.Ident("???")) -Type.SymRef(DefDef("???", _, _, _, _), Type.SymRef(ValDef("Predef", _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))) +Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))) Term.Literal(Constant.Int(1)) Type.ConstantType(Constant.Int(1)) Term.Inlined(None, Nil, Term.Typed(Term.Literal(Constant.Int(1)), TypeTree.TypeIdent("Int"))) -Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))) +Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))) Term.Inlined(None, Nil, Term.Typed(Term.Ident("Nil"), TypeTree.Applied(TypeTree.TypeIdent("List"), List(TypeTree.TypeIdent("Int"))))) -Type.AppliedType(Type.SymRef(ClassDef("List", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("immutable", _), NoPrefix()))), List(Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))))) +Type.AppliedType(Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))), List(Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))))) Term.Inlined(None, Nil, Term.Typed(Term.Apply(Term.Select(Term.New(TypeTree.TypeIdent("Baz")), "", Some(Signature(Nil, Baz))), Nil), TypeTree.And(TypeTree.TypeIdent("Foo"), TypeTree.TypeIdent("Bar")))) -Type.AndType(Type.SymRef(ClassDef("Foo", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix()))), Type.SymRef(ClassDef("Bar", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))) +Type.AndType(Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix()))), Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))) Term.Inlined(None, Nil, Term.Typed(Term.Literal(Constant.Int(1)), TypeTree.Or(TypeTree.TypeIdent("Int"), TypeTree.TypeIdent("String")))) -Type.OrType(Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))), Type.SymRef(TypeDef("String", _), Type.SymRef(ValDef("Predef", _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))))) +Type.OrType(Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))), Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, Nil)), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ValDef("Foo", TypeTree.TypeIdent("Foo$"), Some(Term.Apply(Term.Select(Term.New(TypeTree.TypeIdent("Foo$")), "", Some(Signature(Nil, Test$._$Foo$))), Nil))), ClassDef("Foo$", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), Some(ValDef("_", TypeTree.Singleton(Term.Ident("Foo")), None)), Nil)), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(TypeDef("Foo", TypeBoundsTree(TypeTree.Synthetic(), TypeTree.Synthetic()))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(TypeDef("Foo", TypeTree.TypeIdent("Int"))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(TypeDef("Foo", TypeBoundsTree(TypeTree.TypeIdent("Null"), TypeTree.TypeIdent("Object")))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("a", TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(0)))), DefDef("a_=", Nil, List(List(ValDef("x$1", TypeTree.Synthetic(), None))), TypeTree.Synthetic(), Some(Term.Literal(Constant.Unit())))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(DefDef("a", Nil, Nil, TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(0))))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(DefDef("a", Nil, Nil, TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(0))))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(DefDef("a", Nil, Nil, TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(0))))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil), TypeTree.TermSelect(Term.Select(Term.Ident("_root_"), "scala", None), "Product")), None, List(DefDef("copy", Nil, List(Nil), TypeTree.Synthetic(), Some(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, Test$._$Foo))), Nil))), DefDef("hashCode", Nil, List(Nil), TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(394005536)))), DefDef("equals", Nil, List(List(ValDef("x$0", TypeTree.Synthetic(), None))), TypeTree.Synthetic(), Some(Term.Apply(Term.Select(Term.Apply(Term.Select(Term.This(Some(Id("Foo"))), "eq", Some(Signature(List(java.lang.Object), scala.Boolean))), List(Term.TypeApply(Term.Select(Term.Ident("x$0"), "asInstanceOf", Some(Signature(Nil, java.lang.Object))), List(TypeTree.Synthetic())))), "||", Some(Signature(List(scala.Boolean), scala.Boolean))), List(Term.Match(Term.Ident("x$0"), List(CaseDef(Pattern.Bind("x$0", Pattern.TypeTest(TypeTree.Synthetic())), None, Term.Literal(Constant.Boolean(true))), CaseDef(Pattern.Value(Term.Ident("_")), None, Term.Literal(Constant.Boolean(false))))))))), DefDef("toString", Nil, List(Nil), TypeTree.Synthetic(), Some(Term.Apply(Term.Ident("_toString"), List(Term.This(Some(Id("Foo"))))))), DefDef("canEqual", Nil, List(List(ValDef("that", TypeTree.Synthetic(), None))), TypeTree.Synthetic(), Some(Term.TypeApply(Term.Select(Term.Ident("that"), "isInstanceOf", Some(Signature(Nil, scala.Boolean))), List(TypeTree.Synthetic())))), DefDef("productArity", Nil, Nil, TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(0)))), DefDef("productPrefix", Nil, Nil, TypeTree.Synthetic(), Some(Term.Literal(Constant.String("Foo")))), DefDef("productElement", Nil, List(List(ValDef("n", TypeTree.Synthetic(), None))), TypeTree.Synthetic(), Some(Term.Match(Term.Ident("n"), List(CaseDef(Pattern.Value(Term.Ident("_")), None, Term.Apply(Term.Ident("throw"), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(List(java.lang.String), java.lang.IndexOutOfBoundsException))), List(Term.Apply(Term.Select(Term.Ident("n"), "toString", Some(Signature(Nil, java.lang.String))), Nil)))))))))))), ValDef("Foo", TypeTree.TypeIdent("Foo$"), Some(Term.Apply(Term.Select(Term.New(TypeTree.TypeIdent("Foo$")), "", Some(Signature(Nil, Test$._$Foo$))), Nil))), ClassDef("Foo$", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil), TypeTree.Applied(TypeTree.Synthetic(), List(TypeTree.Synthetic()))), Some(ValDef("_", TypeTree.Singleton(Term.Ident("Foo")), None)), List(DefDef("apply", Nil, List(Nil), TypeTree.Synthetic(), Some(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, Test$._$Foo))), Nil))), DefDef("unapply", Nil, List(List(ValDef("x$1", TypeTree.Synthetic(), None))), TypeTree.Synthetic(), Some(Term.Literal(Constant.Boolean(true))))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo1", DefDef("", Nil, List(List(ValDef("a", TypeTree.TypeIdent("Int"), None))), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("a", TypeTree.Synthetic(), None)))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo2", DefDef("", Nil, List(List(ValDef("b", TypeTree.TypeIdent("Int"), None))), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("b", TypeTree.Synthetic(), None)))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo3", DefDef("", Nil, List(List(ValDef("a", TypeTree.TypeIdent("Int"), None))), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("a", TypeTree.Synthetic(), None))), ValDef("Foo3", TypeTree.TypeIdent("Foo3$"), Some(Term.Apply(Term.Select(Term.New(TypeTree.TypeIdent("Foo3$")), "", Some(Signature(Nil, Test$._$Foo3$))), Nil))), ClassDef("Foo3$", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), Some(ValDef("_", TypeTree.Singleton(Term.Ident("Foo3")), None)), List(DefDef("$lessinit$greater$default$1", Nil, Nil, TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(5))))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo4", DefDef("", Nil, List(List(ValDef("a", TypeTree.TypeIdent("Int"), None)), List(ValDef("b", TypeTree.TypeIdent("Int"), None))), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("a", TypeTree.Synthetic(), None), ValDef("b", TypeTree.Synthetic(), None)))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo5", DefDef("", Nil, List(List(ValDef("a", TypeTree.TypeIdent("Int"), None)), List(ValDef("b", TypeTree.TypeIdent("Int"), None))), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("a", TypeTree.Synthetic(), None), ValDef("b", TypeTree.Synthetic(), None))), ValDef("Foo5", TypeTree.TypeIdent("Foo5$"), Some(Term.Apply(Term.Select(Term.New(TypeTree.TypeIdent("Foo5$")), "", Some(Signature(Nil, Test$._$Foo5$))), Nil))), ClassDef("Foo5$", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), Some(ValDef("_", TypeTree.Singleton(Term.Ident("Foo5")), None)), List(DefDef("$lessinit$greater$default$2", Nil, List(List(ValDef("a", TypeTree.TypeIdent("Int"), None))), TypeTree.Synthetic(), Some(Term.Ident("a")))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo6", DefDef("", Nil, List(List(ValDef("a", TypeTree.TypeIdent("Int"), None)), List(ValDef("b", TypeTree.Singleton(Term.Ident("a")), None))), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("a", TypeTree.Synthetic(), None), ValDef("b", TypeTree.Synthetic(), None)))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo7", DefDef("", Nil, List(List(ValDef("a", TypeTree.TypeIdent("Int"), None))), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("a", TypeTree.Synthetic(), None), DefDef("", Nil, List(Nil), TypeTree.Synthetic(), Some(Term.Block(List(Term.Apply(Term.Select(Term.This(Some(Id("Foo7"))), "", Some(Signature(List(scala.Int), Test$._$Foo7))), List(Term.Literal(Constant.Int(6))))), Term.Literal(Constant.Unit()))))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo8", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(Term.Apply(Term.Ident("println"), List(Term.Literal(Constant.Int(0))))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo10", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("a", TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(9))))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo11", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("a", TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(10)))), DefDef("a_=", Nil, List(List(ValDef("x$1", TypeTree.Synthetic(), None))), TypeTree.Synthetic(), Some(Term.Literal(Constant.Unit())))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo12", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("a", TypeTree.Synthetic(), Some(Term.Literal(Constant.Int(11))))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, Nil), ClassDef("Bar", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.TypeIdent("Foo")), "", Some(Signature(Nil, Test$._$Foo))), Nil)), None, Nil)), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo2", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(TypeTree.Synthetic()), None, Nil), ClassDef("Bar", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil), TypeTree.TypeIdent("Foo2")), None, Nil)), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo", DefDef("", Nil, List(List(ValDef("i", TypeTree.TypeIdent("Int"), None))), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(ValDef("i", TypeTree.Synthetic(), None))), ClassDef("Bar", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.TypeIdent("Foo")), "", Some(Signature(List(scala.Int), Test$._$Foo))), List(Term.Literal(Constant.Int(1))))), None, Nil)), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(TypeDef("X", TypeTree.TypeIdent("Int")))), DefDef("f", Nil, List(List(ValDef("a", TypeTree.TypeIdent("Foo"), None))), TypeTree.TermSelect(Term.Ident("a"), "X"), Some(Term.Ident("???")))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ClassDef("Foo", DefDef("", Nil, List(Nil), TypeTree.Synthetic(), None), List(Term.Apply(Term.Select(Term.New(TypeTree.Synthetic()), "", Some(Signature(Nil, java.lang.Object))), Nil)), None, List(TypeDef("X", TypeBoundsTree(TypeTree.Synthetic(), TypeTree.Synthetic())))), DefDef("f", Nil, List(List(ValDef("a", TypeTree.Refined(TypeTree.TypeIdent("Foo"), List(TypeDef("X", TypeTree.TypeIdent("Int")))), None))), TypeTree.TermSelect(Term.Ident("a"), "X"), Some(Term.Ident("???")))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) Term.Inlined(None, Nil, Term.Block(List(ValDef("lambda", TypeTree.Applied(TypeTree.Synthetic(), List(TypeTree.TypeIdent("Int"), TypeTree.TypeIdent("Int"))), Some(Term.Block(List(DefDef("$anonfun", Nil, List(List(ValDef("x", TypeTree.Synthetic(), None))), TypeTree.Synthetic(), Some(Term.Ident("x")))), Term.Lambda(Term.Ident("$anonfun"), None))))), Term.Literal(Constant.Unit()))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) diff --git a/tests/run/tasty-extractors-3.check b/tests/run/tasty-extractors-3.check index f53c7ac4b640..d7dc393a6343 100644 --- a/tests/run/tasty-extractors-3.check +++ b/tests/run/tasty-extractors-3.check @@ -1,42 +1,42 @@ -Type.SymRef(ClassDef("Int", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) -Type.SymRef(ValDef("x", _, _), NoPrefix()) +Type.SymRef(, NoPrefix()) -TypeBounds(Type.SymRef(ClassDef("Nothing", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))), Type.SymRef(ClassDef("Any", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))) +TypeBounds(Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))), Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))) -Type.SymRef(ClassDef("Nothing", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) -Type.SymRef(ClassDef("Any", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) -Type.SymRef(TypeDef("T", _), NoPrefix()) +Type.SymRef(, NoPrefix()) -TypeBounds(Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))), Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix()))))) +TypeBounds(Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))), Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix()))))) -Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))) +Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))) -Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))) +Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))) -Type.SymRef(TypeDef("T", _), NoPrefix()) +Type.SymRef(, NoPrefix()) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) -Type.SymRef(ClassDef("Object", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("lang", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) -TypeBounds(Type.SymRef(ClassDef("Nothing", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))), Type.SymRef(ClassDef("Any", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))) +TypeBounds(Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))), Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))) -Type.SymRef(ClassDef("Nothing", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) -Type.SymRef(ClassDef("Any", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) -Type.Refinement(Type.SymRef(ClassDef("Foo", _, _, _, _), NoPrefix()), X, TypeBounds(Type.SymRef(TypeDef("String", _), Type.SymRef(ValDef("Predef", _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))), Type.SymRef(TypeDef("String", _), Type.SymRef(ValDef("Predef", _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))))) +Type.Refinement(Type.SymRef(, NoPrefix()), X, TypeBounds(Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))), Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))))) -Type.SymRef(ClassDef("Unit", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix()))) +Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))) -Type.SymRef(ClassDef("Foo", _, _, _, _), NoPrefix()) +Type.SymRef(, NoPrefix()) -Type.SymRef(TypeDef("String", _), Type.SymRef(ValDef("Predef", _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))) +Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))) -Type.SymRef(ClassDef("$anon", _, _, _, _), NoPrefix()) +Type.SymRef(, NoPrefix()) -Type.Refinement(Type.SymRef(ClassDef("Foo", _, _, _, _), NoPrefix()), X, TypeBounds(Type.SymRef(TypeDef("String", _), Type.SymRef(ValDef("Predef", _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))), Type.SymRef(TypeDef("String", _), Type.SymRef(ValDef("Predef", _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))))) +Type.Refinement(Type.SymRef(, NoPrefix()), X, TypeBounds(Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))), Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))))) diff --git a/tests/run/tasty-extractors-owners/quoted_1.scala b/tests/run/tasty-extractors-owners/quoted_1.scala index 9d15702eee76..aec06a26f886 100644 --- a/tests/run/tasty-extractors-owners/quoted_1.scala +++ b/tests/run/tasty-extractors-owners/quoted_1.scala @@ -19,12 +19,12 @@ object Macros { case IsDefinition(tree @ DefDef(name, _, _, _, _)) => buff.append(name) buff.append("\n") - buff.append(tree.owner.show) + buff.append(tree.symbol.owner.tree.get.show) buff.append("\n\n") case IsDefinition(tree @ ValDef(name, _, _)) => buff.append(name) buff.append("\n") - buff.append(tree.owner.show) + buff.append(tree.symbol.owner.tree.get.show) buff.append("\n\n") case _ => } diff --git a/tests/run/tasty-extractors-types.check b/tests/run/tasty-extractors-types.check index 1eb1d3cef256..6707ff0c5103 100644 --- a/tests/run/tasty-extractors-types.check +++ b/tests/run/tasty-extractors-types.check @@ -1,12 +1,12 @@ TypeTree.Synthetic() -Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))) +Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))) TypeTree.Synthetic() -Type.AppliedType(Type.SymRef(ClassDef("List", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("immutable", _), NoPrefix()))), List(Type.SymRef(TypeDef("String", _), Type.SymRef(ValDef("Predef", _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))))) +Type.AppliedType(Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))), List(Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))))) TypeTree.Synthetic() -Type.AppliedType(Type.SymRef(ClassDef("Map", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("immutable", _), NoPrefix()))), List(Type.SymRef(TypeDef("String", _), Type.SymRef(ValDef("Predef", _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))), Type.SymRef(ClassDef("Int", _, _, _, _), Type.SymRef(PackageDef("scala", _), Type.ThisType(Type.SymRef(PackageDef("", _), NoPrefix())))))) +Type.AppliedType(Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))), List(Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))), Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(<>, NoPrefix())))))) TypeTree.Synthetic() -Type.AppliedType(Type.SymRef(ClassDef("Map", _, _, _, _), Type.ThisType(Type.SymRef(PackageDef("immutable", _), NoPrefix()))), List(Type.SymRef(TypeDef("String", _), Type.SymRef(ValDef("Predef", _, _), Type.ThisType(Type.SymRef(PackageDef("scala", _), NoPrefix())))), Type.SymRef(TypeDef("I", _), NoPrefix()))) +Type.AppliedType(Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix()))), List(Type.SymRef(, Type.SymRef(, Type.ThisType(Type.SymRef(, NoPrefix())))), Type.SymRef(, NoPrefix()))) diff --git a/tests/run/tasty-location/quoted_1.scala b/tests/run/tasty-location/quoted_1.scala index ccb088ab1c66..48ee3668952c 100644 --- a/tests/run/tasty-location/quoted_1.scala +++ b/tests/run/tasty-location/quoted_1.scala @@ -12,12 +12,9 @@ object Location { def impl(implicit tasty: Tasty): Expr[Location] = { import tasty._ - def listOwnerNames(definition: Definition, acc: List[String]): List[String] = definition match { - case ValDef(name, _, _) => listOwnerNames(definition.owner, name :: acc) - case DefDef(name, _, _, _, _) => listOwnerNames(definition.owner, name :: acc) - case ClassDef(name, _, _, _, _) => listOwnerNames(definition.owner, name :: acc) - case _ => acc - } + def listOwnerNames(sym: Symbol, acc: List[String]): List[String] = + if (sym == definitions.RootClass || sym == definitions.EmptyPackageClass) acc + else listOwnerNames(sym.owner, sym.name :: acc) val list = listOwnerNames(rootContext.owner, Nil) '(new Location(~list.toExpr)) diff --git a/tests/run/tasty-macro-assert/quoted_1.scala b/tests/run/tasty-macro-assert/quoted_1.scala index 212c27732280..bafb9a454809 100644 --- a/tests/run/tasty-macro-assert/quoted_1.scala +++ b/tests/run/tasty-macro-assert/quoted_1.scala @@ -20,7 +20,11 @@ object Asserts { val tree = cond.toTasty def isOps(tpe: TypeOrBounds): Boolean = tpe match { - case Type.SymRef(DefDef("Ops", _, _, _, _), _) => true // TODO check that the parent is Asserts + case Type.SymRef(sym, _) => + sym.tree match { + case Some(DefDef("Ops", _, _, _, _)) => true // TODO check that the parent is Asserts + case _ => false + } case _ => false }