summaryrefslogblamecommitdiff
path: root/test/files/pos/t0095.scala
blob: 71386cf5c7e927562f881b5a812810088aab3670 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15














                                                                        
class ParseResult[+T]
case class Success[+T](t: T) extends ParseResult[T]

abstract class Nonterminal[Output] {

  type SubNonterminal = Nonterminal[T] forSome { type T <: Output }

  def parse: ParseResult[Output]

  def parse1(nts: List[SubNonterminal]): ParseResult[Output] =
    nts match {
      case nt::nts => nt.parse match { case Success(so) => Success(so) }
      case Nil => throw new Error
    }
}