Jubilee Young
|
6159460963
|
rustfmt: Remove has_cpuid from test
|
2024-08-02 02:12:29 -07:00 |
|
Michael Goulet
|
163d26ea9d
|
Remove rustdoc tests which no longer parse
|
2024-07-11 21:59:28 -04:00 |
|
Michael Goulet
|
10277c97c2
|
Implement use<> formatting in rustfmt
|
2024-06-23 10:57:10 -04:00 |
|
Caleb Cartwright
|
ebce054347
|
Merge commit 'e4944185ae09c99f59b460e358909f329010ea9c' into sync-from-rustfmt-24-06
|
2024-06-22 15:33:45 -05:00 |
|
Rémy Rakic
|
783a411f67
|
Revert "Rollup merge of #124099 - voidc:disallow-ambiguous-expr-attrs, r=davidtwco"
This reverts commit 57dad1d75e , reversing
changes made to 36316df9fe .
|
2024-06-06 20:39:54 +00:00 |
|
Oli Scherer
|
20e40d5efe
|
Error on using yield without also using #[coroutine] on the closure
And suggest adding the `#[coroutine]` to the closure
|
2024-04-24 08:05:29 +00:00 |
|
Dominik Stolz
|
966dd60251
|
Disallow ambiguous attributes on expressions
|
2024-04-18 20:42:19 +02:00 |
|
Jules Bertholet
|
31a4eae7ea
|
Add rustfmt test for mut ref mut
|
2024-03-27 16:38:56 -04:00 |
|
Ross Smyth
|
1709dd59bd
|
Add basic rustfmt implementation & test
|
2024-03-06 00:51:45 -05:00 |
|
Michael Goulet
|
b92320c39b
|
Check that a token can begin a nonterminal kind before parsing it as a macro arg in rustfmt
|
2024-01-22 01:49:33 +00:00 |
|
Eric Huss
|
b9ad02421a
|
Remove edition umbrella features.
|
2023-12-10 13:03:28 -08:00 |
|
Caleb Cartwright
|
04bd7201a9
|
Merge commit '81fe905ca83cffe84322f27ca43950b617861ff7' into rustfmt-sync
|
2023-10-22 20:21:44 -05:00 |
|
Oli Scherer
|
7a20da333b
|
Rename lots of files that had generator in their name
|
2023-10-20 21:14:02 +00:00 |
|
Oli Scherer
|
1b9dd4b4ad
|
s/generator/coroutine/
|
2023-10-20 21:14:01 +00:00 |
|
Caleb Cartwright
|
78331eefaf
|
Merge commit 'dca1cf90ad6b8e45afbed2061803befbb2d159e9' into sync-rustfmt
|
2023-07-01 02:49:12 -05:00 |
|
Caleb Cartwright
|
ed3e96e3d1
|
Merge commit '3f7c366fc0464e01ddcaefbd70647cb3da4202be' into rustfmt-sync
|
2023-06-19 23:13:56 -05:00 |
|
yukang
|
9d20134a78
|
remove rustfmt testcase for type ascription
|
2023-05-01 16:15:17 +08:00 |
|
yukang
|
a74d2d7440
|
fix tests
|
2023-05-01 16:15:17 +08:00 |
|
clubby789
|
a5ba6e025f
|
Remove uses of box_syntax in rustc and tools
|
2023-03-12 13:19:46 +00:00 |
|
Caleb Cartwright
|
094b7f599c
|
Merge commit '1d8491b120223272b13451fc81265aa64f7f4d5b' into sync-from-rustfmt
|
2023-01-24 14:16:03 -06:00 |
|
Albert Larsan
|
8c8aa3873f
|
Change src/test to tests in source files, fix tidy and tests
|
2023-01-11 09:32:13 +00:00 |
|
Jack Huey
|
748b031056
|
Stabilize GATs
|
2022-08-30 23:06:24 -04:00 |
|
Joshua Nelson
|
7852b8808b
|
Stabilize #![feature(label_break_value)]
# Stabilization proposal
The feature was implemented in https://github.com/rust-lang/rust/pull/50045 by est31 and has been in nightly since 2018-05-16 (over 4 years now).
There are [no open issues][issue-label] other than the tracking issue. There is a strong consensus that `break` is the right keyword and we should not use `return`.
There have been several concerns raised about this feature on the tracking issue (other than the one about tests, which has been fixed, and an interaction with try blocks, which has been fixed).
1. nrc's original comment about cost-benefit analysis: https://github.com/rust-lang/rust/issues/48594#issuecomment-422235234
2. joshtriplett's comments about seeing use cases: https://github.com/rust-lang/rust/issues/48594#issuecomment-422281176
3. withoutboats's comments that Rust does not need more control flow constructs: https://github.com/rust-lang/rust/issues/48594#issuecomment-450050630
Many different examples of code that's simpler using this feature have been provided:
- A lexer by rpjohnst which must repeat code without label-break-value: https://github.com/rust-lang/rust/issues/48594#issuecomment-422502014
- A snippet by SergioBenitez which avoids using a new function and adding several new return points to a function: https://github.com/rust-lang/rust/issues/48594#issuecomment-427628251. This particular case would also work if `try` blocks were stabilized (at the cost of making the code harder to optimize).
- Several examples by JohnBSmith: https://github.com/rust-lang/rust/issues/48594#issuecomment-434651395
- Several examples by Centril: https://github.com/rust-lang/rust/issues/48594#issuecomment-440154733
- An example by petrochenkov where this is used in the compiler itself to avoid duplicating error checking code: https://github.com/rust-lang/rust/issues/48594#issuecomment-443557569
- Amanieu recently provided another example related to complex conditions, where try blocks would not have helped: https://github.com/rust-lang/rust/issues/48594#issuecomment-1184213006
Additionally, petrochenkov notes that this is strictly more powerful than labelled loops due to macros which accidentally exit a loop instead of being consumed by the macro matchers: https://github.com/rust-lang/rust/issues/48594#issuecomment-450246249
nrc later resolved their concern, mostly because of the aforementioned macro problems.
joshtriplett suggested that macros could be able to generate IR directly
(https://github.com/rust-lang/rust/issues/48594#issuecomment-451685983) but there are no open RFCs,
and the design space seems rather speculative.
joshtriplett later resolved his concerns, due to a symmetry between this feature and existing labelled break: https://github.com/rust-lang/rust/issues/48594#issuecomment-632960804
withoutboats has regrettably left the language team.
joshtriplett later posted that the lang team would consider starting an FCP given a stabilization report: https://github.com/rust-lang/rust/issues/48594#issuecomment-1111269353
[issue-label]: https://github.com/rust-lang/rust/issues?q=is%3Aissue+is%3Aopen+label%3AF-label_break_value+
## Report
+ Feature gate:
- d695a497bb/src/test/ui/feature-gates/feature-gate-label_break_value.rs
+ Diagnostics:
- 6b2d3d5f3c/compiler/rustc_parse/src/parser/diagnostics.rs (L2629)
- f65bf0b2bb/compiler/rustc_resolve/src/diagnostics.rs (L749)
- f65bf0b2bb/compiler/rustc_resolve/src/diagnostics.rs (L1001)
- 111df9e6ed/compiler/rustc_passes/src/loops.rs (L254)
- d695a497bb/compiler/rustc_parse/src/parser/expr.rs (L2079)
- d695a497bb/compiler/rustc_parse/src/parser/expr.rs (L1569)
+ Tests:
- https://github.com/rust-lang/rust/blob/master/src/test/ui/label/label_break_value_continue.rs
- https://github.com/rust-lang/rust/blob/master/src/test/ui/label/label_break_value_unlabeled_break.rs
- https://github.com/rust-lang/rust/blob/master/src/test/ui/label/label_break_value_illegal_uses.rs
- https://github.com/rust-lang/rust/blob/master/src/test/ui/lint/unused_labels.rs
- https://github.com/rust-lang/rust/blob/master/src/test/ui/run-pass/for-loop-while/label_break_value.rs
## Interactions with other features
Labels follow the hygiene of local variables.
label-break-value is permitted within `try` blocks:
```rust
let _: Result<(), ()> = try {
'foo: {
Err(())?;
break 'foo;
}
};
```
label-break-value is disallowed within closures, generators, and async blocks:
```rust
'a: {
|| break 'a
//~^ ERROR use of unreachable label `'a`
//~| ERROR `break` inside of a closure
}
```
label-break-value is disallowed on [_BlockExpression_]; it can only occur as a [_LoopExpression_]:
```rust
fn labeled_match() {
match false 'b: { //~ ERROR block label not supported here
_ => {}
}
}
macro_rules! m {
($b:block) => {
'lab: $b; //~ ERROR cannot use a `block` macro fragment here
unsafe $b; //~ ERROR cannot use a `block` macro fragment here
|x: u8| -> () $b; //~ ERROR cannot use a `block` macro fragment here
}
}
fn foo() {
m!({});
}
```
[_BlockExpression_]: https://doc.rust-lang.org/nightly/reference/expressions/block-expr.html
[_LoopExpression_]: https://doc.rust-lang.org/nightly/reference/expressions/loop-expr.html
|
2022-08-23 21:14:12 -05:00 |
|
Maybe Waffle
|
f026688c2a
|
Add rustfmt test for formatting for<> before closures
|
2022-07-12 21:00:13 +04:00 |
|
Caleb Cartwright
|
ac595dd57a
|
Merge commit 'c4416f20dcaec5d93077f72470e83e150fb923b1' into sync-rustfmt
|
2022-06-22 22:14:32 -05:00 |
|
Caleb Cartwright
|
d03a547cad
|
Merge commit '7b73b60faca71d01d900e49831fcb84553e93019' into sync-rustfmt
|
2022-06-12 22:03:05 -05:00 |
|
Jacob Pratt
|
241a6f6930
|
Remove crate visibility modifier in libs, tests
|
2022-05-21 00:32:47 -04:00 |
|
ydah
|
86940d2652
|
Fix typo
This PR is fixes typo "avaiable" to "available".
|
2022-05-20 10:39:10 +09:00 |
|
Caleb Cartwright
|
8211d64c71
|
Merge commit '5ff7b632a95bac6955611d85040859128902c580' into sync-rustfmt-subtree
|
2022-03-29 23:17:30 -05:00 |
|
Caleb Cartwright
|
6db6bafc61
|
Merge commit '4a053f206fd6799a25823c307f7d7f9d897be118' into sync-rustfmt-subtree
|
2021-12-29 20:49:39 -06:00 |
|
Caleb Cartwright
|
0167c5303f
|
Merge commit '8da837185714cefbb261e93e9846afb11c1dc60e' into sync-rustfmt-subtree
|
2021-12-02 21:35:30 -06:00 |
|
Caleb Cartwright
|
f99e3582bd
|
Merge commit 'ea199bacef07213dbe008841b89c450e3bf0c638' into rustfmt-sync
|
2021-11-07 20:37:34 -06:00 |
|
Caleb Cartwright
|
2b41b6d022
|
Merge commit 'efa8f5521d3813cc897ba29ea0ef98c7aef66bb6' into rustfmt-subtree
|
2021-10-20 00:11:59 -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 |
|
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
|
e4b8714c09
|
Merge commit '4236289b75ee55c78538c749512cdbeea5e1c332' into update-rustfmt
|
2021-07-25 22:57:19 -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 |
|
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 |
|
topecongiro
|
152ccb5059
|
Do not duplicate const keyword on parameters
|
2021-01-27 18:50:03 -06:00 |
|