Commit graph

124480 commits

Author SHA1 Message Date
Josh Stone
7c4ca59f4b Lint must_use on mem::replace
This adds a hint on `mem::replace`, "if you don't need the old value,
you can just assign the new value directly". This is in similar spirit
to the `must_use` on `ManuallyDrop::take`.
2020-04-17 11:36:56 -07:00
bors
ce93331e2c Auto merge of #71255 - Dylan-DPC:rollup-u5yl04z, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #69642 (Use query to determine whether function needs const checking)
 - #71239 (Rename `asm` test directory in favor of `llvm_asm`)
 - #71246 (Implement `Clone` for `liballoc::collections::linked_list::Cursor`.)
 - #71247 (Remove unnecessary variable intialization)
 - #71254 (Minor fix and addition to doc comments)

Failed merges:

r? @ghost
2020-04-17 18:36:53 +00:00
Jonas Schievink
7bbdd2d4d6 Adjust mir-opt test and make it drop something 2020-04-17 20:36:46 +02:00
Dylan DPC
4132642e8a
Rollup merge of #71254 - JOE1994:add_comment, r=jonas-schievink
Minor fix and addition to doc comments

1. Fixed doc comment of struct 'rustc_middle::mir::Location'
Currently, the general explanation of the struct appears at the field
explanation section. I moved and changed the doc comments slightly, so
that the general explanation would appear in the proper location in
docs.
2. Added doc comment explaining 'rustc_mir::util::pretty::write_mir_fn'
Unlike other counterparts, brief explanation for this function was missing,
so I added one.

Thank you for reviewing this PR :)
2020-04-17 20:35:25 +02:00
Dylan DPC
029e930ab7
Rollup merge of #71247 - ldm0:minor, r=estebank
Remove unnecessary variable intialization

Minor fix.
2020-04-17 20:35:24 +02:00
Dylan DPC
07cb4f44e4
Rollup merge of #71246 - crlf0710:linked_list_cursor, r=Amanieu
Implement `Clone` for `liballoc::collections::linked_list::Cursor`.

This implements `Clone` for linked list `Cursor`. Implementing `Copy` is also possible here, but i'm not sure whether i should also do it.

r? @Amanieu
2020-04-17 20:35:22 +02:00
Dylan DPC
d30292caa7
Rollup merge of #71239 - JohnTitor:llvm-asm, r=Amanieu
Rename `asm` test directory in favor of `llvm_asm`

r? @Amanieu
2020-04-17 20:35:21 +02:00
Dylan DPC
a12d42ba86
Rollup merge of #69642 - ecstatic-morse:issue-69615, r=oli-obk
Use query to determine whether function needs const checking

Resolves #69615.

The HIR const-checker was checking the `constness` of a function's `fn_sig` to determine whether a function needed const-checking. Now that const trait impls are a thing, this is no longer enough. All code should use the `is_const_fn_raw` query instead, which takes the constness of the impl block into account.

r? @oli-obk
2020-04-17 20:35:19 +02:00
Jonas Schievink
50c1c295ee Make needs_drop less pessimistic on generators 2020-04-17 20:30:23 +02:00
Duddino
79abac863e Improved try_macro_suggestion function 2020-04-17 20:14:27 +02:00
JOE1994
5847c581d1 Minor fix and addition to doc comments
1. Fixed doc comment of struct 'rustc_middle::mir::Location'
Currently, the general explanation of the struct appears at the field
explanation section. I moved and changed the doc comments slightly, so
that the general explanation would appear in the proper location in
docs.
2. Added doc comment explaining 'rustc_mir::util::pretty::write_mir_fn'
Unlike other counterparts, brief explanation for this function was missing,
so I added one.

Thank you for reviewing this PR :)
2020-04-17 13:24:33 -04:00
Duddino
67128f1e4a Improved try_macro_suggestion 2020-04-17 19:10:29 +02:00
Duddino
d3f5c274c6 Moved is_try check into try_macro_suggestion 2020-04-17 18:26:39 +02:00
Guillaume Gomez
b4fb3069ce Replace big JS dict with JSON parsing 2020-04-17 18:09:04 +02:00
bors
f1fb815603 Auto merge of #5423 - rkuhn:add_futures_not_send, r=flip1995
add lint futures_not_send

changelog: add lint futures_not_send

fixes #5379

~Remark: one thing that can (should?) still be improved is to directly include the error message from the `Send` check so that the programmer stays in the flow. Currently, getting the actual error message requires a restructuring of the code to make the `Send` constraint explicit.~
It now shows all unmet constraints for allowing the Future to be Send.
2020-04-17 16:04:14 +00:00
bors
52dacbc876 Auto merge of #5445 - logan-dev-oss:master, r=flip1995
Fixes issue #4892.

First contribution here 😊 ! Do not hesitate to correct me.

This PR is related to issue #4892 .

# Summary

```rust
-literal.method_call(args)
```
The main idea is to not trigger `clippy::precedence` when the method call is an odd function.

# Example

```rust
// should trigger lint
let _ = -1.0_f64.abs() //precedence of method call abs() and neg ('-') is ambiguous

// should not trigger lint
let _ = -1.0_f64.sin() // sin is an odd function => -sin(x) = sin(-x)
```

# Theory

Rust allows following literals:
- char
- string
- integers
- floats
- byte
- bool

Only integers/floats implements the relevant `std::ops::Neg`.
Following odd functions are implemented on i[8-128] and/or f[32-64]:
- `asin`
- `asinh`
- `atan`
- `atanh`
- `cbrt`
- `fract`
- `round`
- `signum`
- `sin`
- `sinh`
- `tan`
- `tanh `
- `to_degrees`
- `to_radians`

# Implementation

As suggested by `flip1995` in [comment](https://github.com/rust-lang/rust-clippy/issues/4892#issuecomment-568249683), this PR add a whitelist of odd functions and compare method call to the the whitelist before triggering lint.

changelog: Don't trigger [`clippy::precedence`] on odd functions.
2020-04-17 14:15:28 +00:00
Charles Lew
22e51cd78a Implement Clone for liballoc::collections::linked_list::Cursor. 2020-04-17 21:31:59 +08:00
Donough Liu
be6716f7f9 Remove unnecessary variable intialization 2020-04-17 21:30:26 +08:00
Duddino
ba61fe432a Account for use of try!() in 2018 edition and guide users in the right direction 2020-04-17 14:08:08 +02:00
Roland Kuhn
d2cbbff217 add lint futures_not_send 2020-04-17 13:54:05 +02:00
bors
8d67f576b5 Auto merge of #71049 - eddyb:const-err, r=oli-obk
Add `ConstKind::Error` and convert `ErrorHandled::Reported` to it.

By replicating the `ty::Error` approach to encoding "an error has occurred", all of the mechanisms that skip redundant/downstream errors are engaged and help out (see the reduction in test output).

This PR also adds `ErrorHandled::Linted` for the lint case because using `ErrorHandled::Reported` *without* having emitted an error that is *guaranteed* to stop compilation, is incorrect now.

r? @oli-obk cc @rust-lang/wg-const-eval @varkor @yodaldevoid
2020-04-17 11:52:01 +00:00
XAMPPRocky
1922d20355 Format Mailmap To Work With GitHub 2020-04-17 13:51:08 +02:00
Yuki Okushi
af442d964d
Rename asm test directory in favor of llvm_asm 2020-04-17 18:36:16 +09:00
Ralf Jung
e33b5173dc Miri: fix typo 2020-04-17 11:23:20 +02:00
bors
b2c1a606fe Auto merge of #70629 - anyska:fields-variant, r=oli-obk
rustc_target::abi: add Primitive variant to FieldsShape.

Originally suggested by @eddyb.
2020-04-17 08:42:51 +00:00
logan-dev-oss
66b855c30b Integrate more idiomatic rust changes. 2020-04-17 10:12:30 +02:00
logan-dev-oss
9c89cf00c0 Fix issue #4892. 2020-04-17 09:27:54 +02:00
bors
3ea8e5e856 Auto merge of #5482 - phansch:diag, r=matthiaskrgr
Cleanup: Rename 'db' variables to 'diag'

Did the same in rustc a while ago: https://github.com/rust-lang/rust/pull/65428

changelog: none
2020-04-17 07:24:13 +00:00
bors
82be9dc606 Auto merge of #5481 - sinkuu:no_as_ref, r=phansch
question_mark: don't add `as_ref()` for a call expression

If a call returns a `!Copy` value, it does so regardless of whether `as_ref()` is added. For example, `foo.into_option().as_ref()?` can be simplified to `foo.into_option()?`.

---

changelog: Improved `question_mark` lint suggestion so that it doesn't add redundant `as_ref()`
2020-04-17 06:19:47 +00:00
Philipp Hansch
eb7ad1c6cd
cargo dev fmt 2020-04-17 08:09:09 +02:00
Philipp Hansch
870ae36f85
Cleanup: Rename 'db' variable to 'diag' 2020-04-17 08:08:00 +02:00
bors
861996e138 Auto merge of #71230 - Dylan-DPC:rollup-rofigbv, r=Dylan-DPC
Rollup of 7 pull requests

Successful merges:

 - #70578 (Add long error explanation for E0657)
 - #70910 (Hides default fns inside Fuse impl to avoid exposing it to any crate)
 - #71164 (reword Miri validity errors: undefined -> uninitialized)
 - #71182 (Add some regression tests)
 - #71206 (Miri error messages: avoid try terminology)
 - #71220 (Dogfood or_patterns in the standard library)
 - #71225 (Fix typo in Default trait docs: Provides -> Provide)

Failed merges:

r? @ghost
2020-04-17 04:15:18 +00:00
Shotaro Yamada
f58bb5b234 question_mark: don't add as_ref() for a call expression 2020-04-17 13:09:02 +09:00
Eduard-Mihai Burtescu
eccb28e3d6 ty/print: pretty-print constant aggregates (arrays, tuples and ADTs). 2020-04-17 05:18:32 +03:00
Eduard-Mihai Burtescu
aabed9322e mir: pretty-print Rvalue::Aggregate correctly. 2020-04-17 04:58:37 +03:00
csmoe
bc1595473b record await span inside GeneratorInteriorTypeCause 2020-04-17 09:44:49 +08:00
bors
8ae143fcd0 Auto merge of #5480 - sinkuu:unit_arg_app, r=flip1995
unit_arg suggestion is not really machine-applicable

This lint suggests replacing any code returining `()`-type with `()` literal, which can change the behavior. e.g. `Ok(do_something())` -> `OK(())`.

---

changelog: none
2020-04-17 01:40:59 +00:00
Shotaro Yamada
162cf261dc unit_arg suggestion may be incorrect 2020-04-17 10:26:58 +09:00
Dylan DPC
65243a8f7c
Rollup merge of #71225 - leocassarani:patch-1, r=jonas-schievink
Fix typo in Default trait docs: Provides -> Provide

An earlier commit (99ed06e) accidentally changed this paragraph from the original, imperative `Provide` to the present tense `Provides`. The latter is indeed the standard for Rustdoc comments relating to a function or method, but this snippet is introducing the `Default` trait in general terms and not talking about any particular function. I believe this change was likely made in error and should be reverted.
2020-04-17 03:05:21 +02:00
Dylan DPC
28964b4ef2
Rollup merge of #71220 - cuviper:std_or_patterns, r=Mark-Simulacrum
Dogfood or_patterns in the standard library

We can start using `or_patterns` in the standard library as a step toward stabilization.

cc #54883 @Centril
2020-04-17 03:05:19 +02:00
Dylan DPC
b2e4d4836f
Rollup merge of #71206 - RalfJung:dont-try, r=oli-obk
Miri error messages: avoid try terminology

r? @oli-obk
2020-04-17 03:05:18 +02:00
Dylan DPC
b347097e4d
Rollup merge of #71182 - JohnTitor:regression-tests, r=Mark-Simulacrum
Add some regression tests

Closes #24843
Closes #28575
Closes #54067
Closes #66868
Closes #67893
Closes #68813
2020-04-17 03:05:16 +02:00
Dylan DPC
5280d15d62
Rollup merge of #71164 - RalfJung:uninit-not-undef, r=oli-obk
reword Miri validity errors: undefined -> uninitialized

I don't think we say "undefined value" or anything like that anywhere in the docs or so, but we do use the term "uninitialized memory", so I think we should do the same here.

Longer-term, I think we should also internally rename "undef" to "uninit".

r? @oli-obk
2020-04-17 03:05:15 +02:00
Dylan DPC
d19458784f
Rollup merge of #70910 - rakshith-ravi:master, r=cuviper
Hides default fns inside Fuse impl to avoid exposing it to any crate

Fixes #70796

@cuviper I've added some default, private traits to do the job for us. If required, I can expose them to a specific visibility if you want to call these functions for #70332

r? @cuviper
2020-04-17 03:05:13 +02:00
Dylan DPC
abd72f7fc2
Rollup merge of #70578 - PankajChaudhary5:master, r=GuillaumeGomez
Add long error explanation for E0657

Added proper error explanation for issue E0657 in the Rust compiler.

Part of #61137

r? @GuillaumeGomez
2020-04-17 03:05:11 +02:00
Eduard-Mihai Burtescu
2472e04291 ty/print/pretty: use comma_sep instead of replicating it. 2020-04-17 03:54:13 +03:00
bors
318726b301 Auto merge of #71131 - pnkfelix:issue-69798-dont-reuse-post-lto-products-when-exports-change, r=nagisa
Do not reuse post LTO products when exports change

Do not reuse post lto products when exports change

Generalizes code from PR #67020, which handled case when imports change.

Fix #69798
2020-04-17 00:44:24 +00:00
bors
eb9c15a6b3 Auto merge of #5479 - matthiaskrgr:readme_auto_fix, r=flip1995
readme: update to cargo clippy --fix command

changelog: none
2020-04-16 21:41:14 +00:00
Leo Cassarani
da48550b33 Fix typo in Default trait docs: Provides -> Provide
An earlier commit (99ed06e) accidentally changed this paragraph from the
original, imperative "Provide" to the present tense "Provides". The
latter is indeed the standard for Rustdoc comments relating to a
function or method, but this snippet is introducing the Default trait in
general terms and not talking about any particular function. I believe
this change was likely made in error and should be reverted.
2020-04-16 22:39:00 +01:00
bors
868b51be6f Auto merge of #71223 - Dylan-DPC:rollup-z5itu39, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #70611 (Add long error explanation for E0708 #61137)
 - #71197 (Don't use the HirId to NodeId map in MIR)
 - #71211 (Update cargo)
 - #71219 (Minor fixes to doc comments of 'VecDeque')
 - #71221 (Dogfood or_patterns in rustdoc)

Failed merges:

r? @ghost
2020-04-16 21:36:23 +00:00