@@ -31,7 +31,10 @@ object Trees {
3131 @ sharable var ntrees : Int = 0
3232
3333 /** Property key for trees with documentation strings attached */
34- val DocComment : Property .StickyKey [Comments .Comment ] = new Property .StickyKey
34+ val DocComment : Property .StickyKey [Comments .Comment ] = Property .StickyKey ()
35+
36+ /** Property key for backquoted identifiers and definitions */
37+ val Backquoted : Property .StickyKey [Unit ] = Property .StickyKey ()
3538
3639 /** Trees take a parameter indicating what the type of their `tpe` field
3740 * is. Two choices: `Type` or `Untyped`.
@@ -363,9 +366,6 @@ object Trees {
363366 def tpt : Tree [T ]
364367 def unforcedRhs : LazyTree [T ] = unforced
365368 def rhs (implicit ctx : Context ): Tree [T ] = forceIfLazy
366-
367- /** Is this a `BackquotedValDef` or `BackquotedDefDef` ? */
368- def isBackquoted : Boolean = false
369369 }
370370
371371 // ----------- Tree case classes ------------------------------------
@@ -376,15 +376,7 @@ object Trees {
376376 type ThisTree [- T >: Untyped ] = Ident [T ]
377377 def qualifier : Tree [T ] = genericEmptyTree
378378
379- /** Is this a `BackquotedIdent` ? */
380- def isBackquoted : Boolean = false
381- }
382-
383- class BackquotedIdent [- T >: Untyped ]private [ast] (name : Name )(implicit @ constructorOnly src : SourceFile )
384- extends Ident [T ](name) {
385- override def isBackquoted : Boolean = true
386-
387- override def toString : String = s " BackquotedIdent( $name) "
379+ def isBackquoted : Boolean = hasAttachment(Backquoted )
388380 }
389381
390382 class SearchFailureIdent [- T >: Untyped ] private [ast] (name : Name )(implicit @ constructorOnly src : SourceFile )
@@ -437,7 +429,7 @@ object Trees {
437429 extends GenericApply [T ] {
438430 type ThisTree [- T >: Untyped ] = Apply [T ]
439431
440- def isGivenApply = getAttachment (untpd.ApplyGiven ).nonEmpty
432+ def isGivenApply = hasAttachment (untpd.ApplyGiven )
441433 def setGivenApply () = { pushAttachment(untpd.ApplyGiven , ()); this }
442434 }
443435
@@ -735,12 +727,6 @@ object Trees {
735727 protected def force (x : Tree [T @ uncheckedVariance]): Unit = preRhs = x
736728 }
737729
738- class BackquotedValDef [- T >: Untyped ] private [ast] (name : TermName , tpt : Tree [T ], preRhs : LazyTree [T @ uncheckedVariance])(implicit @ constructorOnly src : SourceFile )
739- extends ValDef [T ](name, tpt, preRhs) {
740- override def isBackquoted : Boolean = true
741- override def productPrefix : String = " BackquotedValDef"
742- }
743-
744730 /** mods def name[tparams](vparams_1)...(vparams_n): tpt = rhs */
745731 case class DefDef [- T >: Untyped ] private [ast] (name : TermName , tparams : List [TypeDef [T ]],
746732 vparamss : List [List [ValDef [T ]]], tpt : Tree [T ], private var preRhs : LazyTree [T @ uncheckedVariance])(implicit @ constructorOnly src : SourceFile )
@@ -755,13 +741,6 @@ object Trees {
755741 // their for clause, but the two appear swapped in the DefDef.
756742 }
757743
758- class BackquotedDefDef [- T >: Untyped ] private [ast] (name : TermName , tparams : List [TypeDef [T ]],
759- vparamss : List [List [ValDef [T ]]], tpt : Tree [T ], preRhs : LazyTree [T ])(implicit @ constructorOnly src : SourceFile )
760- extends DefDef [T ](name, tparams, vparamss, tpt, preRhs) {
761- override def isBackquoted : Boolean = true
762- override def productPrefix : String = " BackquotedDefDef"
763- }
764-
765744 /** mods class name template or
766745 * mods trait name template or
767746 * mods type name = rhs or
@@ -947,7 +926,6 @@ object Trees {
947926 type LazyTreeList = Trees .LazyTreeList [T ]
948927
949928 type Ident = Trees .Ident [T ]
950- type BackquotedIdent = Trees .BackquotedIdent [T ]
951929 type SearchFailureIdent = Trees .SearchFailureIdent [T ]
952930 type Select = Trees .Select [T ]
953931 type SelectWithSig = Trees .SelectWithSig [T ]
@@ -986,9 +964,7 @@ object Trees {
986964 type Alternative = Trees .Alternative [T ]
987965 type UnApply = Trees .UnApply [T ]
988966 type ValDef = Trees .ValDef [T ]
989- type BackquotedValDef = Trees .BackquotedValDef [T ]
990967 type DefDef = Trees .DefDef [T ]
991- type BackquotedDefDef = Trees .BackquotedDefDef [T ]
992968 type TypeDef = Trees .TypeDef [T ]
993969 type Template = Trees .Template [T ]
994970 type Import = Trees .Import [T ]
@@ -1036,9 +1012,6 @@ object Trees {
10361012 postProcess(tree, copied.withSpan(tree.span).withAttachmentsFrom(tree))
10371013
10381014 def Ident (tree : Tree )(name : Name )(implicit ctx : Context ): Ident = tree match {
1039- case tree : BackquotedIdent =>
1040- if (name == tree.name) tree
1041- else finalize(tree, new BackquotedIdent (name)(sourceFile(tree)))
10421015 case tree : Ident if name == tree.name => tree
10431016 case _ => finalize(tree, untpd.Ident (name)(sourceFile(tree)))
10441017 }
@@ -1181,16 +1154,10 @@ object Trees {
11811154 case _ => finalize(tree, untpd.UnApply (fun, implicits, patterns)(sourceFile(tree)))
11821155 }
11831156 def ValDef (tree : Tree )(name : TermName , tpt : Tree , rhs : LazyTree )(implicit ctx : Context ): ValDef = tree match {
1184- case tree : BackquotedValDef =>
1185- if ((name == tree.name) && (tpt eq tree.tpt) && (rhs eq tree.unforcedRhs)) tree
1186- else finalize(tree, untpd.BackquotedValDef (name, tpt, rhs)(sourceFile(tree)))
11871157 case tree : ValDef if (name == tree.name) && (tpt eq tree.tpt) && (rhs eq tree.unforcedRhs) => tree
11881158 case _ => finalize(tree, untpd.ValDef (name, tpt, rhs)(sourceFile(tree)))
11891159 }
11901160 def DefDef (tree : Tree )(name : TermName , tparams : List [TypeDef ], vparamss : List [List [ValDef ]], tpt : Tree , rhs : LazyTree )(implicit ctx : Context ): DefDef = tree match {
1191- case tree : BackquotedDefDef =>
1192- if ((name == tree.name) && (tparams eq tree.tparams) && (vparamss eq tree.vparamss) && (tpt eq tree.tpt) && (rhs eq tree.unforcedRhs)) tree
1193- else finalize(tree, untpd.BackquotedDefDef (name, tparams, vparamss, tpt, rhs)(sourceFile(tree)))
11941161 case tree : DefDef if (name == tree.name) && (tparams eq tree.tparams) && (vparamss eq tree.vparamss) && (tpt eq tree.tpt) && (rhs eq tree.unforcedRhs) => tree
11951162 case _ => finalize(tree, untpd.DefDef (name, tparams, vparamss, tpt, rhs)(sourceFile(tree)))
11961163 }
0 commit comments