anchor.diff:    /// If [condition] is `false` throws a format error with [message] for [node].
     static void _validate(bool condition, String message, YamlNode node) {
       if (condition) return;
  -    throw new SpanFormatException(message, node.span);
  +    throw new SourceSpanFormatException(message, node.span);
     }
   
     /// Returns the serialized YAML text of the lock file.
  
positive.code:           description = source.parseDescription(filePath, description,
                fromLockFile: true);
          } on FormatException catch (ex) {
            throw new SpanFormatException(ex.message, spec.nodes['source'].span);
          }
  
          var id = new PackageId(name, sourceName, version, description);
  
negative.code: 
      if (contents.trim() == '') return new LockFile.empty();
  
      var sourceUrl;
      if (filePath != null) sourceUrl = p.toUri(filePath);
      var parsed = loadYamlNode(contents, sourceUrl: sourceUrl);
  
      _validate(parsed is Map, 'The lockfile must be a YAML mapping.', parsed);
  
  