diff --git a/lib/src/http.dart b/lib/src/http.dart
index 9190a416ca65159ba86d16dc621f6fad3435bb12..b46435c20178e6b3329fd34236279383daeedc0e 100644
--- a/lib/src/http.dart
+++ b/lib/src/http.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 /// Helpers for dealing with HTTP.
-library http;
+library pub.http;
 
 import 'dart:io';
 import 'dart:json';
diff --git a/lib/src/source.dart b/lib/src/source.dart
index b08647555e4556efae93e041f859de6513dabab4..1fcf9c87a5c140505559f4d50f83fa744a18fdc5 100644
--- a/lib/src/source.dart
+++ b/lib/src/source.dart
@@ -143,8 +143,10 @@ abstract class Source {
    * This doesn't need to be implemented if [shouldCache] is false, or if
    * [installToSystemCache] is implemented.
    */
-  String systemCacheDirectory(PackageId id) =>
-    join(systemCacheRoot, packageName(id.description));
+  String systemCacheDirectory(PackageId id) {
+    throw 'Source.systemCacheDirectory must be implemented if shouldCache is '
+        'true and installToSystemCache is not implemented.';
+  }
 
   /**
    * When a [Pubspec] or [LockFile] is parsed, it reads in the description for
diff --git a/lib/src/yaml/composer.dart b/lib/src/yaml/composer.dart
index c10e5e818c6ed17bb752237db3fa8e998b096498..e88253dfe5744cab6f6515ee03131a335db0cabe 100644
--- a/lib/src/yaml/composer.dart
+++ b/lib/src/yaml/composer.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+part of yaml;
+
 /**
  * Takes a parsed YAML document (what the spec calls the "serialization tree")
  * and resolves aliases, resolves tags, and parses scalars to produce the
diff --git a/lib/src/yaml/constructor.dart b/lib/src/yaml/constructor.dart
index d52ef6ebf19cee9cb7f8fe68be2ef74dd860afba..5ea24be5bcb27bd6d94f4b1a3e3e34d8824d39af 100644
--- a/lib/src/yaml/constructor.dart
+++ b/lib/src/yaml/constructor.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+part of yaml;
+
 /**
  * Takes a parsed and composed YAML document (what the spec calls the
  * "representation graph") and creates native Dart objects that represent that
diff --git a/lib/src/yaml/model.dart b/lib/src/yaml/model.dart
index 2ba1416b63145e8cd5936528d286a6858334a4e0..e99d0b2cd747713d78b07800772bf07a685c26b8 100644
--- a/lib/src/yaml/model.dart
+++ b/lib/src/yaml/model.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+part of yaml;
+
 // This file contains the node classes for the internal representations of YAML
 // documents. These nodes are used for both the serialization tree and the
 // representation graph.
diff --git a/lib/src/yaml/parser.dart b/lib/src/yaml/parser.dart
index dcfc50a35f97029ac24a259b34ce8ade9c013928..43519918527828da29788bb92bafe96d21b3bf40 100644
--- a/lib/src/yaml/parser.dart
+++ b/lib/src/yaml/parser.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+part of yaml;
+
 /**
  * Translates a string of characters into a YAML serialization tree.
  *
@@ -1805,10 +1807,10 @@ class _Parser {
   _Node s_l_blockScalar(int indent, int ctx) => transaction(() {
     if (!truth(s_separate(indent + 1, ctx))) return null;
     var props = transaction(() {
-      var props = c_ns_properties(indent + 1, ctx);
-      if (!truth(props)) return null;
+      var innerProps = c_ns_properties(indent + 1, ctx);
+      if (!truth(innerProps)) return null;
       if (!truth(s_separate(indent + 1, ctx))) return null;
-      return props;
+      return innerProps;
     });
 
     var node = or([() => c_l_literal(indent), () => c_l_folded(indent)]);
diff --git a/lib/src/yaml/visitor.dart b/lib/src/yaml/visitor.dart
index 22ada8b2daabdddc3c10632188d2ab90afa32326..5a9894a0aaee0c34d53f9ff3996645dd56ff942d 100644
--- a/lib/src/yaml/visitor.dart
+++ b/lib/src/yaml/visitor.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+part of yaml;
+
 /** The visitor pattern for YAML documents. */
 class _Visitor {
   /** Returns [alias]. */
diff --git a/lib/src/yaml/yaml_map.dart b/lib/src/yaml/yaml_map.dart
index 0826cee117d7cb80ec3fc9d866ad73646510a560..040ac3ebac8750e9ba06951899a97b381a80f2fe 100644
--- a/lib/src/yaml/yaml_map.dart
+++ b/lib/src/yaml/yaml_map.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+part of yaml;
+
 /**
  * This class wraps behaves almost identically to the normal Dart Map
  * implementation, with the following differences:
diff --git a/test/test_pub.dart b/test/test_pub.dart
index 5948f91c9324827bbb1a64e1dbee8056adc0253e..78d198ae0da8e43644995f3f9511f2cfe4bf23e2 100644
--- a/test/test_pub.dart
+++ b/test/test_pub.dart
@@ -1424,7 +1424,8 @@ class ScheduledProcess {
   /// Reads the next line of stdout from the process.
   Future<String> nextLine() {
     return _scheduleValue((_) {
-      return timeout(_stdout.chain(readLine), _SCHEDULE_TIMEOUT,
+      return timeout(_stdout.chain((stream) => readLine(stream)),
+          _SCHEDULE_TIMEOUT,
           "waiting for the next stdout line from process $name");
     });
   }
@@ -1432,7 +1433,8 @@ class ScheduledProcess {
   /// Reads the next line of stderr from the process.
   Future<String> nextErrLine() {
     return _scheduleValue((_) {
-      return timeout(_stderr.chain(readLine), _SCHEDULE_TIMEOUT,
+      return timeout(_stderr.chain((stream) => readLine(stream)),
+          _SCHEDULE_TIMEOUT,
           "waiting for the next stderr line from process $name");
     });
   }