Merge pull request #20768 from denisrosca/master

Warning for actors with value class arguments
This commit is contained in:
Patrik Nordwall 2016-07-05 16:49:41 +02:00 committed by GitHub
commit 9fbab1f268
2 changed files with 31 additions and 1 deletions

View file

@ -50,6 +50,19 @@ class ActorWithArgs(arg: String) extends Actor {
def receive = { case _ => () }
}
//#actor-with-value-class-argument
class Argument(val value: String) extends AnyVal
class ValueClassActor(arg: Argument) extends Actor {
def receive = {case _ => () }
}
object ValueClassActor {
def props1(arg: Argument) = Props(classOf[ValueClassActor], arg) // fails at runtime
def props2(arg: Argument) = Props(classOf[ValueClassActor], arg.value) // ok
def props3(arg: Argument) = Props(new ValueClassActor(arg)) // ok
}
//#actor-with-value-class-argument
class DemoActorWrapper extends Actor {
//#props-factory
object DemoActor {
@ -312,7 +325,7 @@ class ActorDocSpec extends AkkaSpec("""
val props1 = Props[MyActor]
val props2 = Props(new ActorWithArgs("arg")) // careful, see below
val props3 = Props(classOf[ActorWithArgs], "arg")
val props3 = Props(classOf[ActorWithArgs], "arg") // no support for value class arguments
//#creating-props
//#creating-props-deprecated