rust/tests/target/issue_4573.rs
Yacin Tmimi 3cc1f5ed5b Add tests for issue 4573
It's unclear which PR resolved this issue, however the behavior of
adding inline comments to the next line can't be reproduced.

These test cases should serve to prevent a regression.
2022-05-08 12:55:43 -05:00

246 lines
5.1 KiB
Rust

// rustmft-version:Two
// rustmft-use_small_heuristics:Max
// rustmft-merge_derives:false
// These are the same rustfmt configuration options that are used
// in the comiler as of ce39461ca75a and 8eb7c58dbb7b
// These are commits in https://github.com/rust-lang/rust
#![no_std] // inner attribute comment
// inner attribute comment
#![no_implicit_prelude]
// post inner attribute comment
#[cfg(not(miri))] // inline comment
#[no_link]
extern crate foo;
// before attributes
#[no_link]
// between attributes
#[cfg(not(miri))] // inline comment
extern crate foo as bar;
#[cfg(not(miri))] // inline comment
// between attribute and use
use foo;
#[cfg(not(miri))] // inline comment
use foo;
/* pre attributre */
#[cfg(not(miri))]
use foo::bar;
#[cfg(not(miri))] // inline comment
use foo::bar as FooBar;
#[cfg(not(miri))] // inline comment
#[allow(unused)]
#[deprecated(
since = "5.2", // inline inner comment
note = "FOO was rarely used. Users should instead use BAR"
)]
#[allow(unused)]
static FOO: i32 = 42;
#[used]
#[export_name = "FOO"]
#[cfg(not(miri))] // inline comment
#[deprecated(
since = "5.2",
note = "FOO was rarely used. Users should instead use BAR"
)]
static FOO: i32 = 42;
#[cfg(not(miri))] // inline comment
#[export_name = "FOO"]
static BAR: &'static str = "bar";
#[cfg(not(miri))] // inline comment
const BAR: i32 = 42;
#[cfg(not(miri))] // inline comment
#[no_mangle]
#[link_section = ".example_section"]
fn foo(bar: usize) {
#[cfg(not(miri))] // inline comment
println!("hello world!");
}
#[cfg(not(miri))] // inline comment
mod foo {}
#[cfg(not(miri))] // inline comment
extern "C" {
fn my_c_function(x: i32) -> bool;
}
#[cfg(not(miri))] // inline comment
#[link(name = "CoreFoundation", kind = "framework")]
extern "C" {
#[link_name = "actual_symbol_name"] // inline comment
// between attribute and function
fn my_c_function(x: i32) -> bool;
}
#[cfg(not(miri))] // inline comment
pub extern "C" fn callable_from_c(x: i32) -> bool {
x % 3 == 0
}
#[cfg(not(miri))] // inline comment
/* between attribute block comment */
#[no_mangle]
/* between attribute and type */
type Foo = Bar<u8>;
#[no_mangle]
#[cfg(not(miri))] // inline comment
#[non_exhaustive] // inline comment
enum Foo {
Bar,
Baz,
}
#[no_mangle]
#[cfg(not(miri))] /* inline comment */
struct Foo<A> {
x: A,
}
#[cfg(not(miri))] // inline comment
union Foo<A, B> {
x: A,
y: B,
}
#[cfg(not(miri))] // inline comment
trait Foo {}
#[cfg(not(miri))] // inline comment
trait Foo = Bar + Quux;
#[cfg(not(miri))] // inline comment
impl Foo {}
#[cfg(not(miri))] // inline comment
macro_rules! bar {
(3) => {};
}
mod nested {
#[cfg(not(miri))] // inline comment
// between attribute and use
use foo;
#[cfg(not(miri))] // inline comment
use foo;
#[cfg(not(miri))] // inline comment
use foo::bar;
#[cfg(not(miri))] // inline comment
use foo::bar as FooBar;
#[cfg(not(miri))] // inline comment
static FOO: i32 = 42;
#[cfg(not(miri))] // inline comment
static FOO: i32 = 42;
#[cfg(not(miri))] // inline comment
static FOO: &'static str = "bar";
#[cfg(not(miri))] // inline comment
const FOO: i32 = 42;
#[cfg(not(miri))] // inline comment
fn foo(bar: usize) {
#[cfg(not(miri))] // inline comment
println!("hello world!");
}
#[cfg(not(miri))] // inline comment
mod foo {}
#[cfg(not(miri))] // inline comment
mod foo {}
#[cfg(not(miri))] // inline comment
extern "C" {
fn my_c_function(x: i32) -> bool;
}
#[cfg(not(miri))] // inline comment
#[link(name = "CoreFoundation", kind = "framework")]
extern "C" {
#[link_name = "actual_symbol_name"] // inline comment
// between attribute and function
fn my_c_function(x: i32) -> bool;
}
#[cfg(not(miri))] // inline comment
pub extern "C" fn callable_from_c(x: i32) -> bool {
x % 3 == 0
}
#[cfg(not(miri))] // inline comment
type Foo = Bar<u8>;
#[cfg(not(miri))] // inline comment
#[non_exhaustive] // inline comment
enum Foo {
// comment
#[attribute_1]
#[attribute_2] // comment
// comment!
Bar,
/* comment */
#[attribute_1]
#[attribute_2] /* comment */
#[attribute_3]
#[attribute_4]
/* comment! */
Baz,
}
#[cfg(not(miri))] // inline comment
struct Foo<A> {
x: A,
}
#[cfg(not(miri))] // inline comment
union Foo<A, B> {
#[attribute_1]
#[attribute_2] /* comment */
#[attribute_3]
#[attribute_4] // comment
x: A,
y: B,
}
#[cfg(not(miri))] // inline comment
#[allow(missing_docs)]
trait Foo {
#[must_use] /* comment
* that wrappes to
* the next line */
fn bar() {}
}
#[allow(missing_docs)]
#[cfg(not(miri))] // inline comment
trait Foo = Bar + Quux;
#[allow(missing_docs)]
#[cfg(not(miri))] // inline comment
impl Foo {}
#[cfg(not(miri))] // inline comment
macro_rules! bar {
(3) => {};
}
}