Caleb Cartwright
3d8cd57c2f
tests: add files for issue 4579
2021-09-06 18:14:13 -05:00
Caleb Cartwright
a59cac29f4
fix: use correct spans for params with attrs
2021-09-06 18:14:13 -05:00
Caleb Cartwright
59063e8b40
fix: newline width calc in combine w/ comments ( #4123 )
2021-09-06 17:02:20 -05:00
Eric
ae5696a7c4
test: add test for #4322
2021-09-02 20:53:15 -05:00
Eric
bfc60466bd
test: add test for #4954
2021-09-02 20:53:15 -05:00
Eric
33d1368674
test: add test for #4257
2021-09-02 20:53:15 -05:00
Eric
d19f69cd71
test: add missing source for #4943
2021-09-02 20:53:15 -05:00
Yusuke Tanaka
ca9b050bbf
Implement One
option for imports_granularity ( #4669 )
...
This option merges all imports into a single `use` statement as long as
they have the same visibility.
2021-08-31 18:33:06 -05:00
Cameron Steffen
a603756cc5
Temporary fix rustfmt for let-else
2021-08-30 20:18:41 -05:00
Deadbeef
20ddab3def
Fix rustfmt test
2021-08-27 11:53:03 +00:00
Deadbeef
076916fe94
Introduce ~const
...
- [x] Removed `?const` and change uses of `?const`
- [x] Added `~const` to the AST. It is gated behind const_trait_impl.
- [x] Validate `~const` in ast_validation.
- [ ] Add enum `BoundConstness` to the HIR. (With variants `NotConst` and
`ConstIfConst` allowing future extensions)
- [ ] Adjust trait selection and pre-existing code to use `BoundConstness`.
- [ ] Optional steps (*for this PR, obviously*)
- [ ] Fix #88155
- [ ] Do something with constness bounds in chalk
2021-08-27 05:07:37 +00:00
Ashvin Arsakularatne
e81c393663
fix: remove wrong reformatting of qualified paths in struct patterns
2021-08-25 21:18:41 -05:00
David Tolnay
fd6b025e8a
Preserve visibility on trait items inside trait and impl
2021-08-22 12:06:18 -05:00
David Tolnay
c8bd550c8d
Add test for visibility on a trait item (currently wrong)
2021-08-22 12:06:18 -05:00
Frank Steffahn
9bc0dbeb64
Fix typos “an”→“a” and a few different ones that appeared in the same search
2021-08-22 18:15:49 +02:00
Caleb Cartwright
5d8eb8d79c
fix: don't drop drop generic args on assoc ty constraints
2021-08-08 13:58:10 -05:00
Caleb Cartwright
fefb5427a2
fix: handle GAT types in impls with self bounds
2021-08-06 22:03:40 -05:00
Ellen
0b21ea2161
Unyeet const param defaults
2021-07-27 19:50:11 -05:00
Caleb Cartwright
e4b8714c09
Merge commit '4236289b75ee55c78538c749512cdbeea5e1c332' into update-rustfmt
2021-07-25 22:57:19 -05:00
Caleb Cartwright
b305d62e5b
fix: correct arm leading pipe check ( #4880 )
...
In the event a pattern starts with a leading pipe
the pattern span will contain, and begin with, the pipe.
This updates the process to see if a match arm contains
a leading pipe by leveraging this recent(ish) change to
the patterns in the AST, and avoids an indexing bug that
occurs when a pattern starts with a non-ascii char in the
old implementation.
2021-07-25 22:53:32 -05:00
Caleb Cartwright
2a3635d5d1
tests: remove snippets with inner attrs on non-block expressions
2021-05-04 18:38:22 -05:00
ChinYing-Li
84ff0013c2
Add the case in duplicate issue ( #4806 ) to the idempotent tests
2021-04-21 21:30:42 -05:00
ChinYing-Li
dac2423f3f
Recognize when a block comment has been ended inside a string literal ( #4312 )
2021-04-21 21:30:42 -05:00
Joseph Birr-Pixton
58157bb4b7
Add some basic tests for chain_width use
2021-04-21 21:27:50 -05:00
Caleb Cartwright
a168d92f9a
tests: augment heuristics tests
2021-04-21 21:27:50 -05:00
Caleb Cartwright
1bcc1f8df5
refactor: apply heuristic config changes in lib
2021-04-21 21:27:50 -05:00
David Bar-On
432e09e89f
Add the use of rewrite_assign_rhs_with_comments to 1.x
2021-02-17 20:47:20 -06:00
David Bar-On
4b0ed96f2e
Fix for issue 4603 about extra macro body indentation (third version)
2021-02-17 20:19:27 -06:00
Caleb Cartwright
d80a42fdd8
tests: add case for issue 4675
2021-01-28 22:01:50 -06:00
Caleb Cartwright
c13d2452c0
chore: backport some empty block check fixes
2021-01-27 20:58:42 -06:00
vallentin
1e2b0b7c72
Added 4646 test case
2021-01-27 20:58:42 -06:00
Michael Morgan
384ba68d64
Add imports_granularity="Item".
...
This option splits all imports into their own `use` statement.
2021-01-27 20:58:42 -06:00
Sean Klein
5e14f760c5
fix: Avoid incorrect global 'cfg_if' Symbol interning
...
Fixes #4656
2021-01-27 19:26:58 -06:00
Ayaz Hafiz
f8deed3a3a
Include const generic type bounds in their spans
...
Closes #4310
2021-01-27 18:50:03 -06:00
topecongiro
152ccb5059
Do not duplicate const keyword on parameters
2021-01-27 18:50:03 -06:00
Seiichi Uchida
c0fede355c
Use the span after generics and where clause ( #4208 )
2021-01-27 18:50:03 -06:00
hafiz
269584634a
Include constness in impl blocks ( #4215 )
...
Closes #4084
2021-01-27 18:50:03 -06:00
Geoffry Song
71863753bd
Rename merge_imports
to imports_granularity
and add a Module
option.
...
This renames the existing `true`/`false` options to `Crate`/`Never`, then adds a
new `Module` option which causes imports to be grouped together by their
originating module.
2021-01-17 11:48:47 -06:00
Caleb Cartwright
b30cb24286
fix: indentation issue on generic bounds
2021-01-16 11:17:23 -06:00
Caleb Cartwright
3571c5d6f7
fix: maintain redundant semis on items in statement pos
2021-01-09 12:11:52 -06:00
Mara Bos
f0eaaeda9e
Add 2021 test.
2021-01-09 12:11:52 -06:00
Mara Bos
b623eb324c
Fix expected macro formatting test output.
2021-01-09 12:11:52 -06:00
Seiichi Uchida
0d022d08d8
Format error and typeof types ( #4416 )
...
* Add a test for #4357
* Format error and typeof types
2020-12-20 12:05:05 -06:00
Stéphane Campinas
c536d80dc1
Fix rewrite of closures with a return type
...
If the closure's body fits in a line, the block is removed but it is
necessary if the closure has a return type.
2020-12-20 12:05:05 -06:00
Caleb Cartwright
4cfb9ef8f4
fix: don't strip nonexistent comma in derive
2020-12-20 12:05:05 -06:00
David Tolnay
c40a8c1ecc
Add negative impl test
2020-11-30 23:24:36 -06:00
WhizSid
7d9ee7558e
Comment between typebounds ( #4474 )
...
* Test cases and get spans
* Fixed type bounds
* Fixed issue of test cases
* Fixed first test case issue
* Removed unwanted whitespaces
* Removed tmp files
2020-11-29 13:26:58 -06:00
WhizSid
b7c38c9d50
Fixed comment dropped between & and type issue ( #4482 )
...
* Fixed comment dropped between & and type issue
* Reduced nesting levels and avoided duplications
* Removed extra allocations
2020-11-29 13:26:58 -06:00
WhizSid
6455e9de0e
Fixed 'Comment removed between type name and =' issue ( #4448 )
...
* Fixed Comment removed between type name and = issue
* Fixed where clause issue and pass the full span
* has_where condition inline
* Fixed indentation error on where clause
* Removed tmp file
2020-11-29 13:26:58 -06:00
hafiz
5e7fb45533
Pick up comments between visibility modifier and item name ( #4239 )
...
* Pick up comments between visibility modifier and item name
I don't think this hurts to fix. #2781 , which surfaced this issue, has
a number of comments relating to similar but slightly different issues
(i.e. dropped comments in other places). I can mark #2781 as closed and
then will open new issues for the comments that are not already resolved
or tracked.
Closes #2781
* fixup! Pick up comments between visibility modifier and item name
* fixup! Pick up comments between visibility modifier and item name
2020-11-29 13:26:58 -06:00
Caleb Cartwright
fb7e604538
tests: backport an additional test case
2020-11-29 13:26:58 -06:00
Adam H. Leventhal
c7359945a4
tests
2020-11-29 13:26:58 -06:00
hafiz
c77c6a405d
Compare code block line indentation with config whitespace ( #4166 )
...
Previously the indetation of a line was compared with the configured
number of spaces per tab, which could cause lines that were formatted
with hard tabs not to be recognized as indented ("\t".len() < " ".len()).
Closes #4152
2020-11-29 13:26:58 -06:00
David Tolnay
e7ecdc1664
Remove async fn
from extern block tests
2020-11-28 21:59:30 -06:00
Ayaz Hafiz
3bf67c175d
Don't drop blocks on foreign functions
...
A code like
```rust
extern "C" {
fn f() {
fn g() {}
}
}
```
is incorrect and does not compile. Today rustfmt formats this in a way
that is correct:
```rust
extern "C" {
fn f();
}
```
But this loses information, and doesn't have to be done because we know
the content of the block if it is present. During development I don't
think rustfmt should drop the block in this context.
Closes #4313
2020-11-28 21:59:30 -06:00
topecongiro
8e46225547
Add a test
2020-11-28 21:59:30 -06:00
Caleb Cartwright
4d9fa00fd5
feat: support underscore expressions
2020-11-28 17:41:21 -06:00
Caleb Cartwright
4f32ce8434
feat: support struct/slice destructuring
2020-11-28 17:41:21 -06:00
meiomorphism
003786228d
fix: don't force a newline after an empty where clause
...
Fixes #4547 .
2020-11-25 21:32:46 -06:00
Matt
073cc3891f
Option to create groups for std, external crates, and other imports
...
Backport of 17d90ca.
2020-11-18 21:37:42 -06:00
Caleb Cartwright
89f38304a7
fix: don't drop leading comments in extern
2020-11-16 15:48:20 -06:00
Caleb Cartwright
eed826f8a7
tests: attributed comment-only blocks
2020-11-14 11:50:28 -06:00
WhizSid
faf97a67d6
Fixed 'Incorrect comment indent inside if/else' issue. ( #4459 )
...
* Added test cases
* Fixed if condition comment issue
* Fixed extern C issue
* Removed previous test case
* Removed tmp file
* honor the authors intent
* Changed the file name to its original name
* Removed extra whitespace
2020-11-14 11:50:28 -06:00
Ayaz Hafiz
dd32de74ce
fixup! Correctly create artificial span for formatting closure body
2020-11-14 11:50:28 -06:00
Caleb Cartwright
a613c57521
feat: don't insert semi in macro_rules arm body
2020-11-11 18:26:13 -06:00
Aaron Hill
46ab14437e
Don't flatten a block containing a single macro call
...
We no longer flatten a block that looks like this:
```rust
match val {
pat => { macro_call!() }
}
```
Currently, rust ignores trailing semicolons in macro expansion in
expression position (see https://github.com/rust-lang/rust/issues/33953 )
If this is changed, flattening a block with a macro call may break the
user's code - the trailing semicolon will no longer parse if the macro
call occurs immediately on the right-hand side of the match arm
(e.g. `pat => macro_call!()`)
2020-11-05 20:45:11 -06:00
Caleb Cartwright
15854e5fd3
feat: v2 support for nested tuples w/o spaces
2020-11-02 18:31:51 -06:00
Scott McMurray
278e8da33b
Add some basic tests for try{}
expressions
...
They failed to parse in rustfmt on me in https://github.com/rust-lang/rust/pull/77877 , which looks like it's since been fixed, but I figured I'd send in some tests anyway.
2020-11-02 18:31:51 -06:00
hafiz
6a7824787e
Preserve comments in empty statements ( #4180 )
...
* Preserve comments in empty statements
Closes #4018
* fixup! Preserve comments in empty statements
2020-10-24 11:13:00 -05:00
Ayaz Hafiz
e70343a5f5
Correctly indent skipped-over code
...
Closes #4398
2020-10-24 11:13:00 -05:00
Ayaz Hafiz
92ab76cfa7
fixup! Preserve and format type aliases in extern blocks
2020-10-01 19:12:22 -05:00
Ayaz Hafiz
a9b0b057eb
fixup! Preserve and format type aliases in extern blocks
2020-10-01 19:12:22 -05:00
Ayaz Hafiz
a15800a327
Preserve and format type aliases in extern blocks
...
Previously, non-trivial type aliases in extern blocks were dropped by
rustfmt because only the type alias name would be passed to a rewritter.
This commit fixes that by passing all type information (generics,
bounds, and assignments) to a type alias rewritter, and consolidates
`rewrite_type_alias` and `rewrite_associated_type` as one function.
2020-10-01 19:12:22 -05:00
Caleb Cartwright
4908ee19c3
tests: add tests for leading pipe config
2020-09-24 09:43:31 -05:00
David Tolnay
146578c480
Add regression test for unsafe mods
2020-09-23 00:45:18 -05:00
Caleb Cartwright
62dc7c5c6b
fix: inner attribute formatting
2020-09-04 19:01:18 -05:00
mahkoh
89b7f5f382
Fix module resolution in inner modules with paths ( #4194 )
2020-09-04 19:01:18 -05:00
Caleb Cartwright
48f6c32ec1
tests: add system tests for inverted span issue
2020-08-09 14:32:34 -05:00
Caleb Cartwright
bf359c6ebc
chore: backport 8157a3f0afe978d3e953420577f8344db7e905bf
2020-07-15 09:19:21 -05:00
Seiichi Uchida
a36e7c7981
Use correct span for match arms with the leading pipe and attributes ( #3975 )
2020-06-27 12:55:15 -05:00
Caleb Cartwright
796d6eafa4
fix: backport fix for #4079
2020-06-11 23:29:51 -05:00
Caleb Cartwright
5db7152962
fix: backport fix for #4020
2020-06-11 23:17:38 -05:00
Caleb Cartwright
dead3a807d
fix: backport mod resolution error handling
2020-06-11 21:11:18 -05:00
Caleb Cartwright
c1267303bc
fix: formatting arbitrary extern abi ( #4089 )
2020-03-31 15:30:26 +09:00
Caleb Cartwright
00e199c974
backport new syntax to rustfmt 1.x ( #4105 )
...
* feat: support raw reference operator
* feat: support const opt-out syntax
* feat: support half open range syntax
2020-03-31 15:28:01 +09:00
Caleb Cartwright
b173b42354
refactor: rename libsyntax --> rustc_ast
2020-03-27 22:29:12 -05:00
Caleb Cartwright
c1a66e1e22
fix: unreachable err on Fn with None
block
2020-03-27 22:13:46 -05:00
Caleb Cartwright
c60416ed21
deps: update rustc-ap to v642.0.0
2020-02-08 22:21:37 -06:00
Seiichi Uchida
731f15551b
Do not add block around async closure ( #3946 )
2019-12-03 08:47:25 +09:00
Seiichi Uchida
69cf48344b
fix handling of nested comments in patterns and ControlFlows ( #3869 )
2019-10-25 15:04:33 +09:00
rChaser53
233497aceb
fix Unparsable code when formmating ( #3883 )
2019-10-24 22:16:56 +09:00
Rui
69c7dbcd50
Try to solve issue3456. ( #3556 )
2019-10-19 18:19:47 +09:00
Stéphane Campinas
5327c3633f
handle field attributes when aligning a struct's fields ( #3513 )
2019-10-19 16:56:32 +09:00
Caleb Cartwright
fd6e960648
fix: comments between lhs and rhs
2019-10-17 20:13:11 -05:00
Caleb Cartwright
28be77915f
fix: nested comments in control flow condition pat
2019-10-17 19:58:08 -05:00
Stéphane Campinas
a15e97f1e9
do not indent impl generics ( #3856 )
2019-10-11 18:19:44 +09:00
Caleb Cartwright
8210cc1c13
fix: handle lhs unary in range expression ( #3855 )
2019-10-11 18:15:04 +09:00
rChaser53
396a2af181
fix to swallow attribute on brace expression ( #3848 )
2019-10-10 10:35:34 +09:00
Caleb Cartwright
207a58f365
fix panic on closure with empty block expr ( #3846 )
2019-10-08 11:00:31 +09:00
Caleb Cartwright
6dcbc5d78e
fix: handle block comments with trailing line comments ( #3842 )
2019-10-08 10:12:21 +09:00
Stéphane Campinas
8073244420
improve detection of URL inside a string that is being rewritten. ( #3809 )
2019-10-07 16:43:50 +09:00
Stéphane Campinas
160c3aafc5
handle hard tabs when formatting trailing comments ( #3836 )
2019-10-07 16:40:27 +09:00
Caleb Cartwright
ba4bf03d84
don't fail on recoverable parser errors in ignored files ( #3782 )
2019-10-07 10:24:08 +09:00
Caleb Cartwright
ed697c9347
fix: support raw prefix identifiers in statics
2019-10-05 12:34:48 -05:00
Stéphane Campinas
fb01dc857c
do not force comments to be indented with a comment trailing a line of code ( #3833 )
2019-10-05 00:22:01 +09:00
rChaser53
7926851bb0
stop to strip 'impl' from impl trait type alias ( #3816 )
2019-10-04 11:25:16 +09:00
Stéphane Campinas
dbd8936391
fix rust code in comment with a line containing only a hash sign ( #3818 )
2019-10-02 23:58:25 +09:00
Caleb Cartwright
634e2441c4
tests: add more merge_import tests for #3808
2019-09-26 20:11:11 -05:00
Caleb Cartwright
7c9c0d1a39
fix: merge_imports handling of ::{self}
2019-09-26 20:02:41 -05:00
Caleb Cartwright
3bb266180e
fix: handling of empty str for license template path ( #3804 )
2019-09-24 09:24:05 +09:00
Caleb Cartwright
6b0a447150
feat: support parameter attributes ( #3793 )
2019-09-20 16:11:52 +09:00
rChaser53
4449250539
fix the error with long string in raw string ( #3800 )
2019-09-18 22:39:27 +09:00
rChaser53
789a097a71
fix internal error when using rustfmt::skip with newline on stmt ( #3785 )
2019-09-15 23:45:46 +09:00
Caleb Cartwright
dfe87fe946
fix: async expression indentation ( #3789 )
2019-09-11 09:55:18 +09:00
Seiichi Uchida
5baba86fe5
Update rustc-ap-* crates to 581.0.0 ( #3783 )
2019-09-06 22:41:03 +09:00
rChaser53
1ded995ee7
fix 'left behind trailing whitespace' ( #3761 )
2019-09-05 19:38:00 +09:00
Seiichi Uchida
783948fcbb
Fix handling of match arm's rewrite ( #3775 )
2019-09-05 11:15:46 +09:00
Valentine Valyaeff
15a28f79b8
Another fix for merge_imports
( #3769 )
2019-09-04 23:02:10 +09:00
Andrey
950b288d6f
do not remove discriminant value if exists ( #3771 ) ( #3772 )
2019-09-04 23:01:04 +09:00
rChaser53
2bf67b6e5c
fix TrailingWhitespace when using line breaks in macros arguments ( #3768 )
2019-09-04 23:00:26 +09:00
Caleb Cartwright
ad5d9fba9b
fix formatting mods inside cfg_if macro ( #3763 )
2019-09-02 18:36:51 +09:00
Seiichi Uchida
deb329a6bb
Forbid adding or removing a block from match arms inside macro calls ( #3756 )
2019-08-28 20:50:41 +09:00
rChaser53
a09ca681de
fix the bug removing attrs ( #3760 )
2019-08-28 20:50:02 +09:00
Valentine Valyaeff
ef00f74ce3
Merge imports fix ( #3753 )
2019-08-27 11:23:55 +09:00
Seiichi Uchida
1643d726ef
Use correct indent when formatting complex fn type ( #3731 )
2019-08-16 11:15:28 +09:00
Seiichi Uchida
4871d6467a
Use the correct BytePos for the opening brace position ( #3742 )
2019-08-13 23:21:55 +09:00
Caleb Cartwright
ac150d016b
fix: remove trailing space with empty dyn macro arg ( #3737 )
2019-08-11 12:49:14 +09:00
Seiichi Uchida
c0cb5eb535
Fix broken tuple pattern ( #3729 )
2019-08-06 11:09:45 +09:00
Igor Matuszewski
62a32e7b83
Fix most recenty nightly breakage due to removed await! support ( #3722 )
2019-08-02 23:54:39 +09:00
rChaser53
3b7a518144
fix underscore in slice patterns are removed ( #3719 )
2019-07-31 23:55:58 +09:00
rChaser53
fe05e88831
fix to build with rustc 1.38.0-nightly ( 4560cb830
2019-07-28) ( #3712 )
2019-07-30 14:32:38 +09:00
rChaser53
da2ed095f3
add test for handling double semicolon ( #3706 )
2019-07-29 05:56:34 +09:00
Seiichi Uchida
983a92c872
Update rustc-ap-* crates to 541.0.0 ( #3707 )
2019-07-29 05:52:45 +09:00
Seiichi Uchida
c0e616bc1d
Implement closing-block procedure without relying on missed_span module ( #3691 )
2019-07-17 23:07:12 +09:00
Michele d'Amico
76e2ba25bd
#3665 : Implemented ( #3689 )
2019-07-17 09:40:33 +09:00
Seiichi Uchida
66c27c9161
Add #[ignore] to test that runs external process ( #3690 )
2019-07-16 19:36:23 +09:00
Seiichi Uchida
89940e541f
Fix bugs related to file-lines ( #3684 )
2019-07-15 22:41:56 +09:00
rChaser53
71289e1d23
fix 'extra comma inserted due to comment' ( #3677 )
2019-07-14 22:16:47 +09:00
Seiichi Uchida
3200af9785
Do not consider macro-origin await as chain item ( #3671 )
2019-07-06 14:17:53 +09:00
Stéphane Campinas
1f06a8b361
fix extraction of missing comments when rewriting an empty where clause ( #3663 )
2019-06-30 12:19:24 +09:00
calebcartwright
d9e42aea74
tests: add tests for assoscaited_type_bounds fix
2019-06-29 10:11:20 -05:00
rChaser53
9986b9d011
fix internal error for long closure types ( #3653 )
2019-06-25 23:14:19 +09:00
rChaser53
26d370e9e5
remove unreachable!() ( #3646 )
2019-06-23 16:24:40 +09:00
rChaser53
5b0ce0ed12
avoid not to truncate necessary chars ( #3640 )
2019-06-23 14:32:14 +09:00
Seiichi Uchida
1d19a08ed4
Format the last expression-statement as expression ( #3631 )
2019-06-17 08:53:39 +09:00
Stéphane Campinas
84c2356590
handle unicode chars in closures ( #3632 )
...
The `NotUnicode` branch was unecessarily put on a new line, although it
was within max width:
```diff
fn baz() {
let our_error_b = result_b_from_func.or_else(|e| match e {
NotPresent => Err(e).chain_err(|| "env var wasn't provided"),
- NotUnicode(_) => Err(e).chain_err(|| "env var was very very very borkæ–‡å—化ã"),
+ NotUnicode(_) => {
+ Err(e).chain_err(|| "env var was very very very borkæ–‡å—化ã")
+ }
});
}
```
2019-06-17 08:53:17 +09:00
Caleb Cartwright
aa0c9dd212
tests: add normalize_doc_attributes config tests ( #3630 )
2019-06-16 23:46:25 +09:00
Stéphane Campinas
1cea171cef
Improve handling of unicode characters ( #3618 )
2019-06-12 20:28:29 +09:00
Seiichi Uchida
47a11cd516
Format modules defined in cfg_attr ( #3604 )
2019-06-09 09:20:39 +09:00
Seiichi Uchida
e71bffb008
Format modules defined inside cfg_if macro calls ( #3600 )
2019-06-08 18:47:18 +09:00