Chromium Code Reviews| 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); |
|
Bob Nystrom
2016/07/29 00:31:22
I would expect this to be inferred from this.packa
nweiz
2016/08/01 19:59:15
A lot of .from() factory constructors don't use ge
|
| 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")); |