Index: lib/src/pubspec.dart |
diff --git a/lib/src/pubspec.dart b/lib/src/pubspec.dart |
index 254c18844e680ca932ccbc6f8b65b5d8a8d0cd24..2186cdef17e236eccc1ade8cf444dce4273eaf95 100644 |
--- a/lib/src/pubspec.dart |
+++ b/lib/src/pubspec.dart |
@@ -151,7 +151,7 @@ class Pubspec { |
fields.nodes['transformers'].span); |
} |
- _transformers = transformers.nodes.map((phase) { |
+ _transformers = (transformers as YamlList).nodes.map((phase) { |
var phaseNodes = phase is YamlList ? phase.nodes : [phase]; |
return phaseNodes.map((transformerNode) { |
var transformer = transformerNode.value; |
@@ -428,14 +428,17 @@ class Pubspec { |
factory Pubspec.parse(String contents, SourceRegistry sources, |
{String expectedName, Uri location}) { |
var pubspecNode = loadYamlNode(contents, sourceUrl: location); |
+ Map pubspecMap; |
if (pubspecNode is YamlScalar && pubspecNode.value == null) { |
- pubspecNode = new YamlMap(sourceUrl: location); |
- } else if (pubspecNode is! YamlMap) { |
+ pubspecMap = new YamlMap(sourceUrl: location); |
+ } else if (pubspecNode is YamlMap) { |
+ pubspecMap = pubspecNode; |
+ } else { |
throw new PubspecException( |
'The pubspec must be a YAML mapping.', pubspecNode.span); |
} |
- return new Pubspec.fromMap(pubspecNode, sources, |
+ return new Pubspec.fromMap(pubspecMap, sources, |
expectedName: expectedName, location: location); |
} |