anchor.diff:      return true;
     }
   
  +  /// Merges the contents of the [other] into this message.
  +  ///
  +  /// Singular fields that are set in [other] overwrite the corresponding fields
  +  /// in this message. Repeated fields are appended. Singular sub-messages are
  +  /// recursively merged.
     void mergeFromMessage(GeneratedMessage other) {
       for (int tagNumber in other._fieldValues.keys) {
         var fieldValue = other._fieldValues[tagNumber];
  
positive.code:     return value;
    }
  
    /**
     * Return [:true:] if a value of the given extension is present.
     */
    bool hasExtension(Extension extension) {
      _checkExtension(extension);
      return hasField(extension.tagNumber);
    }
  
    bool hasField(int tagNumber) {
      if (!_fieldValues.containsKey(tagNumber)) {
        return false;
  
negative.code:     });
    }
  
    /// Returns the value of [extension].
    ///
    /// For repeated fields that have not been set previously, [:null:] is
    /// returned.
    getExtension(Extension extension) {
      _checkExtension(extension);
      _addExtensionToMap(extension);
      return getField(extension.tagNumber);
    }
  
    /// Returns the value of the field associated with [tagNumber], or the
    /// default value if it is not set.
    getField(int tagNumber) {
      var value = _fieldValues[tagNumber];
      // Initialize the field.
  