Мне не нужна информация о типе T во время выполнения, поэтому я думаю, что ClassTag здесь бесполезен.
Мне просто нужно вернуть в моей функции тот же тип, который я принял в качестве аргумента.
class MyClass[T] extends A with B[T] with C with D
trait A
trait B[T] {
def usefulMethod: Unit = println("B")
}
trait C
trait D {
def usefulMethodToo: Unit = println("D")
}
Я пытался реализовать свою функцию следующим образом, но компилятор выводит Nothing
def helper[T, A <: B[T] with D](x: A): A = {
x.usefulMethod
x.usefulMethodToo
x
}
helper(new MyClass[Int])
Может ли компилятор каким-то образом это определить?