// 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.
fn f3(self) -> Dog {}
/// Blah blah bing.
+
#[attrib1]
/// Blah blah bing.
#[attrib2]
- // Another comment that needs rewrite because it's
- // tooooooooooooooooooooooooooooooo loooooooooooong.
+ // Another comment that needs rewrite because it's tooooooooooooooooooooooooooooooo
+ // loooooooooooong.
/// Blah blah bing.
fn f4(self) -> Cat {}
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,
+}