aboutsummaryrefslogblamecommitdiff
path: root/tests/untried/pos/t4070b.scala
blob: d6851b8cca26a210f5c70143e06ab00e87b06d12 (plain) (tree)


































                                                                             
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]]
  }
}