@@ -3640,7 +3640,7 @@ object Types {
3640
3640
trait LambdaType extends BindingType with TermType { self =>
3641
3641
type ThisName <: Name
3642
3642
type PInfo <: Type
3643
- type This <: LambdaType {type PInfo = self.PInfo }
3643
+ type This >: this . type <: LambdaType {type PInfo = self.PInfo }
3644
3644
type ParamRefType <: ParamRef
3645
3645
3646
3646
def paramNames : List [ThisName ]
@@ -3698,7 +3698,7 @@ object Types {
3698
3698
3699
3699
final def derivedLambdaType (paramNames : List [ThisName ] = this .paramNames,
3700
3700
paramInfos : List [PInfo ] = this .paramInfos,
3701
- resType : Type = this .resType)(using Context ): LambdaType =
3701
+ resType : Type = this .resType)(using Context ): This =
3702
3702
if ((paramNames eq this .paramNames) && (paramInfos eq this .paramInfos) && (resType eq this .resType)) this
3703
3703
else newLikeThis(paramNames, paramInfos, resType)
3704
3704
@@ -3817,7 +3817,7 @@ object Types {
3817
3817
import DepStatus ._
3818
3818
type ThisName = TermName
3819
3819
type PInfo = Type
3820
- type This <: TermLambda
3820
+ type This >: this . type <: TermLambda
3821
3821
type ParamRefType = TermParamRef
3822
3822
3823
3823
override def resultType (using Context ): Type =
@@ -4114,7 +4114,7 @@ object Types {
4114
4114
trait TypeLambda extends LambdaType {
4115
4115
type ThisName = TypeName
4116
4116
type PInfo = TypeBounds
4117
- type This <: TypeLambda
4117
+ type This >: this . type <: TypeLambda
4118
4118
type ParamRefType = TypeParamRef
4119
4119
4120
4120
def isResultDependent (using Context ): Boolean = true
0 commit comments