Index: lib/src/solver/version_solver.dart |
diff --git a/lib/src/solver/version_solver.dart b/lib/src/solver/version_solver.dart |
index 83564c22c8056feb363707d76f803f84afdb3973..3c4553c26ae8ba0eaa96f0e4628376f652ca3430 100644 |
--- a/lib/src/solver/version_solver.dart |
+++ b/lib/src/solver/version_solver.dart |
@@ -79,11 +79,25 @@ class SolveResult { |
LockFile get lockFile { |
// Don't factor in overridden dependencies' SDK constraints, because we'll |
// accept those packages even if their constraints don't match. |
- var sdkConstraint = new VersionConstraint.intersection(pubspecs.values |
+ var nonOverrides = pubspecs.values |
.where((pubspec) => |
!_root.dependencyOverrides.any((dep) => dep.name == pubspec.name)) |
- .map((pubspec) => pubspec.environment.sdkVersion)); |
- return new LockFile(packages, sdkConstraint: sdkConstraint); |
+ .toList(); |
+ |
+ var dartMerged = new VersionConstraint.intersection(nonOverrides |
+ .map((pubspec) => pubspec.dartSdkConstraint)); |
+ |
+ var flutterConstraints = nonOverrides |
+ .map((pubspec) => pubspec.flutterSdkConstraint) |
+ .where((constraint) => constraint != null) |
+ .toList(); |
+ var flutterMerged = flutterConstraints.isEmpty |
+ ? null |
+ : new VersionConstraint.intersection(flutterConstraints); |
+ |
+ return new LockFile(packages, |
+ dartSdkConstraint: dartMerged, |
+ flutterSdkConstraint: flutterMerged); |
} |
final SourceRegistry _sources; |