Use Future.unit instead of Future.successful(()). (#7080)

And in one instance, `Resource.unit`.

I just think it's easier to read. Too many parentheses make Samir a dull
boy.

CHANGELOG_BEGIN
CHANGELOG_END
This commit is contained in:
Samir Talwar 2020-08-11 11:18:50 +02:00 committed by GitHub
parent 5ac7dfbe78
commit 27f76c4386
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 36 additions and 32 deletions

View File

@ -70,7 +70,7 @@ object TestMain extends StrictLogging {
}
val jsVal = fileContent.parseJson
import ParticipantsJsonProtocol._
(jsVal.convertTo[Participants[ApiParameters]], () => Future.successful(()))
(jsVal.convertTo[Participants[ApiParameters]], () => Future.unit)
case None =>
val (apiParameters, cleanup) = if (config.ledgerHost.isEmpty) {
val timeProviderType = config.timeMode match {
@ -88,7 +88,7 @@ object TestMain extends StrictLogging {
} else {
(
ApiParameters(config.ledgerHost.get, config.ledgerPort.get, None, None),
() => Future.successful(()),
() => Future.unit,
)
}
(

View File

@ -246,7 +246,7 @@ class Extractor[T](config: ExtractorConfig, target: T)(
private def transactionHandled(t: TransactionTree): Future[Unit] = {
startOffSet = LedgerOffset.Value.Absolute(t.offset)
Future.successful(())
Future.unit
}
private def createClient: Future[LedgerClient] =

View File

@ -25,7 +25,7 @@ trait PrinterFunctionWriter { self: Writer =>
printer("DAML Extractor")
printer("==============")
Future.successful(())
Future.unit
}
def handlePackages(packageStore: PackageStore): Future[Unit] = {
@ -34,7 +34,7 @@ trait PrinterFunctionWriter { self: Writer =>
printer("====================")
packageStore.foreach((handlePackage _).tupled)
Future.successful(())
Future.unit
}
def handleTransaction(transaction: TransactionTree): Future[RefreshPackages \/ Unit] = {

View File

@ -115,11 +115,15 @@ final class AuthSpec
(_, _, _) =>
new Writer {
private val lastOffset = new AtomicReference[String]
override def init(): Future[Unit] = Future.successful(())
override def init(): Future[Unit] = Future.unit
override def handlePackages(packageStore: PackageStore): Future[Unit] =
Future.successful(())
Future.unit
override def handleTransaction(
transaction: TransactionTree): Future[Writer.RefreshPackages \/ Unit] = {
transaction: TransactionTree
): Future[Writer.RefreshPackages \/ Unit] = {
Future.successful {
\/.right {
lastOffset.set {

View File

@ -26,7 +26,7 @@ private[codegen] final case class InterfaceTree(
interface: Interface) {
def process(f: NodeWithContext => Future[Unit])(implicit ec: ExecutionContext): Future[Unit] = {
bfs(Future.successful(())) {
bfs(Future.unit) {
case (a, nodeWithContext) => a.zipWith(f(nodeWithContext))((_, _) => ())(ec)
}
}

View File

@ -70,7 +70,7 @@ private[codegen] object JavaBackend extends Backend with StrictLogging {
}
}
case _ =>
Future.successful(())
Future.unit
}
}

View File

@ -73,7 +73,7 @@ object IouMain extends App with StrictLogging {
private val issuerWorkflowId: WorkflowId = workflowIdFromParty(issuer)
def validatePackageId(allPackageIds: Set[String], packageId: String): Future[Unit] =
if (allPackageIds(packageId)) Future.successful(())
if (allPackageIds(packageId)) Future.unit
else
Future.failed(
new IllegalArgumentException(

View File

@ -118,7 +118,7 @@ object HttpServiceTestFixture {
Seq(
ledgerF.map(_._1.close()),
httpServiceF.flatMap(_.unbind()),
) map (_ fallbackTo Future.successful(())))
) map (_ fallbackTo Future.unit))
.transform(_ => ta)
}
}

View File

@ -369,7 +369,7 @@ class CommandTrackerFlowTest
_ <- completionStreamMock.breakCompletionsStream()
offset3 <- completionStreamMock.getLastOffset
_ <- if (offset3 != checkPointOffset) breakUntilOffsetArrives()
else Future.successful(())
else Future.unit
} yield ()
def sendCommand(commandId: String) = {

View File

@ -226,7 +226,7 @@ private[testtool] final class ParticipantTestContext private[participant] (
.map(_ => ())
}
} else {
Future.successful(())
Future.unit
}
def activeContracts(

View File

@ -145,7 +145,7 @@ final class CommandDeduplicationIT extends LedgerTestSuite {
// a resubmission of exactly the same command should succeed.
_ <- submissionResults
.collectFirst { case (request, Failure(_)) => request }
.fold(Future.successful(()))(request => ledger.submitAndWait(request))
.fold(Future.unit)(request => ledger.submitAndWait(request))
} yield {
()
}

View File

@ -49,7 +49,7 @@ private[daml] final class LedgerApiServer(
).acquire()
// Notify the caller that the services have been closed, so a reset request can complete
// without blocking on the server terminating.
_ <- Resource(Future.successful(()))(_ =>
_ <- Resource(Future.unit)(_ =>
apiServicesResource.release().map(_ => servicesClosedPromise.success(())))
} yield {
val host = address.getOrElse("localhost")

View File

@ -92,7 +92,7 @@ private[indexer] final class RecoveringIndexer(
}
}
} else {
Future.successful(())
Future.unit
}
}
} yield ()

View File

@ -34,7 +34,7 @@ final class StandaloneIndexerServer(
val indexer = new RecoveringIndexer(materializer.system.scheduler, config.restartDelay)
config.startupMode match {
case IndexerStartupMode.MigrateOnly =>
Resource.successful(())
Resource.unit
case IndexerStartupMode.MigrateAndStart =>
Resource
.fromFuture(indexerFactory.migrateSchema(config.allowExistingSchema))

View File

@ -82,7 +82,7 @@ class RecoveringIndexerSpec
val resource = recoveringIndexer.start(() => testIndexer.subscribe())
for {
_ <- akka.pattern.after(100.millis, actorSystem.scheduler)(Future.successful(()))
_ <- akka.pattern.after(100.millis, actorSystem.scheduler)(Future.unit)
_ <- resource.release()
complete <- resource.asFuture
_ <- complete

View File

@ -162,7 +162,7 @@ class BatchingQueueSpec
).run { batch =>
{
batches += batch
Future.successful(())
Future.unit
}
}

View File

@ -153,7 +153,7 @@ class SubmissionValidatorSpec extends AsyncWordSpec with Matchers with Inside {
.thenReturn(Future.successful(Seq(Some(aStateValue()))))
val writtenKeyValuesCaptor = captor[RawKeyValuePairs]
when(mockStateOperations.writeState(writtenKeyValuesCaptor.capture()))
.thenReturn(Future.successful(()))
.thenReturn(Future.unit)
val logEntryCaptor = captor[Bytes]
when(mockStateOperations.appendToLog(any[Bytes](), logEntryCaptor.capture()))
.thenReturn(Future.successful(expectedLogResult))
@ -188,7 +188,7 @@ class SubmissionValidatorSpec extends AsyncWordSpec with Matchers with Inside {
.thenReturn(Future.successful(Seq(Some(aStateValue()))))
val writtenKeyValuesCaptor = captor[RawKeyValuePairs]
when(mockStateOperations.writeState(writtenKeyValuesCaptor.capture()))
.thenReturn(Future.successful(()))
.thenReturn(Future.unit)
val logEntryCaptor = captor[Bytes]
when(mockStateOperations.appendToLog(any[Bytes](), logEntryCaptor.capture()))
.thenReturn(Future.successful(expectedLogResult))

View File

@ -400,5 +400,5 @@ final class SandboxServer(
private def writePortFile(port: Port)(implicit executionContext: ExecutionContext): Future[Unit] =
config.portFile
.map(path => Future(Files.write(path, Seq(port.toString).asJava)).map(_ => ()))
.getOrElse(Future.successful(()))
.getOrElse(Future.unit)
}

View File

@ -208,7 +208,7 @@ object SqlLedger {
.transform(_ => (), e => sys.error("Failed to copy initial packages: " + e.getMessage))(
DEC)
} else {
Future.successful(())
Future.unit
}
}

View File

@ -33,7 +33,7 @@ trait Resource[+A] {
*/
def map[B](f: A => B)(implicit executionContext: ExecutionContext): Resource[B] =
// A mapped Resource is a mapped future plus a nesting of an empty release operation and the actual one
Resource.nest(asFuture.map(f))(_ => Future.successful(()), release _)
Resource.nest(asFuture.map(f))(_ => Future.unit, release _)
/**
* Just like [[Future]]s, [[Resource]]s can be chained. Both component [[Resource]]s will be released correctly
@ -49,7 +49,7 @@ trait Resource[+A] {
val nextRelease = (_: B) =>
nextFuture.transformWith {
case Success(b) => b.release() // Release next resource
case Failure(_) => Future.successful(()) // Already released by future failure
case Failure(_) => Future.unit // Already released by future failure
}
val future = nextFuture.flatMap(_.asFuture)
Resource.nest(future)(nextRelease, release _) // Nest next resource release and this resource release
@ -65,7 +65,7 @@ trait Resource[+A] {
Future.successful(value)
else
Future.failed(new ResourceAcquisitionFilterException()))
Resource.nest(future)(_ => Future.successful(()), release _)
Resource.nest(future)(_ => Future.unit, release _)
}
/**
@ -143,13 +143,13 @@ object Resource {
def apply[T](future: Future[T])(releaseResource: T => Future[Unit])(
implicit executionContext: ExecutionContext
): Resource[T] =
nest(future)(releaseResource, () => Future.successful(()))
nest(future)(releaseResource, () => Future.unit)
/**
* Wraps a simple [[Future]] in a [[Resource]] that doesn't need to be released.
*/
def fromFuture[T](future: Future[T])(implicit executionContext: ExecutionContext): Resource[T] =
apply(future)(_ => Future.successful(()))
apply(future)(_ => Future.unit)
/**
* Produces a [[Resource]] that has already succeeded with the [[Unit]] value.

View File

@ -31,7 +31,7 @@ final class TestResourceOwner[T](acquire: Future[T], release: T => Future[Unit])
object TestResourceOwner {
def apply[T](value: T): TestResourceOwner[T] =
new TestResourceOwner(Future.successful(value), _ => Future.successful(()))
new TestResourceOwner(Future.successful(value), _ => Future.unit)
final class TriedToAcquireTwice extends Exception("Tried to acquire twice.")

View File

@ -217,7 +217,7 @@ class PlatformSubscriber(
.runWith(Sink.ignore)
// This stream starts immediately
Future.successful(())
Future.unit
}
private def startTrackingCommands()
@ -289,7 +289,7 @@ class PlatformSubscriber(
log.info(
"Successfully loaded packages {}",
interfaces.map(_.packageId).mkString("[", ", ", "]"))
Future.successful(())
Future.unit
})
.recoverWith(apiFailureF)
}