Я хочу иметь класс, который принимает параметр с классом-зависимым типом, как это часто делал для методов. Однако, к моему удивлению, это не помогло:Использование зависимого от пути типа в качестве параметра класса
scala> trait Compiler { trait Config }
defined trait Compiler
// works fine, as expected
scala> def f(c: Compiler)(conf: c.Config) = {}
f: (c: Compiler)(conf: c.Config)Unit
scala> class F(val c: Compiler)(val conf: c.Config)
<console>:8: error: not found: value c
class F(val c: Compiler)(val conf: c.Config)
^
Почему? И есть ли какие-нибудь обходные пути?
я получил следующее ** без выделки **: ': 11: error: незаконный зависимый тип метода: параметр появляется в типе другого параметра в том же разделе или ранее класс F (val c: Compiler, val conf: c.Config) ^ ' –
@KevinMeredith Ошибка без каррирования (это одинаково для методов) и кажется мне достаточно ясным, даже если бы я предпочел, чтобы это сработало. –