message: ParametersSpec::parameters_str
  Summary:
  Parameters as string.
  Used for signature checking in the following diff
diff: @@ -251,9 +251,12 @@ impl<V> ParametersSpec<V> {
  // We used to make the "name" of a function include all its parameters, but that is a lot of
  // details and visually crowds out everything else. Try disabling, although we might want it
  // in some contexts, so don't delete it.
  - if false {
  - collector.push('(');
  + }
  + /// Function parameter as they would appear in `def`
  + /// (excluding types, default values and formatting).
  + pub fn parameters_str(&self) -> String {
  + let mut collector = String::new();
  let mut names = self.names.keys();
  let mut next_name = || {
  // We prepend '$' on the front of variable names that are positional-only
  @@ -278,8 +281,7 @@ impl<V> ParametersSpec<V> {
  ParameterKind::KWargs => collector.push_str("**kwargs"),
  }
  }
  - collector.push(')');
  - }
  + collector
  }
  /// Get the index where a user would have supplied "*" as a parameter.
  @@ -1047,6 +1049,7 @@ impl Arguments<'_, '_> {
  #[cfg(test)]
  mod tests {
  use super::*;
  + use crate::assert::Assert;
  #[test]
  fn test_parameter_unpack() {
  @@ -1245,4 +1248,17 @@ mod tests {
  assert_eq!(expected, params);
  Ok(())
  }
  +
  + #[test]
  + fn test_parameters_str() {
  + let a = Assert::new();
  + let f = a
  + .pass_module("def f(a, b, *args, **kwargs): pass")
  + .get("f")
  + .unwrap();
  + assert_eq!(
  + "a, b, *args, **kwargs",
  + &f.value().parameters_spec().unwrap().parameters_str()
  + );
  + }
  }
  