whereParametersTypes method

Iterable<FunctionReflection<O, R>> whereParametersTypes({
  1. List<Type>? normalParameters,
  2. List<Type>? optionalParameters,
  3. Map<String, Type>? namedParameters,
})

Returns the MethodReflection that matches the parameters: normalParameters, optionalParameters and namedParameters.

Implementation

Iterable<FunctionReflection<O, R>> whereParametersTypes({
  List<Type>? normalParameters,
  List<Type>? optionalParameters,
  Map<String, Type>? namedParameters,
}) {
  var ret = this;

  if (normalParameters == null &&
      optionalParameters == null &&
      namedParameters == null) {
    return ret;
  }

  if (normalParameters != null) {
    ret = ret.where((m) =>
        _listEqualityType.equals(m.normalParametersTypes, normalParameters));
  }

  if (optionalParameters != null) {
    ret = ret.where((m) => _listEqualityType.equals(
        m.optionalParametersTypes, optionalParameters));
  }

  if (namedParameters != null) {
    ret = ret.where((m) =>
        _mapEqualityType.equals(m.namedParametersTypes, namedParameters));
  }

  return ret;
}