Commit Graph

97769 Commits

Author SHA1 Message Date
Ralf Jung
72d9fe8b0e less & 2019-08-17 16:48:08 +02:00
Ralf Jung
f19087dd7c drift leftward 2019-08-17 13:50:04 +02:00
Ralf Jung
689c210b47 fix tests 2019-08-17 13:50:04 +02:00
Ralf Jung
4821663a2b
Full stop
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-08-17 13:42:03 +02:00
Ralf Jung
a9efa738ab invalid_value: also detect transmute-from-0 (seen in the wild) 2019-08-17 11:57:01 +02:00
Ralf Jung
9ab1d5c73a multi-variant enums are tricky 2019-08-17 11:57:01 +02:00
Ralf Jung
0d242b3f90 invalid_value: warn for types with custom valid range 2019-08-17 11:56:58 +02:00
Ralf Jung
25d8a0a351 warn about uninit bools and chars 2019-08-17 11:56:57 +02:00
Ralf Jung
5f7716d11b invalid_value: factor finding dangerous inits into separate function 2019-08-17 11:56:54 +02:00
bors
bdfd698f37 Auto merge of #63640 - Centril:rollup-yeb8o66, r=Centril
Rollup of 10 pull requests

Successful merges:

 - #60492 (Add custom nth_back for Chain)
 - #61780 (Finalize the error type for `try_reserve`)
 - #63495 ( Remove redundant `ty` fields from `mir::Constant` and `hair::pattern::PatternRange`.)
 - #63525 (Make sure that all file loading happens via SourceMap)
 - #63595 (add sparc64-unknown-openbsd target)
 - #63604 (Some update for vxWorks)
 - #63613 (Hygienize use of built-in macros in the standard library)
 - #63632 (A couple of comment fixes.)
 - #63634 (ci: properly set the job name in CPU stats)
 - #63636 (ci: move linkcheck from mingw-2 to mingw-1)

Failed merges:

r? @ghost
2019-08-16 18:35:17 +00:00
Mazdak Farrokhzad
6b0a83862c
Rollup merge of #63636 - pietroalbini:ci-mingw, r=alexcrichton
ci: move linkcheck from mingw-2 to mingw-1

Running UI tests now takes a huge amount of time on mingw builders
(between 40 and 50 minutes), with mingw-1 builders taking even an hour
less to finish than mingw-2. This PR moves linkcheck from mingw-2 to
mingw-1, removing between 10 and 20 minutes of runtime on the -2
builders.

r? @alexcrichton
2019-08-16 18:22:34 +02:00
Mazdak Farrokhzad
4c3f21b47d
Rollup merge of #63634 - pietroalbini:cpu-stats-name, r=alexcrichton
ci: properly set the job name in CPU stats

r? @alexcrichton
2019-08-16 18:22:33 +02:00
Mazdak Farrokhzad
f40a2807a9
Rollup merge of #63632 - vext01:vext01-comment-fixes, r=eddyb
A couple of comment fixes.

This change fixes a couple of comments in the compiler code.

The first change was discussed with @eddyb. This one confused me because I thought only *public* defs were in the table (not so).

The second was a typo I noticed yesterday.

OK to go in?
2019-08-16 18:22:31 +02:00
Mazdak Farrokhzad
cd21715c34
Rollup merge of #63613 - petrochenkov:stdhyg, r=alexcrichton
Hygienize use of built-in macros in the standard library

Same as https://github.com/rust-lang/rust/pull/61629, but for built-in macros.

Closes https://github.com/rust-lang/rust/issues/48781
r? @alexcrichton
2019-08-16 18:22:30 +02:00
Mazdak Farrokhzad
b7311316fe
Rollup merge of #63604 - Wind-River:master, r=alexcrichton
Some update for vxWorks

1. support crt-static
2. change armv7_wrs_vxworks to armv7_wrs_vxworks_eabihf.
3. change vx-cxx to wr-c++,  vx-ar to wr-ar and vx-run to wr-run.
4. code cleanup

r? @alexcrichton
2019-08-16 18:22:28 +02:00
Mazdak Farrokhzad
c53ce3b0cf
Rollup merge of #63595 - semarie:openbsd-sparc64, r=alexcrichton
add sparc64-unknown-openbsd target

on OpenBSD, some architectures relies on libc++ (from LLVM) and some
others on libestdc++ (particular version of libstdc++ from GCC).

sparc64-unknown-openbsd needs libestdc++ and libgcc (as x86_64 some
years ago). Reintroduce the support of them for openbsd, only for
sparc64 arch. Some others architectures on OpenBSD could use them too.
2019-08-16 18:22:26 +02:00
Mazdak Farrokhzad
c83d3c3281
Rollup merge of #63525 - matklad:centraliza-file-loading, r=petrochenkov
Make sure that all file loading happens via SourceMap

That way, callers don't need to repeat "let's add this to sm manually
for tracking dependencies" trick.

It should make it easier to switch to using `FileLoader` for binary
files in the future as well

cc #62948

r? @petrochenkov
2019-08-16 18:22:24 +02:00
Mazdak Farrokhzad
db3bae0170
Rollup merge of #63495 - eddyb:mir-constant-ty, r=oli-obk
Remove redundant `ty` fields from `mir::Constant` and `hair::pattern::PatternRange`.

Fixes #56137.

As a side-effect, associated const literals have the correct type now, which should make things easier for #61041.

r? @oli-obk / @matthewjasper cc @davidtwco @varkor
2019-08-16 18:22:23 +02:00
Mazdak Farrokhzad
aec047edeb
Rollup merge of #61780 - SimonSapin:container-error, r=Amanieu
Finalize the error type for `try_reserve`

See tracking issue comments from https://github.com/rust-lang/rust/issues/48043#issuecomment-500828346.

It is now:

```rust
/// The error type for `try_reserve` methods.
#[derive(Clone, PartialEq, Eq, Debug)]
#[unstable(feature = "try_reserve", reason = "new API", issue="48043")]
pub enum TryReserveError {
    /// Error due to the computed capacity exceeding the collection's maximum
    /// (usually `isize::MAX` bytes).
    CapacityOverflow,

    /// The memory allocator returned an error
    AllocError {
        /// The layout of allocation request that failed
        layout: Layout,

        #[doc(hidden)]
        #[unstable(feature = "container_error_extra", issue = "0", reason = "\
            Enable exposing the allocator’s custom error value \
            if an associated type is added in the future: \
            https://github.com/rust-lang/wg-allocators/issues/23")]
        non_exhaustive: (),
    },
}

#[unstable(feature = "try_reserve", reason = "new API", issue="48043")]
impl From<LayoutErr> for TryReserveError {
    #[inline]
    fn from(_: LayoutErr) -> Self {
        TryReserveError::CapacityOverflow
    }
}
```

Changes:

* A `Layout` is included. Firefox wants to log the size of failed allocations. If this were not part of the return value of e.g. `HashMap::try_reserve`, users would only be able to estimate based on `HashMap::capacity` and assumptions about the allocation strategy of `HashMap`.

* There’s a dummy field that can stay unstable when `try_reserve` and the rest of this enum are stabilized. This forces non-exhaustive matching ~(https://github.com/rust-lang/rust/issues/44109 is not implemented yet for variants)~ and allows adding another field in the future if we want to expose custom error values from the allocator. See https://github.com/rust-lang/wg-allocators/issues/23.

  - If the `Alloc` trait is stabilized without an associated error type and with a zero-size `AllocErr` type, we can simply remove this dummy field.
  - If an associated type is added, we can add a default type parameter to `ContainerError` and a generic field to the `AllocError` variant.

* ~Moved from the `collections` module to the `alloc` module, and replaced `Collection` in the enum name with `Container`. The wold collection implies a multiplicity of items which is not relevant to this type. For example we may want to use this error type in a future `Box::try_new` method.~

  - Renamed to `TryReserveError`, after the methods that involve this type: https://github.com/rust-lang/rust/pull/61780#issuecomment-501392487

* Replaced `Err` with `Error` in the enum and variant names. There is more precedent for this in https://doc.rust-lang.org/std/error/trait.Error.html#implementors, `AllocErr` and `LayoutErr` are the odd ones.

* ~Dropped `Alloc` in the enum name. `ContainerAllocError` with a mouthful, and being in the `alloc` module already provides the same indication.~
2019-08-16 18:22:21 +02:00
Mazdak Farrokhzad
e632dafba2
Rollup merge of #60492 - acrrd:issues/54054_chain, r=SimonSapin
Add custom nth_back for Chain

Implementation of nth_back for Chain.
Part of #54054
2019-08-16 18:22:20 +02:00
Simon Sapin
59a340963f Add the Layout of the failed allocation to TryReserveError::AllocError
… and add a separately-unstable field to force non-exhaustive matching
(`#[non_exhaustive]` is no implemented yet on enum variants)
so that we have the option to later expose the allocator’s error value.

CC https://github.com/rust-lang/wg-allocators/issues/23
2019-08-16 18:08:37 +02:00
Simon Sapin
a92c29b238 Update hashbrown to 0.5.0 2019-08-16 18:08:35 +02:00
Simon Sapin
36b18a1901 Rename CollectionAllocError to TryReserveError 2019-08-16 18:08:06 +02:00
Pietro Albini
9df2dac4e9
ci: move linkcheck from mingw-2 to mingw-1
Running UI tests now takes a huge amount of time on mingw builders
(between 40 and 50 minutes), with mingw-1 builders taking even an hour
less to finish than mingw-2. This PR moves linkcheck from mingw-2 to
mingw-1, removing between 10 and 20 minutes of runtime on the -2
builders.
2019-08-16 17:02:01 +02:00
bors
9a32ad0dd5 Auto merge of #63470 - Mark-Simulacrum:rustc-depdep, r=alexcrichton
Utilize -Zbinary-dep-depinfo in rustbuild

We no longer utilize stamp-file mtimes at all inside rustbuild, and a future PR may be able to entirely eliminate them by eagerly copying to the appropriate sysroot. The only mtime-based dependency tracking left is for documentation because we lie to Cargo about the rustdoc binary, so Cargo does not track changes to the real binary, and codegen-backends because binary-dep-depinfo does not emit that information into the depfiles.

Both of these are fixable in the longer term but this existing patch gives us the following benefits:
 * We no longer delete Cargo target directories manually within a stage. Cross-stage, changes to codegen backends will still clear out target directories. This means that incremental state persists across individual steps (e.g., rebuilding libstd does not clear out librustc incremental state). Fixes #54712.
 * Dependency tracking across steps within a given stage is now fully precise. We will not clear out all codegen backend dependencies due to changes in librustc_driver, for example, only deleting the final librustc_codegen_llvm crate. Fixes #54008, fixes #50481.
 * We properly track codegen backends as a dependency (equivalent to rustc) across changes. Fixes #53284, and fixes #52719.
 * Cross-stage dependency tracking of crates is also much more accurate and reliable. Most likely fixes #49979 (but no reproduction steps in that issue). Fixes #59105.

cc #63012
2019-08-16 14:41:13 +00:00
Pietro Albini
d50a9b189e
ci: properly set the job name in CPU stats 2019-08-16 15:36:55 +02:00
Eduard-Mihai Burtescu
45980e809f bless you nll 2019-08-16 15:54:11 +03:00
Eduard-Mihai Burtescu
2ff337a8e2 rustc_mir: use the right type for associated const literals. 2019-08-16 15:20:27 +03:00
Eduard-Mihai Burtescu
9107ec1acd rustc_mir: add sanity asserts for the types of ty::Consts. 2019-08-16 15:20:27 +03:00
Eduard-Mihai Burtescu
b565ece5d8 Remove redundant ty fields from mir::Constant and hair::pattern::PatternRange. 2019-08-16 15:20:27 +03:00
bors
9dd5c19199 Auto merge of #63596 - lzutao:update-miri, r=RalfJung
submodules: Update miri

Closes #63581
r? @RalfJung
2019-08-16 10:42:02 +00:00
Edd Barrett
8e4d0ac551 CrateStore comment fix.
with -> which , and re-wrap line.
2019-08-16 10:16:40 +01:00
Edd Barrett
170acedbd0 Fix a comment for the def_path_table.
The definition path table contains *all* definitions, not just public
definitions.
2019-08-16 10:14:15 +01:00
bors
5a6d801bf9 Auto merge of #63627 - Centril:rollup-v8i7x5i, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #62593 (Group all ABI tests.)
 - #63173 (Use libunwind from llvm-project submodule for musl targets)
 - #63535 (Continue refactoring resolve and hygiene)
 - #63539 (Suggest Rust 2018 on `<expr>.await` with no such field)
 - #63584 (libcore: more cleanups using `#![feature(associated_type_bounds)]`)
 - #63612 (Do not suggest `try_into` for base types inside of macro expansions)
 - #63615 (Fix typo in DoubleEndedIterator::nth_back doc)

Failed merges:

r? @ghost
2019-08-16 06:53:13 +00:00
Mazdak Farrokhzad
0bd3a85255
Rollup merge of #63615 - jens1o:patch-1, r=jonas-schievink
Fix typo in DoubleEndedIterator::nth_back doc
2019-08-16 08:26:42 +02:00
Mazdak Farrokhzad
8958e50618
Rollup merge of #63612 - estebank:macro-sugg-try-into, r=Centril
Do not suggest `try_into` for base types inside of macro expansions
2019-08-16 08:26:40 +02:00
Mazdak Farrokhzad
7dbd98fa9a
Rollup merge of #63584 - Centril:cleanup-core-with-more-atb, r=alexreg
libcore: more cleanups using `#![feature(associated_type_bounds)]`

Turns out this was indeed a bootstrapping issue from a test with `./x.py check` locally after https://github.com/rust-lang/rust/pull/63534 merged.

Closes https://github.com/rust-lang/rust/issues/63393

r? @alexreg
cc @iluuu1994
cc https://github.com/rust-lang/rust/issues/52662
2019-08-16 08:26:39 +02:00
Mazdak Farrokhzad
d9a429a1eb
Rollup merge of #63539 - Centril:2015.await, r=oli-obk
Suggest Rust 2018 on `<expr>.await` with no such field

When type checking a field projection (`fn check_field`) to `<expr>.await` where `<expr>: τ` and `τ` is not a primitive type, suggest switching to Rust 2018. E.g.

```
error[E0609]: no field `await` on type `std::pin::Pin<&mut dyn std::future::Future<Output = ()>>`
  --> $DIR/suggest-switching-edition-on-await.rs:31:7
   |
LL |     x.await;
   |       ^^^^^ unknown field
   |
   = note: to `.await` a `Future`, switch to Rust 2018
   = help: set `edition = "2018"` in `Cargo.toml`
   = note: for more on editions, read https://doc.rust-lang.org/edition-guide
```

Fixes https://github.com/rust-lang/rust/issues/63533

This PR also performs some preparatory cleanups in `fn check_field`; the last 2 commits are where the suggestion is introduced and tested respectively.

r? @varkor
2019-08-16 08:26:38 +02:00
Mazdak Farrokhzad
6e9e6ea39b
Rollup merge of #63535 - petrochenkov:expndata, r=matthewjasper
Continue refactoring resolve and hygiene

The general goal is addressing FIXMEs from the previous PRs.

Merging similar data structures (+ prerequisites for such merging), accounting for the fact that all `ExpnId`s have associated data in `HygieneData` now (less `Option`s).

Also, some renaming.
This should be the last renaming session in this area, I think.

r? @matthewjasper
2019-08-16 08:26:36 +02:00
Mazdak Farrokhzad
32c1005652
Rollup merge of #63173 - malbarbo:musl-libunwind, r=alexcrichton
Use libunwind from llvm-project submodule for musl targets

This avoid downloading libunwind by using the scheme introduced in https://github.com/rust-lang/rust/pull/61544
2019-08-16 08:26:34 +02:00
Mazdak Farrokhzad
100a02a0d8
Rollup merge of #62593 - kper:cleanup_abi, r=Centril
Group all ABI tests.

r? @eddyb

Closes #62401
2019-08-16 08:26:33 +02:00
Jens Hausdorf
e046a7af49
Fix typo in DoubleEndedIterator::nth_back doc 2019-08-15 22:16:59 +02:00
Vadim Petrochenkov
263e3c5950 Remove __rust_unstable_column 2019-08-15 22:58:57 +03:00
Vadim Petrochenkov
a9ecfd7295 Hygienize use of built-in macros in the standard library 2019-08-15 22:58:50 +03:00
Esteban Küber
fbf1efb949 Do not suggest try_into for base types inside of macro expansions 2019-08-15 11:46:52 -07:00
Vadim Petrochenkov
c76277340e resolve: ParentScope::default -> ParentScope::module 2019-08-15 20:47:15 +03:00
Vadim Petrochenkov
136db2235a hygiene: ExpnInfo -> ExpnData
For naming consistency with everything else in this area
2019-08-15 20:41:45 +03:00
Vadim Petrochenkov
650f19aeae hygiene: Merge a tiny bit of the "share expansion definition data" PR 2019-08-15 20:41:45 +03:00
Vadim Petrochenkov
74190a5e1c syntax_pos: Remove the duplicate global edition
It was introduced to avoid going through `hygiene_data`, but now it's read only once, when `ParseSess` is created, so going through a lock is ok.
2019-08-15 20:41:45 +03:00
Vadim Petrochenkov
1a447738b8 hygiene: Merge ExpnInfo and InternalExpnData 2019-08-15 20:41:45 +03:00