// rustfmt-wrap_comments: true
// Test attributes and doc comments are preserved.
+//! Doc comment
+
+#![attribute]
+
+//! Crate doc comment
+
+// Comment
+
+// Comment on attribute
+#![the(attribute)]
+
+// Another comment
+
+#[invalid attribute]
+fn foo() {}
+
/// Blah blah blah.
/// Blah blah blah.
/// Blah blah blah.
/// Blah blah blooo.
/// Blah blah blooo.
#[an_attribute]
- fn foo(&mut self) -> isize {
- }
+ fn foo(&mut self) -> isize {}
/// Blah blah bing.
/// Blah blah bing.
}
#[another_attribute]
- fn f3(self) -> Dog {
- }
+ fn f3(self) -> Dog {}
/// Blah blah bing.
+
#[attrib1]
/// Blah blah bing.
#[attrib2]
// Another comment that needs rewrite because it's tooooooooooooooooooooooooooooooo
// loooooooooooong.
/// Blah blah bing.
- fn f4(self) -> Cat {
+ fn f4(self) -> Cat {}
+
+ // We want spaces around `=`
+ #[cfg(feature = "nightly")]
+ fn f5(self) -> Monkey {}
+}
+
+// #984
+struct Foo {
+ #[derive(Clone, PartialEq, Debug, Deserialize, Serialize)]
+ foo: usize,
+}
+
+// #1668
+
+/// Default path (*nix)
+#[cfg(all(unix, not(target_os = "macos"), not(target_os = "ios"), not(target_os = "android")))]
+fn foo() {
+ #[cfg(target_os = "freertos")]
+ match port_id {
+ 'a' | 'A' => GpioPort {
+ port_address: GPIO_A,
+ },
+ 'b' | 'B' => GpioPort {
+ port_address: GPIO_B,
+ },
+ _ => panic!(),
}
+
+ #[cfg_attr(not(target_os = "freertos"), allow(unused_variables))]
+ let x = 3;
+}
+
+// #1777
+#[test]
+#[should_panic(expected = "(")]
+#[should_panic(expected = /* ( */ "(")]
+#[should_panic(/* ((((( */expected /* ((((( */= /* ((((( */ "("/* ((((( */)]
+#[should_panic(
+ /* (((((((( *//*
+ (((((((((()(((((((( */
+ expected = "("
+ // ((((((((
+)]
+fn foo() {}
+
+// #1799
+fn issue_1799() {
+ #[allow(unreachable_code)] // https://github.com/rust-lang/rust/issues/43336
+ Some(Err(error));
+
+ #[allow(unreachable_code)]
+ // https://github.com/rust-lang/rust/issues/43336
+ Some(Err(error));
+}
+
+// Formatting inner attributes
+fn inner_attributes() {
+ #![this_is_an_inner_attribute(foo)]
+
+ foo();
+}
+
+impl InnerAttributes() {
+ #![this_is_an_inner_attribute(foo)]
+
+ fn foo() {}
+}
+
+mod InnerAttributes {
+ #![this_is_an_inner_attribute(foo)]
+}
+
+fn attributes_on_statements() {
+ // Local
+ #[attr(on(local))]
+ let x = 3;
+
+ // Item
+ #[attr(on(item))]
+ use foo;
+
+ // Expr
+ #[attr(on(expr))]
+ {}
+
+ // Semi
+ #[attr(on(semi))]
+ foo();
+
+ // Mac
+ #[attr(on(mac))]
+ foo!();
+}
+
+// Large derive
+#[derive(Add, Sub, Mul, Div, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Debug, Hash, Serialize,
+ Deserialize)]
+pub struct HP(pub u8);
+
+// Long `#[doc = "..."]`
+struct A {
+ #[doc = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"]
+ b: i32,
}