-
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
Clippy subtree update #127609
Clippy subtree update #127609
Conversation
- remove now dead code in ASSERTIONS_ON_CONSTANTS cc rust-lang#11966 - Partially revert "ignore `assertions-on-constants` in const contexts" This reverts commit c7074de420a2192fb40d3f2194a20dd0d1b65cc6.
This change addresses cases where doc comments are separated by blank lines, comments, or non-doc-comment attributes, like this: ```rust /// - first line // not part of doc comment /// second line ``` Before this commit, Clippy gave a pedantically-correct warning about how you needed to indent the second line. This is unlikely to be what the user intends, and has been described as a "false positive" (since Clippy is warning you about a highly unintuitive behavior that Rustdoc actually has, we definitely want it to output *something*, but the suggestion to indent was poor). rust-lang/rust-clippy#12917
…s, r=oli-obk Tighten `fn_decl_span` for async blocks Tightens the span of `async {}` blocks in diagnostics, and subsequently async closures and async fns, by actually setting the `fn_decl_span` correctly. This is kinda a follow-up on rust-lang#125078, but it fixes the problem in a more general way. I think the diagnostics are significantly improved, since we no longer have a bunch of overlapping spans. I'll point out one caveat where I think the diagnostic may get a bit more confusing, but where I don't think it matters. r? ````@estebank```` or ````@oli-obk```` or someone else on wg-diag or compiler i dont really care lol
…ishearth doc_lazy_continuation: blank comment line for gap This change addresses cases where doc comments are separated by blank lines, comments, or non-doc-comment attributes, like this: ```rust /// - first line // not part of doc comment /// second line ``` Before this commit, Clippy gave a pedantically-correct warning about how you needed to indent the second line. This is unlikely to be what the user intends, and has been described as a "false positive." Since Clippy is warning you about a highly unintuitive behavior [that Rustdoc actually has](https://notriddle.com/rustdoc-html-demo-11/lazy-continuation-bad/test_dingus_2024/constant.D.html), we definitely want it to output *something*, but the suggestion to indent was poor. Fixes rust-lang#12917 ``` changelog: [`doc_lazy_continuation`]: suggest blank line for likely-unintended lazy continuations ```
…, r=Jarcho Add error message to manual_inspect lint r? `@Jarcho` changelog: none
Rename `super_predicates_of` and similar queries to `explicit_*` to note that they're not elaborated Rename: * `super_predicates_of` -> `explicit_super_predicates_of` * `implied_predicates_of` -> `explicit_implied_predicates_of` * `supertraits_containing_assoc_item` -> `explicit_supertraits_containing_assoc_item` This makes it clearer that, unlike (for example) [`TyCtxt::super_traits_of`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/context/struct.TyCtxt.html#method.super_traits_of), we don't automatically elaborate this set of predicates. r? ``@lcnr`` or ``@oli-obk`` or someone from t-types idc
…ring, r=oli-obk Implement new effects desugaring cc `@rust-lang/project-const-traits.` Will write down notes once I have finished. * [x] See if we want `T: Tr` to desugar into `T: Tr, T::Effects: Compat<true>` * [x] Fix ICEs on `type Assoc: ~const Tr` and `type Assoc<T: ~const Tr>` * [ ] add types and traits to minicore test * [ ] update rustc-dev-guide Fixes rust-lang#119717 Fixes rust-lang#123664 Fixes rust-lang#124857 Fixes rust-lang#126148
fix wrong msrv import in `new_lint` template changelog: none
Although `manual_inspect`'s PR started some months ago, the lint is only available in the current nightly (1.81.0), rather than 1.78.0. Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Implement a lint to replace manual bit rotations with rotate_left/rot… Fixes rust-lang#6861 r? `@llogiq` --- changelog: add [`manual_rotate`] lint
`manual_inspect`: fix `clippy::version` from 1.78.0 to 1.81.0 Although `manual_inspect`'s PR started some months ago, the lint is only available in the current nightly (1.81.0), rather than 1.78.0. ``` changelog: [`manual_inspect`]: fix `clippy::version` from 1.78.0 to 1.81.0 ```
Using `f32::EPSILON` or `f64::EPSILON` as the floating-point equality comparison error margin is incorrect, yet `float_cmp` has until now recommended this be done. This change fixes the given guidance (both in docs and compiler hints) to not reference these unsuitable constants. Instead, the guidance now clarifies that the scenarios in which an absolute error margin is usable, provides a reference implementation of using a user-defined absolute error margin (as an absolute error margin can only be used-defined and may be different for different comparisons) and references the floating point guide for a reference implementation of relative error based equaltiy comparison for when absolute error margin cannot be used. changelog: Fix guidance of [`float_cmp`] and [`float_cmp_const`] to not incorrectly recommend `f64::EPSILON` as the error margin. Fixes rust-lang#6816
Misc refactorings part 4 And even more rearrangements to check the HIR tree before other checks. changelog: none
…-things, r=Alexendoo Lintcheck: Refactor structs and only take one version per crate For some time now I had the feeling that lintcheck's main file has been too large. This PR simply moves some structs into new submodules. I've also changed the `.toml` structure slightly to only accept one version per crate. AFAIK, we haven't use multiple versions before. If we want to test different versions, we can simply just add a second entry. That's what lintcheck does internally anyways. I wanted to have these changes in separate commits, but then accidentally squashed them... So sorry 😅 --- r? `@Alexendoo` If you think this is not really worth a proper review, since it's mostly a move refactoring in an internal tool, you can also `r=xFrednet` on this PR. changelog: none
…idance, r=y21 Fix guidance of [`float_cmp`] and [`float_cmp_const`] to not incorrectly recommend `f__::EPSILON` as the error margin. Using `f32::EPSILON` or `f64::EPSILON` as the floating-point equality comparison error margin is incorrect, yet `float_cmp` has until now recommended this be done. This change fixes the given guidance (both in docs and compiler hints) to not reference these unsuitable constants. Instead, the guidance now clarifies that the scenarios in which an absolute error margin is usable, provides a sample implementation for using a user-defined absolute error margin (as an absolute error margin can only be used-defined and may be different for different comparisons) and references the floating point guide for a reference implementation of relative error based equality comparison for cases where absolute error margins cannot be identified. changelog: [`float_cmp`] Fix guidance to not incorrectly recommend `f__::EPSILON` as the error margin. changelog: [`float_cmp_const`] Fix guidance to not incorrectly recommend `f__::EPSILON` as the error margin. Fixes rust-lang#6816
Fix and rename `overflow_check_conditional` fixes rust-lang#2457 Other changes: * Limit the lint to unsigned types. * Actually check if the operands are the same rather than using only the first part of the path. * Allow the repeated expression to be anything as long as there are no side effects. changelog: Rename `overflow_check_conditional` to `panicking_overflow_check` and move to `correctness`
Fix doc nits More tender love and polish for the documentation and suggestion texts: adding formatting, links, full stops, tweaking wording for readability, changing 'which' to 'that' where appropriate, and other standard copyediting changes. changelog: Docs [ `await_holding_lock` ]: fix doc nits changelog: Docs [ `await_holding_refcell_ref` ]: fix doc nits changelog: Docs [ `await_holding_invalid_type` ]: fix doc nits changelog: Docs [ `cast_precision_loss` ]: fix doc nits changelog: Docs [ `cast_sign_loss` ]: fix doc nits changelog: Docs [ `cast_possible_truncation` ]: fix doc nits changelog: Docs [ `cast_possible_wrap` ]: fix doc nits changelog: Docs [ `cast_lossless` ]: fix doc nits changelog: Docs [ `unnecessary_cast` ]: fix doc nits changelog: Docs [ `cast_ptr_alignment` ]: fix doc nits changelog: Docs [ `fn_to_numeric_cast` ]: fix doc nits changelog: Docs [ `fn_to_numeric_cast_with_truncation` ]: fix doc nits changelog: Docs [ `fn_to_numeric_cast_any` ]: fix doc nits changelog: Docs [ `char_lit_as_u8` ]: fix doc nits changelog: Docs [ `ptr_as_ptr` ]: fix doc nits changelog: Docs [ `ptr_cast_constness` ]: fix doc nits changelog: Docs [ `as_ptr_cast_mut` ]: fix doc nits changelog: Docs [ `little_endian_bytes` ]: fix doc nits changelog: Docs [ `big_endian_bytes` ]: fix doc nits changelog: Docs [ `bind_instead_of_map` ]: fix doc nits changelog: Docs [ `same_name_method` ]: fix doc nits
… r=y21 Fix `iter_next_loop.rs` ui test I'm uncovering bugs while working on rust-lang/rust-clippy#11421. ^^' changelog: none
Rustup r? `@ghost` changelog: none
Some changes occurred in src/tools/clippy cc @rust-lang/clippy |
@bors r+ p=1 |
☀️ Test successful - checks-actions |
Finished benchmarking commit (5315cbe): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)This benchmark run did not return any relevant results for this metric. CyclesResults (secondary -2.1%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 703.929s -> 705.539s (0.23%) |
r? @Manishearth