Commit graph

86047 commits

Author SHA1 Message Date
Ralf Jung
d97f61f10e avoid shadowing; fix examples 2018-08-30 17:28:21 +02:00
Ralf Jung
e869b81b93 address remaining remarks and add example for dropping unaligned data 2018-08-30 17:07:24 +02:00
Ralf Jung
1ec66fb4b2 apply comments 2018-08-30 16:26:48 +02:00
Ralf Jung
fc63113f1f clarify ZST comment 2018-08-30 16:19:05 +02:00
bors
685fb54317 Auto merge of #53535 - TheDarkula:master, r=oli-obk
Made std::intrinsics::transmute() const fn.

r? @oli-obk

tracking issue: #53605
2018-08-30 14:18:22 +00:00
David Craven
8dfd5c39a1
[RISCV] Add riscv32imc-unknown-none-elf target. 2018-08-30 16:03:37 +02:00
David Craven
cd862a8ff3
[RISCV] Enable C extension. 2018-08-30 16:03:37 +02:00
David Craven
f00a952a3c
[RISCV] Use lld as the default linker. 2018-08-30 16:03:37 +02:00
Pietro Albini
38e2d00152
build-manifest: package docs only for tier 1 platforms 2018-08-30 14:41:01 +02:00
thedarkula
c5cae7935b Made std::intrinsics::transmute() const fn. 2018-08-30 13:06:20 +01:00
bors
0e98621e69 Auto merge of #53757 - oli-obk:validation, r=RalfJung
Use partial but correct vtable layout

r? @RalfJung who suggested to also do this change for nightly, not just beta
2018-08-30 10:41:41 +00:00
Andre Bogus
9dab56c4a2 fix u32 steps_between for 16-bit systems 2018-08-30 12:35:00 +02:00
Ralf Jung
97d693a19a assert sanity in memory 2018-08-30 11:39:40 +02:00
Basile Desloges
251f26298a Add regression test for issue #52060 2018-08-30 11:39:23 +02:00
Otto Rask
6020219993 Rephrase Arc documentation changes regarding clones
Make it clearer that `Arc::clone()` in fact creates a whole new
Arc with the internal pointer pointing to the same location as
the source Arc.
2018-08-30 12:20:41 +03:00
bors
03fe4c79f7 Auto merge of #53733 - nnethercote:avoid-unroll_place, r=nikomatsakis
Avoid calling `unroll_place()` in a common case.

This reduces the execution time for `ucd-check` by 25%.

r? @nikomatsakis
2018-08-30 08:20:20 +00:00
F001
7a083ca25f introduce Guard enum 2018-08-30 12:18:11 +08:00
bors
f1a5373a1b Auto merge of #53685 - alexcrichton:more-keywords, r=varkor
Generalize `async_idents` to all new keywords

This commit generalizes the existing `async_idents` lint to easily encompass
other identifiers that will be keywords in future editions. The new lint is
called `keyword_idents` and the old `async_idents` lint is registered as renamed
to this new lint.

As a proof of concept the `try` keyword was added to this list as it looks to be
listed as a keyword in the 2018 edition only. The `await` keyword was not added
as it's not listed as a keyword yet.

Closes #53077
2018-08-30 03:30:23 +00:00
bors
6244625cb4 Auto merge of #53479 - joshtriplett:underscore-means-unused, r=eddyb
Don't emit "unused extern crate" warnings for `extern crate foo as _;`

When importing a crate and renaming it to an underscore-prefixed name,
suppress "unused extern crate" warnings (but not idiom lints).
2018-08-30 00:07:15 +00:00
Isaac van Bakel
79408c3f32 Added feature attribute to example code in map_or_else doc 2018-08-30 00:51:09 +01:00
Isaac van Bakel
6ff4f7946f Corrected type variable output T -> U in Result::map_or_else 2018-08-29 22:55:21 +01:00
Isaac van Bakel
3eda9058cf Corrected feature status of Result::map_or_else
map_or_else is now correctly labelled unstable and points to the
tracking issue on rust-lang/rust
2018-08-29 22:51:54 +01:00
Isaac van Bakel
71b16d8350 Corrected bad typing in Result::map_or_else doc
The error value now includes the type of the success.
The success value now includes the type of the error.
2018-08-29 22:15:17 +01:00
Ralf Jung
61f0a2b3fd fix some uses of pointer intrinsics with invalid pointers 2018-08-29 23:08:47 +02:00
Guillaume Gomez
3b98571b32 Prevent duplicated impl on foreign types 2018-08-29 23:02:05 +02:00
Pietro Albini
729a87ede9
build-manifest: include extensions marked as unavailable 2018-08-29 23:01:47 +02:00
Pietro Albini
6732ce93da
build-manifest: add instructions to test the tool locally 2018-08-29 23:01:43 +02:00
Guillaume Gomez
e08a84a0c1 Fix UI issues on Implementations on Foreign types 2018-08-29 22:48:37 +02:00
Tobias Bucher
d6d280b7df Don't leak the file descriptor in rand 2018-08-29 22:30:29 +02:00
bors
02cb8f2a4f Auto merge of #53564 - MaloJaffre:vecdeque, r=gnzlbg
Reoptimize VecDeque::append

~Unfortunately, I don't know if these changes fix the unsoundness mentioned in #53529, so it is stil a WIP.
This is also completely untested.
The VecDeque code contains other unsound code: one example : [reading unitialized memory](https://play.rust-lang.org/?gist=6ff47551769af61fd8adc45c44010887&version=nightly&mode=release&edition=2015) (detected by MIRI), so I think this code will need a bigger refactor to make it clearer and safer.~

Note: this is based on #53571.
r? @SimonSapin
Cc: #53529 #52553 @YorickPeterse @jonas-schievink @Pazzaz @shepmaster.
2018-08-29 20:08:16 +00:00
Ralf Jung
098bec82f6 clarify that these are preliminary guarantees 2018-08-29 19:27:20 +02:00
Alex Crichton
003cab25d7 Generalize async_idents to all new keywords
This commit generalizes the existing `async_idents` lint to easily encompass
other identifiers that will be keywords in future editions. The new lint is
called `keyword_idents` and the old `async_idents` lint is registered as renamed
to this new lint.

As a proof of concept the `try` keyword was added to this list as it looks to be
listed as a keyword in the 2018 edition only. The `await` keyword was not added
as it's not listed as a keyword yet.

Closes #53077
2018-08-29 09:34:53 -07:00
Josh Triplett
7cec516ef9 Don't emit "unused extern crate" warnings for extern crate foo as _;
When importing a crate and renaming it to an underscore-prefixed name,
suppress "unused extern crate" warnings (but not idiom lints).
2018-08-29 08:53:54 -07:00
Corey Farwell
e477a13d63 Replace usages of 'bad_style' with 'nonstandard_style'.
`bad_style` is being deprecated in favor of `nonstandard_style`:

- https://github.com/rust-lang/rust/issues/41646
2018-08-29 09:01:35 -05:00
bors
e6b35b0e11 Auto merge of #53758 - oli-obk:clippy, r=kennytm
Update clippy submodule

r? @Manishearth @nrc @kennytm
2018-08-29 13:35:25 +00:00
Tobias Bucher
890d04d00f Fix a comment in src/libcore/slice/mod.rs 2018-08-29 15:23:06 +02:00
Ralf Jung
b0c5dc2cc1 edit docs a little 2018-08-29 14:34:59 +02:00
Isaac van Bakel
5eb679105f Corrected feature name for map_or_else 2018-08-29 13:08:52 +01:00
MaloJaffre
21d2a6c986 Add another assert 2018-08-29 13:42:48 +02:00
Oliver Schneider
b96fef6080 Add more features to the workspace so that all tools pick up on it 2018-08-29 13:17:48 +02:00
Oliver Schneider
5983479a4d Update clippy submodule 2018-08-29 13:15:55 +02:00
bors
ba48850409 Auto merge of #53245 - michaelwoerister:thinlto-rust-llvm, r=alexcrichton
[experimental]: Build LLVM with ThinLTO enabled (2nd attempt)

This is https://github.com/rust-lang/rust/pull/51207 revived. This time, I'd like to run actual performance tests to see if it improves compile times.
2018-08-29 10:55:27 +00:00
Michael Woerister
3cf6f0db1a bootstrap: Link LLVM tools dynamically in order to save time in ThinLTO builds. 2018-08-29 12:27:20 +02:00
Otto Rask
5399616f1d Make Arc cloning mechanics clearer in module docs
Add some more wording to module documentation regarding how
`Arc::clone()` works, as some users have assumed cloning Arc's
to work via dereferencing to inner value as follows:

    use std::sync::Arc;

    let myarc = Arc::new(1);
    let myarcref = myarc.clone();

    assert!(1 == myarcref);

Instead of the actual mechanic of referencing the existing
Arc value:

    use std::sync::Arg;

    let myarc = Arc::new(1);
    let myarcref = myarc.clone();

    assert!(myarcref == &myarc); // not sure if assert could assert this
    in the real world
2018-08-29 13:20:56 +03:00
Matthias Krüger
50057ee3a3 bench: libcore: fix build failure of any.rs benchmark (use "dyn Any") 2018-08-29 12:18:05 +02:00
bors
ca0de63898 Auto merge of #53711 - arielb1:macro-table, r=michaelwoerister
create a valid DefIdTable for proc macro crates

At least the incremental compilation code, and a few other places in the
compiler, require the CrateMetadata for a loaded target crate to contain a
valid DefIdTable for the DefIds in the target.

Previously, the CrateMetadata for a proc macro contained the crate's
"host" DefIdTable, which is of course incompatible with the "target"
DefIdTable, causing ICEs. This creates a DefIdTable that properly refers
to the "proc macro" DefIds.

Fixes #49482.

r? @michaelwoerister

Should we beta-nominate this?
2018-08-29 08:42:20 +00:00
Dylan MacKenzie
c8da321581 Resolve null/ZST conflict correctly (whoops) 2018-08-29 10:10:58 +02:00
Dylan MacKenzie
7e165d90a6 Add a list of known facts re: validity
Also rewrites the reads/writes section to be less reliant on `*const`,
`*mut`
2018-08-29 10:10:58 +02:00
Dylan MacKenzie
95a9088603 You can't make an omlette without breaking a few links 2018-08-29 10:10:58 +02:00
Dylan MacKenzie
3a55c85c33 Incorporate RalfJung's suggestions
This splits "valid" into "valid for reads" and "valid for writes", and
also adds the concept of operation size to validity. Now functions which
operate on sequences state that e.g. pointer args must be "valid for reads of
size x".
2018-08-29 10:10:58 +02:00