| Index: lib/src/lock_file.dart
|
| diff --git a/lib/src/lock_file.dart b/lib/src/lock_file.dart
|
| index b00bfdb6f9947f409af2473d0b88a7a2ff5a6d5b..3a19c2fccd6e69200db9072337894b9e5d8f74f2 100644
|
| --- a/lib/src/lock_file.dart
|
| +++ b/lib/src/lock_file.dart
|
| @@ -76,32 +76,33 @@ class LockFile {
|
| var parsed = loadYamlNode(contents, sourceUrl: sourceUrl);
|
|
|
| _validate(parsed is Map, 'The lockfile must be a YAML mapping.', parsed);
|
| + var parsedMap = parsed as YamlMap;
|
|
|
| var dartSdkConstraint = VersionConstraint.any;
|
| VersionConstraint flutterSdkConstraint;
|
| - var sdkNode = parsed.nodes['sdk'];
|
| + var sdkNode = parsedMap.nodes['sdk'];
|
| if (sdkNode != null) {
|
| // Lockfiles produced by pub versions from 1.14.0 through 1.18.0 included
|
| // a top-level "sdk" field which encoded the unified constraint on the
|
| // Dart SDK. They had no way of specifying constraints on other SDKs.
|
| dartSdkConstraint = _parseVersionConstraint(sdkNode);
|
| - } else if ((parsed as Map).containsKey('sdks')) {
|
| - var sdksField = parsed['sdks'];
|
| + } else if (parsedMap.containsKey('sdks')) {
|
| + var sdksField = parsedMap['sdks'];
|
| _validate(
|
| sdksField is Map,
|
| 'The "sdks" field must be a mapping.',
|
| - parsed.nodes['sdks']);
|
| + parsedMap.nodes['sdks']);
|
|
|
| dartSdkConstraint = _parseVersionConstraint(sdksField.nodes['dart']);
|
| flutterSdkConstraint =
|
| _parseVersionConstraint(sdksField.nodes['flutter']);
|
| }
|
|
|
| - var packages = {};
|
| - var packageEntries = parsed['packages'];
|
| + var packages = <String, PackageId>{};
|
| + var packageEntries = parsedMap['packages'];
|
| if (packageEntries != null) {
|
| _validate(packageEntries is Map, 'The "packages" field must be a map.',
|
| - parsed.nodes['packages']);
|
| + parsedMap.nodes['packages']);
|
|
|
| packageEntries.forEach((name, spec) {
|
| // Parse the version.
|
| @@ -182,7 +183,7 @@ class LockFile {
|
| LockFile setPackage(PackageId id) {
|
| if (id.isRoot) return this;
|
|
|
| - var packages = new Map.from(this.packages);
|
| + var packages = new Map<String, PackageId>.from(this.packages);
|
| packages[id.name] = id;
|
| return new LockFile._(packages, dartSdkConstraint, flutterSdkConstraint);
|
| }
|
| @@ -193,7 +194,7 @@ class LockFile {
|
| LockFile removePackage(String name) {
|
| if (!this.packages.containsKey(name)) return this;
|
|
|
| - var packages = new Map.from(this.packages);
|
| + var packages = new Map<String, PackageId>.from(this.packages);
|
| packages.remove(name);
|
| return new LockFile._(packages, dartSdkConstraint, flutterSdkConstraint);
|
| }
|
| @@ -205,7 +206,8 @@ class LockFile {
|
| String packagesFile(SystemCache cache, [String entrypoint]) {
|
| var header = "Generated by pub on ${new DateTime.now()}.";
|
|
|
| - var map = new Map.fromIterable(ordered(packages.keys), value: (name) {
|
| + var map = new Map<String, Uri>.fromIterable(ordered(packages.keys),
|
| + value: (name) {
|
| var id = packages[name];
|
| var source = cache.source(id.source);
|
| return p.toUri(p.join(source.getDirectory(id), "lib"));
|
|
|