Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.95 KB | None | 0 0
  1. sealed trait Color extends LoudColor with CalmColor
  2. object Color {
  3.   case class Black(value: Int) extends Color
  4.   case object White extends Color
  5. }
  6.  
  7. sealed trait CalmColor
  8. object CalmColor {
  9.   case object Blue extends CalmColor
  10.   case object Green extends CalmColor
  11. }
  12.  
  13. sealed trait LoudColor
  14. object LoudColor {
  15.   case object Red extends LoudColor
  16. }
  17.  
  18. object Main {
  19.   def f() {
  20.     var c : Color = null;
  21.     var cc : CalmColor = null;
  22.     var lc : LoudColor = null;
  23.  
  24.     c = Color.Black(10);
  25.     c = Color.White;
  26.     c = CalmColor.Blue; // expect error
  27.     c = CalmColor.Green; // expect error
  28.     c = LoudColor.Red; // expect error
  29.  
  30.     cc = Color.Black(10);
  31.     cc = Color.White;
  32.     cc = CalmColor.Blue;
  33.     cc = CalmColor.Green;
  34.     cc = LoudColor.Red; // expect error
  35.  
  36.     lc = Color.Black(10);
  37.     lc = Color.White;
  38.     lc = CalmColor.Blue; // expect error
  39.     lc = CalmColor.Green; // expect error
  40.     lc = LoudColor.Red;
  41.   }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement