blob: 36d03de80ce9d8a247c2d4fc0508f098088fe844 (
plain) (
blame)
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
32
33
34
35
|
package a {
abstract class DeliteOp[B]
abstract class DeliteCollection[A]
abstract class Exp[T] { def Type: T }
trait DeliteOpMap[A,B,C[X] <: DeliteCollection[X]] extends DeliteOp[C[B]] {
val in: Exp[C[A]]
val func: Exp[B]
val alloc: Exp[C[B]]
}
object Test {
def f(x: DeliteOp[_]) = x match {
case map: DeliteOpMap[_,_,_] => map.alloc.Type
}
}
}
package b {
object Test {
def f(x: DeliteOp[_]) = x match {
case map: DeliteOpMap[_,_,_] => map.alloc.Type
}
}
abstract class DeliteOp[B]
abstract class DeliteCollection[A]
abstract class Exp[T] { def Type: T }
trait DeliteOpMap[A,B,C[X] <: DeliteCollection[X]] extends DeliteOp[C[B]] {
val in: Exp[C[A]]
val func: Exp[B]
val alloc: Exp[C[B]]
}
}
|