From 6e0c6c35153c3be04cba4fc59767438f4ff5c28f Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Mon, 15 May 2017 15:32:54 +0200 Subject: [PATCH] Always use same Function1 instance for Resolution fields Allows to use the resolution as cache key --- sbt-coursier/src/main/scala/coursier/Tasks.scala | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sbt-coursier/src/main/scala/coursier/Tasks.scala b/sbt-coursier/src/main/scala/coursier/Tasks.scala index f5a1dab44..da58bafb8 100644 --- a/sbt-coursier/src/main/scala/coursier/Tasks.scala +++ b/sbt-coursier/src/main/scala/coursier/Tasks.scala @@ -425,6 +425,9 @@ object Tasks { } } + private val noOptionalFilter: Option[Dependency => Boolean] = Some(dep => !dep.optional) + private val typelevelOrgSwap: Option[Dependency => Dependency] = Some(Typelevel.swap(_)) + def resolutionTask( sbtClassifiers: Boolean = false @@ -506,7 +509,7 @@ object Tasks { val startRes = Resolution( currentProject.dependencies.map(_._2).toSet, - filter = Some(dep => !dep.optional), + filter = noOptionalFilter, userActivations = if (userEnabledProfiles.isEmpty) None @@ -518,7 +521,7 @@ object Tasks { forcedScalaModules(so, sv) ++ interProjectDependencies.map(_.moduleVersion), projectCache = parentProjectCache, - mapDependencies = if (typelevel) Some(Typelevel.swap(_)) else None + mapDependencies = if (typelevel) typelevelOrgSwap else None ) if (verbosityLevel >= 2) { @@ -1060,7 +1063,7 @@ object Tasks { reportsCache.getOrElseUpdate( ReportCacheKey( currentProject, - res.copy(filter = None), + res, withClassifiers, sbtClassifiers ),