about summary refs log tree commit diff
path: root/src/tools/rustfmt/tests/source
AgeCommit message (Collapse)AuthorLines
2025-06-30Remove let_chains featureCameron Steffen-0/+2
2025-06-27Rollup merge of #139858 - oli-obk:new-const-traits-syntax, r=fee1-deadMatthias Krüger-6/+6
New const traits syntax This PR only affects the AST and doesn't actually change anything semantically. All occurrences of `~const` outside of libcore have been replaced by `[const]`. Within libcore we have to wait for rustfmt to be bumped in the bootstrap compiler. This will happen "automatically" (when rustfmt is run) during the bootstrap bump, as rustfmt converts `~const` into `[const]`. After this we can remove the `~const` support from the parser Caveat discovered during impl: there is no legacy bare trait object recovery for `[const] Trait` as that snippet in type position goes down the slice /array parsing code and will error r? ``@fee1-dead`` cc ``@nikomatsakis`` ``@traviscross`` ``@compiler-errors``
2025-06-26Change const trait bound syntax from ~const to [const]Oli Scherer-6/+6
2025-06-15Implement pinned borrows, part of `pin_ergonomics`Frank King-0/+10
2025-04-29Also allow bool literals as first item of let chainCaleb Cartwright-5/+5
Co-authored-by: est31 <est31@users.noreply.github.com>
2025-03-21update rustfmt testlcnr-1/+1
2025-03-05Implement `&pin const self` and `&pin mut self` sugarsFrank King-0/+10
2025-02-28Do not yeet unsafe<> from typeMichael Goulet-0/+3
2025-01-09Only treat plain literal patterns as shortOli Scherer-0/+10
2024-12-22Make sure we don't lose default struct value when formatting structMichael Goulet-0/+18
2024-12-12Fix toolsMichael Goulet-0/+11
2024-11-21Implement the unsafe-fields RFC.Luca Versari-0/+16
Co-Authored-By: Jacob Pratt <jacob@jhpratt.dev>
2024-10-07Add basic pin sugar support to rustfmtEric Holk-0/+10
2024-09-19Merge commit 'b23b69900eab1260be510b2bd8922f4b6de6cf1e' into sync-from-rustfmtYacin Tmimi-45/+409
2024-08-02rustfmt: Remove `has_cpuid` from testJubilee Young-9/+0
2024-07-11Remove rustdoc tests which no longer parseMichael Goulet-2/+0
2024-06-23Implement use<> formatting in rustfmtMichael Goulet-0/+9
2024-06-22Merge commit 'e4944185ae09c99f59b460e358909f329010ea9c' into ↵Caleb Cartwright-4/+237
sync-from-rustfmt-24-06
2024-06-06Revert "Rollup merge of #124099 - voidc:disallow-ambiguous-expr-attrs, ↵Rémy Rakic-2/+2
r=davidtwco" This reverts commit 57dad1d75e562ff73051c1c43b07eaf65c7dbd74, reversing changes made to 36316df9fe6c3e246153fe6e78967643cf08c148.
2024-04-24Error on using `yield` without also using `#[coroutine]` on the closureOli Scherer-1/+2
And suggest adding the `#[coroutine]` to the closure
2024-04-18Disallow ambiguous attributes on expressionsDominik Stolz-2/+2
2024-03-27Add rustfmt test for mut ref mutJules Bertholet-0/+10
2024-03-06Add basic rustfmt implementation & testRoss Smyth-0/+20
2024-01-22Check that a token can begin a nonterminal kind before parsing it as a macro ↵Michael Goulet-0/+1
arg in rustfmt
2023-12-10Remove edition umbrella features.Eric Huss-2/+2
2023-10-22Merge commit '81fe905ca83cffe84322f27ca43950b617861ff7' into rustfmt-syncCaleb Cartwright-0/+847
2023-10-20Rename lots of files that had `generator` in their nameOli Scherer-0/+0
2023-10-20s/generator/coroutine/Oli Scherer-1/+1
2023-07-01Merge commit 'dca1cf90ad6b8e45afbed2061803befbb2d159e9' into sync-rustfmtCaleb Cartwright-1/+310
2023-06-19Merge commit '3f7c366fc0464e01ddcaefbd70647cb3da4202be' into rustfmt-syncCaleb Cartwright-2/+347
2023-05-01remove rustfmt testcase for type ascriptionyukang-10/+0
2023-05-01fix testsyukang-5/+5
2023-03-12Remove uses of `box_syntax` in rustc and toolsclubby789-11/+0
2023-01-24Merge commit '1d8491b120223272b13451fc81265aa64f7f4d5b' into sync-from-rustfmtCaleb Cartwright-10/+652
2023-01-11Change `src/test` to `tests` in source files, fix tidy and testsAlbert Larsan-2/+2
2022-08-30Stabilize GATsJack Huey-6/+0
2022-08-23Stabilize `#![feature(label_break_value)]`Joshua Nelson-2/+0
# 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: - https://github.com/rust-lang/rust/blob/d695a497bbf4b20d2580b75075faa80230d41667/src/test/ui/feature-gates/feature-gate-label_break_value.rs + Diagnostics: - https://github.com/rust-lang/rust/blob/6b2d3d5f3cd1e553d87b5496632132565b6779d3/compiler/rustc_parse/src/parser/diagnostics.rs#L2629 - https://github.com/rust-lang/rust/blob/f65bf0b2bb1a99f73095c01a118f3c37d3ee614c/compiler/rustc_resolve/src/diagnostics.rs#L749 - https://github.com/rust-lang/rust/blob/f65bf0b2bb1a99f73095c01a118f3c37d3ee614c/compiler/rustc_resolve/src/diagnostics.rs#L1001 - https://github.com/rust-lang/rust/blob/111df9e6eda1d752233482c1309d00d20a4bbf98/compiler/rustc_passes/src/loops.rs#L254 - https://github.com/rust-lang/rust/blob/d695a497bbf4b20d2580b75075faa80230d41667/compiler/rustc_parse/src/parser/expr.rs#L2079 - https://github.com/rust-lang/rust/blob/d695a497bbf4b20d2580b75075faa80230d41667/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-07-12Add rustfmt test for formatting `for<>` before closuresMaybe Waffle-0/+10
2022-06-22Merge commit 'c4416f20dcaec5d93077f72470e83e150fb923b1' into sync-rustfmtCaleb Cartwright-5765/+59
2022-06-12Merge commit '7b73b60faca71d01d900e49831fcb84553e93019' into sync-rustfmtCaleb Cartwright-36/+6067
2022-05-21Remove `crate` visibility modifier in libs, testsJacob Pratt-14/+1
2022-05-20Fix typoydah-1/+1
This PR is fixes typo "avaiable" to "available".
2022-03-29Merge commit '5ff7b632a95bac6955611d85040859128902c580' into ↵Caleb Cartwright-0/+476
sync-rustfmt-subtree
2021-12-29Merge commit '4a053f206fd6799a25823c307f7d7f9d897be118' into ↵Caleb Cartwright-0/+35
sync-rustfmt-subtree
2021-12-02Merge commit '8da837185714cefbb261e93e9846afb11c1dc60e' into ↵Caleb Cartwright-0/+338
sync-rustfmt-subtree
2021-11-07Merge commit 'ea199bacef07213dbe008841b89c450e3bf0c638' into rustfmt-syncCaleb Cartwright-0/+136
2021-10-20Merge commit 'efa8f5521d3813cc897ba29ea0ef98c7aef66bb6' into rustfmt-subtreeCaleb Cartwright-0/+579
2021-08-30Temporary fix rustfmt for let-elseCameron Steffen-0/+3
2021-08-27Fix rustfmt testDeadbeef-15/+9
2021-08-22Fix typos “an”→“a” and a few different ones that appeared in the ↵Frank Steffahn-1/+1
same search