File: t1381-new.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (31 lines) | stat: -rw-r--r-- 672 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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)
}