From bb04e7e2a2bd0f1a8e0034f6f93bb00673b4c210 Mon Sep 17 00:00:00 2001 From: Nixon Enraght-Moony Date: Fri, 14 Oct 2022 19:57:01 +0100 Subject: [PATCH] rustdoc-json: Document and Test that args can be patterns. --- src/rustdoc-json-types/lib.rs | 4 ++++ src/test/rustdoc-json/fns/pattern_arg.rs | 7 +++++++ 2 files changed, 11 insertions(+) create mode 100644 src/test/rustdoc-json/fns/pattern_arg.rs diff --git a/src/rustdoc-json-types/lib.rs b/src/rustdoc-json-types/lib.rs index 7379b04ad16..dbbdeecd99d 100644 --- a/src/rustdoc-json-types/lib.rs +++ b/src/rustdoc-json-types/lib.rs @@ -618,6 +618,10 @@ pub struct FunctionPointer { #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub struct FnDecl { + /// List of argument names and their type. + /// + /// Note that not all names will be valid identifiers, as some of + /// them may be patterns. pub inputs: Vec<(String, Type)>, pub output: Option, pub c_variadic: bool, diff --git a/src/test/rustdoc-json/fns/pattern_arg.rs b/src/test/rustdoc-json/fns/pattern_arg.rs new file mode 100644 index 00000000000..32b7da0fae4 --- /dev/null +++ b/src/test/rustdoc-json/fns/pattern_arg.rs @@ -0,0 +1,7 @@ +// @is "$.index[*][?(@.name=='fst')].inner.decl.inputs[0][0]" '"(x, _)"' +pub fn fst((x, _): (X, Y)) -> X { + x +} + +// @is "$.index[*][?(@.name=='drop_int')].inner.decl.inputs[0][0]" '"_"' +pub fn drop_int(_: i32) {}