aboutsummaryrefslogblamecommitdiff
path: root/tests/pos/implicitNums.scala
blob: 48c5302f7fb3d7843084cee8b352e1b6475f2cfb (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15














                                                                            
object Test {

  trait Number
  trait Zero extends Number
  trait Succ[N <: Number](n: N) extends Number

  implicit def succ[N <: Number](implicit n: N): Succ[N] = new Succ[N](n) {}
  implicit def zero: Zero = new Zero{}

  implicitly[Zero]
  implicitly[Succ[Zero]]
  implicitly[Succ[Succ[Zero]]]
  implicitly[Succ[Succ[Succ[Zero]]]]

}