summaryrefslogtreecommitdiffstats
path: root/src/tools/rustfmt/tests/source/fn-param-attributes.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/rustfmt/tests/source/fn-param-attributes.rs')
-rw-r--r--src/tools/rustfmt/tests/source/fn-param-attributes.rs57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/tools/rustfmt/tests/source/fn-param-attributes.rs b/src/tools/rustfmt/tests/source/fn-param-attributes.rs
new file mode 100644
index 000000000..3407a3b2e
--- /dev/null
+++ b/src/tools/rustfmt/tests/source/fn-param-attributes.rs
@@ -0,0 +1,57 @@
+// https://github.com/rust-lang/rustfmt/issues/3623
+
+fn foo(#[cfg(something)] x: i32, y: i32) -> i32 {
+ x + y
+}
+
+fn foo_b(#[cfg(something)]x: i32, y: i32) -> i32 {
+ x + y
+}
+
+fn add(#[cfg(something)]#[deny(C)] x: i32, y: i32) -> i32 {
+ x + y
+}
+
+struct NamedSelfRefStruct {}
+impl NamedSelfRefStruct {
+ fn foo(
+#[cfg(something)] self: &Self,
+ ) {}
+}
+
+struct MutStruct {}
+impl MutStruct {
+ fn foo(
+ #[cfg(foo)]&mut self,#[deny(C)] b: i32,
+ ) {}
+}
+
+fn main() {
+ let c = |
+ #[allow(C)]a: u32,
+ #[cfg(something)] b: i32,
+ #[cfg_attr(something, cfg(nothing))]#[deny(C)] c: i32,
+ | {};
+ let _ = c(1, 2);
+}
+
+pub fn bar(
+ /// bar
+#[test] a: u32,
+ /// Bar
+ #[must_use]
+/// Baz
+ #[no_mangle] b: i32,
+) {}
+
+
+fn abc(
+ #[foo]
+ #[bar] param: u32,
+) {
+ // ...
+}
+
+fn really_really_really_loooooooooooooooooooong(#[cfg(some_even_longer_config_feature_that_keeps_going_and_going_and_going_forever_and_ever_and_ever_on_and_on)] b: i32) {
+ // ...
+}