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")); |