Commit graph

124480 commits

Author SHA1 Message Date
Dylan DPC
97cf378f54
Rollup merge of #71787 - tshepang:rustdoc-warnings, r=varkor
fix rustdoc warnings
2020-05-02 18:27:52 +02:00
Dylan DPC
5a7b21faba
Rollup merge of #71785 - reitermarkus:cfg-attribute, r=Mark-Simulacrum
Update comment regarding SO_REUSEADDR on Windows
2020-05-02 18:27:48 +02:00
Dylan DPC
94d2fd9205
Rollup merge of #71784 - Xaeroxe:patch-1, r=jonas-schievink
Remove recommendation for unmaintained dirs crate

See #71684 for reasoning here
2020-05-02 18:27:43 +02:00
Dylan DPC
590d201e0b
Rollup merge of #71777 - petrochenkov:crtype, r=Mark-Simulacrum
cleanup: `config::CrateType` -> `CrateType`
2020-05-02 18:27:39 +02:00
Dylan DPC
78dc7e15c9
Rollup merge of #71772 - cjgillot:ensure, r=petrochenkov
Mark query function as must_use.

And use the `ensure()` version when the result is not needed.
2020-05-02 18:27:35 +02:00
Dylan DPC
5747d1e000
Rollup merge of #71767 - tshepang:stack-stuff, r=jonas-schievink
doc: make Stack and StackElement a little pretty

Also, fix rustdoc warnings.
2020-05-02 18:27:31 +02:00
Dylan DPC
e96036fca2
Rollup merge of #69274 - LeSeulArtichaut:target-feature-11, r=hanna-kruppe
Implement RFC 2396: `#[target_feature]` 1.1

Tracking issue: #69098

r? @nikomatsakis
cc @gnzlbg @joshtriplett
2020-05-02 18:27:27 +02:00
bors
d20113d0f5 Auto merge of #71794 - RalfJung:miri, r=RalfJung
update Miri

This contains the concurrency support by @vakaras :)

Fixes https://github.com/rust-lang/rust/issues/71729
r? @ghost
Cc @rust-lang/miri
2020-05-02 16:24:51 +00:00
Bastian Kauschke
a691521867
typo 2020-05-02 18:16:36 +02:00
bors
76ddac5e8e Auto merge of #5560 - CrazyRoka:fix-match-on-vector-full-range, r=phansch,flip1995
Fix match on vec items: match on vec[..]

- Added new tests
- Fixed false positive when matching on full range, which will never panic

Closes #5551
changelog: fix match_on_vec_items when matching full range
2020-05-02 16:13:02 +00:00
bors
75a717159d Auto merge of #5558 - ThibsG:FixUnwrapInArgs, r=flip1995
Fix `unnecessary_unwrap` lint when checks are done in parameters

Fixes a false positive in `unnecessary_unwrap` lint when checks are done in macro parameters.

FIxes #5174

changelog: Fixes a false positive in `unnecessary_unwrap` lint when checks are done in macro parameters.
2020-05-02 15:59:18 +00:00
Eduard-Mihai Burtescu
50c63e48f1 ty: use delay_span_bug in ty::AdtDef::eval_explicit_discr. 2020-05-02 18:58:39 +03:00
bors
60538d6c8e Auto merge of #5559 - alex-700:fix-while-let-on-iterator-fp, r=flip1995
Fix FP on while-let-on-iterator

- fix `is_refutable` for slice patterns
- fix `is_refutable` for bindings
- add some TODO-s for cases, which can not be fixed easily

fixes #3780

changelog: fix FP on while-let-on-iterator for arrays and bindings
2020-05-02 15:30:58 +00:00
Markus Reiter
39a97900be Replace cfg macro with attribute. 2020-05-02 17:06:16 +02:00
Simonas Kazlauskas
a569f2970a Update psm and stacker to 0.1.7 2020-05-02 16:47:56 +02:00
Simonas Kazlauskas
a5c5365031 Move ensure_sufficient_stack to data_structures
We anticipate this to have uses in all sorts of crates and keeping it in
`rustc_data_structures` enables access to it from more locations without
necessarily pulling in the large `librustc` crate.
2020-05-02 16:47:52 +02:00
Simonas Kazlauskas
968f442c7c Set the default stack size to 8MB
This was the value used before we originally started raising the stack
size to infinity.
2020-05-02 16:38:01 +02:00
Oliver Scherer
96c5012b57 Add psm to the crate whitelist 2020-05-02 16:38:01 +02:00
Oliver Scherer
26edcee093 Prevent stack overflow for deeply recursive code 2020-05-02 16:37:57 +02:00
CrazyRoka
de58c5644d Changed RANGE_FULL constant in utils 2020-05-02 17:37:03 +03:00
bors
cc9088f287 Auto merge of #5550 - ebroto:manual_non_exhaustive, r=flip1995
Implement the manual_non_exhaustive lint

Some implementation notes:
* Not providing automatic fixups because additional changes may be needed in other parts of the code, e.g. when constructing a struct.
* Even though the attribute is valid on enum variants, it's not possible to use the manual implementation of the pattern because the visibility is always public, so the lint ignores enum variants.
* Unit structs are also ignored, it's not possible to implement the pattern manually without fields.
* The attribute is not accepted in unions, so those are ignored too.
* Even though the original issue did not mention it, tuple structs are also linted because it's possible to apply the pattern manually.

changelog: Added the manual non-exhaustive implementation lint

Closes #2017
2020-05-02 13:53:39 +00:00
bors
53d3bc02ed Auto merge of #70655 - oli-obk:subrepo_funness, r=Mark-Simulacrum
Make clippy a git subtree instead of a git submodule

r? @eddyb

cc #70651

documentation at https://github.com/rust-lang/rust/pull/70654
2020-05-02 13:19:30 +00:00
Ralf Jung
89666ab6b4 fix miri-unleash delayed sanity checking 2020-05-02 14:39:19 +02:00
Carsten Andrich
c69d6c84c7 fix formatting issues that fail tidy test 2020-05-02 14:05:56 +02:00
Ralf Jung
17ca7a0e48 explain why we use def_span 2020-05-02 13:35:17 +02:00
Ralf Jung
08ba0145c7 make sure the miri-unleash-flag is not used to circumvent feature gates 2020-05-02 13:32:58 +02:00
CrazyRoka
e7138e0629 Fix match on vec items: match on vec[..]
- Added new tests
- Fixed false positive when matching on full range, which will never panic
2020-05-02 14:25:45 +03:00
Aleksei Latyshev
d0c1f8ada2
fix fp on while-let-on-iterator
- fix `is_refutable` for slice patterns
- fix `is_refutable` for bindings
- add some TODO-s for cases, which can not be fixed easily
2020-05-02 14:21:29 +03:00
ThibsG
72ce6d5be9 Fix unwrap lint when checks are done in parameters 2020-05-02 13:03:11 +02:00
bors
7184d137f6 Auto merge of #71795 - RalfJung:rollup-yqxfi5a, r=RalfJung
Rollup of 6 pull requests

Successful merges:

 - #71712 (Miri: port error backtraces to std::backtrace)
 - #71736 (bootstrap: also apply unused-attributes hack without deny_warnings)
 - #71738 (remove AllocId generalization of Pointer)
 - #71739 (remove obsolete comment)
 - #71781 (Uncomment test code for failure to use `Box::pin`)
 - #71782 (Use a non-existent test path instead of clobbering /dev/null)

Failed merges:

r? @ghost
2020-05-02 10:13:57 +00:00
Ralf Jung
58ae4a9a53 de-promote Duration::from_secs 2020-05-02 12:13:27 +02:00
Matthew Jasper
34eb2c1d4f Report cannot move errors in promoted MIR 2020-05-02 11:11:17 +01:00
Ralf Jung
2ee49eb738
Rollup merge of #71782 - cuviper:leave-dev-null-alone, r=Mark-Simulacrum
Use a non-existent test path instead of clobbering /dev/null

Fixes #71502.
r? @Mark-Simulacrum
2020-05-02 12:08:15 +02:00
Ralf Jung
a9c818ebb2
Rollup merge of #71781 - estebank:box-pin-test, r=tmandry
Uncomment test code for failure to use `Box::pin`

Close #69083.
2020-05-02 12:08:13 +02:00
Ralf Jung
509896fb96
Rollup merge of #71739 - tshepang:master, r=Dylan-DPC
remove obsolete comment

Referenced was removed in 9f492fefef
2020-05-02 12:08:12 +02:00
Ralf Jung
6616e2ca27
Rollup merge of #71738 - RalfJung:pointer-no-alloc-id, r=oli-obk
remove AllocId generalization of Pointer

This was only needed for the "snapshot" machinery, which is gone.

r? @oli-obk
2020-05-02 12:08:10 +02:00
Ralf Jung
72b8a31cae
Rollup merge of #71736 - RalfJung:silence-spurious-unused, r=Mark-Simulacrum
bootstrap: also apply unused-attributes hack without deny_warnings

This is a follow-up to https://github.com/rust-lang/rust/pull/70881 that also silences these warnings when deny_warnings is off. They otherwise spam my screen during development and make it hard to see actual warnings.

Cc  @eddyb r? @Mark-Simulacrum
2020-05-02 12:08:09 +02:00
Ralf Jung
cd824a5232
Rollup merge of #71712 - RalfJung:error-backtrace, r=oli-obk
Miri: port error backtraces to std::backtrace

No need to pull in an external dependency if libstd already includes this feature (using the same dependency internally, but... still).

r? @oli-obk
2020-05-02 12:08:03 +02:00
Ralf Jung
9c4ae74ce6 update Miri 2020-05-02 12:04:13 +02:00
Vadim Petrochenkov
ff86a45820 cleanup: config::CrateType -> CrateType 2020-05-02 11:57:23 +03:00
Carsten Andrich
86679967e3 use or pattern to match error codes that map to ErrorKind::TimedOut 2020-05-02 10:56:42 +02:00
bors
991efa6375 Auto merge of #5555 - flip1995:pedantic_match_on_vec_items, r=phansch
Move match_on_vec_items to pedantic

Addresses https://github.com/rust-lang/rust-clippy/issues/5551#issuecomment-622515580

Fixes #5553

changelog: Move [`match_on_vec_items`] to pedantic

r? @phansch
2020-05-02 08:45:59 +00:00
Tshepang Lekhonkhobe
3be52b5941 fix rustdoc warnings 2020-05-02 10:41:04 +02:00
bors
e3b8c41d0d Auto merge of #5536 - rail-rain:fix_manual_memcpy, r=phansch
Fix the bugs of `manual_memcpy`, simplify the suggestion and refactor it

While I’m working on the long procrastinated work to expand `manual_memcpy`(#1670), I found a few minor bugs and probably unidiomatic or old coding style. There is a brief explanation of changes to the behaviour this PR will make below. And, I have a questoin: do I need to add tests for the first and second fixed bugs? I thought it might be too rare cases to include the tests for those. I added for the last one though.

* Bug fix
  * It negates resulted offsets (`src/dst_offset`) when `offset` is subtraction by 0. This PR will remove any subtraction by 0 as a part of minification.

    ```rust
    for i in 0..5 {
        dst[i - 0] = src[i];
    }
    ```

    ```diff
     warning: it looks like you're manually copying between slices
       --> src/main.rs:2:14
        |
    LL  |     for i in 0..5 {
    -   |              ^^^^ help: try replacing the loop by: `dst[..-5].clone_from_slice(&src[..5])`
    +   |              ^^^^ help: try replacing the loop by: `dst[..5].clone_from_slice(&src[..5])`
        |
    ```
  * It prints `RangeTo` or `RangeFull` when both of `end` and `offset` are 0, which have different meaning. This PR will print 0. I could reject the cases `end` is 0, but I thought I won’t catch other cases `reverse_range_loop` will trigger, and it’s over to catch every such cases.

    ```rust
    for i in 0..0 {
        dst[i] = src[i];
    }
    ```

    ```diff
     warning: it looks like you're manually copying between slices
       --> src/main.rs:2:14
        |
     LL |     for i in 0..0 {
    -   |              ^^^^ help: try replacing the loop by: `dst.clone_from_slice(&src[..])`
    +   |              ^^^^ help: try replacing the loop by: `dst[..0].clone_from_slice(&src[..0])`
        |
    ```
  * it prints four dots when `end` is `None`. This PR will ignore any `for` loops without `end` because a `for` loop that takes `RangeFrom` as its argument and contains indexing without the statements or the expressions that end loops such as `break` will definitely panic, and `manual_memcpy` should ignore the loops with such control flow.

    ```rust
    fn manual_copy(src: &[u32], dst: &mut [u32]) {
        for i in 0.. {
            dst[i] = src[i];
        }
    }
    ```

    ```diff
    -warning: it looks like you're manually copying between slices
    -  --> src/main.rs:2:14
    -   |
    -LL |     for i in 0.. {
    -   |              ^^^ help: try replacing the loop by: `dst[....].clone_from_slice(&src[....])`
    -   |
    ```
* Simplification of the suggestion

  * It prints 0 when `start` or `end` and `offset` are same (from #3323). This PR will use `RangeTo`

changelog: fixed the bugs of `manual_memcpy` and also simplify the suggestion.
2020-05-02 08:11:48 +00:00
Oliver Scherer
bce9fae97a Add 'src/tools/clippy/' from commit 'd2708873ef'
git-subtree-dir: src/tools/clippy
git-subtree-mainline: 06c44816c1
git-subtree-split: d2708873ef
2020-05-02 09:49:00 +02:00
Oliver Scherer
06c44816c1 Delete the clippy submodule 2020-05-02 09:48:46 +02:00
Oliver Scherer
1ef5a93af6 Also build clippy with ./x.py check 2020-05-02 09:46:42 +02:00
Oliver Scherer
a1824505d8 Gate on clippy on CI 2020-05-02 09:46:42 +02:00
Tshepang Lekhonkhobe
3406b53bac
Update src/libserialize/json.rs
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-05-02 08:51:54 +02:00
bors
08dfbfb618 Auto merge of #70170 - eddyb:wf-early-exit, r=nikomatsakis
wf: handle "livelock" checking before reaching `WfPredicates::compute`.

For `wf::obligations`'s "livelock" handling, this PR shouldn't cause any behavioral changes, as the check moved to it should be equivalent to the old one in `WfPredicates::compute`.

However, it fixes #70168 by making *other* users of `WfPredicates::compute` (that is, `wf::predicate_obligations` and `compute`'s own upvar handling) correct for `ty::Infer`, in that they now get a `WellFormed(ty::Infer(_))` obligation instead of silently ignoring the type.

r? @nikomatsakis
2020-05-02 06:51:08 +00:00