2014-02-10 11:22:11 +01:00
|
|
|
package docs.faq
|
|
|
|
|
|
|
|
|
|
import akka.actor.Actor
|
|
|
|
|
|
|
|
|
|
//#exhaustiveness-check
|
|
|
|
|
object MyActor {
|
|
|
|
|
// these are the messages we accept
|
|
|
|
|
sealed abstract trait Message
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class FooMessage(foo: String) extends Message
|
|
|
|
|
final case class BarMessage(bar: Int) extends Message
|
2014-02-10 11:22:11 +01:00
|
|
|
|
|
|
|
|
// these are the replies we send
|
|
|
|
|
sealed abstract trait Reply
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class BazMessage(baz: String) extends Reply
|
2014-02-10 11:22:11 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class MyActor extends Actor {
|
|
|
|
|
import MyActor._
|
|
|
|
|
def receive = {
|
2014-02-21 12:31:00 +01:00
|
|
|
case message: Message => message match {
|
2014-06-20 23:05:51 +02:00
|
|
|
case BarMessage(bar) => sender() ! BazMessage("Got " + bar)
|
2014-02-10 11:22:11 +01:00
|
|
|
// warning here:
|
|
|
|
|
// "match may not be exhaustive. It would fail on the following input: FooMessage(_)"
|
2015-01-30 18:34:03 +01:00
|
|
|
//#exhaustiveness-check
|
|
|
|
|
case FooMessage(_) => // avoid the warning in our build logs
|
|
|
|
|
//#exhaustiveness-check
|
2014-02-10 11:22:11 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//#exhaustiveness-check
|