-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rustfmt subtree update #126842
rustfmt subtree update #126842
Commits on Jul 31, 2023
-
Configuration menu - View commit details
-
Copy full SHA for aac383e - Browse repository at this point
Copy the full SHA aac383eView commit details
Commits on Aug 2, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 35d875a - Browse repository at this point
Copy the full SHA 35d875aView commit details -
It's the same as `Delimiter`, minus the `Invisible` variant. I'm generally in favour of using types to make impossible states unrepresentable, but this one feels very low-value, and the conversions between the two types are annoying and confusing. Look at the change in `src/tools/rustfmt/src/expr.rs` for an example: the old code converted from `MacDelimiter` to `Delimiter` and back again, for no good reason. This suggests the author was confused about the types.
Configuration menu - View commit details
-
Copy full SHA for 14101ed - Browse repository at this point
Copy the full SHA 14101edView commit details
Commits on Aug 3, 2023
-
Rollup merge of rust-lang#114300 - MU001999:fix/turbofish-pat, r=este…
…bank Suggests turbofish in patterns Fixes rust-lang#114112 r? ```@estebank```
Configuration menu - View commit details
-
Copy full SHA for 4cc22af - Browse repository at this point
Copy the full SHA 4cc22afView commit details
Commits on Aug 4, 2023
-
Improve spans for indexing expressions
Indexing is similar to method calls in having an arbitrary left-hand-side and then something on the right, which is the main part of the expression. Method calls already have a span for that right part, but indexing does not. This means that long method chains that use indexing have really bad spans, especially when the indexing panics and that span in coverted into a panic location. This does the same thing as method calls for the AST and HIR, storing an extra span which is then put into the `fn_span` field in THIR.
Configuration menu - View commit details
-
Copy full SHA for aca22c7 - Browse repository at this point
Copy the full SHA aca22c7View commit details -
Auto merge of rust-lang#114104 - oli-obk:syn2, r=compiler-errors
Lots of tiny incremental simplifications of `EmitterWriter` internals ignore the first commit, it's rust-lang#114088 squashed and rebased, but it's needed to use to use `derive_setters`, as they need a newer `syn` version. Then this PR starts out with removing many arguments that are almost always defaulted to `None` or `false` and replace them with builder methods that can set these fields in the few cases that want to set them. After that it's one commit after the other that removes or merges things until everything becomes some very simple trait objects
Configuration menu - View commit details
-
Copy full SHA for e3d6bf8 - Browse repository at this point
Copy the full SHA e3d6bf8View commit details -
Rollup merge of rust-lang#114434 - Nilstrieb:indexing-spans, r=est31
Improve spans for indexing expressions fixes rust-lang#114388 Indexing is similar to method calls in having an arbitrary left-hand-side and then something on the right, which is the main part of the expression. Method calls already have a span for that right part, but indexing does not. This means that long method chains that use indexing have really bad spans, especially when the indexing panics and that span in coverted into a panic location. This does the same thing as method calls for the AST and HIR, storing an extra span which is then put into the `fn_span` field in THIR. r? compiler-errors
Configuration menu - View commit details
-
Copy full SHA for 6e87f86 - Browse repository at this point
Copy the full SHA 6e87f86View commit details -
Auto merge of rust-lang#114481 - matthiaskrgr:rollup-58pczpl, r=matth…
…iaskrgr Rollup of 9 pull requests Successful merges: - rust-lang#113945 (Fix wrong span for trait selection failure error reporting) - rust-lang#114351 ([rustc_span][perf] Remove unnecessary string joins and allocs.) - rust-lang#114418 (bump parking_lot to 0.12) - rust-lang#114434 (Improve spans for indexing expressions) - rust-lang#114450 (Fix ICE failed to get layout for ReferencesError) - rust-lang#114461 (Fix unwrap on None) - rust-lang#114462 (interpret: add mplace_to_ref helper method) - rust-lang#114472 (Reword `confusable_idents` lint) - rust-lang#114477 (Account for `Rc` and `Arc` when suggesting to clone) r? `@ghost` `@rustbot` modify labels: rollup
Configuration menu - View commit details
-
Copy full SHA for 327903e - Browse repository at this point
Copy the full SHA 327903eView commit details
Commits on Aug 24, 2023
-
Parse unnamed fields and anonymous structs or unions
Anonymous structs or unions are only allowed in struct field definitions. Co-authored-by: carbotaniuman <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for af6a6a3 - Browse repository at this point
Copy the full SHA af6a6a3View commit details
Commits on Aug 30, 2023
-
Configuration menu - View commit details
-
Copy full SHA for eb349e3 - Browse repository at this point
Copy the full SHA eb349e3View commit details
Commits on Sep 3, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 45e19aa - Browse repository at this point
Copy the full SHA 45e19aaView commit details
Commits on Sep 11, 2023
-
Configuration menu - View commit details
-
Copy full SHA for e0d90cc - Browse repository at this point
Copy the full SHA e0d90ccView commit details
Commits on Oct 4, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f867858 - Browse repository at this point
Copy the full SHA f867858View commit details
Commits on Oct 20, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 1b9dd4b - Browse repository at this point
Copy the full SHA 1b9dd4bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7a20da3 - Browse repository at this point
Copy the full SHA 7a20da3View commit details
Commits on Oct 22, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4335c28 - Browse repository at this point
Copy the full SHA 4335c28View commit details
Commits on Oct 23, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 04bd720 - Browse repository at this point
Copy the full SHA 04bd720View commit details -
Auto merge of rust-lang#116033 - bvanjoi:fix-116032, r=petrochenkov
report `unused_import` for empty reexports even it is pub Fixes rust-lang#116032 An easy fix. r? `@petrochenkov` (Discovered this issue while reviewing rust-lang#115993.)
Configuration menu - View commit details
-
Copy full SHA for d5bf53b - Browse repository at this point
Copy the full SHA d5bf53bView commit details
Commits on Oct 24, 2023
-
Fixed error caused by combination of match_arm_blocks and control_bra…
…ce_style Fixes 5912 When `control_brace_style = "AlwaysNextLine"`, the code seems to always assume that `body_prefix` is `{`. This is however not the case when `match_arm_blocks = false`. This causes `block_sep` to introduce extra white space that causes the error. The fix was to check if `body_prefix` is empty before matching on `ControlBraceStyle::AlwaysNextLine`.
Configuration menu - View commit details
-
Copy full SHA for 041f113 - Browse repository at this point
Copy the full SHA 041f113View commit details
Commits on Oct 27, 2023
-
Configuration menu - View commit details
-
Copy full SHA for a3be235 - Browse repository at this point
Copy the full SHA a3be235View commit details
Commits on Nov 2, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 8d2c415 - Browse repository at this point
Copy the full SHA 8d2c415View commit details -
These changes mostly improve logging out the cargo version and version of the two rustfmt binaries that are compiled. Some other minor logging changes were made as well to add some whitespace to improve visual clarity when looking at the logs in the GitHub Actions console.
Configuration menu - View commit details
-
Copy full SHA for b446e8e - Browse repository at this point
Copy the full SHA b446e8eView commit details -
Update how
LD_LIBRARY_PATH
is set for rustfmt binaries in diff checkrustfmt currently has a runtime dependency on the sysroot. So when we build a standalone rustfmt binary we need to set `LD_LIBRARY_PATH` so each rustfmt binary knows where to find it's dependencies. When running our Diff-Check job to test PRs for breaking changes it's often the case that both the master rustfmt binary and the feature branch binary have the same runtime dependencies so we only need to set `LD_LIBRARY_PATH` once. However, when running the diff-check job against a subtree sync PR that assumption doesn't hold. The subtree sync PR bumps the required toolchain used to build rustfmt and therefore the binary that gets built for the subtree sync PR has a different runtime dependency than the master rustfmt binary. Now we set `LD_LIBRARY_PATH` twice to account for this potential difference.
Configuration menu - View commit details
-
Copy full SHA for 37489e4 - Browse repository at this point
Copy the full SHA 37489e4View commit details
Commits on Nov 4, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 494560c - Browse repository at this point
Copy the full SHA 494560cView commit details
Commits on Nov 21, 2023
-
Because the API for `with_position` improved in 0.11 and I want to use it.
Configuration menu - View commit details
-
Copy full SHA for c043d01 - Browse repository at this point
Copy the full SHA c043d01View commit details
Commits on Nov 24, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 24ce52a - Browse repository at this point
Copy the full SHA 24ce52aView commit details
Commits on Nov 27, 2023
-
Rework
ast::BinOpKind::to_string
andast::UnOp::to_string
.- Rename them both `as_str`, which is the typical name for a function that returns a `&str`. (`to_string` is appropriate for functions returning `String` or maybe `Cow<'a, str>`.) - Change `UnOp::as_str` from an associated function (weird!) to a method. - Avoid needless `self` dereferences.
Configuration menu - View commit details
-
Copy full SHA for d84d8d2 - Browse repository at this point
Copy the full SHA d84d8d2View commit details
Commits on Nov 29, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f2f2431 - Browse repository at this point
Copy the full SHA f2f2431View commit details -
Rollup merge of rust-lang#118157 - Nadrieril:never_pat-feature-gate, …
…r=compiler-errors Add `never_patterns` feature gate This PR adds the feature gate and most basic parsing for the experimental `never_patterns` feature. See the tracking issue (rust-lang#118155) for details on the experiment. `@scottmcm` has agreed to be my lang-team liaison for this experiment.
Configuration menu - View commit details
-
Copy full SHA for 1ab7fc9 - Browse repository at this point
Copy the full SHA 1ab7fc9View commit details
Commits on Dec 3, 2023
-
Configuration menu - View commit details
-
Copy full SHA for a445ba8 - Browse repository at this point
Copy the full SHA a445ba8View commit details
Commits on Dec 4, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 97fdae1 - Browse repository at this point
Copy the full SHA 97fdae1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 13d284d - Browse repository at this point
Copy the full SHA 13d284dView commit details -
Configuration menu - View commit details
-
Copy full SHA for f114bb4 - Browse repository at this point
Copy the full SHA f114bb4View commit details
Commits on Dec 8, 2023
-
Auto merge of rust-lang#118527 - Nadrieril:never_patterns_parse, r=co…
…mpiler-errors never_patterns: Parse match arms with no body Never patterns are meant to signal unreachable cases, and thus don't take bodies: ```rust let ptr: *const Option<!> = ...; match *ptr { None => { foo(); } Some(!), } ``` This PR makes rustc accept the above, and enforces that an arm has a body xor is a never pattern. This affects parsing of match arms even with the feature off, so this is delicate. (Plus this is my first non-trivial change to the parser). ~~The last commit is optional; it introduces a bit of churn to allow the new suggestions to be machine-applicable. There may be a better solution? I'm not sure.~~ EDIT: I removed that commit r? `@compiler-errors`
Configuration menu - View commit details
-
Copy full SHA for 77bb46d - Browse repository at this point
Copy the full SHA 77bb46dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6ebb66c - Browse repository at this point
Copy the full SHA 6ebb66cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3ffacf7 - Browse repository at this point
Copy the full SHA 3ffacf7View commit details -
Auto merge of rust-lang#118420 - compiler-errors:async-gen, r=eholk
Introduce support for `async gen` blocks I'm delighted to demonstrate that `async gen` block are not very difficult to support. They're simply coroutines that yield `Poll<Option<T>>` and return `()`. **This PR is WIP and in draft mode for now** -- I'm mostly putting it up to show folks that it's possible. This PR needs a lang-team experiment associated with it or possible an RFC, since I don't think it falls under the jurisdiction of the `gen` RFC that was recently authored by oli (rust-lang/rfcs#3513, rust-lang#117078). ### Technical note on the pre-generator-transform yield type: The reason that the underlying coroutines yield `Poll<Option<T>>` and not `Poll<T>` (which would make more sense, IMO, for the pre-transformed coroutine), is because the `TransformVisitor` that is used to turn coroutines into built-in state machine functions would have to destructure and reconstruct the latter into the former, which requires at least inserting a new basic block (for a `switchInt` terminator, to match on the `Poll` discriminant). This does mean that the desugaring (at the `rustc_ast_lowering` level) of `async gen` blocks is a bit more involved. However, since we already need to intercept both `.await` and `yield` operators, I don't consider it much of a technical burden. r? `@ghost`
Configuration menu - View commit details
-
Copy full SHA for 9c809ce - Browse repository at this point
Copy the full SHA 9c809ceView commit details
Commits on Dec 9, 2023
-
Add
StyleEdition
enum andStyleEditionDefault
trait**Note** This does not add the `style_edition` config option to rustfmt. The `StyleEdition` enum will eventually be used to allow users to configure the `style_edition`, but for now it's added so we can introduce the the `StyleEditionDefault` trait.
Configuration menu - View commit details
-
Copy full SHA for 2174e60 - Browse repository at this point
Copy the full SHA 2174e60View commit details
Commits on Dec 10, 2023
-
detects redundant imports that can be eliminated. for rust-lang#117772 : In order to facilitate review and modification, split the checking code and removing redundant imports code into two PR.
Configuration menu - View commit details
-
Copy full SHA for 1b9bf8a - Browse repository at this point
Copy the full SHA 1b9bf8aView commit details -
Configuration menu - View commit details
-
Copy full SHA for b9ad024 - Browse repository at this point
Copy the full SHA b9ad024View commit details -
Add spacing information to delimiters.
This is an extension of the previous commit. It means the output of something like this: ``` stringify!(let a: Vec<u32> = vec![];) ``` goes from this: ``` let a: Vec<u32> = vec![] ; ``` With this PR, it now produces this string: ``` let a: Vec<u32> = vec![]; ```
Configuration menu - View commit details
-
Copy full SHA for 1cb804b - Browse repository at this point
Copy the full SHA 1cb804bView commit details
Commits on Dec 11, 2023
-
Rollup merge of rust-lang#118802 - ehuss:remove-edition-preview, r=Ta…
…KO8Ki Remove edition umbrella features. In the 2018 edition, there was an "umbrella" feature `#[feature(rust_2018_preview)]` which was used to enable several other features at once. This umbrella mechanism was not used in the 2021 edition and likely will not be used in 2024 either. During 2018 users reported that setting the feature was awkward, especially since they already needed to opt-in via the edition mechanism. This PR removes this mechanism because I believe it will not be used (and will clean up and simplify the code). I believe that there are better ways to handle features and editions. In short: - For highly experimental features, that may or may not be involved in an edition, they can implement regular feature gates like `tcx.features().my_feature`. - For experimental features that *might* be involved in an edition, they should implement gates with `tcx.features().my_feature && span.at_least_rust_20xx()`. This requires the user to still specify `#![feature(my_feature)]`, to avoid disrupting testing of other edition features which are ready and have been accepted within the edition. - For experimental features that have graduated to definitely be part of an edition, they should implement gates with `tcx.features().my_feature || span.at_least_rust_20xx()`, or just remove the feature check altogether and just check `span.at_least_rust_20xx()`. - For relatively simple changes, they can skip the whole feature gating thing and just check `span.at_least_rust_20xx()`, and rely on the instability of the edition itself (which requires `-Zunstable-options`) to gate it. I am working on documenting all of this in the rustc-dev-guide.
Configuration menu - View commit details
-
Copy full SHA for 948c904 - Browse repository at this point
Copy the full SHA 948c904View commit details
Commits on Dec 12, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 227e361 - Browse repository at this point
Copy the full SHA 227e361View commit details -
Configuration menu - View commit details
-
Copy full SHA for 03510f3 - Browse repository at this point
Copy the full SHA 03510f3View commit details
Commits on Dec 13, 2023
-
Merge pull request rust-lang#5980 from ytmimi/subtree_push_2023_12_12
Subtree push 2023-12-12
Configuration menu - View commit details
-
Copy full SHA for 2019676 - Browse repository at this point
Copy the full SHA 2019676View commit details
Commits on Dec 14, 2023
-
Split
Handler::emit_diagnostic
in two.Currently, `emit_diagnostic` takes `&mut self`. This commit changes it so `emit_diagnostic` takes `self` and the new `emit_diagnostic_without_consuming` function takes `&mut self`. I find the distinction useful. The former case is much more common, and avoids a bunch of `mut` and `&mut` occurrences. We can also restrict the latter with `pub(crate)` which is nice.
Configuration menu - View commit details
-
Copy full SHA for 7045cad - Browse repository at this point
Copy the full SHA 7045cadView commit details
Commits on Dec 16, 2023
-
rename
hide_parse_errors
asshow_parse_errors
Closes 3390 `hide_parse_errors` is now deprecated, and was renamed `show_parse_errors` to avoid confusion around the double negative default of `hide_parse_errors=false`.
Configuration menu - View commit details
-
Copy full SHA for d739d93 - Browse repository at this point
Copy the full SHA d739d93View commit details
Commits on Dec 18, 2023
-
Configuration menu - View commit details
-
Copy full SHA for c7992af - Browse repository at this point
Copy the full SHA c7992afView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7738d69 - Browse repository at this point
Copy the full SHA 7738d69View commit details -
Configuration menu - View commit details
-
Copy full SHA for cce3961 - Browse repository at this point
Copy the full SHA cce3961View commit details -
Configuration menu - View commit details
-
Copy full SHA for ef315b3 - Browse repository at this point
Copy the full SHA ef315b3View commit details -
Configuration menu - View commit details
-
Copy full SHA for ca2472e - Browse repository at this point
Copy the full SHA ca2472eView commit details
Commits on Dec 19, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 0315daa - Browse repository at this point
Copy the full SHA 0315daaView commit details
Commits on Dec 20, 2023
-
Configuration menu - View commit details
-
Copy full SHA for df30a7a - Browse repository at this point
Copy the full SHA df30a7aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 60419aa - Browse repository at this point
Copy the full SHA 60419aaView commit details
Commits on Dec 22, 2023
-
Auto merge of rust-lang#119163 - fmease:refactor-ast-trait-bound-modi…
…fiers, r=compiler-errors Refactor AST trait bound modifiers Instead of having two types to represent trait bound modifiers in the parser / the AST (`parser::ty::BoundModifiers` & `ast::TraitBoundModifier`), only to map one to the other later, just use `parser::ty::BoundModifiers` (moved & renamed to `ast::TraitBoundModifiers`). The struct type is more extensible and easier to deal with (see [here](https://github.com/rust-lang/rust/pull/119099/files#r1430749981) and [here](https://github.com/rust-lang/rust/pull/119099/files#r1430752116) for context) since it more closely models what it represents: A compound of two kinds of modifiers, constness and polarity. Modeling this as an enum (the now removed `ast::TraitBoundModifier`) meant one had to add a new variant per *combination* of modifier kind, which simply isn't scalable and which lead to a lot of explicit non-DRY matches. NB: `hir::TraitBoundModifier` being an enum is fine since HIR doesn't need to worry representing invalid modifier kind combinations as those get rejected during AST validation thereby immensely cutting down the number of possibilities.
Configuration menu - View commit details
-
Copy full SHA for 5085bf5 - Browse repository at this point
Copy the full SHA 5085bf5View commit details -
Auto merge of rust-lang#118847 - eholk:for-await, r=compiler-errors
Add support for `for await` loops This adds support for `for await` loops. This includes parsing, desugaring in AST->HIR lowering, and adding some support functions to the library. Given a loop like: ```rust for await i in iter { ... } ``` this is desugared to something like: ```rust let mut iter = iter.into_async_iter(); while let Some(i) = loop { match core::pin::Pin::new(&mut iter).poll_next(cx) { Poll::Ready(i) => break i, Poll::Pending => yield, } } { ... } ``` This PR also adds a basic `IntoAsyncIterator` trait. This is partly for symmetry with the way `Iterator` and `IntoIterator` work. The other reason is that for async iterators it's helpful to have a place apart from the data structure being iterated over to store state. `IntoAsyncIterator` gives us a good place to do this. I've gated this feature behind `async_for_loop` and opened rust-lang#118898 as the feature tracking issue. r? `@compiler-errors`
Configuration menu - View commit details
-
Copy full SHA for b29b02c - Browse repository at this point
Copy the full SHA b29b02cView commit details
Commits on Dec 23, 2023
-
Lots of vectors of messages called `message` or `msg`. This commit pluralizes them. Note that `emit_message_default` and `emit_messages_default` both already existed, and both process a vector, so I renamed the former `emit_messages_default_inner` because it's called by the latter.
Configuration menu - View commit details
-
Copy full SHA for 101bc22 - Browse repository at this point
Copy the full SHA 101bc22View commit details -
bool->enum for ast::PatKind::Struct presence of
..
See https://github.com/rust-lang/rust/blob/cee794ee98d49b45a55ba225680d98e0c4672736/compiler/rustc_parse/src/parser/pat.rs#L890-L897 for the only place this is constructed.
Configuration menu - View commit details
-
Copy full SHA for d9ea102 - Browse repository at this point
Copy the full SHA d9ea102View commit details -
Rollup merge of rust-lang#119231 - aDotInTheVoid:PatKind-struct-bool-…
…docs, r=compiler-errors Clairify `ast::PatKind::Struct` presese of `..` by using an enum instead of a bool The bool is mainly used for when a `..` is present, but it is also set on recovery to avoid errors. The doc comment not describes both of these cases. See https://github.com/rust-lang/rust/blob/cee794ee98d49b45a55ba225680d98e0c4672736/compiler/rustc_parse/src/parser/pat.rs#L890-L897 for the only place this is constructed. r? ``@compiler-errors``
Configuration menu - View commit details
-
Copy full SHA for f002221 - Browse repository at this point
Copy the full SHA f002221View commit details
Commits on Dec 24, 2023
-
Configuration menu - View commit details
-
Copy full SHA for c926898 - Browse repository at this point
Copy the full SHA c926898View commit details -
Make
trace!
formatting consistent with other log macros (rust-lang#……5989) Fixes 5987 rustfmt already special cases the formatting for the `debug!`, `info!`, `warn!`, and `error!`, macros from the `log` crate. However, this speical case handling did not apply to the `trace!` macro. Now when using `Version=Two` rustfmt will also special case the formatting for the `trace!` macro.
Configuration menu - View commit details
-
Copy full SHA for d86fc1b - Browse repository at this point
Copy the full SHA d86fc1bView commit details
Commits on Dec 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for fd78575 - Browse repository at this point
Copy the full SHA fd78575View commit details -
Merge remote-tracking branch 'origin/master' into subtree_sync_with_1…
….77.0_nightly_2023_12_27
Configuration menu - View commit details
-
Copy full SHA for 6cc513f - Browse repository at this point
Copy the full SHA 6cc513fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 621904f - Browse repository at this point
Copy the full SHA 621904fView commit details
Commits on Dec 29, 2023
-
Merge pull request rust-lang#5994 from ytmimi/subtree_sync_with_1.77.…
…0_nightly_2023_12_28 Subtree push with 1.77.0 nightly 2023-12-28
Configuration menu - View commit details
-
Copy full SHA for 85e21fa - Browse repository at this point
Copy the full SHA 85e21faView commit details
Commits on Jan 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ae760e6 - Browse repository at this point
Copy the full SHA ae760e6View commit details
Commits on Jan 2, 2024
-
Rename
unused_tuple_struct_fields
in rustfmtOtherwise tests fail due to unknown lint and dead code warnings.
Configuration menu - View commit details
-
Copy full SHA for 4a1b418 - Browse repository at this point
Copy the full SHA 4a1b418View commit details
Commits on Jan 4, 2024
-
Rename
EmitterWriter
asHumanEmitter
.For consistency with other `Emitter` impls, such as `JsonEmitter`, `SilentEmitter`, `SharedEmitter`, etc.
Configuration menu - View commit details
-
Copy full SHA for 840824f - Browse repository at this point
Copy the full SHA 840824fView commit details
Commits on Jan 5, 2024
-
Rollup merge of rust-lang#119601 - nnethercote:Emitter-cleanups, r=ol…
…i-obk `Emitter` cleanups Some improvements I found while looking at this code. r? `@oli-obk`
Configuration menu - View commit details
-
Copy full SHA for 250d7e7 - Browse repository at this point
Copy the full SHA 250d7e7View commit details
Commits on Jan 6, 2024
-
fix a couply of clippy findings (rust-lang#6007)
* clippy: autofix some lint warnings * fix a couple more clippy warnings
Configuration menu - View commit details
-
Copy full SHA for 75e3172 - Browse repository at this point
Copy the full SHA 75e3172View commit details
Commits on Jan 8, 2024
-
Make
DiagnosticBuilder::emit
consuming.This works for most of its call sites. This is nice, because `emit` very much makes sense as a consuming operation -- indeed, `DiagnosticBuilderState` exists to ensure no diagnostic is emitted twice, but it uses runtime checks. For the small number of call sites where a consuming emit doesn't work, the commit adds `DiagnosticBuilder::emit_without_consuming`. (This will be removed in subsequent commits.) Likewise, `emit_unless` becomes consuming. And `delay_as_bug` becomes consuming, while `delay_as_bug_without_consuming` is added (which will also be removed in subsequent commits.) All this requires significant changes to `DiagnosticBuilder`'s chaining methods. Currently `DiagnosticBuilder` method chaining uses a non-consuming `&mut self -> &mut Self` style, which allows chaining to be used when the chain ends in `emit()`, like so: ``` struct_err(msg).span(span).emit(); ``` But it doesn't work when producing a `DiagnosticBuilder` value, requiring this: ``` let mut err = self.struct_err(msg); err.span(span); err ``` This style of chaining won't work with consuming `emit` though. For that, we need to use to a `self -> Self` style. That also would allow `DiagnosticBuilder` production to be chained, e.g.: ``` self.struct_err(msg).span(span) ``` However, removing the `&mut self -> &mut Self` style would require that individual modifications of a `DiagnosticBuilder` go from this: ``` err.span(span); ``` to this: ``` err = err.span(span); ``` There are *many* such places. I have a high tolerance for tedious refactorings, but even I gave up after a long time trying to convert them all. Instead, this commit has it both ways: the existing `&mut self -> Self` chaining methods are kept, and new `self -> Self` chaining methods are added, all of which have a `_mv` suffix (short for "move"). Changes to the existing `forward!` macro lets this happen with very little additional boilerplate code. I chose to add the suffix to the new chaining methods rather than the existing ones, because the number of changes required is much smaller that way. This doubled chainging is a bit clumsy, but I think it is worthwhile because it allows a *lot* of good things to subsequently happen. In this commit, there are many `mut` qualifiers removed in places where diagnostics are emitted without being modified. In subsequent commits: - chaining can be used more, making the code more concise; - more use of chaining also permits the removal of redundant diagnostic APIs like `struct_err_with_code`, which can be replaced easily with `struct_err` + `code_mv`; - `emit_without_diagnostic` can be removed, which simplifies a lot of machinery, removing the need for `DiagnosticBuilderState`.
Configuration menu - View commit details
-
Copy full SHA for 141b31a - Browse repository at this point
Copy the full SHA 141b31aView commit details -
Prevent enum variant attributes from wrapping one character early
Fixes 5801 when using `version=Two` Previously, doc comments would wrap one character less than the `comment_width` when using `wrap_comments=true`, and fn-like attributes would wrap one character before the `attr_fn_like_width`. Now, when using `version=Two` enum variant attributes won't wrap early
Configuration menu - View commit details
-
Copy full SHA for 6356fca - Browse repository at this point
Copy the full SHA 6356fcaView commit details
Commits on Jan 10, 2024
-
Change how
force-warn
lint diagnostics are recorded.`is_force_warn` is only possible for diagnostics with `Level::Warning`, but it is currently stored in `Diagnostic::code`, which every diagnostic has. This commit: - removes the boolean `DiagnosticId::Lint::is_force_warn` field; - adds a `ForceWarning` variant to `Level`. Benefits: - The common `Level::Warning` case now has no arguments, replacing lots of `Warning(None)` occurrences. - `rustc_session::lint::Level` and `rustc_errors::Level` are more similar, both having `ForceWarning` and `Warning`.
Configuration menu - View commit details
-
Copy full SHA for 192c4a0 - Browse repository at this point
Copy the full SHA 192c4a0View commit details
Commits on Jan 11, 2024
-
Stop using
DiagnosticBuilder::buffer
in the parser.One consequence is that errors returned by `maybe_new_parser_from_source_str` now must be consumed, so a bunch of places that previously ignored those errors now cancel them. (Most of them explicitly dropped the errors before. I guess that was to indicate "we are explicitly ignoring these", though I'm not 100% sure.)
Configuration menu - View commit details
-
Copy full SHA for 381ef81 - Browse repository at this point
Copy the full SHA 381ef81View commit details
Commits on Jan 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 6078b96 - Browse repository at this point
Copy the full SHA 6078b96View commit details
Commits on Jan 17, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 255d2cf - Browse repository at this point
Copy the full SHA 255d2cfView commit details
Commits on Jan 20, 2024
-
Add config option
generated_marker_line_search_limit
(rust-lang#5993)`generated_marker_line_search_limit` allows users to configure how many lines rustfmt should search for an `@generated` marker comment when `format_generated_files=false` --------- Co-authored-by: Jordan Eldredge <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bf96731 - Browse repository at this point
Copy the full SHA bf96731View commit details
Commits on Jan 22, 2024
-
Check that a token can begin a nonterminal kind before parsing it as …
…a macro arg in rustfmt
Configuration menu - View commit details
-
Copy full SHA for b92320c - Browse repository at this point
Copy the full SHA b92320cView commit details -
Configuration menu - View commit details
-
Copy full SHA for f8847ff - Browse repository at this point
Copy the full SHA f8847ffView commit details -
Configuration menu - View commit details
-
Copy full SHA for a095808 - Browse repository at this point
Copy the full SHA a095808View commit details
Commits on Jan 25, 2024
-
Format diff line to be easily clickable
Instead of {filename} at {line}, use {filename}:{line} as this is a format that many editors allow to be clicked to navigate directly to the line.
Configuration menu - View commit details
-
Copy full SHA for 7f44a08 - Browse repository at this point
Copy the full SHA 7f44a08View commit details -
various spelling fixes --------- Signed-off-by: Josh Soref <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for cedb7b5 - Browse repository at this point
Copy the full SHA cedb7b5View commit details
Commits on Jan 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 7bedb9f - Browse repository at this point
Copy the full SHA 7bedb9fView commit details -
Consolidating dependencies (rust-lang#6034)
* Updating dependencies for rustfmt in an attempt to consolidate rustc dependencies * Updating link for dirs 5.0.1
Configuration menu - View commit details
-
Copy full SHA for ead0fc9 - Browse repository at this point
Copy the full SHA ead0fc9View commit details
Commits on Feb 5, 2024
-
Make
Emitter::emit_diagnostic
consuming.All the other `emit`/`emit_diagnostic` methods were recently made consuming (e.g. rust-lang#119606), but this one wasn't. But it makes sense to. Much of this is straightforward, and lots of `clone` calls are avoided. There are a couple of tricky bits. - `Emitter::primary_span_formatted` no longer takes a `Diagnostic` and returns a pair. Instead it takes the two fields from `Diagnostic` that it used (`span` and `suggestions`) as `&mut`, and modifies them. This is necessary to avoid the cloning of `diag.children` in two emitters. - `from_errors_diagnostic` is rearranged so various uses of `diag` occur before the consuming `emit_diagnostic` call.
Configuration menu - View commit details
-
Copy full SHA for 18f51f7 - Browse repository at this point
Copy the full SHA 18f51f7View commit details
Commits on Feb 9, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 8486837 - Browse repository at this point
Copy the full SHA 8486837View commit details
Commits on Feb 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 88c5838 - Browse repository at this point
Copy the full SHA 88c5838View commit details -
Configuration menu - View commit details
-
Copy full SHA for 16250ea - Browse repository at this point
Copy the full SHA 16250eaView commit details
Commits on Feb 13, 2024
-
Configuration menu - View commit details
-
Copy full SHA for bed3883 - Browse repository at this point
Copy the full SHA bed3883View commit details
Commits on Feb 14, 2024
-
Rollup merge of rust-lang#121035 - compiler-errors:rustfmt-asyncness,…
… r=calebcartwright Format `async` trait bounds in rustfmt r? `@ytmimi` or `@calebcartwright` This PR opts to do formatting in the rust-lang/rust tree because otherwise we'd have to wait until a full sync, and rustfmt is currently totally removing the `async` keyword. cc rust-lang/rustfmt#6070
Configuration menu - View commit details
-
Copy full SHA for e504c64 - Browse repository at this point
Copy the full SHA e504c64View commit details -
Search span using *unnormalized* ident (rust-lang#6073)
Fixes 6069 Calling `item.ident.as_str()` returns an NFC normalized ident, which might not be what's written in the source code. To avoid panics when calling `snippet_provider.span_after` use the ident from the source.
Configuration menu - View commit details
-
Copy full SHA for 5805040 - Browse repository at this point
Copy the full SHA 5805040View commit details -
Add an
ErrorGuaranteed
toast::TyKind::Err
.This makes it more like `hir::TyKind::Err`, and avoids a `span_delayed_bug` call in `LoweringContext::lower_ty_direct`. It also requires adding `ast::TyKind::Dummy`, now that `ast::TyKind::Err` can't be used for that purpose in the absence of an error emission. There are a couple of cases that aren't as neat as I would have liked, marked with `FIXME` comments.
Configuration menu - View commit details
-
Copy full SHA for 6674be9 - Browse repository at this point
Copy the full SHA 6674be9View commit details
Commits on Feb 15, 2024
-
errors: only eagerly translate subdiagnostics
Subdiagnostics don't need to be lazily translated, they can always be eagerly translated. Eager translation is slightly more complex as we need to have a `DiagCtxt` available to perform the translation, which involves slightly more threading of that context. This slight increase in complexity should enable later simplifications - like passing `DiagCtxt` into `AddToDiagnostic` and moving Fluent messages into the diagnostic structs rather than having them in separate files (working on that was what led to this change). Signed-off-by: David Wood <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for aba5f54 - Browse repository at this point
Copy the full SHA aba5f54View commit details
Commits on Feb 17, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 2639101 - Browse repository at this point
Copy the full SHA 2639101View commit details -
Configuration menu - View commit details
-
Copy full SHA for b5dcc6f - Browse repository at this point
Copy the full SHA b5dcc6fView commit details -
Rollup merge of rust-lang#121085 - davidtwco:always-eager-diagnostics…
…, r=nnethercote errors: only eagerly translate subdiagnostics Subdiagnostics don't need to be lazily translated, they can always be eagerly translated. Eager translation is slightly more complex as we need to have a `DiagCtxt` available to perform the translation, which involves slightly more threading of that context. This slight increase in complexity should enable later simplifications - like passing `DiagCtxt` into `AddToDiagnostic` and moving Fluent messages into the diagnostic structs rather than having them in separate files (working on that was what led to this change). r? ```@nnethercote```
Configuration menu - View commit details
-
Copy full SHA for 163c3eb - Browse repository at this point
Copy the full SHA 163c3ebView commit details
Commits on Feb 23, 2024
-
Explicitly call
emit_stashed_diagnostics
.Commit 72b172b in rust-lang#121206 changed things so that `emit_stashed_diagnostics` is only called from `run_compiler`. But rustfmt doesn't use `run_compiler`, so it needs to call `emit_stashed_diagnostics` itself to avoid an abort in `DiagCtxtInner::drop` when stashed diagnostics occur. Fixes rust-lang#121450.
Configuration menu - View commit details
-
Copy full SHA for ce71137 - Browse repository at this point
Copy the full SHA ce71137View commit details -
Spelling fixes(rust-lang#6088)
Signed-off-by: cui fliter <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 21f353a - Browse repository at this point
Copy the full SHA 21f353aView commit details
Commits on Feb 25, 2024
-
Auto merge of rust-lang#120393 - Urgau:rfc3373-non-local-defs, r=Waff…
…leLapkin Implement RFC 3373: Avoid non-local definitions in functions This PR implements [RFC 3373: Avoid non-local definitions in functions](rust-lang#120363).
Configuration menu - View commit details
-
Copy full SHA for 8c33745 - Browse repository at this point
Copy the full SHA 8c33745View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d82dd0 - Browse repository at this point
Copy the full SHA 7d82dd0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1bbfb76 - Browse repository at this point
Copy the full SHA 1bbfb76View commit details -
Move
emit_stashed_diagnostic
call in rustfmt.This call was added to `parse_crate_mod` in rust-lang#121487, to fix a case where a stashed diagnostic wasn't emitted. But there is another path where a stashed diagnostic might fail to be emitted if there's a parse error, if the `build` call in `parse_crate_inner` fails before `parse_crate_mod` is reached. So this commit moves the `emit_stashed_diagnostic` call outwards, from `parse_crate_mod` to `format_project`, just after the `Parser::parse_crate` call. This should be far out enough to catch any parsing errors. Fixes rust-lang#121517.
Configuration menu - View commit details
-
Copy full SHA for 90af751 - Browse repository at this point
Copy the full SHA 90af751View commit details
Commits on Feb 26, 2024
-
Auto merge of rust-lang#120586 - ShE3py:exprkind-err, r=fmease
Add `ErrorGuaranteed` to `ast::ExprKind::Err` See rust-lang#119967 for context ``` \ \ _~^~^~_ \) / o o \ (/ '_ - _' / '-----' \ ``` r? fmease
Configuration menu - View commit details
-
Copy full SHA for 50987bb - Browse repository at this point
Copy the full SHA 50987bbView commit details -
Rollup merge of rust-lang#121615 - nnethercote:fix-121517, r=oli-obk
Move `emit_stashed_diagnostic` call in rustfmt. This call was added to `parse_crate_mod` in rust-lang#121487, to fix a case where a stashed diagnostic wasn't emitted. But there is another path where a stashed diagnostic might fail to be emitted if there's a parse error, if the `build` call in `parse_crate_inner` fails before `parse_crate_mod` is reached. So this commit moves the `emit_stashed_diagnostic` call outwards, from `parse_crate_mod` to `format_project`, just after the `Parser::parse_crate` call. This should be far out enough to catch any parsing errors. Fixes rust-lang#121517. r? `@oli-obk` cc `@ytmimi`
Configuration menu - View commit details
-
Copy full SHA for c18226d - Browse repository at this point
Copy the full SHA c18226dView commit details -
Auto merge of rust-lang#121636 - matthiaskrgr:rollup-1tt2o5n, r=matth…
…iaskrgr Rollup of 6 pull requests Successful merges: - rust-lang#121389 (llvm-wrapper: fix few warnings) - rust-lang#121493 (By changing some attributes to only_local, reducing encoding attributes in the crate metadate.) - rust-lang#121615 (Move `emit_stashed_diagnostic` call in rustfmt.) - rust-lang#121617 (Actually use the right closure kind when checking async Fn goals) - rust-lang#121628 (Do not const prop unions) - rust-lang#121629 (fix some references to no-longer-existing ReprOptions.layout_seed) r? `@ghost` `@rustbot` modify labels: rollup
Configuration menu - View commit details
-
Copy full SHA for f9dba39 - Browse repository at this point
Copy the full SHA f9dba39View commit details
Commits on Feb 27, 2024
-
Rename
Diagnostic
asDiagInner
.I started by changing it to `DiagData`, but that didn't feel right. `DiagInner` felt much better.
Configuration menu - View commit details
-
Copy full SHA for d84567c - Browse repository at this point
Copy the full SHA d84567cView commit details -
Rename
DiagnosticBuilder
asDiag
.Much better! Note that this involves renaming (and updating the value of) `DIAGNOSTIC_BUILDER` in clippy.
Configuration menu - View commit details
-
Copy full SHA for 4026fd7 - Browse repository at this point
Copy the full SHA 4026fd7View commit details
Commits on Feb 29, 2024
-
Reinstate
emit_stashed_diagnostics
inDiagCtxtInner::drop
.I removed it in rust-lang#121206 because I thought thought it wasn't necessary. But then I had to add an `emit_stashed_diagnostics` call elsewhere in rustfmt to avoid the assertion failure (which took two attempts to get right, rust-lang#121487 and rust-lang#121615), and now there's an assertion failure in clippy as well (rust-lang/rust-clippy#12364). So this commit just reinstates the call in `DiagCtxtInner::drop`. It also reverts the rustfmt changes from rust-lang#121487 and rust-lang#121615, though it keeps the tests added for those PRs.
Configuration menu - View commit details
-
Copy full SHA for 45aad17 - Browse repository at this point
Copy the full SHA 45aad17View commit details -
Rename
DiagCtxt::with_emitter
asDiagCtxt::new
.Because it's now the only constructor.
Configuration menu - View commit details
-
Copy full SHA for 0811e8f - Browse repository at this point
Copy the full SHA 0811e8fView commit details -
Inline and remove
HumanEmitter::stderr
.Because `HumanEmitter::new` is enough, in conjunction with the (renamed) `stderr_destination` function.
Configuration menu - View commit details
-
Copy full SHA for 9c85ae8 - Browse repository at this point
Copy the full SHA 9c85ae8View commit details -
Rollup merge of rust-lang#121783 - nnethercote:emitter-cleanups, r=ol…
…i-obk Emitter cleanups Some cleanups I made when reading emitter code. In particular, `HumanEmitter` and `JsonEmitter` have gone from three constructors to one. r? `@oli-obk`
Configuration menu - View commit details
-
Copy full SHA for 6f2722b - Browse repository at this point
Copy the full SHA 6f2722bView commit details -
Configuration menu - View commit details
-
Copy full SHA for fc64cbd - Browse repository at this point
Copy the full SHA fc64cbdView commit details -
Rollup merge of rust-lang#121326 - fmease:detect-empty-leading-where-…
…clauses-on-ty-aliases, r=compiler-errors Detect empty leading where clauses on type aliases 1. commit: refactor the AST of type alias where clauses * I could no longer bear the look of `.0.1` and `.1.0` * Arguably moving `split` out of `TyAlias` into a substruct might not make that much sense from a semantic standpoint since it reprs an index into `TyAlias.predicates` but it's alright and it cleans up the usage sites of `TyAlias` 2. commit: fix an oversight: An empty leading where clause is still a leading where clause * semantically reject empty leading where clauses on lazy type aliases * e.g., on `#![feature(lazy_type_alias)] type X where = ();` * make empty leading where clauses on assoc types trigger lint `deprecated_where_clause_location` * e.g., `impl Trait for () { type X where = (); }`
Configuration menu - View commit details
-
Copy full SHA for 050610e - Browse repository at this point
Copy the full SHA 050610eView commit details
Commits on Mar 4, 2024
-
It doesn't need a `Parser` and a `ParseSess`, because the former contains the latter.
Configuration menu - View commit details
-
Copy full SHA for 0b56261 - Browse repository at this point
Copy the full SHA 0b56261View commit details -
Rename all
ParseSess
variables/fields/lifetimes aspsess
.Existing names for values of this type are `sess`, `parse_sess`, `parse_session`, and `ps`. `sess` is particularly annoying because that's also used for `Session` values, which are often co-located, and it can be difficult to know which type a value named `sess` refers to. (That annoyance is the main motivation for this change.) `psess` is nice and short, which is good for a name used this much. The commit also renames some `parse_sess_created` values as `psess_created`.
Configuration menu - View commit details
-
Copy full SHA for 78c99eb - Browse repository at this point
Copy the full SHA 78c99ebView commit details
Commits on Mar 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fe9ceab - Browse repository at this point
Copy the full SHA fe9ceabView commit details -
Run 'cargo check --features clap/deprecated' and fix all warnings
Configuration menu - View commit details
-
Copy full SHA for 35c1b7d - Browse repository at this point
Copy the full SHA 35c1b7dView commit details -
Ensure space after binary exprs that ends with
.
before range exprRemoving the space would lead to compilation errors.
Configuration menu - View commit details
-
Copy full SHA for 73c8149 - Browse repository at this point
Copy the full SHA 73c8149View commit details -
errors: share
SilentEmitter
between rustc and rustfmtSigned-off-by: David Wood <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 124808b - Browse repository at this point
Copy the full SHA 124808bView commit details
Commits on Mar 6, 2024
-
Rewrite the
untranslatable_diagnostic
lint.Currently it only checks calls to functions marked with `#[rustc_lint_diagnostics]`. This commit changes it to check calls to any function with an `impl Into<{D,Subd}iagMessage>` parameter. This greatly improves its coverage and doesn't rely on people remembering to add `#[rustc_lint_diagnostics]`. The commit also adds `#[allow(rustc::untranslatable_diagnostic)`] attributes to places that need it that are caught by the improved lint. These places that might be easy to convert to translatable diagnostics. Finally, it also: - Expands and corrects some comments. - Does some minor formatting improvements. - Adds missing `DecorateLint` cases to `tests/ui-fulldeps/internal-lints/diagnostics.rs`.
Configuration menu - View commit details
-
Copy full SHA for 677c1d8 - Browse repository at this point
Copy the full SHA 677c1d8View commit details -
Configuration menu - View commit details
-
Copy full SHA for f3892a0 - Browse repository at this point
Copy the full SHA f3892a0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1709dd5 - Browse repository at this point
Copy the full SHA 1709dd5View commit details -
Rollup merge of rust-lang#121382 - nnethercote:rework-untranslatable_…
…diagnostic-lint, r=davidtwco Rework `untranslatable_diagnostic` lint Currently it only checks calls to functions marked with `#[rustc_lint_diagnostics]`. This PR changes it to check calls to any function with an `impl Into<{D,Subd}iagnosticMessage>` parameter. This greatly improves its coverage and doesn't rely on people remembering to add `#[rustc_lint_diagnostics]`. It also lets us add `#[rustc_lint_diagnostics]` to a number of functions that don't have an `impl Into<{D,Subd}iagnosticMessage>`, such as `Diag::span`. r? ``@davidtwco``
Configuration menu - View commit details
-
Copy full SHA for 5f8d353 - Browse repository at this point
Copy the full SHA 5f8d353View commit details
Commits on Mar 12, 2024
-
Fix failure with
=>
in comment after match=>
(rust-lang#6092)* Find arrow with find_last_uncommented * Add version gate for arrow finding fix
Configuration menu - View commit details
-
Copy full SHA for 9580747 - Browse repository at this point
Copy the full SHA 9580747View commit details
Commits on Mar 13, 2024
-
Configuration menu - View commit details
-
Copy full SHA for dd301b0 - Browse repository at this point
Copy the full SHA dd301b0View commit details
Commits on Mar 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fe0415e - Browse repository at this point
Copy the full SHA fe0415eView commit details
Commits on Mar 17, 2024
-
Fix: ICE when formatting builtins
Replace `unreachable!` with `None`. Now rustfmt won't panic when it comes across a `builtin # offset_of` or any other builtin
Configuration menu - View commit details
-
Copy full SHA for 202fa22 - Browse repository at this point
Copy the full SHA 202fa22View commit details
Commits on Mar 19, 2024
-
conditionally ignore fatal diagnostic in the SilentEmitter
This change is primarily meant to allow rustfmt to ignore all diagnostics when using the `SilentEmitter`. Back in PR 121301 the `SilentEmitter` was shared between rustc and rustfmt. This changed rustfmt's behavior from ignoring all diagnostic to emitting fatal diagnostics. These changes allow rustfmt to maintain it's previous behaviour when using the SilentEmitter, while allowing rustc code to still emit fatal diagnostics.
Configuration menu - View commit details
-
Copy full SHA for 911f6a4 - Browse repository at this point
Copy the full SHA 911f6a4View commit details
Commits on Mar 20, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 8f62a2d - Browse repository at this point
Copy the full SHA 8f62a2dView commit details
Commits on Mar 21, 2024
-
Implement macro-based deref!() syntax for deref patterns
Stop using `box PAT` syntax for deref patterns, as it's misleading and also causes their semantics being tangled up.
Configuration menu - View commit details
-
Copy full SHA for f670f3b - Browse repository at this point
Copy the full SHA f670f3bView commit details
Commits on Mar 22, 2024
-
Rollup merge of rust-lang#121619 - RossSmyth:pfix_match, r=petrochenkov
Experimental feature postfix match This has a basic experimental implementation for the RFC postfix match (rust-lang/rfcs#3295, rust-lang#121618). [Liaison is](https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/Postfix.20Match.20Liaison/near/423301844) ```@scottmcm``` with the lang team's [experimental feature gate process](https://github.com/rust-lang/lang-team/blob/master/src/how_to/experiment.md). This feature has had an RFC for a while, and there has been discussion on it for a while. It would probably be valuable to see it out in the field rather than continue discussing it. This feature also allows to see how popular postfix expressions like this are for the postfix macros RFC, as those will take more time to implement. It is entirely implemented in the parser, so it should be relatively easy to remove if needed. This PR is split in to 5 commits to ease review. 1. The implementation of the feature & gating. 2. Add a MatchKind field, fix uses, fix pretty. 3. Basic rustfmt impl, as rustfmt crashes upon seeing this syntax without a fix. 4. Add new MatchSource to HIR for Clippy & other HIR consumers
Configuration menu - View commit details
-
Copy full SHA for 0aa66d1 - Browse repository at this point
Copy the full SHA 0aa66d1View commit details
Commits on Mar 24, 2024
-
Rollup merge of rust-lang#122737 - ytmimi:conditionally_ignore_fatal_…
…diagnostic, r=davidtwco conditionally ignore fatal diagnostic in the SilentEmitter This change is primarily meant to allow rustfmt to ignore all diagnostics when using the `SilentEmitter`. Back in rust-lang#121301 the `SilentEmitter` was shared between rustc and rustfmt. This changed rustfmt's behavior from ignoring all diagnostic to emitting fatal diagnostics, which lead to rust-lang/rustfmt#6109. These changes allow rustfmt to maintain its previous behaviour when using the `SilentEmitter`, while allowing rustc code to still emit fatal diagnostics.
Configuration menu - View commit details
-
Copy full SHA for 5e141e0 - Browse repository at this point
Copy the full SHA 5e141e0View commit details
Commits on Mar 27, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 645b94c - Browse repository at this point
Copy the full SHA 645b94cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 31a4eae - Browse repository at this point
Copy the full SHA 31a4eaeView commit details
Commits on Apr 4, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fd20426 - Browse repository at this point
Copy the full SHA fd20426View commit details
Commits on Apr 7, 2024
-
Revert "Initial work on formatting headers"
This reverts commit dd301b0.
Configuration menu - View commit details
-
Copy full SHA for a848e28 - Browse repository at this point
Copy the full SHA a848e28View commit details -
Signed-off-by: hanghuge <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7289391 - Browse repository at this point
Copy the full SHA 7289391View commit details
Commits on Apr 8, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 7af33b3 - Browse repository at this point
Copy the full SHA 7af33b3View commit details
Commits on Apr 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for afa482e - Browse repository at this point
Copy the full SHA afa482eView commit details
Commits on Apr 15, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9400b99 - Browse repository at this point
Copy the full SHA 9400b99View commit details -
Rollup merge of rust-lang#123462 - fmease:rn-mod-sep-to-path-sep, r=n…
…nethercote Cleanup: Rename `ModSep` to `PathSep` `::` is usually referred to as the *path separator* (citation needed). The existing name `ModSep` for *module separator* is a bit misleading since it in fact separates the segments of arbitrary path segments, not only ones resolving to modules. Let me just give a shout-out to associated items (`T::Assoc`, `<Ty as Trait>::function`) and enum variants (`Option::None`). Motivation: Reduce friction for new contributors, prevent potential confusion. cc `@petrochenkov` r? nnethercote or compiler
Configuration menu - View commit details
-
Copy full SHA for dac1a22 - Browse repository at this point
Copy the full SHA dac1a22View commit details
Commits on Apr 16, 2024
-
Auto merge of rust-lang#123468 - compiler-errors:precise-capturing, r…
…=oli-obk Implement syntax for `impl Trait` to specify its captures explicitly (`feature(precise_capturing)`) Implements `impl use<'a, 'b, T, U> Sized` syntax that allows users to explicitly list the captured parameters for an opaque, rather than inferring it from the opaque's bounds (or capturing *all* lifetimes under 2024-edition capture rules). This allows us to exclude some implicit captures, so this syntax may be used as a migration strategy for changes due to rust-lang#117587. We represent this list of captured params as `PreciseCapturingArg` in AST and HIR, resolving them between `rustc_resolve` and `resolve_bound_vars`. Later on, we validate that the opaques only capture the parameters in this list. We artificially limit the feature to *require* mentioning all type and const parameters, since we don't currently have support for non-lifetime bivariant generics. This can be relaxed in the future. We also may need to limit this to require naming *all* lifetime parameters for RPITIT, since GATs have no variance. I have to investigate this. This can also be relaxed in the future. r? `@oli-obk` Tracking issue: - rust-lang#123432
Configuration menu - View commit details
-
Copy full SHA for a568985 - Browse repository at this point
Copy the full SHA a568985View commit details
Commits on Apr 17, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 932f3ab - Browse repository at this point
Copy the full SHA 932f3abView commit details
Commits on Apr 18, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 966dd60 - Browse repository at this point
Copy the full SHA 966dd60View commit details
Commits on Apr 23, 2024
-
Rollup merge of rust-lang#124099 - voidc:disallow-ambiguous-expr-attr…
…s, r=davidtwco Disallow ambiguous attributes on expressions This implements the suggestion in [rust-lang#15701](rust-lang#15701 (comment)) to disallow ambiguous outer attributes on expressions. This should resolve one of the concerns blocking the stabilization of `stmt_expr_attributes`.
Configuration menu - View commit details
-
Copy full SHA for 9c0e5f2 - Browse repository at this point
Copy the full SHA 9c0e5f2View commit details
Commits on Apr 24, 2024
-
Error on using
yield
without also using#[coroutine]
on the closureAnd suggest adding the `#[coroutine]` to the closure
Configuration menu - View commit details
-
Copy full SHA for 20e40d5 - Browse repository at this point
Copy the full SHA 20e40d5View commit details
Commits on Apr 25, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 4b1596f - Browse repository at this point
Copy the full SHA 4b1596fView commit details
Commits on Apr 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 22a4306 - Browse repository at this point
Copy the full SHA 22a4306View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3854ce9 - Browse repository at this point
Copy the full SHA 3854ce9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6540304 - Browse repository at this point
Copy the full SHA 6540304View commit details -
Configuration menu - View commit details
-
Copy full SHA for 23c11f3 - Browse repository at this point
Copy the full SHA 23c11f3View commit details -
Co-authored-by: Yacin Tmimi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1f806d9 - Browse repository at this point
Copy the full SHA 1f806d9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 76ab3c1 - Browse repository at this point
Copy the full SHA 76ab3c1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 003bab7 - Browse repository at this point
Copy the full SHA 003bab7View commit details -
Configuration menu - View commit details
-
Copy full SHA for f781b1b - Browse repository at this point
Copy the full SHA f781b1bView commit details
Commits on Apr 28, 2024
-
Remove direct dependencies on lazy_static, once_cell and byteorder
The functionality of all three crates is now available in the standard library.
Configuration menu - View commit details
-
Copy full SHA for e606bb6 - Browse repository at this point
Copy the full SHA e606bb6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 997d5f2 - Browse repository at this point
Copy the full SHA 997d5f2View commit details
Commits on Apr 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fafa690 - Browse repository at this point
Copy the full SHA fafa690View commit details
Commits on Apr 30, 2024
-
Rollup merge of rust-lang#124524 - spastorino:make-foreign-static-use…
…-struct, r=oli-obk Add StaticForeignItem and use it on ForeignItemKind This is in preparation for unsafe extern blocks that adds a safe variant for functions inside extern blocks. r? `@oli-obk` cc `@compiler-errors`
Configuration menu - View commit details
-
Copy full SHA for 27d320d - Browse repository at this point
Copy the full SHA 27d320dView commit details
Commits on May 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for d5f1200 - Browse repository at this point
Copy the full SHA d5f1200View commit details
Commits on May 8, 2024
-
Rollup merge of rust-lang#123344 - pietroalbini:pa-unused-imports, r=…
…Nilstrieb Remove braces when fixing a nested use tree into a single item [Back in 2019](rust-lang#56645) I added rustfix support for the `unused_imports` lint, to automatically remove them when running `cargo fix`. For the most part this worked great, but when removing all but one childs of a nested use tree it turned `use foo::{Unused, Used}` into `use foo::{Used}`. This is slightly annoying, because it then requires you to run `rustfmt` to get `use foo::Used`. This PR automatically removes braces and the surrouding whitespace when all but one child of a nested use tree are unused. To get it done I had to add the span of the nested use tree to the AST, and refactor a bit the code I wrote back then. A thing I noticed is, there doesn't seem to be any `//@ run-rustfix` test for fixing the `unused_imports` lint. I created a test in `tests/suggestions` (is that the right directory?) that for now tests just what I added in the PR. I can followup in a separate PR to add more tests for fixing `unused_lints`. This PR is best reviewed commit-by-commit.
Configuration menu - View commit details
-
Copy full SHA for 2c70167 - Browse repository at this point
Copy the full SHA 2c70167View commit details
Commits on May 14, 2024
-
delegation: Implement list delegation
```rust reuse prefix::{a, b, c} ```
Configuration menu - View commit details
-
Copy full SHA for 05a2db7 - Browse repository at this point
Copy the full SHA 05a2db7View commit details
Commits on May 17, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 97bdbd9 - Browse repository at this point
Copy the full SHA 97bdbd9View commit details
Commits on May 28, 2024
-
Use
with_capacity
inrewrite_path
It not only makes rustfmt faster, but also makes the code nicer imo. performance: ``` Summary ./build/host/stage2/bin/rustfmt library/std/src/lib.rs --edition 2021 ran 1.03 ± 0.02 times faster than ../rust3/build/host/stage2/bin/rustfmt library/std/src/lib.rs --edition 2021 ``` Final string lengths when formatting `core`: ``` 143144 counts ( 1) 23535 (16.4%, 16.4%): 4 ( 2) 16138 (11.3%, 27.7%): 3 ( 3) 15143 (10.6%, 38.3%): 5 ( 4) 13477 ( 9.4%, 47.7%): 6 ( 5) 9122 ( 6.4%, 54.1%): 7 ( 6) 8715 ( 6.1%, 60.2%): 1 ( 7) 6321 ( 4.4%, 64.6%): 8 ( 8) 6178 ( 4.3%, 68.9%): 11 ( 9) 5826 ( 4.1%, 73.0%): 2 ( 10) 5168 ( 3.6%, 76.6%): 9 ( 11) 4162 ( 2.9%, 79.5%): 10 ( 12) 3555 ( 2.5%, 82.0%): 13 ( 13) 3337 ( 2.3%, 84.3%): 14 ( 14) 3017 ( 2.1%, 86.4%): 17 ( 15) 2875 ( 2.0%, 88.4%): 12 ( 16) 2345 ( 1.6%, 90.1%): 15 ( 17) 1956 ( 1.4%, 91.4%): 16 ( 18) 1946 ( 1.4%, 92.8%): 18 ( 19) 1410 ( 1.0%, 93.8%): 19 ( 20) 1187 ( 0.8%, 94.6%): 20 ( 21) 1045 ( 0.7%, 95.3%): 22 ( 22) 1042 ( 0.7%, 96.1%): 21 ( 23) 792 ( 0.6%, 96.6%): 23 ( 24) 649 ( 0.5%, 97.1%): 24 ( 25) 619 ( 0.4%, 97.5%): 27 ( 26) 569 ( 0.4%, 97.9%): 28 ( 27) 540 ( 0.4%, 98.3%): 26 ( 28) 460 ( 0.3%, 98.6%): 25 ( 29) 328 ( 0.2%, 98.8%): 29 ( 30) 243 ( 0.2%, 99.0%): 31 [...] ```
Configuration menu - View commit details
-
Copy full SHA for 28e43b6 - Browse repository at this point
Copy the full SHA 28e43b6View commit details
Commits on May 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for a2c6f80 - Browse repository at this point
Copy the full SHA a2c6f80View commit details
Commits on May 31, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 871113e - Browse repository at this point
Copy the full SHA 871113eView commit details
Commits on Jun 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for bf7bb56 - Browse repository at this point
Copy the full SHA bf7bb56View commit details
Commits on Jun 4, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 76ef162 - Browse repository at this point
Copy the full SHA 76ef162View commit details -
Configuration menu - View commit details
-
Copy full SHA for c97996f - Browse repository at this point
Copy the full SHA c97996fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6478d9e - Browse repository at this point
Copy the full SHA 6478d9eView commit details
Commits on Jun 5, 2024
-
It's a zero-value wrapper of `Parser::new`.
Configuration menu - View commit details
-
Copy full SHA for eeefcd6 - Browse repository at this point
Copy the full SHA eeefcd6View commit details -
Make top-level
rustc_parse
functions fallible.Currently we have an awkward mix of fallible and infallible functions: ``` new_parser_from_source_str maybe_new_parser_from_source_str new_parser_from_file (maybe_new_parser_from_file) // missing (new_parser_from_source_file) // missing maybe_new_parser_from_source_file source_str_to_stream maybe_source_file_to_stream ``` We could add the two missing functions, but instead this commit removes of all the infallible ones and renames the fallible ones leaving us with these which are all fallible: ``` new_parser_from_source_str new_parser_from_file new_parser_from_source_file source_str_to_stream source_file_to_stream ``` This requires making `unwrap_or_emit_fatal` public so callers of formerly infallible functions can still work. This does make some of the call sites slightly more verbose, but I think it's worth it for the simpler API. Also, there are two `catch_unwind` calls and one `catch_fatal_errors` call in this diff that become removable thanks this change. (I will do that in a follow-up PR.)
Configuration menu - View commit details
-
Copy full SHA for 5962aa9 - Browse repository at this point
Copy the full SHA 5962aa9View commit details -
rustfmt: Remove an unnecessary
catch_unwind
use.The `Input::File` and `Input::Text` cases should be very similar. However, currently the `Input::File` case uses `catch_unwind` because, until recently (rust-lang#125815) there was a fallible version of `new_parser_from_source_str` but only an infallible version of `new_parser_from_file`. This difference wasn't fundamental, just an overlooked gap in the API of `rustc_parse`. Both of those operations are now fallible, so the `Input::File` and `Input::Text` cases can made more similar, with no need for `catch_unwind`. This also lets us simplify an `Option<Vec<Diag>>` to `Vec<Diag>`.
Configuration menu - View commit details
-
Copy full SHA for ecb2dd1 - Browse repository at this point
Copy the full SHA ecb2dd1View commit details
Commits on Jun 6, 2024
-
Auto merge of rust-lang#124482 - spastorino:unsafe-extern-blocks, r=o…
…li-obk Unsafe extern blocks This implements RFC 3484. Tracking issue rust-lang#123743 and RFC rust-lang/rfcs#3484 This is better reviewed commit by commit.
Configuration menu - View commit details
-
Copy full SHA for c1ea878 - Browse repository at this point
Copy the full SHA c1ea878View commit details -
Configuration menu - View commit details
-
Copy full SHA for 783a411 - Browse repository at this point
Copy the full SHA 783a411View commit details
Commits on Jun 13, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 76cd550 - Browse repository at this point
Copy the full SHA 76cd550View commit details -
Configuration menu - View commit details
-
Copy full SHA for afa731e - Browse repository at this point
Copy the full SHA afa731eView commit details -
allow dead code for
StyleEditionDefault
We need to allow `StyleEditionDefault` because it will be used to implement `style_edition`, but that work is currently ongoing.
Configuration menu - View commit details
-
Copy full SHA for 2db1095 - Browse repository at this point
Copy the full SHA 2db1095View commit details -
Bumped bytecount 0.6.4 -> 0.6.8
fixes compilation issues with the `generic-simd` feature
Configuration menu - View commit details
-
Copy full SHA for acc6877 - Browse repository at this point
Copy the full SHA acc6877View commit details -
remove archived
error-chain
crate from integration testsCan't run `cargo test --all` for `error-chain` anymore. The tests don't compile because of `#[deny(invalid_doc_attributes)]`. Here's the error message: ``` error: this attribute can only be applied at the crate level --> tests/tests.rs:508:7 | 508 | #[doc(test)] | ^^^^ | = note: read <https://doc.rust-lang.org/nightly/rustdoc/the-doc-attribute.html#at-the-crate-level> for more information = note: `#[deny(invalid_doc_attributes)]` on by default help: to apply to the crate, use an inner attribute | 508 | #![doc(test)] | + ```
Configuration menu - View commit details
-
Copy full SHA for 8c4c336 - Browse repository at this point
Copy the full SHA 8c4c336View commit details -
don't apply formatting to builtin type ascription syntax
The syntax changed from `expr: ty` -> `builtin # type_ascribe(expr, ty)` For now, rustfmt will just emit the contents of the span.
Configuration menu - View commit details
-
Copy full SHA for 8e80f8a - Browse repository at this point
Copy the full SHA 8e80f8aView commit details -
format #![feature(unsafe_attributes)]
Our diff-check job was failing in part due to removing `unsafe` from any `#[unsafe(attributes)]`. To prevent that I added a quick implementation for this.
Configuration menu - View commit details
-
Copy full SHA for 8abbcad - Browse repository at this point
Copy the full SHA 8abbcadView commit details -
Add
config_proc_macro
to system testsAlso formats unforamatted files in the crate.
Configuration menu - View commit details
-
Copy full SHA for 30eb54b - Browse repository at this point
Copy the full SHA 30eb54bView commit details
Commits on Jun 16, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 55a7026 - Browse repository at this point
Copy the full SHA 55a7026View commit details -
Configuration menu - View commit details
-
Copy full SHA for 306ddab - Browse repository at this point
Copy the full SHA 306ddabView commit details
Commits on Jun 17, 2024
-
Merge pull request rust-lang#6193 from ytmimi/subtree-push-nightly-20…
…24-06-13 subtree-push nightly-2024-06-13
Configuration menu - View commit details
-
Copy full SHA for 3ffd7d4 - Browse repository at this point
Copy the full SHA 3ffd7d4View commit details
Commits on Jun 21, 2024
-
format safety keywords on static items
This includes both `ast::StaticItem` and `ast::StaticForeignItem`. `safety` was added to both `ast::StaticItem` and `ast::SaticForeignItem` in rust-lang#124482.
Configuration menu - View commit details
-
Copy full SHA for 30cdc2b - Browse repository at this point
Copy the full SHA 30cdc2bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4b3498b - Browse repository at this point
Copy the full SHA 4b3498bView commit details -
Configuration menu - View commit details
-
Copy full SHA for eca7a94 - Browse repository at this point
Copy the full SHA eca7a94View commit details -
Configuration menu - View commit details
-
Copy full SHA for 591df08 - Browse repository at this point
Copy the full SHA 591df08View commit details -
Configuration menu - View commit details
-
Copy full SHA for 51ae60c - Browse repository at this point
Copy the full SHA 51ae60cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5cab54f - Browse repository at this point
Copy the full SHA 5cab54fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0737d55 - Browse repository at this point
Copy the full SHA 0737d55View commit details -
reorder link reference definitions and one changelog entry
Moved the link reference definitions closer to where they were being used and moved the `type ascription` formatting fix to the correct section.
Configuration menu - View commit details
-
Copy full SHA for 9748af8 - Browse repository at this point
Copy the full SHA 9748af8View commit details -
Configuration menu - View commit details
-
Copy full SHA for e2feea4 - Browse repository at this point
Copy the full SHA e2feea4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6daf3c1 - Browse repository at this point
Copy the full SHA 6daf3c1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6c3c430 - Browse repository at this point
Copy the full SHA 6c3c430View commit details -
Configuration menu - View commit details
-
Copy full SHA for e494418 - Browse repository at this point
Copy the full SHA e494418View commit details
Commits on Jun 22, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fc2cca9 - Browse repository at this point
Copy the full SHA fc2cca9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 97b7874 - Browse repository at this point
Copy the full SHA 97b7874View commit details -
Configuration menu - View commit details
-
Copy full SHA for 53608be - Browse repository at this point
Copy the full SHA 53608beView commit details -
Configuration menu - View commit details
-
Copy full SHA for ffad984 - Browse repository at this point
Copy the full SHA ffad984View commit details