Index: sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart |
diff --git a/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart b/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart |
index ee16741b513fcba1edeb188f443270d51a07b9f7..a6b8f890889fef7fb1cf3d9e347b76ebf27426f1 100644 |
--- a/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart |
+++ b/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart |
@@ -50,6 +50,12 @@ class Entrypoint { |
/// the installed packages. |
final bool _packageSymlinks; |
+ /// Whether this entrypoint is in-memory and doesn't correspond to a user's |
+ /// package directory on disk (for example, a globally activated package). |
+ /// |
+ /// In-memory entrypoints' lockfiles are always considered up-to-date. |
+ final bool _inMemory; |
+ |
/// The lockfile for the entrypoint. |
/// |
/// If not provided to the entrypoint, it will be laoded lazily from disc. |
@@ -66,11 +72,13 @@ class Entrypoint { |
Entrypoint(String rootDir, SystemCache cache, {bool packageSymlinks: true}) |
: root = new Package.load(null, rootDir, cache.sources), |
cache = cache, |
- _packageSymlinks = packageSymlinks; |
+ _packageSymlinks = packageSymlinks, |
+ _inMemory = false; |
/// Creates an entrypoint given package and lockfile objects. |
Entrypoint.inMemory(this.root, this._lockFile, this.cache) |
- : _packageSymlinks = false; |
+ : _packageSymlinks = false, |
+ _inMemory = true; |
/// The path to the entrypoint's "packages" directory. |
String get packagesDir => root.path('packages'); |
@@ -562,6 +570,8 @@ class Entrypoint { |
/// contains dependencies that are not in the lockfile or that don't match |
/// what's in there. |
bool _isLockFileUpToDate(LockFile lockFile) { |
+ if (_inMemory) return true; |
+ |
return root.immediateDependencies.every((package) { |
var locked = lockFile.packages[package.name]; |
if (locked == null) return false; |