mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 02:57:37 +00:00
Merge pull request #2072 from matthew-mcallister/mod-inner-skip
Handle `#![rustfmt_skip]` in more places
This commit is contained in:
commit
36ed1566ea
12
src/lib.rs
12
src/lib.rs
@ -137,7 +137,7 @@ impl FormattingError {
|
||||
.count();
|
||||
(self.line_buffer.len() - trailing_ws_len, trailing_ws_len)
|
||||
}
|
||||
_ => (0, 0), // unreachable
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -319,11 +319,15 @@ where
|
||||
let filemap = visitor.codemap.lookup_char_pos(module.inner.lo()).file;
|
||||
// Format inner attributes if available.
|
||||
if !krate.attrs.is_empty() && path == main_file {
|
||||
visitor.visit_attrs(&krate.attrs, ast::AttrStyle::Inner);
|
||||
if visitor.visit_attrs(&krate.attrs, ast::AttrStyle::Inner) {
|
||||
visitor.push_rewrite(module.inner, None);
|
||||
} else {
|
||||
visitor.format_separate_mod(module, &*filemap);
|
||||
}
|
||||
} else {
|
||||
visitor.last_pos = filemap.start_pos;
|
||||
}
|
||||
visitor.format_separate_mod(module, &*filemap);
|
||||
visitor.format_separate_mod(module, &*filemap);
|
||||
};
|
||||
|
||||
has_diff |= after_file(path_str, &mut visitor.buffer)?;
|
||||
|
||||
|
@ -150,8 +150,17 @@ impl<'a> FmtVisitor<'a> {
|
||||
}
|
||||
|
||||
// Format inner attributes if available.
|
||||
if let Some(attrs) = inner_attrs {
|
||||
self.visit_attrs(attrs, ast::AttrStyle::Inner);
|
||||
let skip_rewrite = if let Some(attrs) = inner_attrs {
|
||||
self.visit_attrs(attrs, ast::AttrStyle::Inner)
|
||||
} else {
|
||||
false
|
||||
};
|
||||
|
||||
if skip_rewrite {
|
||||
self.push_rewrite(b.span, None);
|
||||
self.close_block(false);
|
||||
self.last_pos = source!(self, b.span).hi();
|
||||
return;
|
||||
}
|
||||
|
||||
self.walk_block_stmts(b);
|
||||
|
@ -1,73 +0,0 @@
|
||||
// Test the skip attribute works
|
||||
|
||||
#[rustfmt_skip]
|
||||
fn foo() { badly; formatted; stuff
|
||||
; }
|
||||
|
||||
#[rustfmt_skip]
|
||||
trait Foo
|
||||
{
|
||||
fn foo(
|
||||
);
|
||||
}
|
||||
|
||||
impl LateLintPass for UsedUnderscoreBinding {
|
||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||
fn check_expr() { // comment
|
||||
}
|
||||
}
|
||||
|
||||
fn issue1346() {
|
||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||
Box::new(self.inner.call(req).then(move |result| {
|
||||
match result {
|
||||
Ok(resp) => Box::new(future::done(Ok(resp))),
|
||||
Err(e) => {
|
||||
try_error!(clo_stderr, "{}", e);
|
||||
Box::new(future::err(e))
|
||||
}
|
||||
}
|
||||
}))
|
||||
}
|
||||
|
||||
fn skip_on_statements() {
|
||||
// Semi
|
||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||
foo(
|
||||
1, 2, 3, 4,
|
||||
1, 2,
|
||||
1, 2, 3,
|
||||
);
|
||||
|
||||
// Local
|
||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||
let x = foo( a, b , c);
|
||||
|
||||
// Item
|
||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||
use foobar ;
|
||||
|
||||
// Mac
|
||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||
vec![
|
||||
1, 2, 3, 4,
|
||||
1, 2, 3, 4,
|
||||
1, 2, 3, 4,
|
||||
1, 2, 3,
|
||||
1,
|
||||
1, 2,
|
||||
1,
|
||||
];
|
||||
|
||||
// Expr
|
||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||
foo( a, b , c)
|
||||
}
|
||||
|
||||
// Check that the skip attribute applies to other attributes.
|
||||
#[rustfmt_skip]
|
||||
#[cfg
|
||||
( a , b
|
||||
)]
|
||||
fn
|
||||
main() {}
|
@ -31,6 +31,20 @@ fn issue1346() {
|
||||
}
|
||||
|
||||
fn skip_on_statements() {
|
||||
// Outside block
|
||||
#[rustfmt_skip]
|
||||
{
|
||||
foo; bar;
|
||||
// junk
|
||||
}
|
||||
|
||||
{
|
||||
// Inside block
|
||||
#![rustfmt_skip]
|
||||
foo; bar;
|
||||
// junk
|
||||
}
|
||||
|
||||
// Semi
|
||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||
foo(
|
||||
|
3
tests/target/skip_mod.rs
Normal file
3
tests/target/skip_mod.rs
Normal file
@ -0,0 +1,3 @@
|
||||
#![rustfmt_skip]
|
||||
use a :: b
|
||||
;
|
Loading…
Reference in New Issue
Block a user