Создав новый тип путем смешивания в ObservableSet
с HashSet
, я как бы ожидал замены, а затем смог использовать новый тип для создания нового экземпляра, как показано ниже в "foo". Но это не скомпилируется, хотя использование оригинальной длинной формы типа кажется прекрасным (как показано в "bar", ниже).
Это просто особенность языка или я сделал что-то глупое?
package whatever
import collection.mutable._
object Whatever {
type ObservableHashSet[T] = HashSet[T] with ObservableSet[T]
class X
def foo {
new ObservableHashSet[X]
}
def bar {
new HashSet[X] with ObservableSet[X]
}
}
Ошибка:
error: class type required but scala.collection.mutable.HashSet[scala.Whatever.X] with scala.collection.mutable.ObservableSet[scala.Whatever.X] found
new ObservableHashSet[X]