From 87f8089ba8b647e76b2102658959d32fbcbcb8f9 Mon Sep 17 00:00:00 2001 From: Adriaan Moors Date: Thu, 4 May 2023 21:04:29 +0200 Subject: [PATCH] More readability for processEvictions --- .../sbt/librarymanagement/EvictionError.scala | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/core/src/main/scala/sbt/librarymanagement/EvictionError.scala b/core/src/main/scala/sbt/librarymanagement/EvictionError.scala index 52b056e6d..9711a4d6f 100644 --- a/core/src/main/scala/sbt/librarymanagement/EvictionError.scala +++ b/core/src/main/scala/sbt/librarymanagement/EvictionError.scala @@ -88,33 +88,34 @@ object EvictionError { // https://github.com/sbt/sbt/issues/4946 case p if p.winner.isDefined => val winner = p.winner.get - def lookupUserDefined(org: String = "*", mod: String = "*") = + def fromLibraryDependencySchemes(org: String = "*", mod: String = "*") = userDefinedSchemes.get((org, mod)) def fromWinnerPom = VersionSchemes.extractFromExtraAttributes( winner.extraAttributes.toMap ++ winner.module.extraAttributes ) // prioritize user-defined version scheme to allow overriding the real scheme val userDefinedSchemeOrFromPom = - lookupUserDefined(p.organization, p.name) - .orElse(lookupUserDefined(p.organization)) + fromLibraryDependencySchemes(p.organization, p.name) + .orElse(fromLibraryDependencySchemes(p.organization)) .orElse(fromWinnerPom) - .orElse(lookupUserDefined()) + .orElse(fromLibraryDependencySchemes()) val assumedScheme = if (isNameScalaSuffixed(p.name)) assumedVersionScheme else assumedVersionSchemeJava - def hasIncompatibleVersionForScheme(scheme: Option[String]) = { + def hasIncompatibleVersionForScheme(scheme: String) = { val isCompat = - scheme.map(VersionSchemes.evalFunc).getOrElse(EvictionWarningOptions.guessTrue) + VersionSchemes.evalFunc(scheme) p.evicteds.exists { r => !isCompat((r.module, Some(winner.module), module.scalaModuleInfo)) } } - if (hasIncompatibleVersionForScheme(userDefinedSchemeOrFromPom)) + val userDefinedSchemeOrAlways = userDefinedSchemeOrFromPom.getOrElse(VersionSchemes.Always) + if (hasIncompatibleVersionForScheme(userDefinedSchemeOrAlways)) incompatibleEvictions += (p -> userDefinedSchemeOrFromPom.getOrElse("?")) - else if (hasIncompatibleVersionForScheme(Some(assumedScheme))) + else if (hasIncompatibleVersionForScheme(assumedScheme)) assumedIncompatEvictions += (p -> assumedScheme) case _ => ()