Commit Graph

197170 Commits

Author SHA1 Message Date
bors
f7e2cb4470 Auto merge of #9308 - daxpedda:missing-const-for-fn, r=Jarcho
Use `check_proc_macro` for `missing_const_for_fn`

This uses `@Jarcho's` #8694 implementation to fix `missing_const_for_fn` linting in proc-macros.
I'm not 100% sure what I'm doing here, any feedback is appreciated.

Previously: https://github.com/Jarcho/rust-clippy/pull/1.
Fixes #8854.

changelog: [`missing_const_for_fn`]: No longer lints in proc-macros
2022-08-09 03:44:21 +00:00
Takayuki Maeda
abbd34d00e avoid &str to String conversions 2022-08-09 12:27:53 +09:00
dAxpeDDa
fd60581628
Address review take 2 2022-08-09 05:14:03 +02:00
dAxpeDDa
6f5d64842b
Address review 2022-08-09 04:56:04 +02:00
BlackHoleFox
0cf9503751 Replace pointer casting in hashmap_random_keys with safe code
The old code was unnecessarily unsafe and relied on the layout
of tuples always being the same as an array of the same size.
2022-08-08 18:49:17 -07:00
dAxpeDDa
8d4f2ac381
Use check_proc_macro for missing_const_for_fn 2022-08-09 03:41:59 +02:00
Anton Romanov
63be9a95b6 Update Duration::as_secs doc to point to as_secs_f64/32 for including fractional part
Rather than suggesting to calculate manually
2022-08-08 18:32:16 -07:00
bors
3af9072bc6 Auto merge of #9288 - lukaslueg:partialeqnone, r=Jarcho
Add partialeq_to_none lint

Initial implementation of #9275, adding lint `partialeq_to_none`. This is my first time working on `clippy`, so please review carefully.

I'm unsure especially about the `Sugg`, as it covers the entire `BinOp`, instead of just covering one of the sides and the operator (see the multi-line example). I was unsure if pinpointing the suggestion wouldn't be brittle...

changelog: [`PARTIALEQ_TO_NONE`]: Initial commit
2022-08-09 00:12:29 +00:00
Noah Lev
28e4b9e64e Add regression test comment 2022-08-08 14:09:55 -07:00
Josh Stone
013986be1b linux: Use pthread_setname_np instead of prctl
This function is available on Linux since glibc 2.12, musl 1.1.16, and
uClibc 1.0.20. The main advantage over `prctl` is that it properly
represents the pointer argument, rather than a multi-purpose `long`,
so we're better representing strict provenance (#95496).
2022-08-08 13:27:09 -07:00
Joshua Nelson
775c3c0493 Add x.sh and x.ps1 shell scripts
This is a more ambitious version of https://github.com/rust-lang/rust/pull/98716.
It still changes the shebang back to python3, for compatibility with non-Unix systems,
but also adds alternative entrypoints for systems without `python3` installed.

These scripts will be necessary for the rust entrypoint (#94829), so I see
little downside in adding them early.
2022-08-08 14:48:11 -05:00
Bryysen
74e71da547 Fix plural form of variant in error message not formatting correctly
due to ordering, added/improved comments and removed redundant test
already caught by `E0081.rs`
2022-08-08 21:34:55 +02:00
Camille GILLOT
eab3b05b62 Synthetize a trait ref when none is available. 2022-08-08 21:09:09 +02:00
Luqman Aden
75cc9cddf7 Add test for #100246. 2022-08-08 11:52:04 -07:00
Luqman Aden
fb8636fc48 Set tainted errors bit before emitting coerce suggestions. 2022-08-08 11:52:04 -07:00
Lukas Lueg
657b0da912 Add partialeq_to_none lint
Fixes #9275
2022-08-08 20:17:13 +02:00
bors
8f390610a5 Auto merge of #9306 - guerinoni:rename-logic-bug, r=llogiq,xFrednet
Rename `logic_bug` to `overly_complex_bool_expr`

Closes #1916

changelog: Rename `logic_bug` to [`overly_complex_bool_expr`]
2022-08-08 17:04:06 +00:00
Federico Guerinoni
f6cab94bd0 Rename logic_bug to overly_complex_bool_expr
Closes #1916
2022-08-08 18:38:39 +02:00
Guillaume Gomez
daa0e8fecc remove Clean trait implementation for hir::Generics 2022-08-08 17:48:17 +02:00
Guillaume Gomez
bed8e93f40 remove Clean trait implementation for hir::ImplItem 2022-08-08 17:25:38 +02:00
bors
4912c0ece4 Auto merge of #9126 - Jarcho:auto_deref_sugg, r=Manishearth
`explicit_auto_deref` changes

fixes #9123
fixes #9109
fixes #9143
fixes #9101

This avoid suggesting code which hits a rustc bug. Basically `&{x}` won't use auto-deref if the target type is `Sized`.

changelog: Don't suggest using auto deref for block expressions when the target type is `Sized`
changelog: Include the borrow in the suggestion for `explicit_auto_deref`
changelog: Don't lint `explicit_auto_deref` on `dyn Trait` return
changelog: Don't lint `explicit_auto_deref` when other adjustments are required
changelog: Lint `explicit_auto_deref` in implicit return positions for closures
2022-08-08 15:20:24 +00:00
Jason Newcomb
ecb51fe6a5 Lint explicit_auto_deref in implicit return positions for closures 2022-08-08 10:25:05 -04:00
Jason Newcomb
5285928bc0 Fix ICE when checking the HIR ty of closure args. 2022-08-08 10:09:05 -04:00
Ralf Jung
92ce2c1dab also update anyhow in codegen_cranelift 2022-08-08 09:04:26 -04:00
bors
0ee702514e Auto merge of #9303 - Jarcho:ice_9297, r=Alexendoo
Fix ICE when reading literals with weird proc-macro spans

fixes #9297
changelog: Fix ICE when reading literals with weird proc-macro spans
2022-08-08 11:36:27 +00:00
Takayuki Maeda
b3bc2111ac add regression test for #79148 2022-08-08 19:50:10 +09:00
bors
f03ce30962 Auto merge of #98863 - compiler-errors:projection-msg, r=estebank
Implement special-cased projection error message for some common traits

Not sure what the best phrasing is, but I feel like these are more clear than the plain `<Type as Iterator>::Output == Type` messages.

If this is actually a good idea, are there any other traits this could benefit?
2022-08-08 10:16:20 +00:00
bors
10853f71f2 Auto merge of #8694 - Jarcho:check_proc_macro, r=xFrednet
More proc-macro detection

fixes #6514
fixes #8683
fixes #6858
fixes #6594

This is a more general way of checking if an expression comes from a macro and could be trivially applied to other lints. Ideally this would be fixed in rustc's proc-macro api, but I don't see that happening any time soon.

changelog: FPs: [`unit_arg`] [`default_trait_access`] [`missing_docs_in_private_items`]: No longer trigger in code generated from proc-macros.
2022-08-08 09:27:33 +00:00
bors
97a0cf2de2 Auto merge of #9302 - Jarcho:sig_drop_nursery, r=flip1995
Move `significant_drop_in_scrutinee` into `nursey`

The current suggestion of extending the lifetime of every sub-expression is not great and doesn't fix the error given in the lint's example, though it does make the potential deadlock easier to see, but it can also cause it's own issues by delaying the drop of the lock guard.

e.g.
```rust
match x.lock().foo {
    ..
}
// some stuff
let y = x.lock();
```
The suggestion would create a deadlock at the second `x.lock()` call.

This also lints even when a significant drop type isn't created as a temporary. (#9072)

I agree `@kpreid` (https://github.com/rust-lang/rust-clippy/issues/8987#issuecomment-1207464440) that this should be back-ported before the lint hits stable.

changelog: Move `significant_drop_in_scrutinee` into `nursey`
2022-08-08 08:28:06 +00:00
bors
9b8cfc1eed Auto merge of #98489 - cjgillot:naked-nohir, r=davidtwco,tmiasko
Only fetch HIR for naked functions that have the attribute.
2022-08-08 07:31:12 +00:00
Eric Huss
c86e523d97 compiletest: match ignores on target family
This primarily is so that `ignore-wasm` works as expected (ignores all wasm-like targets).
2022-08-07 23:32:27 -07:00
Eric Huss
fab8996400 compiletest: use precise cfg matching instead of hard-coded tables 2022-08-07 23:22:28 -07:00
bors
6a11cad7e8 Auto merge of #100207 - notriddle:notriddle/skipped-inline-module, r=Manishearth
rustdoc: do not mark the contents of a skipped module as inlined

Fixes #100204
2022-08-08 04:39:29 +00:00
Jason Newcomb
99abd4a9f6 Fix ICE when reading literals with weird proc-macro spans 2022-08-07 22:22:17 -04:00
Noah Lev
1f75142c8c Add some high-level docs to FnCtxt and ItemCtxt
I haven't understood the difference between these before, but
`@compiler-errors` helped me clear it up. Hopefully this will help other
people who've been confused!
2022-08-07 19:11:47 -07:00
Dan Vail
cc8259e4b6 Adding more verbose documentation for std::fmt::Write 2022-08-07 21:02:04 -05:00
Jason Newcomb
745b194292 Small cleanup for check_proc_macro.rs 2022-08-07 21:55:10 -04:00
Jason Newcomb
8dda974a27 Add note to the docs on is_from_proc_macro 2022-08-07 21:55:10 -04:00
Jason Newcomb
670efd5720 Don't lint default_trait_access in proc-macro expansions 2022-08-07 21:55:08 -04:00
Jason Newcomb
4ae582ef88 Don't lint missing_docs_in_private_items on proc-macro output 2022-08-07 21:53:51 -04:00
Jason Newcomb
37e838f759 Use new util function in suspicious_else_formatting 2022-08-07 21:52:27 -04:00
Jason Newcomb
2ae8b300a7 Don't lint unit_arg when expanded from a proc-macro 2022-08-07 21:52:25 -04:00
Jason Newcomb
aa0b0af3ba Move significant_drop_in_scrutinee into nursey 2022-08-07 21:01:27 -04:00
Michael Goulet
3fdf3cb80c Adjust wording 2022-08-08 00:13:41 +00:00
Michael Goulet
750f04d309 Implement special-cased projection error message for some common traits 2022-08-07 23:57:53 +00:00
Michael Goulet
b3b23aada9 Don't document impossible to call default trait items on impls 2022-08-07 23:44:05 +00:00
Bryysen
bfd7535130 Fix wording on comment 2022-08-07 23:50:12 +02:00
bors
93ab13b4e8 Auto merge of #100245 - matthiaskrgr:rollup-tfoo650, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #100019 (Revive suggestions for boxed trait objects instead of impl Trait)
 - #100038 (Document the `no-std` target option in config.toml.example)
 - #100194 (Remove even more box syntax uses from src/test)
 - #100206 (test: skip terminfo parsing in Miri)
 - #100230 (Use start_point instead of next_point to point to elided lifetime amp…)
 - #100244 (Add armv4t-none-eabi take2)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-08-07 21:25:29 +00:00
Luqman Aden
15b1daaca3 Add UI test for #100199 2022-08-07 14:01:04 -07:00
Bryysen
399796d2b3 Add comments to obscure code, remove unnesecary parameter from closure 2022-08-07 22:28:16 +02:00