@@ -1294,49 +1294,10 @@ public final class PubgrubDependencyResolver<
12941294
12951295 /// Returns the best available version for a given term.
12961296 func getBestAvailableVersion( for term: Term < Identifier > ) throws -> Version ? {
1297- let container = try ! getContainer ( for: term. package )
1298- let availableVersions = container. versions ( filter: { term. isSatisfied ( by: $0) } )
1299-
1300- // FIXME: Clean this up.
1301- for version in availableVersions {
1302- // If there is an existing single-positive-term incompatibility
1303- // that forbids this version, we should skip right to trying the
1304- // next one.
1305- let requirements = incompatibilities [ term. package ] ?
1306- . filter {
1307- $0. terms. count == 1 &&
1308- $0. terms. first? . package == term. package &&
1309- $0. terms. first? . isPositive == true
1310- }
1311- . map {
1312- $0. terms. first!. requirement
1313- }
1314-
1315- for forbidden in requirements ?? [ ] {
1316- switch forbidden {
1317- case . versionSet( let versionSet) :
1318- switch versionSet {
1319- case . any:
1320- continue
1321- case . range( let forbidden) :
1322- if forbidden. contains ( version: version) {
1323- continue
1324- }
1325- case . exact( let forbidden) :
1326- if forbidden == version {
1327- continue
1328- }
1329- case . empty:
1330- break
1331- }
1332- default :
1333- break
1334- }
1335- }
1336- return version
1337- }
1338-
1339- return nil
1297+ assert ( term. isPositive, " Expected term to be positive " )
1298+ let container = try getContainer ( for: term. package )
1299+ let availableVersions = container. versions ( filter: { term. isSatisfied ( by: $0) } )
1300+ return availableVersions. first { _ in true }
13401301 }
13411302
13421303 /// Returns the incompatibilities of a package at the given version.
0 commit comments