119546 Commits

Author SHA1 Message Date
Dylan DPC
aa89e91de6
Rollup merge of #71574 - jplatte:patch-2, r=petrochenkov
proc_macro: Fix since attributes for new Span methods

Added in #69041, took a while to merge so the since attributes went out of date.
2020-04-26 13:42:33 +02:00
Dylan DPC
4a9b9765bb
Rollup merge of #71571 - jplatte:patch-1, r=jonas-schievink
Fix since attribute for nonzero_bitor impl's

Added in #69813, took a while to merge so the since attributes went out of date.
2020-04-26 13:42:32 +02:00
Dylan DPC
3b3f7bd020
Rollup merge of #71562 - matthiaskrgr:cl7ppy, r=Dylan-DPC
fix more clippy warnings

clippy::{redundant_pattern_matching, clone_on_copy, iter_cloned_collect, option_as_ref_deref, match_ref_pats}

r? @Dylan-DPC
2020-04-26 13:42:31 +02:00
Dylan DPC
96c1bb571a
Rollup merge of #71490 - petrochenkov:passcheck2, r=davidtwco
Cleanup and document `-C relocation-model`

As the title says, this is mostly a refactoring and documentation.

One potentially observable change here is that `-C relocation-model=default` now takes the default from the Rust target, rather than from the underlying LLVM target. In other words, `-C relocation-model=default` is now equivalent to not specifying the relocation model on command line at all.
Apparently no one used that option because it has other bugs as well, e.g. PIC `default` wasn't treated as PIC in some places.
2020-04-26 13:42:29 +02:00
Ujjwal Sharma
3a6fa99f9e
linkchecker: fix typo in main.rs 2020-04-26 17:09:15 +05:30
bors
b7c802b5e3 Auto merge of #5533 - phansch:rustup001, r=matthiaskrgr
rustup to https://github.com/rust-lang/rust/pull/70043

changelog: none
2020-04-26 11:26:15 +00:00
Steven Fackler
4bad27a467 Fix stragglers 2020-04-26 04:24:16 -07:00
Steven Fackler
07443f17d4 Update name 2020-04-26 04:24:16 -07:00
Steven Fackler
15262ec6be Add Read/Write::can_read/write_vectored
When working with an arbitrary reader or writer, code that uses vectored
operations may end up being slower than code that copies into a single
buffer when the underlying reader or writer doesn't actually support
vectored operations. These new methods allow you to ask the reader or
witer up front if vectored operations are efficiently supported.

Currently, you have to use some heuristics to guess by e.g. checking if
the read or write only accessed the first buffer. Hyper is one concrete
example of a library that has to do this dynamically:
0eaf304644/src/proto/h1/io.rs (L582-L594)
2020-04-26 04:23:39 -07:00
Tomasz Miąsko
f22dd92b00 Update backtrace-sys crate to 0.1.36
* Fix an off-by-one error in backtrace-sys
* Only explicitly configure debuginfo in rustc-dep-of-std
2020-04-26 13:19:18 +02:00
Bastian Kauschke
cf61a56289 check that AsRef and AsMut are inlined 2020-04-26 12:47:15 +02:00
Jonas Platte
35eae4bad2
Fix stable(since) attribute for BTreeMap::remove_entry 2020-04-26 12:31:05 +02:00
Jonas Platte
b6817890d3
proc_macro: Fix since attributes for new Span methods 2020-04-26 12:08:42 +02:00
Bastian Kauschke
7d6aef65d8 test iterator chain type length blowup 2020-04-26 11:52:12 +02:00
ThinkChaos
4ea83bfb3d Use Cell::take in a couple places 2020-04-26 11:50:53 +02:00
ThinkChaos
f121f094fe Add RefCell::take
In the same vein as `Cell::take` and `Option::take`.
2020-04-26 11:43:34 +02:00
Jonas Platte
4589bd57e9
Fix since attribute for nonzero_bitor impl's 2020-04-26 11:28:44 +02:00
Vadim Petrochenkov
45fbe8f21c tests: Remove unnecessary -C relocation-model=dynamic-no-pics
The referenced `sanitizer-address/Makefile` no longer exists, so perhaps these options are no longer necessary as well.
Even if they are still necessary, they should use `-C relocation-model=static` instead.
2020-04-26 11:37:16 +03:00
Vadim Petrochenkov
a4199b45c2 rustc-book: Document -C relocation-model 2020-04-26 11:37:16 +03:00
Vadim Petrochenkov
76d85de223 codegen_llvm: Simplify logic for relaxing PIC into PIE 2020-04-26 11:18:48 +03:00
Vadim Petrochenkov
0452725583 codegen_llvm: RelocMode -> RelocModel 2020-04-26 11:18:48 +03:00
Vadim Petrochenkov
fb91e5ed2f rustc_target: Stop using "string typing" for relocation models
Introduce `enum RelocModel` instead.
2020-04-26 11:18:47 +03:00
Philipp Hansch
5b1622b324
rustup to https://github.com/rust-lang/rust/pull/70043 2020-04-26 10:12:14 +02:00
bors
ec1f28f961 Auto merge of #71495 - Amanieu:update_stdarch, r=sfackler
Update stdarch submodule

Includes :
- https://github.com/rust-lang/stdarch/pull/849 which stabilizes the remaining x86 features for feature detection.
- https://github.com/rust-lang/stdarch/pull/850 which fixes building stdarch on FreeBSD.

Fixes #71473
2020-04-26 07:41:28 +00:00
bors
019ab732ce Auto merge of #71434 - pietroalbini:shrink-gha-config, r=Mark-Simulacrum
Shrink GHA configuration

This shrinks our GHA configuration by [taking advantage of two new features GitHub just announced](https://github.blog/2020-04-22-github-actions-community-momentum-enterprise-capabilities-and-developer-improvements/):

* [Default values for `steps[].shell`](https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaultsrun)
* [Being able to include values in a matrix without having to duplicate the job names.](https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-including-new-combinations)

The configuration should be functionally equivalent to the previous one.

r? @Mark-Simulacrum
2020-04-26 04:30:24 +00:00
Samrat Man Singh
91462db9f1 [miri] Throw UB if target size and data size don't match
If an extern C function is defined as

```
extern "C" {
    fn malloc(size: u32) -> *mut std::ffi::c_void;
}
```

on a 64-bit machine(ie. pointer sizes don't match), throw an undefined
behaviour.
2020-04-26 08:58:22 +05:30
YI
eb8a7031ef use defkind.descr in wrong namespace resolve failure 2020-04-26 10:28:33 +08:00
bors
b592b37fa3 Auto merge of #71566 - Dylan-DPC:rollup-9xoz6fg, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #70043 (Add all remaining `DefKind`s.)
 - #71140 ([breaking change] Disallow statics initializing themselves)
 - #71392 (Don't hold the predecessor cache lock longer than necessary)
 - #71541 (Add regression test for #26376)
 - #71554 (Replace thread_local with generator resume arguments in box_region.)

Failed merges:

r? @ghost
2020-04-26 01:12:20 +00:00
Matthias Krüger
8862f829bb fix more clippy warnings
clippy::{redundant_pattern_matching, clone_on_copy, iter_cloned_collect, option_as_ref_deref, match_ref_pats}
2020-04-26 02:24:01 +02:00
Mark Rousskov
5a5fa39909 Handle build completion message from Cargo
This was introduced in the recent bump to 1.43 bootstrap cargo
2020-04-25 19:14:58 -04:00
Dylan DPC
f70c9dba22
Rollup merge of #71554 - gizmondo:68922, r=jonas-schievink
Replace thread_local with generator resume arguments in box_region.

Fixes #68922.

Continuation of #70622. Added a short doc, hope it makes sense.

r? @jonas-schievink
2020-04-26 01:00:20 +02:00
Dylan DPC
fde472792f
Rollup merge of #71541 - wesleywiser:issue_26376, r=Dylan-DPC
Add regression test for #26376

Closes #26376
2020-04-26 01:00:19 +02:00
Dylan DPC
98a43caf9b
Rollup merge of #71392 - ecstatic-morse:body-predecessor-cache-arc, r=nikomatsakis
Don't hold the predecessor cache lock longer than necessary

#71044 returns a `LockGuard` with the predecessor cache to callers of `Body::predecessors`. As a result, the lock around the predecessor cache could be held for an arbitrarily long time. This PR uses reference counting for ownership of the predecessor cache, meaning the lock is only ever held within `PredecessorCache::compute`. Checking this API for potential sources of deadlock is much easier now, since we no longer have to consider its consumers, only its internals.

This required removing `predecessors_for`, since there is no equivalent to `LockGuard::map` for `Arc` and `Rc`. I believe this could be emulated with `owning_ref::{Arc,Rc}Ref`, but I don't think it's necessary. Also, we continue to return an opaque type from `Body::predecessors` with the lifetime of the `Body`, not `'static`.

This depends on #71044. Only the last two commits are new.

r? @nikomatsakis
2020-04-26 01:00:17 +02:00
Dylan DPC
b964451a72
Rollup merge of #71140 - oli-obk:static_cycle, r=RalfJung
[breaking change] Disallow statics initializing themselves

fixes #71078

Self-initialization is unsound because it breaks privacy assumptions that unsafe code can make. In

```rust
pub mod foo {
    #[derive(Debug, Copy, Clone)]
    pub struct Foo {
        x: (),
    }
}

pub static FOO: foo::Foo = FOO;
```

unsafe could could expect that ony functions inside the `foo` module were able to create a value of type `Foo`.
2020-04-26 01:00:15 +02:00
Dylan DPC
e51cbc8376
Rollup merge of #70043 - mark-i-m:def-kind-more, r=eddyb
Add all remaining `DefKind`s.

r? @eddyb or @Centril

~~I'm not sure if this is what you were thinking of. There are also a few places where I'm not sure what the correct choice is because I don't fully understand the meaning of some variants.~~

~~In general, it feels a bit odd to add some of these as `DefKind`s (e.g. `Arm`) because they don't feel like definitions. Are there things that it makes sense not to add?~~
2020-04-26 01:00:13 +02:00
bors
07dd5fada9 Auto merge of #5511 - alex-700:fix-redundant-pattern-matching, r=flip1995
Fix redundant_pattern_matching lint

fixes #5504

changelog: Fix suggestion in `redundant_pattern_matching` for macros.
2020-04-25 21:41:56 +00:00
bors
44eb953adc Auto merge of #5525 - flip1995:issue_1654, r=phansch
Don't trigger while_let_on_iterator when the iterator is recreated every iteration

r? @phansch

Fixes #1654

changelog: Fix false positive in [`while_let_on_iterator`]
2020-04-25 21:29:03 +00:00
bors
a76bfd46c5 Auto merge of #5530 - ebroto:issue_5524, r=flip1995
map_clone: avoid suggesting `copied()` for &mut

changelog: map_clone: avoid suggesting `copied()` for &mut

Fixes #5524
2020-04-25 21:16:06 +00:00
Eduardo Broto
806d973adc map_clone: avoid suggesting copied() for &mut 2020-04-25 22:52:19 +02:00
Aleksei Latyshev
69fe6b4c98
fix redundant_pattern_matching lint
- now it gives correct suggestion in case of macros
- better tests
- remove a couple of non-relevant tests
2020-04-25 23:51:30 +03:00
Dillon Amburgey
7ac093fda9 Detect git version before attempting to use --progress
Otherwise each update is run twice and errors are printed
2020-04-25 16:30:48 -04:00
bors
77c23b7089 Auto merge of #5527 - flip1995:rollup-pr2htfd, r=flip1995
Rollup of 5 pull requests

Successful merges:

 - #5408 (Downgrade match_bool to pedantic)
 - #5505 (Avoid running cargo+internal lints when not enabled)
 - #5516 (Add a note to the beta sections of release.md)
 - #5517 (Deploy time travel)
 - #5523 (Add lifetime test case for `new_ret_no_self`)

Failed merges:

r? @ghost

changelog: rollup
2020-04-25 19:38:04 +00:00
Philipp Krones
9b882bab26
Rollup merge of #5523 - phansch:add-new-ret-no-self-testcase, r=flip1995
Add lifetime test case for `new_ret_no_self`

cc https://github.com/rust-lang/rust-clippy/issues/734#issuecomment-619344352

changelog: none
2020-04-25 21:06:31 +02:00
Philipp Krones
abbc618d00
Rollup merge of #5517 - flip1995:deploy_time_travel, r=Manishearth
Deploy time travel

Since not only commits to the master branch, but also tags and the beta branch are deployed, we have to be cautious which version of the deploy script is used. GHA always runs the workflow that is commited on the `ref`, that gets tested. For tagged commits. this is 6 weeks outdated workflows/scripts. To prevent this, this workflow first checks out the deploy.sh script, the website templates and all python scripts generating files for the website.

changelog: none
2020-04-25 21:06:30 +02:00
Philipp Krones
e39550e45e
Rollup merge of #5516 - flip1995:doc_release, r=phansch
Add a note to the beta sections of release.md

changelog: none
2020-04-25 21:06:28 +02:00
Philipp Krones
a33d64a4c3
Rollup merge of #5505 - flip1995:avoid_running_lints, r=matthiaskrgr
Avoid running cargo+internal lints when not enabled

r? @matthiaskrgr

changelog: none
2020-04-25 21:06:27 +02:00
Philipp Krones
e1d13c34b0
Rollup merge of #5408 - dtolnay:matchbool, r=flip1995
Downgrade match_bool to pedantic

I don't quite buy the justification in https://rust-lang.github.io/rust-clippy/. The justification is:

> It makes the code less readable.

In the Rust codebases I've worked in, I have found people were comfortable using `match bool` (selectively) to make code more readable. For example, initializing struct fields is a place where the indentation of `match` can work better than the indentation of `if`:

```rust
let _ = Struct {
    v: {
        ...
    },
    w: match doing_w {
        true => ...,
        false => ...,
    },
    x: Nested {
        c: ...,
        b: ...,
        a: ...,
    },
    y: if doing_y {
        ...
    } else { // :(
        ...
    },
    z: ...,
};
```

Or sometimes people prefer something a bit less pithy than `if` when the meaning of the bool doesn't read off clearly from the condition:

```rust
if set.insert(...) {
    ... // ???
} else {
    ...
}

match set.insert(...) {
    // set.insert returns false if already present
    false => ...,
    true => ...,
}
```

Or `match` can be a better fit when the bool is playing the role more of a value than a branch condition:

```rust
impl ErrorCodes {
    pub fn from(b: bool) -> Self {
        match b {
            true => ErrorCodes::Yes,
            false => ErrorCodes::No,
        }
    }
}
```

And then there's plain old it's-1-line-shorter, which means we get 25% more content on a screen when stacking a sequence of conditions:

```rust
let old_noun = match old_binding.is_import() {
    true => "import",
    false => "definition",
};
let new_participle = match new_binding.is_import() {
    true => "imported",
    false => "defined",
};
```

Bottom line is I think this lint fits the bill better as a pedantic lint; I don't think linting on this by default is justified.

changelog: Remove match_bool from default set of enabled lints
2020-04-25 21:06:26 +02:00
flip1995
a1826222cf
Add tests for #1654 2020-04-25 20:51:23 +02:00
flip1995
eadd9d24dc
Don't trigger while_let_on_iterator when the iterator is recreated every iteration 2020-04-25 20:51:02 +02:00
bors
6ffe725bbc Auto merge of #5520 - matthiaskrgr:rustup_44, r=flip1995,phansch
rustup https://github.com/rust-lang/rust/pull/71215/

There's currently an crash in `ui/new_without_default.rs` that I need to figure out how to avoid.

changelog: none
2020-04-25 18:18:32 +00:00