blob: 2944b1debb2fa6786f77a717e9e061f82c7b1deb (
plain) (
tree)
|
|
/* Gives
t1381-new.scala:6: error: V is not a valid prefix for '#'
type E = V#ValueType
^
*/
import scala.reflect.runtime.universe._
class D[V <: Variable]
class ID[V<:IV] extends D[V] {
type E = V#ValueType
def index(value:E) : Int = 0
// Comment this out to eliminate crash. Or see below
def index(values:E*) : Iterable[Int] = null
}
abstract class Variable {
type VT <: Variable
def d : D[VT] = null
}
abstract class PV[T](initval:T) extends Variable {
type VT <: PV[T]
type ValueType = T
}
trait IV extends Variable {
type ValueType
}
abstract class EV[T](initval:T) extends PV[T](initval) with IV {
type VT <: EV[T]
override def d : ID[VT] = null
// Comment this out to eliminate crash
protected var indx = d.index(initval)
}
|