Index: lib/src/solver/backtracking_solver.dart |
diff --git a/lib/src/solver/backtracking_solver.dart b/lib/src/solver/backtracking_solver.dart |
index e36ff079d62d2ce513b50abe62f90dc1239a25f3..7f3cc432fe51ca74cdfcccc14cfb47c0335aa02c 100644 |
--- a/lib/src/solver/backtracking_solver.dart |
+++ b/lib/src/solver/backtracking_solver.dart |
@@ -231,10 +231,7 @@ class BacktrackingSolver { |
// can't be downgraded. |
if (type == SolveType.DOWNGRADE) { |
var locked = lockFile.packages[package]; |
- if (locked != null && |
- !systemCache.sources[locked.source].hasMultipleVersions) { |
- return locked; |
- } |
+ if (locked != null && !locked.source.hasMultipleVersions) return locked; |
} |
if (_forceLatest.isEmpty || _forceLatest.contains(package)) return null; |
@@ -259,13 +256,7 @@ class BacktrackingSolver { |
} |
var required = _selection.getRequiredDependency(name); |
- if (required != null) { |
- if (package.source != required.dep.source) return null; |
- |
- var source = systemCache.sources[package.source]; |
- if (!source.descriptionsEqual( |
- package.description, required.dep.description)) return null; |
- } |
+ if (required != null && !package.samePackage(required.dep)) return null; |
return package; |
} |
@@ -536,9 +527,7 @@ class BacktrackingSolver { |
throw new SourceMismatchException(dep.name, allDeps); |
} |
- var source = systemCache.sources[dep.source]; |
- if (!source.descriptionsEqual( |
- dep.description, required.dep.description)) { |
+ if (!dep.samePackage(required.dep)) { |
// Mark the dependers as failing rather than the package itself, because |
// no version with this description will be compatible. |
for (var otherDep in _selection.getDependenciesOn(dep.name)) { |
@@ -595,7 +584,7 @@ class BacktrackingSolver { |
// Make sure the package doesn't have any bad dependencies. |
for (var dep in deps.toSet()) { |
- if (!dep.isRoot && systemCache.sources[dep.source] is UnknownSource) { |
+ if (!dep.isRoot && dep.source is UnknownSource) { |
throw new UnknownSourceException(id.name, [new Dependency(id, dep)]); |
} |