@@ -759,12 +759,14 @@ class TastyImpl(val rootContext: Contexts.Context) extends scala.tasty.Tasty { s
759759 type LambdaType [ParamInfo <: TypeOrBounds ] = Types .LambdaType { type PInfo = ParamInfo }
760760 type MethodType = Types .MethodType
761761 type PolyType = Types .PolyType
762+ type TermLambda = Types .TermLambda
762763 type TypeLambda = Types .TypeLambda
763764
764765 def typeClassTag : ClassTag [Type ] = implicitly[ClassTag [Type ]]
765766 def recursiveTypeClassTag : ClassTag [RecursiveType ] = implicitly[ClassTag [RecursiveType ]]
766767 def methodTypeClassTag : ClassTag [MethodType ] = implicitly[ClassTag [MethodType ]]
767768 def polyTypeClassTag : ClassTag [PolyType ] = implicitly[ClassTag [PolyType ]]
769+ def termLambdaClassTag : ClassTag [TermLambda ] = implicitly[ClassTag [TermLambda ]]
768770 def typeLambdaClassTag : ClassTag [TypeLambda ] = implicitly[ClassTag [TypeLambda ]]
769771
770772 def MethodTypeDeco (tpe : MethodType ): MethodTypeAPI = new MethodTypeAPI {
@@ -781,6 +783,12 @@ class TastyImpl(val rootContext: Contexts.Context) extends scala.tasty.Tasty { s
781783 def resultTpe (implicit ctx : Context ): Type = tpe.resType
782784 }
783785
786+ def TermLambdaDeco (tpe : Types .TermLambda ): TermLambdaAPI = new TermLambdaAPI {
787+ def paramNames (implicit ctx : Context ): List [String ] = tpe.paramNames.map(_.toString)
788+ def paramTypes (implicit ctx : Context ): List [Type ] = tpe.paramInfos
789+ def resultTpe (implicit ctx : Context ): Type = tpe.resType
790+ }
791+
784792 def TypeLambdaDeco (tpe : Types .TypeLambda ): TypeLambdaAPI = new TypeLambdaAPI {
785793 def paramNames (implicit ctx : Context ): List [String ] = tpe.paramNames.map(_.toString)
786794 def paramTypes (implicit ctx : Context ): List [TypeBounds ] = tpe.paramInfos
@@ -928,6 +936,13 @@ class TastyImpl(val rootContext: Contexts.Context) extends scala.tasty.Tasty { s
928936 }
929937 }
930938
939+ object TermLambda extends TermLambdaExtractor {
940+ def unapply (x : TermLambda )(implicit ctx : Context ): Option [(List [String ], List [Type ], Type )] = x match {
941+ case x : TermLambda => Some (x.paramNames.map(_.toString), x.paramInfos, x.resType)
942+ case _ => None
943+ }
944+ }
945+
931946 object TypeLambda extends TypeLambdaExtractor {
932947 def unapply (x : TypeLambda )(implicit ctx : Context ): Option [(List [String ], List [TypeBounds ], Type )] = x match {
933948 case x : TypeLambda => Some (x.paramNames.map(_.toString), x.paramInfos, x.resType)
0 commit comments