alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Scala example source code file (bug3714-neg.scala)

This example Scala source code file (bug3714-neg.scala) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Scala tags/keywords

any, any, array, break, break, breakimpl, breakimpl, int, int, none, test

The Scala bug3714-neg.scala source code

// this is a slight negative twist on run/bug3714.scala.
trait Break {
  protected val break: Int;
}

class BreakImpl(protected val break: Int) extends Break { }
object BreakImpl {
  def apply(x: Int): Break = new BreakImpl(x)
  def unapply(x: Any) = x match {
    case x: BreakImpl => Some(x.break)
    case _            => None
  }
}

object Test {
  def f1(x: Break) = x match {
    case b: BreakImpl => b.break
    case b            => -1
  }
  def f2(x: Break) = x match {
    case BreakImpl(x) => x
    case _            => -1
  }
  def f3(x: Any) = x match {
    case b: BreakImpl => b.break
    case b            => -1
  }
  def f4(x: Any) = x match {
    case BreakImpl(x) => x
    case _            => -1
  }
  
  def main(args: Array[String]) {
    val break = BreakImpl(22)
    assert(f1(break) == 22)
    assert(f2(break) == 22)
    assert(f3(break) == 22)
    assert(f4(break) == 22)
  }
}

Other Scala examples (source code examples)

Here is a short list of links related to this Scala bug3714-neg.scala source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.