Вот код:
sealed trait Tr
final case class A(a: String) extends Tr
final case class B(b: String) extends Tr
def markWithType[Type <: Tr](tr: Type): Type = tr match {
//Compile error
//Expression of type A doesn't conform to expected type Type
case A(a) => A("A:" + a)
//Compile error
//Expression of type B doesn't conform to expected type Type
case B(b) => B("B:" + b)
}
Проблема в том, что он не компилируется. Я хочу сохранить Type <: Tr
и успешно скомпилировать его. Есть ли способ сделать это?
Я почти уверен, что бесформенный может быть здесь полезен.