anchor.diff:      if (dst.scheme != 'package') {
         problem('$src depends on $dst, which is neither a package: or dart: URI');
         return;
  +    }
  +    if (src.scheme == 'package' &&
  +        src.pathSegments[0] == 'front_end' &&
  +        dst.scheme == 'package' &&
  +        dst.pathSegments[0] != 'front_end') {
  +      if (allowedPackageDependencies.contains(dst.pathSegments[0])) {
  +        actualPackageDependencies.add(dst.pathSegments[0]);
  +      } else {
  +        problem('$src depends on package "${dst.pathSegments[0]}", which is '
  +            'not found in allowedPackageDependencies');
  +      }
       }
       var srcSubpackage = subpackageForUri(src);
       if (srcSubpackage == null) return;
  
positive.code: main() async {
    exit(await new _SubpackageRelationshipsTest().run());
  }
  
  /// Map from subpackage name to the rules for what the subpackage is allowed to
  /// depend directly on.
  
negative.code:   /// Indicates whether any problems have been reported yet.
    bool problemsReported = false;
  
    /// Package dependencies that were actually discovered
    final actualPackageDependencies = <String>[];
  
    /// Check for problems resulting from URI [src] having a direct dependency on
    /// URI [dst].
    void checkDependency(Uri src, Uri dst) {
  