diff --git a/eqwalizer/src/main/scala/com/whatsapp/eqwalizer/tc/Subtype.scala b/eqwalizer/src/main/scala/com/whatsapp/eqwalizer/tc/Subtype.scala index 8ef6aba..459aed5 100644 --- a/eqwalizer/src/main/scala/com/whatsapp/eqwalizer/tc/Subtype.scala +++ b/eqwalizer/src/main/scala/com/whatsapp/eqwalizer/tc/Subtype.scala @@ -159,6 +159,8 @@ class Subtype(pipelineContext: PipelineContext) { subTypePol(resTy1, resTy2, seen) case (AnyArityFunType(resTy1), FunType(_, _, resTy2)) => subTypePol(resTy1, resTy2, seen) + case (AnyArityFunType(resTy1), AnyArityFunType(resTy2)) => + subTypePol(resTy1, resTy2, seen) case (TupleType(tys1), TupleType(tys2)) if tys1.size == tys2.size => tys1.lazyZip(tys2).forall(subTypePol(_, _, seen)) case (NilType, ListType(_)) => diff --git a/eqwalizer/src/main/scala/com/whatsapp/eqwalizer/tc/generics/ElimTypeVars.scala b/eqwalizer/src/main/scala/com/whatsapp/eqwalizer/tc/generics/ElimTypeVars.scala index 5c828ad..eee723d 100644 --- a/eqwalizer/src/main/scala/com/whatsapp/eqwalizer/tc/generics/ElimTypeVars.scala +++ b/eqwalizer/src/main/scala/com/whatsapp/eqwalizer/tc/generics/ElimTypeVars.scala @@ -28,6 +28,8 @@ object ElimTypeVars { case FunType(forall, args, resType) => val args1 = args.map(elimTypeVars(_, switchMode(mode), vars)) FunType(forall, args1, elim(resType)) + case AnyArityFunType(resType) => + AnyArityFunType(elim(resType)) case TupleType(params) => TupleType(params.map(elim)) case ListType(elemT) =>