Advertisement
Guest User

Untitled

a guest
Apr 19th, 2015
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. trait Holders
  2.  
  3. case class MapHolder[A, B](f: A => B) extends Holders
  4.  
  5. trait Worker
  6.  
  7. case class MapWrk[A, B](f: A => B) extends Worker
  8.  
  9. object MyTypeErasureProblem extends App {
  10.  
  11. val myFunc = MapHolder((x: Int) => x + 10)
  12.  
  13. def buildWorker(hh: Holders) =
  14. hh match {
  15. case MapHolder(f) => MapWrk(f)
  16. }
  17.  
  18. println(buildWorker(myFunc).f(10))
  19. }
  20.  
  21. Error:(22, 35) type mismatch;
  22. found : Nothing => Any
  23. required: A => Any
  24. case MapHolder(f) => MapWrk(f)
  25. ^
  26. Error:(26, 33) type mismatch;
  27. found : Int(10)
  28. required: Nothing
  29. println(buildWorker(myFunc).f(10))
  30. ^
  31.  
  32. def buildWorker[A,B](hh: MapHolder[A,B]) = ...
  33.  
  34. case class ReduceHolder[V](f: (V,V) => V) extends Holders
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement