2018-09-07 12:51:21 -05:00
// rustfmt-wrap_comments: true
// rustfmt-normalize_doc_attributes: true
2018-09-12 19:40:24 -05:00
// Only doc = "" attributes should be normalized
2018-11-05 11:24:36 -06:00
#![ doc = " Example doc attribute comment " ]
#![ doc = " Example doc attribute comment with 10 leading spaces " ]
2018-09-12 19:40:24 -05:00
#![ doc(html_logo_url = " https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png " ,
html_favicon_url = " https://doc.rust-lang.org/favicon.ico " ,
html_root_url = " https://doc.rust-lang.org/nightly/ " ,
html_playground_url = " https://play.rust-lang.org/ " , test ( attr ( deny ( warnings ) ) ) ) ]
2018-09-07 12:51:21 -05:00
// Long `#[doc = "..."]`
2018-11-05 11:24:36 -06:00
struct A { #[ doc = " xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx " ] b : i32 }
2018-09-07 12:51:21 -05:00
2018-11-05 11:24:36 -06:00
#[ doc = " The `nodes` and `edges` method each return instantiations of `Cow<[T]>` to leave implementers the freedom to create entirely new vectors or to pass back slices into internally owned vectors. " ]
2018-09-12 18:02:11 -05:00
struct B { b : i32 }
2018-11-05 11:24:36 -06:00
#[ doc = " Level 1 comment " ]
2018-09-12 18:02:11 -05:00
mod tests {
2018-11-05 11:24:36 -06:00
#[ doc = " Level 2 comment " ]
2018-09-12 18:02:11 -05:00
impl A {
2018-11-05 11:24:36 -06:00
#[ doc = " Level 3 comment " ]
2018-09-12 18:02:11 -05:00
fn f ( ) {
2018-11-05 11:24:36 -06:00
#[ doc = " Level 4 comment " ]
2018-09-12 19:27:09 -05:00
fn g ( ) {
2018-09-12 18:02:11 -05:00
}
}
}
}
2018-09-12 18:10:57 -05:00
2018-09-12 19:27:09 -05:00
struct C {
2018-11-05 11:24:36 -06:00
#[ doc = " item doc attrib comment " ]
2018-09-12 19:27:09 -05:00
// regular item comment
b : i32 ,
// regular item comment
2018-11-05 11:24:36 -06:00
#[ doc = " item doc attrib comment " ]
2018-09-12 19:27:09 -05:00
c : i32 ,
}
2018-09-12 18:10:57 -05:00
// non-regression test for regular attributes, from #2647
#[ cfg(feature = " this_line_is_101_characters_long_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx " ) ]
pub fn foo ( ) { }
// path attrs
#[ clippy::bar ]
#[ clippy::bar(a, b, c) ]
pub fn foo ( ) { }
mod issue_2620 {
#[ derive(Debug, StructOpt) ]
#[ structopt(about = " Display information about the character on FF Logs " ) ]
pub struct Params {
#[ structopt(help = " The server the character is on " ) ]
server : String ,
#[ structopt(help = " The character's first name " ) ]
first_name : String ,
#[ structopt(help = " The character's last name " ) ]
last_name : String ,
#[ structopt(
short = " j " ,
long = " job " ,
help = " The job to look at " ,
parse ( try_from_str )
) ]
job : Option < Job >
}
}
// non-regression test for regular attributes, from #2969
#[ cfg(not(all(feature= " std " ,
any ( target_os = " linux " , target_os = " android " ,
target_os = " netbsd " ,
target_os = " dragonfly " ,
target_os = " haiku " ,
target_os = " emscripten " ,
target_os = " solaris " ,
target_os = " cloudabi " ,
target_os = " macos " , target_os = " ios " ,
target_os = " freebsd " ,
target_os = " openbsd " , target_os = " bitrig " ,
target_os = " redox " ,
target_os = " fuchsia " ,
windows ,
all ( target_arch = " wasm32 " , feature = " stdweb " ) ,
all ( target_arch = " wasm32 " , feature = " wasm-bindgen " ) ,
) ) ) ) ]
type Os = NoSource ;
2018-11-05 11:24:36 -06:00
// use cases from bindgen needing precise control over leading spaces
#[ doc = " <div rustbindgen accessor></div> " ]
#[ repr(C) ]
#[ derive(Debug, Default, Copy, Clone) ]
pub struct ContradictAccessors {
#[ doc = " <foo>no leading spaces here</foo> " ]
pub mBothAccessors : ::std ::os ::raw ::c_int ,
#[ doc = " <div rustbindgen accessor= \" false \" ></div> " ]
pub mNoAccessors : ::std ::os ::raw ::c_int ,
#[ doc = " <div rustbindgen accessor= \" unsafe \" ></div> " ]
pub mUnsafeAccessors : ::std ::os ::raw ::c_int ,
#[ doc = " <div rustbindgen accessor= \" immutable \" ></div> " ]
pub mImmutableAccessor : ::std ::os ::raw ::c_int ,
}
#[ doc = " \\ brief MPI structure " ]
#[ repr(C) ]
#[ derive(Debug, Copy, Clone) ]
pub struct mbedtls_mpi {
#[ doc = " < integer sign " ]
pub s : ::std ::os ::raw ::c_int ,
#[ doc = " < total # of limbs " ]
pub n : ::std ::os ::raw ::c_ulong ,
#[ doc = " < pointer to limbs " ]
pub p : * mut mbedtls_mpi_uint ,
}