En el siguiente código se usa 2.10.0M3 en el plugin de Eclipse 2.1.0 para 2.10M3. Estoy usando la configuración predeterminada, que se dirige a JVM 1,5Tipo de retorno dependiente de la ruta de Scala del parámetro
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
}
}
}
mensaje de error:
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
¿Por qué el compilador piensan que el método devuelve la proyección del tipo de GridBase # HexG cuando debería ser este caso concreto de GridBase?
Editar transferido a una clase de código más simple en respuesta a los comentarios que ahora reciben un mensaje de error diferente.
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
Actualización he cambiado a 2.10.0M4 y actualiza el plug-in para la versión M4 en una nueva versión de Eclipse y cambió a JVM 1.6 (y 1.7), pero los problemas no se han modificado.
¿podría agregar un código de trabajo que muestre el mensaje de error? – sschaef
Debe pegar la línea de código fuente con el error y la flecha que apunta a la ubicación exacta del error que también se muestran. –
@Antoras editado –