diff --git a/core/src/main/scala/coursier/core/Resolver.scala b/core/src/main/scala/coursier/core/Resolver.scala index d39aabe33..7bdb6bbaf 100644 --- a/core/src/main/scala/coursier/core/Resolver.scala +++ b/core/src/main/scala/coursier/core/Resolver.scala @@ -403,6 +403,9 @@ object Resolver { * The "next" dependency set, made of the current dependencies and their transitive dependencies, * trying to solve version conflicts. Transitive dependencies are calculated with the current cache. * + * May contain dependencies added in previous iterations, but no more required. These are filtered below, see + * @newDependencies. + * * Returns a tuple made of the conflicting dependencies, and all the dependencies. */ def nextDependenciesAndConflicts = { @@ -426,8 +429,8 @@ object Resolver { */ def isDone: Boolean = { def isFixPoint = { - val (nextConflicts, nextDependencies) = nextDependenciesAndConflicts - dependencies == (nextDependencies ++ nextConflicts).toSet && conflicts == nextConflicts.toSet + val (nextConflicts, _) = nextDependenciesAndConflicts + dependencies == (newDependencies ++ nextConflicts) && conflicts == nextConflicts.toSet } missingFromCache.isEmpty && isFixPoint