W poniższym kodzie przy użyciu 2.10.0M3 w Eclipse plugin 2.1.0 dla 2.10M3. Używam domyślne ustawienie, które jest kierowana JVM 1.5Scala zależna od ścieżki zwrotnej od parametru
class GeomBase[T <: DTypes] {
abstract class NewObjs {
def newHex(gridR: GridBase, coodI: Cood): gridR.HexRT
}
class GridBase {
selfGrid =>
type HexRT = HexG with T#HexTr
def uniformRect (init: NewObjs) {
val hexCood = Cood(2 ,2)
val hex: HexRT = init.newHex(selfGrid, hexCood)// won't compile
}
}
}
Komunikat o błędzie:
Description Resource Path Location Type type mismatch;
found: GeomBase.this.GridBase#HexG with T#HexTr
required: GridBase.this.HexRT (which expands to) GridBase.this.HexG with T#HexTr GeomBase.scala
Dlaczego kompilator myśleć metoda zwraca rzutowanie typu GridBase # HexG kiedy powinien być tym konkretnym przypadku GridBase?
Edytuj przeniesione do prostszej klasy kodu w odpowiedzi na komentarze otrzymujące teraz inny komunikat o błędzie.
package rStrat
class TestClass {
abstract class NewObjs {
def newHex(gridR: GridBase): gridR.HexG
}
class GridBase {
selfGrid =>
def uniformRect (init: NewObjs) {
val hex: HexG = init.newHex(this) //error here
}
class HexG {
val test12 = 5
}
}
}
.
Error line 11:Description Resource Path Location Type
type mismatch; found : gridR.HexG required: GridBase.this.HexG
possible cause: missing arguments for method or constructor TestClass.scala /SStrat/src/rStrat line 11 Scala Problem
Aktualizacja mam włączony do 2.10.0M4 i aktualizowane wtyczkę do wersji M4 na świeżej wersji Eclipse i włączony do JVM (1,6 i 1,7), ale problemy pozostają niezmienione.
Czy możesz dodać działający przykład kodu, który generuje komunikat o błędzie? – sschaef
Powinieneś wkleić kod źródłowy z błędem i strzałką wskazującą dokładną lokalizację błędu, która również jest wyświetlana. –
@Antoras edytowane –