Прежде всего, в библиотеке, похоже, произошла ошибка, когда один из перегруженных методов opt
принимает параметр типа C
, чего не должно быть - по крайней мере из того, что я могу сказать.Это должно просто взять C
из класса.В любом случае, хотя вы используете этот вызов, я полагаю, что Scala по-прежнему правильно делает вывод, что это C
совпадает с C
(Config
) класса.
Кажется, проблема в том, что help
совершенно бесполезен - он дает вам FlagOptionDefinition[Nothing]
, потому что его реализация action: => C
равна {this.showUsage; exit}
.
Я думаю, что класс OptionParser
нуждается в исправлении ...
Вы можете написать свойсобственный help
метод, обеспечивающий применение параметра типа C
:
def help2(shortopt: String, longopt: String, description: String) =
new FlagOptionDefinition[C](Some(shortopt), longopt, description,
{ this.showUsage; exit })