getMagnitude method

  1. @override
ApiChangeMagnitude getMagnitude()
override

Implementation

@override
ApiChangeMagnitude getMagnitude() {
  if (_overriddenMagnitude != null) return _overriddenMagnitude!;

  if (parentName.startsWith('_')) {
    // if the parent method/constructor is private, it's a patch change
    return ApiChangeMagnitude.patch;
  }
  if (operation == ApiChangeOperation.renaming) {
    return ApiChangeMagnitude.patch;
  }

  if (operation == ApiChangeOperation.reordering) {
    return ApiChangeMagnitude.major;
  }

  if (operation == ApiChangeOperation.typeChange) {
    if (newType != null && parameter.type.isAssignableTo(newType!)) {
      return ApiChangeMagnitude.minor;
    }
    return ApiChangeMagnitude.major;
  }

  if (operation == ApiChangeOperation.becomingRequired ||
      operation == ApiChangeOperation.becomingPositional ||
      operation == ApiChangeOperation.becomingNonNullable ||
      (operation == ApiChangeOperation.removal && parameter.required) ||
      (operation == ApiChangeOperation.addition && parameter.required)) {
    return ApiChangeMagnitude.major;
  }

  if (operation == ApiChangeOperation.becomingNullable ||
      operation == ApiChangeOperation.becomingOptional ||
      (operation == ApiChangeOperation.removal && !parameter.required) ||
      (operation == ApiChangeOperation.addition && !parameter.required)) {
    return ApiChangeMagnitude.minor;
  }
  return super.getMagnitude();
}