Ошибка сборки компилятора Scala Параметры типа JComboBox - PullRequest
3 голосов
/ 09 ноября 2011

Итак, я пытаюсь скомпилировать компилятор scala, я преодолел много проблем, пытаясь это сделать, но в настоящее время я застрял на quick.lib

Это очень запутанно, так как источник взят непосредственно из команды Scala, поэтому я знаю, что он должен скомпилироваться. Также взяли старую версию, которую я знаю, которая компилируется в другом месте, и протестировали ее, но получили ту же ошибку.

Любая помощь по этому вопросу или в правильном направлении будет принята с благодарностью.

quick.lib:
[scalacfork] Compiling 103 files to C:\programming\scala\build\quick\classes\library
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:162: error: class JComboBox takes type parameters
[scalacfork]   override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
[scalacfork]                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:123: error: trait ComboBoxModel takes type parameters
[scalacfork]   def newConstantModel[A](items: Seq[A]): ComboBoxModel = {
[scalacfork]                                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:124: error: trait ComboBoxModel takes type parameters
[scalacfork]     new AbstractListModel with ComboBoxModel {
[scalacfork]                                ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:134: error: type mismatch;
[scalacfork]  found   : AnyRef
[scalacfork]  required: Nothing
[scalacfork]       def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
[scalacfork]                                                       ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:162: error: too many arguments for constructor Object: ()Object
[scalacfork]   override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
[scalacfork]                                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:32: error: trait ListCellRenderer takes type parameters
[scalacfork]     def wrap[A](r: ListCellRenderer): Renderer[A] = new Wrapped[A](r)
[scalacfork]                    ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:27: error: class JList takes type parameters
[scalacfork]   def wrap[A](c: JList) = new ListView[A] {
[scalacfork]                  ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:145: error: class JList takes type parameters
[scalacfork]   override lazy val peer: JList = new JList with SuperMixin
[scalacfork]                           ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:37: error: trait ListCellRenderer takes type parameters
[scalacfork]    class Wrapped[A](override val peer: ListCellRenderer) extends Renderer[A] {
[scalacfork]                                             ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:72: error: trait ListCellRenderer takes type parameters
[scalacfork]     def peer: ListCellRenderer = new ListCellRenderer {
[scalacfork]               ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:72: error: trait ListCellRenderer takes type parameters
[scalacfork]     def peer: ListCellRenderer = new ListCellRenderer {
[scalacfork]                                      ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:73: error: class JList takes type parameters
[scalacfork]       def getListCellRendererComponent(list: JList, a: Any, index: Int, isSelected: Boolean, focused: Boolean) = 
[scalacfork]                                              ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:126: error: trait ListCellRenderer takes type parameters
[scalacfork]     override lazy val peer: ListCellRenderer = new DefaultListCellRenderer
[scalacfork]                             ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:153: error: type mismatch;
[scalacfork]  found   : AnyRef
[scalacfork]  required: Nothing
[scalacfork]     def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
[scalacfork]                                                     ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ListView.scala:195: error: too many arguments for constructor Object: ()Object
[scalacfork]     object indices extends Indices(peer.getSelectedIndices) {
[scalacfork]                    ^
[scalacfork] 15 errors found

1 Ответ

5 голосов
/ 10 ноября 2011

Вы используете JDK7? Одним из «вопросов» является то, что JDK7 добавил дженерики в некоторые из API-интерфейсов Swing, и это не совместимо с тем, как работает Scala. Использование JDK6 поможет.

Немного больше об этом можно найти по адресу: https://groups.google.com/d/topic/scala-user/01CszZu8ga4/discussion

...