Skip to content

Commit 52abc52

Browse files
committed
Use attachment for backquoted TypeDef
1 parent 9d48568 commit 52abc52

File tree

3 files changed

+4
-12
lines changed

3 files changed

+4
-12
lines changed

compiler/src/dotty/tools/dotc/ast/Trees.scala

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -769,13 +769,7 @@ object Trees {
769769
/** Is this a definition of a class? */
770770
def isClassDef: Boolean = rhs.isInstanceOf[Template[_]]
771771

772-
def isBackquoted: Boolean = false
773-
}
774-
775-
class BackquotedTypeDef[-T >: Untyped] private[ast] (name: TypeName, rhs: Tree[T])(implicit @constructorOnly src: SourceFile)
776-
extends TypeDef[T](name, rhs) {
777-
override def isBackquoted: Boolean = true
778-
override def productPrefix: String = "BackquotedTypeDef"
772+
def isBackquoted: Boolean = hasAttachment(Backquoted)
779773
}
780774

781775
/** extends parents { self => body }
@@ -990,7 +984,6 @@ object Trees {
990984
type ValDef = Trees.ValDef[T]
991985
type DefDef = Trees.DefDef[T]
992986
type TypeDef = Trees.TypeDef[T]
993-
type BackquotedTypeDef = Trees.BackquotedTypeDef[T]
994987
type Template = Trees.Template[T]
995988
type Import = Trees.Import[T]
996989
type PackageDef = Trees.PackageDef[T]

compiler/src/dotty/tools/dotc/ast/untpd.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,6 @@ object untpd extends Trees.Instance[Untyped] with UntypedTreeInfo {
339339
def ValDef(name: TermName, tpt: Tree, rhs: LazyTree)(implicit src: SourceFile): ValDef = new ValDef(name, tpt, rhs)
340340
def DefDef(name: TermName, tparams: List[TypeDef], vparamss: List[List[ValDef]], tpt: Tree, rhs: LazyTree)(implicit src: SourceFile): DefDef = new DefDef(name, tparams, vparamss, tpt, rhs)
341341
def TypeDef(name: TypeName, rhs: Tree)(implicit src: SourceFile): TypeDef = new TypeDef(name, rhs)
342-
def BackquotedTypeDef(name: TypeName, rhs: Tree)(implicit src: SourceFile): TypeDef = new BackquotedTypeDef(name, rhs)
343342
def Template(constr: DefDef, parents: List[Tree], derived: List[Tree], self: ValDef, body: LazyTreeList)(implicit src: SourceFile): Template =
344343
if (derived.isEmpty) new Template(constr, parents, self, body)
345344
else new DerivingTemplate(constr, parents ++ derived, self, body, derived.length)

compiler/src/dotty/tools/dotc/parsing/Parsers.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2648,9 +2648,9 @@ object Parsers {
26482648
val tparams = typeParamClauseOpt(ParamOwner.Type)
26492649
def makeTypeDef(rhs: Tree): Tree = {
26502650
val rhs1 = lambdaAbstract(tparams, rhs)
2651-
val tdef =
2652-
if (nameIdent.isBackquoted) BackquotedTypeDef(nameIdent.name.toTypeName, rhs1)
2653-
else TypeDef(nameIdent.name.toTypeName, rhs1)
2651+
val tdef = TypeDef(nameIdent.name.toTypeName, rhs1)
2652+
if (nameIdent.isBackquoted)
2653+
tdef.pushAttachment(Backquoted, ())
26542654
finalizeDef(tdef, mods, start)
26552655
}
26562656
in.token match {

0 commit comments

Comments
 (0)