#44493 add structure for inferred_outlives_of
#44493
- add placeholder for the final implementation of inferred_outlives_of
- add some placeholder tests
While the `config.toml.example` comments say "we automatically check the
version by default," we actually didn't. That check was badly out of
date, only allowing 3.5, 3.6, or 3.7. This it now updated to the new
3.9 minimum requirement, and truly enabled by default.
The necessary changes were only in upstream LLVM in 4.0, but they were
for a while backported to Rust LLVM. Now that Rust LLVM is also 4.0, we
can make the test conditional here more accurate.
rustbuild: Allow setting rls/rustfmt to "broken"
This commit enables configuring the RLS/rustfmt tools to the "broken" state and
actually get it past CI. The main changes here were to update all dist-related
code to handle the situation where the RLS isn't available. This in turn
involved a homegrown preprocessor-like-function to edit the configuration files
we pass to the various combined installer tools.
This commit enables configuring the RLS/rustfmt tools to the "broken" state and
actually get it past CI. The main changes here were to update all dist-related
code to handle the situation where the RLS isn't available. This in turn
involved a homegrown preprocessor-like-function to edit the configuration files
we pass to the various combined installer tools.
rustc: Handle #[inline(always)] at -O0
This commit updates the handling of `#[inline(always)]` functions at -O0 to
ensure that it's always inlined regardless of the number of codegen units used.
Closes#45201
Looks like Travis [has announced][blog] that our current `xcode8.2` image is
being deprecated and the recommended Xcode 7 image is `xcode7.3`. This updates
us to these ahead of time to make sure we can shake out any bugs, if any.
[blog]: https://blog.travis-ci.com/2017-10-16-a-new-default-os-x-image-is-coming
Add "Buidling on *nix" sub-header
Since there is a "Build on Windows" section, a simple sub-header here would help Windows users to know they need to keep reading.
Check namespaces when resolving associated items in typeck
Closes#35600Closes#44247
Fixes a "cannot move a value of type..." error in the same case as #44247 but with the associated items swapped.
rustc: Remove `used_mut_nodes` from `TyCtxt`
This updates the borrowck query to return a result, and this result is then used
to incrementally check for unused mutable nodes given sets of all the used
mutable nodes.
Closes#42384
While an inner attribute here is in fact erroneous, that error ("inner
attribute is not permitted in this context") successfully gets set earlier;
this further admonition is nonsensical.
Resolves#45296.
rustbuild: Support specifying archiver and linker explicitly
With this patch `x.py test` passes without toolchain being in `PATH` if `cc`, `cxx`, `ar`, `linker` and `gdb` are specified in `config.toml` (except for a few `run-make` tests using `nm`).
Fixes https://github.com/rust-lang/rust/issues/41821
r? @Mark-Simulacrum
rustc: Fix some ThinLTO internalization
First the `addPreservedGUID` function forgot to take care of "alias" summaries.
I'm not 100% sure what this is but the current code now matches upstream. Next
the `computeDeadSymbols` return value wasn't actually being used, but it needed
to be used! Together these should...
Closes#45195
some low-hanging rustdoc optimizations
There were a few discussions earlier today in #rust-internals about the syscall usage and overall performance of rustdoc. This PR is intended to pick some low-hanging fruit and try to rein in some of the performance issues of rustdoc.
First the `addPreservedGUID` function forgot to take care of "alias" summaries.
I'm not 100% sure what this is but the current code now matches upstream. Next
the `computeDeadSymbols` return value wasn't actually being used, but it needed
to be used! Together these should...
Closes#45195
incr.comp.: Introduce `ensure` and `ensure` typeck_tables_of
Resolves#45210
In this Pull Request we introduce the `ensure` query/function. `ensure` has the
semantics and type of the function `Q1` below:
```rust
fn Q1::ensure(K){
Q(K);
}
```
Further, `ensure` avoids the need to load the result from disk (or execute the
provider, if we are not storing the results of Q to disk).
@nikomatsakis
Provide the full span of method calls to `check_argument_types`
... so that it includes the span of the passed arguments, not just the name of the called method.
Fixes#44760.
Fix TcpStream::connect_timeout on linux
Linux appears to set POLLOUT when a conection's refused, which is pretty
weird. Invert the check to look for an error explicitly. Also add an
explict test for this case.
Closes#45265.
r? @alexcrichton
Do some cleanups for hashmaps
@mystor noticed some things whilst reading through the hashmap RawTable code.
Firstly, in RawTable we deal with this hash_offset value that is the offset of the list of hashes from the buffer start. This is always zero, and this isn't consistently used (which means that we would have bugs if we set it to something else). We should just remove this since it doesn't help us at all.
Secondly, the probing length tag is not copied when cloning a raw table. This is minor and basically means we do a bit more work than we need on further inserts on a cloned hashmap.
r? @Gankro
compiletest/runtest: format ErrorKind with Display
The strings are nouns for the most part, so we give ErrorKind::Help a
more sensible string. This reduces quote hiccups in failure output.
unexpected "error": '...'
↓
unexpected error: '...'
Moved details of unstable non-ascii identifiers from the Reference
Moved details of unstable non-ascii identifiers from the Reference to the Unstable book
r? @steveklabnik
Add x86_64-unknown-linux-gnux32 target
This adds X32 ABI support for Linux on X86_64. Let's package and dist it so we can star testing libc, libstd, etc.
Fixes https://github.com/rust-lang/rfcs/issues/1339