С
scalaVersion := "2.12.8"
libraryDependencies += "org.apache.thrift" % "libthrift" % "0.12.0"
код
import org.apache.thrift.{TBase, TFieldIdEnum}
import scala.language.higherKinds
object App {
def test[TB[A <: TBase[_, _], B <: TFieldIdEnum] <: TBase[A, B]](x: TB[_, _]) = x
}
выдает ошибку
Error:(5, 55) type arguments [A,B] do not conform to trait TBase's type parameter bounds [T <: org.apache.thrift.TBase[T,F],F <: org.apache.thrift.TFieldIdEnum]
def test[TB[A <: TBase[_, _], B <: TFieldIdEnum] <: TBase[A, B]](x: TB[_, _]) = x
Это не совсем твое, но похоже.
Самое простое исправление -
def test[TB[A <: TBase[A, B], B <: TFieldIdEnum] <: TBase[A, B]](x: TB[_, _]) = x
С
scalaVersion := "2.11.8"
resolvers += "twitter-repo" at "http://maven.twttr.com"
libraryDependencies += "org.apache.thrift" % "libthrift" % "0.5.0"
Я не могу воспроизвести вашу ошибку.
import org.apache.thrift.{TBase, TFieldIdEnum}
import scala.language.higherKinds
object App {
def test[TB[A <: TBase[_, _], B <: TFieldIdEnum] <: TBase[A, B]](x: TB[_, _]) = x
}
компилируется без ошибок.