=act #3572 Add parens to sender

* because it is not referentially transparent; normally we reserved parens for
  side-effecting code but given how people thoughtlessly close over it we revised
  that that decision for sender
* caller can still omit parens
This commit is contained in:
Patrik Nordwall 2014-01-16 15:16:35 +01:00
parent 537840bd2a
commit a11fb1dafc
202 changed files with 631 additions and 620 deletions

View file

@ -63,8 +63,8 @@ class EchoManager(handlerClass: Class[_]) extends Actor with ActorLogging {
//#echo-manager
case Connected(remote, local) =>
log.info("received connection from {}", remote)
val handler = context.actorOf(Props(handlerClass, sender, remote))
sender ! Register(handler, keepOpenOnPeerClosed = true)
val handler = context.actorOf(Props(handlerClass, sender(), remote))
sender() ! Register(handler, keepOpenOnPeerClosed = true)
//#echo-manager
}

View file

@ -46,7 +46,7 @@ class Server extends Actor {
context.parent ! c
//#server
val handler = context.actorOf(Props[SimplisticHandler])
val connection = sender
val connection = sender()
connection ! Register(handler)
}
@ -57,7 +57,7 @@ class Server extends Actor {
class SimplisticHandler extends Actor {
import Tcp._
def receive = {
case Received(data) => sender ! Write(data)
case Received(data) => sender() ! Write(data)
case PeerClosed => context stop self
}
}
@ -83,7 +83,7 @@ class Client(remote: InetSocketAddress, listener: ActorRef) extends Actor {
case c @ Connected(remote, local) =>
listener ! c
val connection = sender
val connection = sender()
connection ! Register(self)
context become {
case data: ByteString =>

View file

@ -22,9 +22,9 @@ object ScalaUdpDocSpec {
def receive = {
case Udp.SimpleSenderReady =>
context.become(ready(sender))
context.become(ready(sender()))
//#sender
sender ! Udp.Send(ByteString("hello"), remote)
sender() ! Udp.Send(ByteString("hello"), remote)
//#sender
}
@ -48,7 +48,7 @@ object ScalaUdpDocSpec {
//#listener
nextActor forward local
//#listener
context.become(ready(sender))
context.become(ready(sender()))
}
def ready(socket: ActorRef): Receive = {
@ -72,9 +72,9 @@ object ScalaUdpDocSpec {
def receive = {
case UdpConnected.Connected =>
context.become(ready(sender))
context.become(ready(sender()))
//#connected
sender ! UdpConnected.Send(ByteString("hello"))
sender() ! UdpConnected.Send(ByteString("hello"))
//#connected
}