Defined пустого черта Тест:случая ошибка генерации объекта класса компаньона для типа соединения
trait Test
, что используется в типе соединения:
scala> val a : Int with Test = 10.asInstanceOf[Int with Test]
a: Int with Test = 10
и случай класс с параметром типа соединения (например, Unboxed Метки Тип):
scala> case class Foo(a: Int with Test)
error: type mismatch;
found : Double
required: AnyRef
Note: an implicit exists from scala.Double => java.lang.Double, but
methods inherited from Object are rendered ambiguous. This is to avoid
a blanket implicit which would convert any scala.Double to any AnyRef.
You may wish to use a type ascription: `x: java.lang.Double`.
Но он прекрасно работает для:
scala> case class Foo(a: List[Int] with Test)
defined class Foo
И никаких проблем с определением метода:
scala> def foo(a: Int with Test) = ???
foo: (a: Int with Test)Nothing
Scala версия 2.10.3
Это нормальное поведение компилятора?
Это [известная проблема] (https://issues.scala-lang.org/browse/SI-5183). –