Commit Graph

688 Commits

Author SHA1 Message Date
Jason Newcomb ab6463e9d9 Fix ICE in miri_to_const 2022-07-24 18:23:33 -04:00
Jason Newcomb 95c759157c Check for todo! on every expression in SpanlessEq 2022-07-19 09:57:18 -04:00
Philipp Krones f074034590 Merge remote-tracking branch 'upstream/master' into rustup 2022-07-15 09:49:15 +02:00
bors 6dc9746147 Auto merge of #95956 - yaahc:stable-in-unstable, r=cjgillot
Support unstable moves via stable in unstable items

part of https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/moving.20items.20to.20core.20unstably and a blocker of https://github.com/rust-lang/rust/pull/90328.

The libs-api team needs the ability to move an already stable item to a new location unstably, in this case for Error in core. Otherwise these changes are insta-stable making them much harder to merge.

This PR attempts to solve the problem by checking the stability of path segments as well as the last item in the path itself, which is currently the only thing checked.
2022-07-14 13:42:09 +00:00
Dylan DPC e275abf92e Rollup merge of #98705 - WaffleLapkin:closure_binder, r=cjgillot
Implement `for<>` lifetime binder for closures

This PR implements RFC 3216 ([TI](https://github.com/rust-lang/rust/issues/97362)) and allows code like the following:

```rust
let _f = for<'a, 'b> |a: &'a A, b: &'b B| -> &'b C { b.c(a) };
//       ^^^^^^^^^^^--- new!
```

cc ``@Aaron1011`` ``@cjgillot``
2022-07-14 14:14:21 +05:30
bors 5b7a2d5037 Auto merge of #99210 - Dylan-DPC:rollup-879cp1t, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #98574 (Lower let-else in MIR)
 - #99011 (`UnsafeCell` blocks niches inside its nested type from being available outside)
 - #99030 (diagnostics: error messages when struct literals fail to parse)
 - #99155 (Keep unstable target features for asm feature checking)
 - #99199 (Refactor: remove an unnecessary `span_to_snippet`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-07-13 17:13:27 +00:00
bors a7162f29b4 Auto merge of #9134 - Jarcho:while_let_iter_closure, r=dswij
Improve `while_let_on_iterator` suggestion inside an `FnOnce` closure

changelog: Improve `while_let_on_iterator` suggestion inside an `FnOnce` closure
2022-07-13 16:20:14 +00:00
bors 0930ac91b9 Fix typos
changelog: none
2022-07-13 14:48:32 +00:00
Maybe Waffle 1c3f62c750 Fix clippy build 2022-07-12 21:00:14 +04:00
ouz-a 9d86ce6533 add new rval, pull deref early 2022-07-12 14:26:41 +03:00
bors 3206fb4eb1 Auto merge of #9138 - Jarcho:branches_sharing_code_2, r=giraffate
Fixes for `branches_sharing_code`

fixes #7198
fixes #7452
fixes #7555
fixes #7589

changelog: Don't suggest moving modifications to locals used in any of the condition expressions in `branches_sharing_code`
changelog: Don't suggest moving anything after a local with a significant drop in `branches_sharing_code`
2022-07-12 00:38:54 +00:00
Ding Xiang Fei af3ba22313 move else block into the Local struct 2022-07-11 23:20:37 +02:00
Ding Xiang Fei 9225ebd786 lower let-else in MIR instead 2022-07-11 23:20:36 +02:00
Jason Newcomb 55563f9ce1 Fixes for branches_sharing_code
* Don't suggest moving modifications to locals used in any of the condition expressions
* Don't suggest moving anything after a local with a significant drop
2022-07-08 20:07:55 -04:00
Jane Lusby d053a3dae0 add opt in attribute for stable-in-unstable items 2022-07-08 21:18:15 +00:00
Jason Newcomb d251bd96e7 Add for_each_expr 2022-07-08 12:54:20 -04:00
Jason Newcomb 9fa12def3c Improve while_let_on_iterator suggestion inside an FnOnce closure 2022-07-07 22:10:24 -04:00
Jason Newcomb 196174ddad Changes to let_unit_value
* View through locals in `let_unit_value` when determining if inference is required
* Don't remove typed let bindings for more functions
2022-07-07 20:06:36 -04:00
Andrea Nall 782b484b79 Fix ICE in sugg::DerefDelegate with (named) closures
rustc comiler internals helpfully tell us how to fix the issue:

  to get the signature of a closure, use `substs.as_closure().sig()` not `fn_sig()`

Fixes ICE in #9041
2022-07-07 16:10:36 -05:00
bors 5483a7dd44 Auto merge of #98827 - aDotInTheVoid:suggest-extern-block, r=nagisa
Suggest using block for `extern "abi" fn` with no body

`@rustbot` modify labels: +A-diagnostics
2022-07-07 04:18:47 +00:00
bors f93d418f17 Auto merge of #9099 - joshtriplett:unnecessary-lazy-eval-then-some, r=flip1995
Extend unnecessary_lazy_eval to cover `bool::then` -> `bool::then_some`

fixes #9097

changelog: Extend `unnecessary_lazy_eval` to convert `bool::then` to `bool::then_some`
2022-07-06 09:20:55 +00:00
Josh Triplett b7230d4f44 Dogfood fixes to use bool::then_some 2022-07-06 02:03:56 -07:00
Josh Triplett ebff7206bc Add MSRV check for bool::then_some 2022-07-06 01:00:19 -07:00
Alan Egerton 490c773e66 Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
Alan Egerton 5c35569ff7 Relax constrained generics to TypeVisitable 2022-07-05 22:25:43 +01:00
Serial de646e10db Add invalid_utf8_in_unchecked 2022-07-03 15:37:30 -04:00
Nixon Enraght-Moony ab23b3aa8a ast: Add span to Extern 2022-07-02 23:30:03 +01:00
Cameron Steffen 5de85902fa Factor out hir::Node::Binding 2022-07-01 10:04:19 -05:00
Takayuki Nakata 1988375a25 Fix some links 2022-07-01 21:30:59 +09:00
Philipp Krones 09f5df5087 Merge commit '0cb0f7636851f9fcc57085cf80197a2ef6db098f' into clippyup 2022-06-30 10:50:09 +02:00
Philipp Krones 9de1f9f45a Bump Clippy version -> 0.1.64 2022-06-30 10:29:22 +02:00
Philipp Krones bf9b39ae7d Fix dogfood 2022-06-30 10:28:04 +02:00
Philipp Krones f26cf11fe8 Merge remote-tracking branch 'upstream/master' into rustup 2022-06-30 10:27:25 +02:00
Jason Newcomb 58434ae385 Extract util functions from redundant_pattern_match 2022-06-29 13:42:59 -04:00
bors 4995b4e584 Auto merge of #9046 - xFrednet:rust-97660-expection-something-something, r=Jarcho
Fix `#[expect]` for most clippy lints

This PR fixes most `#[expect]` - lint interactions listed in rust-lang/rust#97660. [My comment in the issue](https://github.com/rust-lang/rust/issues/97660#issuecomment-1147269504) shows the current progress (Once this is merged). I plan to work on `duplicate_mod` and `multiple_inherent_impl` and leave the rest for later. I feel like stabilizing the feature is more important than fixing the last few nits, which currently also don't work with `#[allow]`.

---

changelog: none

r? `@Jarcho`

cc: rust-lang/rust#97660
2022-06-28 18:28:38 +00:00
Jason Newcomb 15df2289ea Code cleanup 2022-06-28 12:48:49 -04:00
Jason Newcomb 8a74d33570 Add explicit_auto_deref lint 2022-06-28 12:48:24 -04:00
Jason Newcomb c107c97e69 Better support projection types when finding the signature for an expression 2022-06-28 12:47:26 -04:00
Jason Newcomb 2315f76f9d Actually check lifetimes in trivially_copy_pass_by_ref 2022-06-27 13:14:25 -04:00
bors eaa03ea911 Auto merge of #8972 - kyoto7250:use_retain, r=llogiq
feat(new lint): new lint `manual_retain`

close #8097

This PR is  a new  lint implementation.
This lint checks if the `retain` method is available.

Thank you in advance.

changelog: add new ``[`manual_retain`]`` lint
2022-06-27 13:58:26 +00:00
Klim Tsoutsman 65f700fa89 Fix let_undescore_lock false-positive when binding without locking
Signed-off-by: Klim Tsoutsman <klimusha@gmail.com>
2022-06-27 20:35:26 +10:00
kyoto7250 4decfdec76 check msrv 2022-06-27 08:11:58 +09:00
kyoto7250 fd629c0cde check method 2022-06-27 08:11:58 +09:00
kyoto7250 5f2b8e67b3 feat(new lint): new lint use_retain 2022-06-27 08:11:58 +09:00
xFrednet 4d41a97735 Add note to is_lint_allowed about lint emission 2022-06-25 14:37:52 +02:00
Evan Typanski 61e1870aff Add MSRV check for const rem_euclid 2022-06-22 14:23:04 -04:00
Evan Typanski e5ebd3edab Implement manual_rem_euclid lint 2022-06-21 14:13:15 -04:00
bors 93c6f9ebed Auto merge of #9006 - kyoto7250:issue-8836-v2, r=Jarcho
feat(fix): ignore `todo!` and `unimplemented!` in `if_same_then_else`

close: #8836
take over:  #8853

This PR adds  check `todo!` and `unimplemented!` in if_same_then_else.
( I thought `unimplemented` should not be checked as well as todo!.)

Thank you in advance.

changelog: ignore todo! and unimplemented! in if_same_then_else

r? `@Jarcho`
2022-06-20 15:08:32 +00:00
kyoto7250 39ffda014d check macro in HitEqInterExpr 2022-06-20 11:14:52 +09:00
kyoto7250 46d056e2eb check last statement 2022-06-20 11:05:40 +09:00