Skip to content

Commit

Permalink
Merge pull request rust-lang#5186 from calebcartwright/subtree-sync-2…
Browse files Browse the repository at this point in the history
…022-01-23

sync subtree
  • Loading branch information
calebcartwright committed Jan 23, 2022
2 parents 5056f4c + 9e1973f commit 5c558e2
Show file tree
Hide file tree
Showing 9 changed files with 41 additions and 17 deletions.
4 changes: 2 additions & 2 deletions Configurations.md
Original file line number Diff line number Diff line change
Expand Up @@ -929,9 +929,9 @@ fn add_one(x: i32) -> i32 {
## `format_generated_files`

Format generated files. A file is considered generated
if any of the first five lines contains `@generated` marker.
if any of the first five lines contain a `@generated` comment marker.

- **Default value**: `false`
- **Default value**: `true`
- **Possible values**: `true`, `false`
- **Stable**: No (tracking issue: [#5080](https://github.com/rust-lang/rustfmt/issues/5080))

Expand Down
2 changes: 1 addition & 1 deletion rust-toolchain
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[toolchain]
channel = "nightly-2021-12-29"
channel = "nightly-2022-01-23"
components = ["rustc-dev"]
4 changes: 2 additions & 2 deletions src/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ create_config! {
inline_attribute_width: usize, 0, false,
"Write an item and its attribute on the same line \
if their combined width is below a threshold";
format_generated_files: bool, false, false, "Format generated files";
format_generated_files: bool, true, false, "Format generated files";

// Options that can change the source code beyond whitespace/blocks (somewhat linty things)
merge_derives: bool, true, true, "Merge multiple `#[derive(...)]` into a single one";
Expand Down Expand Up @@ -606,7 +606,7 @@ blank_lines_lower_bound = 0
edition = "2015"
version = "One"
inline_attribute_width = 0
format_generated_files = false
format_generated_files = true
merge_derives = true
use_try_shorthand = false
use_field_init_shorthand = false
Expand Down
4 changes: 1 addition & 3 deletions src/expr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -334,9 +334,7 @@ pub(crate) fn format_expr(
// satisfy our width restrictions.
// Style Guide RFC for InlineAsm variant pending
// https://github.com/rust-dev-tools/fmt-rfcs/issues/152
ast::ExprKind::LlvmInlineAsm(..) | ast::ExprKind::InlineAsm(..) => {
Some(context.snippet(expr.span).to_owned())
}
ast::ExprKind::InlineAsm(..) => Some(context.snippet(expr.span).to_owned()),
ast::ExprKind::TryBlock(ref block) => {
if let rw @ Some(_) =
rewrite_single_line_block(context, "try ", block, Some(&expr.attrs), None, shape)
Expand Down
4 changes: 3 additions & 1 deletion src/formatting.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,9 @@ fn should_skip_module<T: FormatHandler>(
return true;
}

if !config.format_generated_files() {
// FIXME(calebcartwright) - we need to determine how we'll handle the
// `format_generated_files` option with stdin based input.
if !input_is_stdin && !config.format_generated_files() {
let source_file = context.parse_session.span_to_file_contents(module.span);
let src = source_file.src.as_ref().expect("SourceFile without src");

Expand Down
1 change: 1 addition & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#![warn(unreachable_pub)]
#![recursion_limit = "256"]
#![allow(clippy::match_like_matches_macro)]
#![allow(unreachable_pub)]

#[macro_use]
extern crate derive_new;
Expand Down
21 changes: 21 additions & 0 deletions src/test/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -557,6 +557,27 @@ fn stdin_disable_all_formatting_test() {
assert_eq!(input, String::from_utf8(output.stdout).unwrap());
}

#[test]
fn stdin_generated_files_issue_5172() {
init_log();
let input = Input::Text("//@generated\nfn main() {}".to_owned());
let mut config = Config::default();
config.set().emit_mode(EmitMode::Stdout);
config.set().format_generated_files(false);
config.set().newline_style(NewlineStyle::Unix);
let mut buf: Vec<u8> = vec![];
{
let mut session = Session::new(config, Some(&mut buf));
session.format(input).unwrap();
assert!(session.has_no_errors());
}
// N.B. this should be changed once `format_generated_files` is supported with stdin
assert_eq!(
String::from_utf8(buf).unwrap(),
"<stdin>:\n\n//@generated\nfn main() {}\n",
);
}

#[test]
fn format_lines_errors_are_reported() {
init_log();
Expand Down
17 changes: 10 additions & 7 deletions src/types.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::iter::ExactSizeIterator;
use std::ops::Deref;

use rustc_ast::ast::{self, FnRetTy, Mutability};
use rustc_ast::ast::{self, FnRetTy, Mutability, Term};
use rustc_ast::ptr;
use rustc_span::{symbol::kw, BytePos, Pos, Span};

Expand Down Expand Up @@ -141,7 +141,7 @@ pub(crate) enum SegmentParam<'a> {
Const(&'a ast::AnonConst),
LifeTime(&'a ast::Lifetime),
Type(&'a ast::Ty),
Binding(&'a ast::AssocTyConstraint),
Binding(&'a ast::AssocConstraint),
}

impl<'a> SegmentParam<'a> {
Expand Down Expand Up @@ -176,9 +176,9 @@ impl<'a> Rewrite for SegmentParam<'a> {
}
}

impl Rewrite for ast::AssocTyConstraint {
impl Rewrite for ast::AssocConstraint {
fn rewrite(&self, context: &RewriteContext<'_>, shape: Shape) -> Option<String> {
use ast::AssocTyConstraintKind::{Bound, Equality};
use ast::AssocConstraintKind::{Bound, Equality};

let mut result = String::with_capacity(128);
result.push_str(rewrite_ident(context, self.ident));
Expand Down Expand Up @@ -206,11 +206,14 @@ impl Rewrite for ast::AssocTyConstraint {
}
}

impl Rewrite for ast::AssocTyConstraintKind {
impl Rewrite for ast::AssocConstraintKind {
fn rewrite(&self, context: &RewriteContext<'_>, shape: Shape) -> Option<String> {
match self {
ast::AssocTyConstraintKind::Equality { ty } => ty.rewrite(context, shape),
ast::AssocTyConstraintKind::Bound { bounds } => bounds.rewrite(context, shape),
ast::AssocConstraintKind::Equality { term } => match term {
Term::Ty(ty) => ty.rewrite(context, shape),
Term::Const(c) => c.rewrite(context, shape),
},
ast::AssocConstraintKind::Bound { bounds } => bounds.rewrite(context, shape),
}
}
}
Expand Down
1 change: 0 additions & 1 deletion src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,6 @@ pub(crate) fn is_block_expr(context: &RewriteContext<'_>, expr: &ast::Expr, repr
| ast::ExprKind::Err
| ast::ExprKind::Field(..)
| ast::ExprKind::InlineAsm(..)
| ast::ExprKind::LlvmInlineAsm(..)
| ast::ExprKind::Let(..)
| ast::ExprKind::Path(..)
| ast::ExprKind::Range(..)
Expand Down

0 comments on commit 5c558e2

Please sign in to comment.