Commit graph

5052 commits

Author SHA1 Message Date
Caleb Cartwright
31bc54a9a8 chore: bump toolchain 2021-11-07 19:14:34 -06:00
Caleb Cartwright
4621915d25 Merge remote-tracking branch 'upstream/master' into rustup-2021-11-s1 2021-11-07 14:44:33 -06:00
Caleb Cartwright
e4472d3b07 refactor: dedupe associated item visitation 2021-11-07 08:12:58 -06:00
Vadim Petrochenkov
bf3c52f355 ast: Fix naming conventions in AST structures
TraitKind -> Trait
TyAliasKind -> TyAlias
ImplKind -> Impl
FnKind -> Fn

All `*Kind`s in AST are supposed to be enums.

Tuple structs are converted to braced structs for the types above, and fields are reordered in syntactic order.

Also, mutable AST visitor now correctly visit spans in defaultness, unsafety, impl polarity and constness.
2021-11-07 21:38:17 +08:00
Caleb Cartwright
19c5c74951 refactor: dedupe & simplify ty alias formatting 2021-11-06 16:06:21 -05:00
mujpao
4d50e7c760 Put empty trait braces on same line if possible 2021-11-05 20:40:49 -05:00
Dmitry Murzin
9027db984b Update IntelliJ Integration (#4238) 2021-11-05 19:29:52 -05:00
Caleb Cartwright
a5f85058ac fix: handle external mods imported via external->inline load hierarchy 2021-11-04 18:35:38 -05:00
Caleb Cartwright
e75c4d7ee9 ci: drop appveyor 2021-11-03 21:39:08 -05:00
r00ster
bd86077c58 Remove grave accent that shouldn't be there 2021-11-02 21:28:24 -05:00
Peter Hall
c1eab154c9 Use a custom env var for log settings intead of default RUST_LOG
# Conflicts:
#	src/rustfmt/main.rs
2021-10-31 21:43:29 -05:00
Yacin Tmimi
5ce82e1513 Prevent trailing whitespace in where clause bound predicate
resolves 5012
resolves 4850

This behavior was noticed when using the ``trailing_comma = "Never"``
configuration option (5012).

This behavior was also noticed when using default configurations (4850).

rustfmt would add a trailing space to where clause bounds that had an
empty right hand side.

Now no trailing space is added to the end of these where clause bounds.
2021-10-30 23:07:34 -05:00
Jonathan
a4d7011c18 Document RUSTFMT environment variable (#4464)
* Document RUSTFMT env var

* Move documentation up

* Apply suggestions from code review

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* Fix accedental removal

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
# Conflicts:
#	README.md
2021-10-30 11:07:59 -05:00
chansuke
a24ed3c322 Fix MSRV 2021-10-30 11:07:59 -05:00
enterprisey
54b1e0bb15 README grammar fix (#3926)
Remove comma splice
2021-10-30 11:07:59 -05:00
Caleb Cartwright
ed5a0250d3 refactor: minor parser cleanup 2021-10-30 11:00:19 -05:00
Yacin Tmimi
bc46af9742 Retain trailing comments in module when using rustfmt::skip attribute
Resolves 5033

Trailing comments at the end of the root Module were removed because the
module span did not extend until the end of the file.

The root Module's span now encompasses the entire file, which ensures
that no comments are lost when using ``#![rustfmt::skip]``
2021-10-28 21:44:39 -05:00
Seiichi Uchida
8b766f35bc Remove legacy-rustfmt.toml (#4169) 2021-10-28 21:42:33 -05:00
Matthias Krüger
0b8ffac029 fix a bunch of the other clippy warnings that look interesting 2021-10-27 20:41:57 -05:00
Matthias Krüger
c493ee4828 fix clippy::needless_borrow 2021-10-27 20:41:57 -05:00
Yacin Tmimi
d454e81060 Add rustdoc CI check
Resolves 5038

rust-lang/rust builds now document rustfmt (rust-lang/rust#87119). The
build process is updated with doc checks to ensure that rustfmt doesn't
introduce warnings.

Warnings are treated as hard errors in rust-lang/rust and won't show
until bors tests the changes (refs rust-lang/rust#90087).
2021-10-25 20:46:46 -05:00
Caleb Cartwright
50369f5bc0
Merge pull request #5043 from calebcartwright/another-subtree-sync
sync subtree
2021-10-24 14:56:55 -05:00
Caleb Cartwright
757da8c617 Merge remote-tracking branch 'upstream/master' into another-subtree-sync 2021-10-24 13:45:19 -05:00
Martinez
599b2fd9c4
Add One option to group_imports (#4966)
* Add Together option to group_imports

* Rename option to One

* Rename files from Together to One
2021-10-23 11:01:48 -05:00
Caleb Cartwright
051e2b40c9 fix doc issue in rustfmt 2021-10-21 17:22:54 -05:00
Caleb Cartwright
606c7d49db ensure cargo-fmt tests are excluded from root workspace 2021-10-20 10:12:22 -05:00
Caleb Cartwright
2b41b6d022 Merge commit 'efa8f5521d3813cc897ba29ea0ef98c7aef66bb6' into rustfmt-subtree 2021-10-20 00:11:59 -05:00
Caleb Cartwright
efa8f5521d chore: bump version and changelog 2021-10-20 00:04:49 -05:00
Caleb Cartwright
b9178dc47c
Merge pull request #5036 from calebcartwright/1.4.38-subtree
sync subtree
2021-10-19 23:38:47 -05:00
Caleb Cartwright
5f79583c3c chore: bump toolchain, fix conflict 2021-10-19 23:13:06 -05:00
Caleb Cartwright
923126348d
Merge branch 'master' into 1.4.38-subtree 2021-10-19 23:01:25 -05:00
Yacin Tmimi
1ae5c35f8d Replace match expression with match! macro
This is a follow up to 5f4811ed7b

The matches! macro expresses the condition more succinctly and avoids
the extra level of indentation introduced with the match arm body.
2021-10-18 21:32:52 -05:00
Yacin Tmimi
5f4811ed7b Handle DefinitiveListTactic::SpecialMacro when writing pre-comments
Resolves 4615

Previously only Vertical and Mixed enum variants of DefinitiveListTactic
were considered when rewriting pre-comments for inner items in
lists::write_list.

Because we failed to considering the SpecialMacro variant we ended up in
a scenario where a ListItem with a pre_comment and a pre_comment_style
of ListItemCommentStyle::DifferentLine was written on the same line as the
list item itself.

Now we apply the same pre-comment formatting to SpecialMacro, Vertical,
and Mixed variants of DefinitiveListTactic.
2021-10-17 16:27:05 -05:00
Caleb Cartwright
0cff306b61 ci: fix release asset upload job 2021-10-17 16:09:33 -05:00
Caleb Cartwright
c9c1932be3 feat: stabilize disable_all_formatting 2021-10-13 21:58:13 -05:00
Yacin Tmimi
f2fb3c9659 Update connector search in ControlFlow::rewrite_pat_expr for for loops
Resolves 5009

For loops represented by a ControlFlow object use " in" as their connector.
rustfmt searches for the first uncommented occurrence of the word "in" within the
current span and adjusts it's starting point to look for comments right after that.
visually this looks like this:

    rustfmt starts looking for comments here
            |
            V
    for x in /* ... */ 0..1 {}

This works well in most cases, however when the pattern also contains
the word "in", this leads to issues.

    rustfmt starts looking for comments here
          |
          V
    for in_here in /* ... */ 0..1 {}
        -------
        pattern

In order to correctly identify the connector, the new approach first
updates the span to start after the pattern and then searches for the
first uncommented occurrence of "in".
2021-10-13 19:36:37 -05:00
Yacin Tmimi
f7c4a44149 Adjust non-empty tuple struct span to start before fields
Resolves 5011

Tuple structs with visibility modifiers and comments before the first
field were incorrectly formatted. Comments would duplicate part of the
visibility modifier and struct name.

When trying to parse the tuple fields the ``items::Context`` searches
for the opening '(', but because the visibility modifier introduces
another '(' -- for example ``pub(crate)`` -- the parsing gets messed up.

Now the span is adjusted to start after the struct identifier, or after
any generics. Adjusting the span in this way ensures that the
``items::Contex`` will correctly find the tuple fields.
2021-10-12 20:08:07 -05:00
Yacin Tmimi
d41805704d Prevent structs with ".." from being rewritten with alignment
rustfmt should only support rewriting a struct in an expression
 position with alignment (non-default behavior) when there is no rest
 (with or without a base) and all of the fields are non-shorthand.
2021-10-12 19:37:48 -05:00
Emilio Cobos Álvarez
8b58cce673 Stabilize match_block_trailing_comma. (#4145)
Servo has used this since forever, and it'd be useful to be able to use
rustfmt stable there so that we can use the same rustfmt version in
both Firefox and Servo.

Feel free to close this if there's any reason it shouldn't be done.
2021-10-11 17:16:10 -05:00
Yacin Tmimi
365a2f8f6e Add additional test cases for issue 4984 2021-10-05 22:29:23 -05:00
Yacin Tmimi
40f4993c67 Update derive attibute span to start after opening '('
Fixes 4984

When parsing derive attributes we're only concerned about the traits
and comments listed between the opening and closing parentheses.

Derive attribute spans currently start at the '#'.

    Span starts here
    |
    v
    #[derive(...)]

After this update the derive spans start after the opening '('.

    Span starts here
             |
             V
    #[derive(...)]
2021-10-05 22:29:23 -05:00
Patrick Walton
f0f449d6ed Wrap long array and slice patterns.
Closes #4530.
2021-10-04 20:41:17 -05:00
Ulyssa
e3203ef5e6 Add tests for binop_separator = Back 2021-09-28 22:20:34 -05:00
Yacin Tmimi
a5138b34d5 Prevent removal of qualified path for tuple struct inside macro
fixes 5005

This was very similar to 4964 and the fix was to extract and pass along
the qself of the ``PatKind::TupleStruct``
2021-09-27 17:49:10 -05:00
Lucas Kent
cb144c35e7 In Configurations.md demonstrate both cases for noop selections 2021-09-25 14:48:20 -05:00
Caleb Cartwright
4b9d637f58 refactor: simplify local dep lookups 2021-09-23 21:12:57 -05:00
Caleb Cartwright
7f6229b9aa tests: restructure and extend cargo-fmt tests 2021-09-23 21:12:57 -05:00
Caleb Cartwright
74df7b3265 deps: update cargo_metadata to include 'path' 2021-09-23 21:12:57 -05:00
Mark Rousskov
9060bc5583 Migrate to 2021 2021-09-20 22:21:42 -04:00
Ulyssa
dd445aba08 Trailing comma on match block goes missing when guard is on its own line 2021-09-20 20:05:52 -05:00