@@ -16,34 +16,34 @@ object TastyImpl extends scala.tasty.Tasty {
1616
1717 // ===== Quotes ===================================================
1818
19- implicit def QuotedExprDeco [T ](x : quoted.Expr [T ]): AbstractQuotedExpr = new AbstractQuotedExpr {
19+ def QuotedExprDeco [T ](x : quoted.Expr [T ]): AbstractQuotedExpr = new AbstractQuotedExpr {
2020 def toTasty (implicit ctx : Context ): Term = PickledQuotes .quotedExprToTree(x)
2121 }
2222
23- implicit def QuotedTypeDeco [T ](x : quoted.Type [T ]): AbstractQuotedType = new AbstractQuotedType {
23+ def QuotedTypeDeco [T ](x : quoted.Type [T ]): AbstractQuotedType = new AbstractQuotedType {
2424 def toTasty (implicit ctx : Context ): TypeTree = PickledQuotes .quotedTypeToTree(x)
2525 }
2626
2727 // ===== Contexts =================================================
2828
2929 type Context = Contexts .Context
3030
31- implicit def ContextDeco (ctx : Context ): AbstractContext = new AbstractContext {
31+ def ContextDeco (ctx : Context ): AbstractContext = new AbstractContext {
3232 def owner : Definition = FromSymbol .definition(ctx.owner)(ctx)
3333 }
3434
3535 // ===== Id =======================================================
3636
3737 type Id = untpd.Ident
3838
39- implicit def IdDeco (x : Id ): AbstractId = new AbstractId {
39+ def IdDeco (x : Id ): AbstractId = new AbstractId {
4040 def pos (implicit ctx : Context ): Position = x.pos
4141 }
4242
4343 def idClassTag : ClassTag [Id ] = implicitly[ClassTag [Id ]]
4444
45- val Id : IdExtractor = new IdExtractor {
46- def unapply (x : Id ) = x match {
45+ object Id extends IdExtractor {
46+ def unapply (x : Id ): Option [ String ] = x match {
4747 case x : untpd.Ident => Some (x.name.toString) // TODO how to make sure it is not a Ident or TypeIdent? Check x.tpe?
4848 case _ => None
4949 }
@@ -53,22 +53,22 @@ object TastyImpl extends scala.tasty.Tasty {
5353
5454 type Tree = tpd.Tree
5555
56- implicit def TreeDeco (t : Tree ): AbstractTree = new AbstractTree {
56+ def TreeDeco (t : Tree ): AbstractTree = new AbstractTree {
5757 def pos (implicit ctx : Context ): Position = t.pos
5858 }
5959
6060 type PackageClause = tpd.PackageDef
6161
6262 def packageClauseClassTag : ClassTag [PackageClause ] = implicitly[ClassTag [PackageClause ]]
6363
64- val PackageClause : PackageClauseExtractor = new PackageClauseExtractor {
64+ object PackageClause extends PackageClauseExtractor {
6565 def unapply (x : PackageClause )(implicit ctx : Context ): Option [(Term , List [Tree ])] = x match {
6666 case x : tpd.PackageDef @ unchecked => Some ((x.pid, x.stats))
6767 case _ => None
6868 }
6969 }
7070
71- implicit def PackageClauseDeco (x : PackageClause ): AbstractPackageClause = new AbstractPackageClause {
71+ def PackageClauseDeco (x : PackageClause ): AbstractPackageClause = new AbstractPackageClause {
7272 override def definition : Definition = ???
7373 }
7474
@@ -80,7 +80,7 @@ object TastyImpl extends scala.tasty.Tasty {
8080
8181 def importClassTag : ClassTag [Import ] = implicitly[ClassTag [Import ]]
8282
83- val Import : ImportExtractor = new ImportExtractor {
83+ object Import extends ImportExtractor {
8484 def unapply (x : Import )(implicit ctx : Context ): Option [(Term , List [ImportSelector ])] = x match {
8585 case x : tpd.Import @ unchecked => Some ((x.expr, x.selectors))
8686 case _ => None
@@ -91,21 +91,21 @@ object TastyImpl extends scala.tasty.Tasty {
9191
9292 def importSelectorClassTag : ClassTag [ImportSelector ] = implicitly[ClassTag [ImportSelector ]]
9393
94- val SimpleSelector : SimpleSelectorExtractor = new SimpleSelectorExtractor {
94+ object SimpleSelector extends SimpleSelectorExtractor {
9595 def unapply (x : ImportSelector )(implicit ctx : Context ): Option [Id ] = x match {
9696 case x : untpd.Ident => Some (x) // TODO make sure it will not match other idents
9797 case _ => None
9898 }
9999 }
100100
101- val RenameSelector : RenameSelectorExtractor = new RenameSelectorExtractor {
101+ object RenameSelector extends RenameSelectorExtractor {
102102 def unapply (x : ImportSelector )(implicit ctx : Context ): Option [(Id , Id )] = x match {
103103 case Trees .Thicket ((id1 : untpd.Ident ) :: (id2 : untpd.Ident ) :: Nil ) if id2.name != nme.WILDCARD => Some (id1, id2)
104104 case _ => None
105105 }
106106 }
107107
108- val OmitSelector : OmitSelectorExtractor = new OmitSelectorExtractor {
108+ object OmitSelector extends OmitSelectorExtractor {
109109 def unapply (x : ImportSelector )(implicit ctx : Context ): Option [Id ] = x match {
110110 case Trees .Thicket ((id : untpd.Ident ) :: Trees .Ident (nme.WILDCARD ) :: Nil ) => Some (id)
111111 case _ => None
@@ -116,7 +116,7 @@ object TastyImpl extends scala.tasty.Tasty {
116116
117117 type Definition = tpd.Tree
118118
119- implicit def DefinitionDeco (x : Definition ): AbstractDefinition = new AbstractDefinition {
119+ def DefinitionDeco (x : Definition ): AbstractDefinition = new AbstractDefinition {
120120
121121 def owner (implicit ctx : Context ): Definition = FromSymbol .definition(x.symbol.owner)
122122
@@ -141,7 +141,7 @@ object TastyImpl extends scala.tasty.Tasty {
141141
142142 def classDefClassTag : ClassTag [ClassDef ] = implicitly[ClassTag [ClassDef ]]
143143
144- val ClassDef : ClassDefExtractor = new ClassDefExtractor {
144+ object ClassDef extends ClassDefExtractor {
145145 def unapply (x : ClassDef )(implicit ctx : Context ): Option [(String , DefDef , List [Parent ], Option [ValDef ], List [Statement ])] = x match {
146146 case x : tpd.TypeDef @ unchecked if x.isClassDef =>
147147 val temp @ Trees .Template (constr, parents, self, _) = x.rhs
@@ -157,7 +157,7 @@ object TastyImpl extends scala.tasty.Tasty {
157157
158158 def defDefClassTag : ClassTag [DefDef ] = implicitly[ClassTag [DefDef ]]
159159
160- val DefDef : DefDefExtractor = new DefDefExtractor {
160+ object DefDef extends DefDefExtractor {
161161 def unapply (x : DefDef )(implicit ctx : Context ): Option [(String , List [TypeDef ], List [List [ValDef ]], TypeTree , Option [Term ])] = x match {
162162 case x : tpd.DefDef @ unchecked =>
163163 Some ((x.name.toString, x.tparams, x.vparamss, x.tpt, if (x.rhs.isEmpty) None else Some (x.rhs)))
@@ -171,7 +171,7 @@ object TastyImpl extends scala.tasty.Tasty {
171171
172172 def valDefClassTag : ClassTag [ValDef ] = implicitly[ClassTag [ValDef ]]
173173
174- val ValDef : ValDefExtractor = new ValDefExtractor {
174+ object ValDef extends ValDefExtractor {
175175 def unapply (x : ValDef )(implicit ctx : Context ): Option [(String , TypeTree , Option [Term ])] = x match {
176176 case x : tpd.ValDef @ unchecked =>
177177 Some ((x.name.toString, x.tpt, if (x.rhs.isEmpty) None else Some (x.rhs)))
@@ -185,7 +185,7 @@ object TastyImpl extends scala.tasty.Tasty {
185185
186186 def typeDefClassTag : ClassTag [TypeDef ] = implicitly[ClassTag [TypeDef ]]
187187
188- val TypeDef : TypeDefExtractor = new TypeDefExtractor {
188+ object TypeDef extends TypeDefExtractor {
189189 def unapply (x : TypeDef )(implicit ctx : Context ): Option [(String , TypeOrBoundsTree /* TypeTree | TypeBoundsTree */ )] = x match {
190190 case x : tpd.TypeDef @ unchecked if ! x.symbol.isClass => Some ((x.name.toString, x.rhs))
191191 case _ => None
@@ -196,7 +196,7 @@ object TastyImpl extends scala.tasty.Tasty {
196196
197197 def packageDefClassTag : ClassTag [PackageDef ] = implicitly[ClassTag [PackageDef ]]
198198
199- val PackageDef : PackageDefExtractor = new PackageDefExtractor {
199+ object PackageDef extends PackageDefExtractor {
200200 def unapply (x : PackageDef )(implicit ctx : Context ): Option [(String , List [Statement ])] = x match {
201201 case x : tpd.PackageDef =>
202202 // FIXME Do not do this eagerly as it forces everithing in the package to be loaded.
@@ -217,7 +217,7 @@ object TastyImpl extends scala.tasty.Tasty {
217217
218218 type Term = tpd.Tree
219219
220- implicit def TermDeco (t : Term ): AbstractTerm = new AbstractTerm {
220+ def TermDeco (t : Term ): AbstractTerm = new AbstractTerm {
221221 def pos (implicit ctx : Context ): Position = t.pos
222222 def tpe (implicit ctx : Context ): Types .Type = t.tpe
223223 }
@@ -385,7 +385,7 @@ object TastyImpl extends scala.tasty.Tasty {
385385
386386 def caseDefClassTag : ClassTag [CaseDef ] = implicitly[ClassTag [CaseDef ]]
387387
388- val CaseDef : CaseDefExtractor = new CaseDefExtractor {
388+ object CaseDef extends CaseDefExtractor {
389389 def unapply (x : CaseDef ): Option [(Pattern , Option [Term ], Term )] = x match {
390390 case x : tpd.CaseDef @ unchecked =>
391391 Some (x.pat, if (x.guard.isEmpty) None else Some (x.guard), x.body)
@@ -397,7 +397,7 @@ object TastyImpl extends scala.tasty.Tasty {
397397
398398 type Pattern = tpd.Tree
399399
400- implicit def PatternDeco (x : Pattern ): AbstractPattern = new AbstractPattern {
400+ def PatternDeco (x : Pattern ): AbstractPattern = new AbstractPattern {
401401 def pos (implicit ctx : Context ): Position = x.pos
402402 def tpe (implicit ctx : Context ): Types .Type = x.tpe.stripTypeVar
403403 }
@@ -449,15 +449,15 @@ object TastyImpl extends scala.tasty.Tasty {
449449
450450 type TypeOrBoundsTree = tpd.Tree
451451
452- implicit def TypeOrBoundsTreeDeco (x : TypeOrBoundsTree ): AbstractTypeOrBoundsTree = new AbstractTypeOrBoundsTree {
452+ def TypeOrBoundsTreeDeco (x : TypeOrBoundsTree ): AbstractTypeOrBoundsTree = new AbstractTypeOrBoundsTree {
453453 def tpe (implicit ctx : Context ): Type = x.tpe.stripTypeVar
454454 }
455455
456456 // ----- TypeTrees ------------------------------------------------
457457
458458 type TypeTree = tpd.Tree
459459
460- implicit def TypeTreeDeco (x : TypeTree ): AbstractTypeTree = new AbstractTypeTree {
460+ def TypeTreeDeco (x : TypeTree ): AbstractTypeTree = new AbstractTypeTree {
461461 def pos (implicit ctx : Context ): Position = x.pos
462462 def tpe (implicit ctx : Context ): Types .Type = x.tpe.stripTypeVar
463463 }
@@ -544,11 +544,11 @@ object TastyImpl extends scala.tasty.Tasty {
544544
545545 type TypeBoundsTree = tpd.TypeBoundsTree
546546
547- implicit def TypeBoundsTreeDeco (x : TypeBoundsTree ): AbstractTypeBoundsTree = ???
547+ def TypeBoundsTreeDeco (x : TypeBoundsTree ): AbstractTypeBoundsTree = ???
548548
549549 def typeBoundsTreeClassTag : ClassTag [TypeBoundsTree ] = implicitly[ClassTag [TypeBoundsTree ]]
550550
551- val TypeBoundsTree : TypeBoundsTreeExtractor = new TypeBoundsTreeExtractor {
551+ object TypeBoundsTree extends TypeBoundsTreeExtractor {
552552 def unapply (x : TypeBoundsTree )(implicit ctx : Context ): Option [(TypeTree , TypeTree )] = x match {
553553 case x : tpd.TypeBoundsTree @ unchecked => Some (x.lo, x.hi)
554554 case _ => None
@@ -574,7 +574,7 @@ object TastyImpl extends scala.tasty.Tasty {
574574 def polyTypeClassTag : ClassTag [PolyType ] = implicitly[ClassTag [PolyType ]]
575575 def typeLambdaClassTag : ClassTag [TypeLambda ] = implicitly[ClassTag [TypeLambda ]]
576576
577- implicit def MethodTypeDeco (x : MethodType ): AbstractMethodType = new AbstractMethodType {
577+ def MethodTypeDeco (x : MethodType ): AbstractMethodType = new AbstractMethodType {
578578 def isErased : Boolean = x.isErasedMethod
579579 def isImplicit : Boolean = x.isImplicitMethod
580580 }
@@ -735,7 +735,7 @@ object TastyImpl extends scala.tasty.Tasty {
735735
736736 def typeBoundsClassTag : ClassTag [TypeBounds ] = implicitly[ClassTag [TypeBounds ]]
737737
738- val TypeBounds : TypeBoundsExtractor = new TypeBoundsExtractor {
738+ object TypeBounds extends TypeBoundsExtractor {
739739 def unapply (x : TypeBounds )(implicit ctx : Context ): Option [(Type , Type )] = x match {
740740 case x : Types .TypeBounds => Some (x.lo, x.hi)
741741 case _ => None
@@ -748,15 +748,15 @@ object TastyImpl extends scala.tasty.Tasty {
748748
749749 def noPrefixClassTag : ClassTag [NoPrefix ] = implicitly[ClassTag [NoPrefix ]]
750750
751- val NoPrefix : NoPrefixExtractor = new NoPrefixExtractor {
751+ object NoPrefix extends NoPrefixExtractor {
752752 def unapply (x : NoPrefix )(implicit ctx : Context ): Boolean = x == Types .NoPrefix
753753 }
754754
755755 // ===== Constants ================================================
756756
757757 type Constant = Constants .Constant
758758
759- implicit def ConstantDeco (x : Constant ): AbstractConstant = new AbstractConstant {
759+ def ConstantDeco (x : Constant ): AbstractConstant = new AbstractConstant {
760760 def value : Any = x.value
761761 }
762762
@@ -894,13 +894,12 @@ object TastyImpl extends scala.tasty.Tasty {
894894
895895 def signatureClassTag : ClassTag [Signature ] = implicitly[ClassTag [Signature ]]
896896
897- val Signature : SignatureExtractor = new SignatureExtractor {
897+ object Signature extends SignatureExtractor {
898898 def unapply (x : Signature )(implicit ctx : Context ): Option [(List [String ], String )] = {
899899 Some ((x.paramsSig.map(_.toString), x.resSig.toString))
900900 }
901901 }
902902
903-
904903 // ===== Positions ================================================
905904
906905 type Position = SourcePosition
0 commit comments