Commit graph

99360 commits

Author SHA1 Message Date
Niko Matsakis
68fd593a22 cite reservation impls tracking issue 2019-09-24 21:11:50 +03:00
Ariel Ben-Yehuda
5de1fafb15 improve comment 2019-09-24 21:11:50 +03:00
Ariel Ben-Yehuda
d7eb562080 add test for lattice specialization 2019-09-24 21:11:50 +03:00
Ariel Ben-Yehuda
9196b2d0c8 add error message for case 2019-09-24 21:11:50 +03:00
Ariel Ben-Yehuda
b5665e811b improve comments 2019-09-24 21:11:50 +03:00
Ariel Ben-Yehuda
1ec7ae14fa resolve the rustc_reservation_impl attribute in 1 place 2019-09-24 21:11:50 +03:00
Ariel Ben-Yehuda
9a94ecde04 improve and add tests 2019-09-24 21:11:50 +03:00
Ariel Ben-Yehuda
5d79e8c4c9 reserve impl<T> From<!> for T
this is necessary for never-type stabilization
2019-09-24 21:11:50 +03:00
bors
6ef275e6c3 Auto merge of #63770 - oli-obk:allow_internal_unstable, r=Centril
Stabilize `str::len`, `[T]::len` and `str::as_bytes` as const fn

r? @Centril

cc @RalfJung

This also introduces a scheme for making certain feature gates legal in stabilized const fns
2019-09-24 10:58:41 +00:00
Oliver Scherer
7767e7fb16 Stabilize str::len, [T]::len, is_empty and str::as_bytes as const fn 2019-09-24 12:56:44 +02:00
bors
7fdea7a72a Auto merge of #64316 - alexcrichton:cleanup-shim, r=Mark-Simulacrum
Delete most of `src/bootstrap/bin/rustc.rs`

This commit is an attempt at deleting as much of the `rustc.rs` shim that we have in rustbuild as possible.  This shim predates `RUSTFLAGS` and is as old as rustbuild itself. While useful for quick hacks, it subverts Cargo's knowledge of `rustc`, makes it more difficult to build crates out of rustbuild, and is generally a hazard/code smell due to its architecture.

Additionally since the inception of this script we've added a number of features to Cargo such as profile overrides and `RUSTFLAGS`. This commit attempts to use these features of Cargo as much as possible to delete almost all of `src/bootstrap/bin/rustc.rs`. It's hoped that all new configuration for the Rust compiler can be codified in rustbuild rather than in this shim, allowing Cargo to have more knowledge about what's going on and making it a bit easier to reproduce builds outside of Cargo itself.

This was primarily motivated by some recent work on std-aware Cargo, and is also generally a cleanup of the script itself. This internally resulted in a number of refactorings of rustbuild itself, and the commits should be readable one-at-a-time instead of having to digest them all at once.
2019-09-24 06:41:15 +00:00
Alex Crichton
1a8897fd8a Fix rebase conflicts 2019-09-23 09:35:50 -07:00
Alex Crichton
b923306913 Remove --enable-extended from cross dist builder
Shouldn't have an effect on produced artifacts and otherwise is causing
issues where `-Zsave-analysis` is passed during tests but fails
compilation.
2019-09-23 09:34:44 -07:00
Alex Crichton
008ed188ce rustbuild: Pass -Zsave-analysis during tests
This is needed to ensure that the crates during a normal build are
shared with the crates during testing, otherwise they'll end up hasing
differently and we'll recompile crates like `core` during tests.
2019-09-23 09:34:44 -07:00
Alex Crichton
d8253c166b Tweak libserialize allows 2019-09-23 09:34:44 -07:00
Alex Crichton
ff6a7c77ae No need to remove target-specific RUSTFLAGS
Turns out Cargo favors RUSTFLAGS!
2019-09-23 09:34:44 -07:00
Alex Crichton
7342325dfb Add #![deny(warnings)] to internal tools 2019-09-23 09:34:44 -07:00
Alex Crichton
7b907ded0e Fix compiling libserialize tests
They've got new warnings turned on so they need more `#![allow]`
2019-09-23 09:34:44 -07:00
Alex Crichton
9b34ef643f Stylistic changes 2019-09-23 09:34:44 -07:00
Alex Crichton
160787129b Add some FIXME for future Cargo issues 2019-09-23 09:34:44 -07:00
Alex Crichton
385470b8bb Move handling of -Cprefer-dynamic into builder.rs
This logic is *super* old and can be tweaked and moved into `builder.rs`
2019-09-23 09:34:44 -07:00
Alex Crichton
b3f95f460f Move --cfg bootstrap out of rustc.rs
Instead let's do this via `RUSTFLAGS` in `builder.rs`. Currently
requires a submodule update of `stdarch` to fix a problem with previous
compilers.
2019-09-23 09:34:44 -07:00
Alex Crichton
a816fa185b Move handling of RUSTC_PARALLEL_COMPILER to compile.rs
No longer needs to live in `rustc.rs`
2019-09-23 09:34:44 -07:00
Alex Crichton
3d13f46304 Move handling of {MUSL,WASI}_ROOT to compile.rs
No longer any need for them to live in `rustc.rs`!
2019-09-23 09:34:44 -07:00
Alex Crichton
0b6766d8d7 Allow adding RUSTFLAGS after Builder::cargo
This commit changes the return type of `Builder::cargo` to return a
builder that allows dynamically adding more `RUSTFLAGS` values
after-the-fact. While not used yet, this will later be used to delete
more of `rustc.rs`
2019-09-23 09:34:44 -07:00
Alex Crichton
5cc6eb4082 Move debuginfo level handling to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
5abc4cd01c Remove duplication of RUSTC_DEBUGINFO_MAP in rustc.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
2d6f3fede0 Move handling of codegen-units to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
22699d3139 Move handling of internal lints to build.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
f8b19f2b78 Move handling of some warnings to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
3a648b6580 Move handling of -Dwarnings to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
1bec962f46 bootstrap: Remove need for RUSTC_RPATH variable 2019-09-23 09:34:44 -07:00
Alex Crichton
b82d86ed60 bootstrap: Handle target-specific cargo env vars
This commit ensure that we handle target-specific env vars for RUSTFLAGS
through Cargo as well.
2019-09-23 09:34:44 -07:00
Alex Crichton
ac29809940 bootstrap: Move RUSTC_CRT_STATIC to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
04cb0653a8 bootstrap: Remove need for RUSTC_SAVE_ANALYSIS 2019-09-23 09:34:44 -07:00
Alex Crichton
d63e2def82 bootstrap: Remove usage of RUSTC_TARGET_LINKER
Cargo has a native enviroment variable for this.
2019-09-23 09:34:44 -07:00
Alex Crichton
c36849a542 bootstrap: Move -Zdual-proc-macros to builder.rs 2019-09-23 09:34:44 -07:00
Alex Crichton
812117af53 bootstrap: Move -Zexternal-macro-backtrace to builder
No need for this to be in `rustc.rs`
2019-09-23 09:34:44 -07:00
Alex Crichton
4f35166f80 bootstrap: Move RUSTC_BREAK_ON_ICE out of shim
This is always set, so let's just always set it elsewhere to reduce the
need for our `rustc.rs` shim.
2019-09-23 09:34:44 -07:00
Alex Crichton
557e69b7ca bootstrap: Delete handling of RUSTC_METADATA_SUFFIX
This is already handled by `__CARGO_DEFAULT_LIB_METADATA` so there's no
need to doubly do it.
2019-09-23 09:34:44 -07:00
Alex Crichton
f6c87aba32 bootstrap: Add a helper for managing RUSTFLAGS
Most of `bootstrap/bin/rustc.rs` doesn't need to exist with the advent
of `RUSTFLAGS` (yes this is super old) so this starts by refactoring a
bit to make it easier locally in the `Builder::cargo` method to append
to `RUSTFLAGS` that gets down to rustc.
2019-09-23 09:34:44 -07:00
bors
66bf391c3a Auto merge of #64272 - Mark-Simulacrum:parallel-handler, r=estebank
Refactor librustc_errors::Handler API

This should be reviewed by-commit.

The last commit moves all fields into an inner struct behind a single lock; this is done to prevent possible deadlocks in a multi-threaded compiler, as well as inconsistent state observation.
2019-09-23 06:38:23 +00:00
bors
b6716a1cdd Auto merge of #64695 - Centril:rollup-t1xnl2c, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #64294 (Fix `Stdio::piped` example code and lint)
 - #64670 (Cleanup syntax::ext::build)
 - #64674 (Propagate `types.err` in locals further to avoid spurious knock-down errors)
 - #64676 (Parse assoc type bounds in generic params and provide custom diagnostic)
 - #64677 (remove outdated comment)
 - #64679 (Infer consts more consistently)
 - #64688 (Clarify the "since" tidy check)

Failed merges:

r? @ghost
2019-09-23 02:25:10 +00:00
Mazdak Farrokhzad
55df97c394
Rollup merge of #64688 - rust-lang:clarify-tidy-since, r=alexreg
Clarify the "since" tidy check

r? @pietroalbini

cc @alexreg
2019-09-23 00:36:41 +02:00
Mazdak Farrokhzad
78d715fe14
Rollup merge of #64679 - skinny121:const-infer, r=varkor
Infer consts more consistently

Moved some duplicated logic in `TypeRelation` methods into `super_combined_consts`. Before some `TypeRelation`s like `Lub` wasn't using `replace_if_possible`, meaning some inference types were staying around longer than they should be.

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

r? @varkor
2019-09-23 00:36:40 +02:00
Mazdak Farrokhzad
091b7c3896
Rollup merge of #64677 - tshepang:outdated, r=Mark-Simulacrum
remove outdated comment
2019-09-23 00:36:38 +02:00
Mazdak Farrokhzad
cb449d26ee
Rollup merge of #64676 - estebank:assoc-type-bound-in-generic, r=petrochenkov
Parse assoc type bounds in generic params and provide custom diagnostic

Fix #26271.
2019-09-23 00:36:37 +02:00
Mazdak Farrokhzad
b66e7323e6
Rollup merge of #64674 - estebank:knock-down-the-wall, r=Centril
Propagate `types.err` in locals further to avoid spurious knock-down errors

Fix #33575, fix #44504.
2019-09-23 00:36:36 +02:00
Mazdak Farrokhzad
da58e11d02
Rollup merge of #64670 - Mark-Simulacrum:ext-build-simplify, r=petrochenkov
Cleanup syntax::ext::build

I suspect most of this code could be inlined but I only removed the bits where the inlining didn't really hurt readability (i.e., method call -> function call) or the completely unused code.
2019-09-23 00:36:34 +02:00
Mazdak Farrokhzad
7894bc82d7
Rollup merge of #64294 - wchargin:wchargin-stdio-piped-docs, r=Dylan-DPC
Fix `Stdio::piped` example code and lint

Summary:
Invoking `rev` does not add a trailing newline when none is present in
the input (at least on my Debian). Nearby examples use `echo` rather
than `rev`, which probably explains the source of the discrepancy.

Also, a `mut` qualifier is unused.

Test Plan:
Copy the code block into <https://play.rust-lang.org> with a `fn main`
wrapper, and run it. Note that it compiles and runs cleanly; prior to
this commit, it would emit an `unused_mut` warning and then panic.

wchargin-branch: stdio-piped-docs
2019-09-23 00:36:33 +02:00