anchor.diff:    }
     return metadata;
   }
  +
  +bool _isNull(DartObject obj) => obj == null || obj.isNull;
  
positive.code: List<DartObject> coerceList(DartObject value, String field) =>
      getField(value, field)?.toListValue() ?? const [];
  
  /*=T*/ coerceEnumValue/*<T>*/(DartObject value, String field,
      List/*<T>*/ values, dynamic/*=T*/ defaultValue) {
    var enumValue = getField(value, field);
    var index = getField(enumValue, 'index');
    if (index == null || index.isNull) return defaultValue;
    var indexNum = index.toIntValue();
    return indexNum != null ? values[indexNum] : defaultValue;
  }
  
negative.code: /// If the field is not found in the object, then it will visit the super
  /// object.
  DartObject getField(DartObject object, String field) {
    if (_isNull(object)) return null;
    var fieldValue = object.getField(field);
    if (fieldValue != null && !fieldValue.isNull) {
      return fieldValue;
  