Commit Graph

110975 Commits

Author SHA1 Message Date
Ralf Jung
c427438d24 sync alloc dump and pointer printing 2020-04-26 15:58:53 +02:00
Tshepang Lekhonkhobe
e82056aedc remove obsolete comment 2020-04-26 15:57:38 +02:00
Elichai Turkel
0228ca0c7d
Add success and fail tests for into_boxed_slice 2020-04-26 15:42:43 +03:00
Elichai Turkel
6f31f05aaf
Add a function to turn Box<T> into Box<[T]> (into_boxed_slice) 2020-04-26 15:42:39 +03:00
Matthias Krüger
3d514f4418 submodules: update clippy from 891e1a85 to b7c802b5
Changes:
````
rustup to https://github.com/rust-lang/rust/pull/70043
map_clone: avoid suggesting `copied()` for &mut
fix redundant_pattern_matching lint
Add tests for #1654
Don't trigger while_let_on_iterator when the iterator is recreated every iteration
Update issue_2356.stderr reference file
Update while_let_on_iterator tests
Fix while_let_on_iterator suggestion and make it MachineApplicable
Add lifetime test case for `new_ret_no_self`
rustup https://github.com/rust-lang/rust/pull/71215/
Downgrade match_bool to pedantic
Run fetch before testing if master contains beta
The beta branch update should not require a force push
Add a note to the beta sections of release.md
Remove apt-get upgrade again
Always use the deploy script and templates of the master branch
README: fix lit count line
clippy_dev: make it fatal when the regex for updating lint count does not match
`predecessors_for` will be removed soon
Rustup "Remove `BodyAndCache`"
Only run (late) internal lints, when they are warn/deny/forbid
Only run cargo lints, when they are warn/deny/forbid
span_lint_and_note now takes an Option<Span> for the note_span instead of just a span
Make lint also capture blocks and closures, adjust language to mention other mutex types
don't test the code in the lint docs
Switch to matching against full paths instead of just the last element of the path
Lint for holding locks across await points
Also mention `--fix` for nightly users
fix crash on issue-69020-assoc-const-arith-overflow.rs
Address review comments
remark fixes
Update CHANGELOG.md for Rust 1.43 and 1.44
update stderr file
util/fetch_prs_between.sh: Add Markdown formatted Link
factor ifs into function, add differing mutex test
Update the changelog update documentation
Apply suggestions from PR review
update span_lint_and_help call to six args
test for mutex eq, add another test case
use if chain
cargo dev fmt
fix map import to rustc_middle
dev update_lints
fix internal clippy warnings
change visitor name to OppVisitor
use Visitor api to find Mutex::lock calls
add note about update-all-refs script, revert redundant pat to master
move closures to seperate fns, remove known problems
use span_lint_and_help, cargo dev fmt
creating suggestion
progress work on suggestion for auto fix
Implement unsafe_derive_deserialize lint
Update empty_enum.stderr
Formatting and naming
Formatting and naming
Cleanup: `node_id` -> `hir_id`
Fix issue #2907.
Don't trigger toplevel_ref_arg for `for` loops
Cleanup: future_not_send: use `return_ty` method
Remove badge FIXME from Cargo.toml
Change note_span argument for span_lint_and_note.
Add an Option<Span> argument to span_lint_and_help.
Fixes internal lint warning in code base.
Implement collapsible_span_lint_calls lint.
````

Fixes #71453
2020-04-26 14:33:38 +02:00
Steven Fackler
5d8fe1c4e6 Suppress file length check temporarily
Will clean up in a separate PR
2020-04-26 04:48:51 -07:00
Dylan DPC
aa9dc69522
Rollup merge of #71575 - jplatte:patch-4, r=Mark-Simulacrum
Fix stable(since) attribute for BTreeMap::remove_entry

Stabilized in #70712.

Maybe checking that the since attributes are added correctly should be automated through tidy? This is the third PR I'm opening that fixes a stable(since) attribute for something meant to be stabilized in 1.43 / 1.44 initially but then only stabilized in 1.45. (the other two are #71571, #71574)
2020-04-26 13:42:35 +02:00
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
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
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
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
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
0862458dad Auto merge of #71556 - Dylan-DPC:rollup-9ll4shr, r=Dylan-DPC
Rollup of 7 pull requests

Successful merges:

 - #69041 (proc_macro: Stabilize `Span::resolved_at` and `Span::located_at`)
 - #69813 (Implement BitOr and BitOrAssign for the NonZero integer types)
 - #70712 (stabilize BTreeMap::remove_entry)
 - #71168 (Deprecate `{Box,Rc,Arc}::into_raw_non_null`)
 - #71544 (Replace filter_map().next() calls with find_map())
 - #71545 (Fix comment in docstring example for Error::kind)
 - #71548 (Add missing Send and Sync impls for linked list Cursor and CursorMut.)

Failed merges:

r? @ghost
2020-04-25 17:49:00 +00:00
Dylan DPC
82642d708f
Rollup merge of #71548 - crlf0710:cursor_bounds, r=Amanieu
Add missing Send and Sync impls for linked list Cursor and CursorMut.

Someone pointed out these to me, and i think it's indeed reasonable to add those impl.

r? @Amanieu
2020-04-25 18:30:34 +02:00
Dylan DPC
ecef6c7c80
Rollup merge of #71545 - Askaholic:patch-1, r=jonas-schievink
Fix comment in docstring example for Error::kind

Saw it while reading the docs.
2020-04-25 18:30:32 +02:00
Dylan DPC
9709785d12
Rollup merge of #71544 - cuviper:filter_map_next, r=Mark-Simulacrum
Replace filter_map().next() calls with find_map()

These are semantically the same, but `find_map()` is more concise.
2020-04-25 18:30:30 +02:00
Dylan DPC
939c93208c
Rollup merge of #71168 - SimonSapin:into_raw_non_null, r=Amanieu
Deprecate `{Box,Rc,Arc}::into_raw_non_null`

Per ongoing FCP at https://github.com/rust-lang/rust/issues/47336#issuecomment-586589016
See also https://github.com/rust-lang/rust/issues/47336#issuecomment-614054164
2020-04-25 18:30:29 +02:00
Dylan DPC
29fd528114
Rollup merge of #70712 - :stabilize-remove-entry, r=Amanieu
stabilize BTreeMap::remove_entry

This PR stabilizes `BTreeMap::remove_entry` as implemented in https://github.com/rust-lang/rust/pull/68378.

Closes https://github.com/rust-lang/rust/issues/66714
2020-04-25 18:30:27 +02:00
Dylan DPC
b6e03c464a
Rollup merge of #69813 - thomcc:nonzero-bitor, r=Amanieu
Implement BitOr and BitOrAssign for the NonZero integer types

This provides overloaded operators for `NonZero$Int | NonZero$Int`, `NonZero$Int | $Int`, and `$Int | NonZero$Int`. It also provides `BitOrAssign` where `self` is `NonZero$Int`, for symmetry.

It's a pretty small conceptual addition, but is good becasue but avoids a case where the operation is obviously sound, but you'd otherwise need unsafe to do it.

In crates trying to minimize `unsafe` usage, this is unfortunate and makes working with `NonZero` types often not worth it, even if the operations you're doing are clearly sound.

I've marked these as stable as I've been told in the past that trait impls are automatically stable. I'm happy to change it to unstable if this wasn't correct information.

I'm not entirely confident what version I should have put down, so I followed https://www.whatrustisit.com. Hopefully it's correct for this.

Apologies in advance if this has come up before, but I couldn't find it.
2020-04-25 18:30:24 +02:00
Dylan DPC
7b7c63cb77
Rollup merge of #69041 - petrochenkov:stabmodispan, r=Amanieu
proc_macro: Stabilize `Span::resolved_at` and `Span::located_at`

Introduced in https://github.com/rust-lang/rust/pull/47149.
Part of https://github.com/rust-lang/rust/issues/54725.

Motivation: https://github.com/rust-lang/rust/pull/68716#issuecomment-583918919.
Identifiers in proc macros may want to inherit span locations for diagnostics from one tokens (e.g. some tokens from the macro input), but resolve those identifiers from some different location (e.g. from the macro's definition site).
This becomes especially important when multiple resolution locations become available with stabilization of [`Span::mixed_site`](https://github.com/rust-lang/rust/pull/68716).

Why I think this is the right API for setting span's location and hygiene - https://github.com/rust-lang/rust/pull/69041#issuecomment-586644778.

r? @dtolnay
2020-04-25 18:30:22 +02:00
Alex Aktsipetrov
357f4ce431 Replace thread_local with generator resume arguments in box_region. 2020-04-25 18:19:27 +02:00
Mark Rousskov
97983af76a Remove support for self-opening
This was only used for linkage test cases, which is already covered by
the run-make-fulldeps/symbol-visibility test -- which fairly extensively makes
sure we're correctly exporting the right symbols at the right visibility (for
various Rust crate types).
2020-04-25 10:55:20 -04:00
Charles Lew
78a034d168
Use the correct bound for Cursor Send
Co-Authored-By: Amanieu d'Antras <amanieu@gmail.com>
2020-04-25 22:48:16 +08:00