Commit Graph

88351 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
1f66062b92
Rollup merge of #57510 - nrc:manifest-profiles, r=alexcrichton
Add a profiles section to the manifest

This supports the profiles work for Rustup in a backwards compatible manner.

r? @alexcrichton
2019-01-12 10:55:19 +01:00
Mazdak Farrokhzad
52e02fc16b
Rollup merge of #57505 - rust-lang:nrc-patch-1, r=alexcrichton
Remove submodule step from README

Since the bootstrap does it now
2019-01-12 10:55:18 +01:00
Mazdak Farrokhzad
dc6d86b04e
Rollup merge of #57499 - steveklabnik:gh47757, r=Mark-Simulacrum
note that FromStr does not work for borrowed types

Fixes #47757
2019-01-12 10:55:16 +01:00
Mazdak Farrokhzad
cbe377b2f5
Rollup merge of #57498 - steveklabnik:gh29008, r=alexcrichton
make note of one more normalization that Paths do

Fixes #29008
2019-01-12 10:55:15 +01:00
Mazdak Farrokhzad
e0cea0db5d
Rollup merge of #57493 - euclio:deref-suggest, r=oli-obk
use structured suggestion when casting a reference
2019-01-12 10:55:13 +01:00
Mazdak Farrokhzad
1fff64a694
Rollup merge of #57466 - king6cong:comment, r=alexcrichton
Remove outdated comment

More here: https://github.com/rust-lang/rustc-guide/pull/261
2019-01-12 10:55:12 +01:00
Mazdak Farrokhzad
e7dc880052
Rollup merge of #57463 - phansch:fix_some_links, r=steveklabnik
docs: Fix some 'second-edition' links

If I understand it correctly, we now want to link to

    https://doc.rust-lang.org/book/*.html

instead of

    https://doc.rust-lang.org/book/second-edition/*.html

because the second-edition page says that it's no longer distributed with
Rust's docs.

For example: https://doc.rust-lang.org/book/second-edition/ch13-01-closures.html
2019-01-12 10:55:11 +01:00
Mazdak Farrokhzad
f7da074d2a
Rollup merge of #57459 - varkor:E0202-issue-reference, r=petrochenkov
Reference tracking issue for inherent associated types in diagnostic

This makes it clearer that associated types in inherent impls are an intended feature, like the diagnostic for equality constraints in where clauses. (This is more helpful, because the lack of associated types is a confusing omission and it lets users more easily track the state of the feature.)
2019-01-12 10:55:09 +01:00
Mazdak Farrokhzad
0b1427eeb8
Rollup merge of #57450 - steveklabnik:gh45678, r=KodrAus
actually take a slice in this example

Fixes #45678
2019-01-12 10:55:08 +01:00
Mazdak Farrokhzad
85a7fc8c48
Rollup merge of #57441 - VardhanThigle:Vardhan/x86_64-fortanix-unknown-sgx-backtrace-support, r=alexcrichton
Supporting backtrace for x86_64-fortanix-unknown-sgx.

# Overview
Implementing following functions required by `libstd/sys_common` to support `backtrace`:
```
1. unwind_backtrace
2. trace_fn
3. resolve_symname
```
# Description:
The changes here are quite similar to the Cloudabi target `src/libstd/sys/cloudabi/backtrace.rs`
The first 2 functions are implemented via calls to libunwind.a that is linked to the `x86_64-fortanix-unknown-sgx` (#56979),  we have not implemented functionality needed by `resolve_symname`  (or `dladdr`) to reduce SGX TCB. Rather, we print the function address (relative to enclave image base) in `resolve_symname` which can be later translated to correct symbol name (say, via `addr2line`).

# Note:
For `x86_64-fortanix-unknown-sgx`, the `RUST_BACKTRACE` environment has to be set from within the program running in an enclave.
cc: @jethrogb
r? @alexcrichton
2019-01-12 10:55:07 +01:00
Mazdak Farrokhzad
632d8909a0
Rollup merge of #57434 - nnethercote:rm-CrateNum-Invalid, r=petrochenkov
Remove `CrateNum::Invalid`.

It's unused.
2019-01-12 10:55:05 +01:00
Mazdak Farrokhzad
a9c9a2c048
Rollup merge of #57433 - ecstatic-morse:issue-56610-bad-link, r=dtolnay
Add link destination for `read-ownership`

Resolves #56610.
2019-01-12 10:55:03 +01:00
Mazdak Farrokhzad
a61ebac367
Rollup merge of #57417 - QuietMisdreavus:semi-revert-doctest-parsing, r=GuillaumeGomez
rustdoc: use text-based doctest parsing if a macro is wrapping main

This is a "forward-port" of https://github.com/rust-lang/rust/pull/57019, intended to get https://github.com/rust-lang/rust/issues/56898 on nightly, since it's now fixed on beta (and already worked on stable).

To recap:

* The libsyntax-based doctest parsing now checks to see whether there is a top-level macro invocation in the doctest while it's checking for `fn main` and an `extern crate` statement.
* If it finds a macro invocation and *didn't* find `fn main`, then it performs the older text-based scan to allow doctests like the ones in `allocator_api` to still compile.

A "proper" fix will involve changing how `make_test` works to call it later in the `run_test` function, after the initial steps of compilation have completed. I've filed [a separate issue](https://github.com/rust-lang/rust/issues/57415) for that, though.
2019-01-12 10:55:02 +01:00
Mazdak Farrokhzad
7be2ff3d48
Rollup merge of #57400 - tspiteri:source-serif-pro-it, r=GuillaumeGomez
Rustdoc: update Source Serif Pro and replace Heuristica italic

When Source Serif Pro was used to replace Heuristica in #15530, the italic variant was not ready yet, but now it is. This PR updates the Source Serif Pro font files to the [latest release](https://github.com/adobe-fonts/source-serif-pro/releases/tag/2.007R-ro%2F1.007R-it) which includes an italic variant, and replaces Heuristica italic with Source Serif Pro italic.

Fixes #57363.
2019-01-12 10:55:01 +01:00
Mazdak Farrokhzad
c6146b2370
Rollup merge of #57368 - petrhosek:cmake-compiler-launcher, r=alexcrichton
Use CMAKE_{C,CXX}_COMPILER_LAUNCHER for ccache

CMake 3.4 and newer which is the required minimum version for LLVM
supports CMAKE_{C,CXX}_COMPILER_LAUNCHER for settting the compiler
launcher such as ccache which doesn't require shifting arguments.
2019-01-12 10:54:59 +01:00
Mazdak Farrokhzad
ebbecac538
Rollup merge of #57296 - JosephTLyons:Fix-question-mark-operator-in-stdio-document, r=wesleywiser
Fixed the link to the ? operator

I'm working on updating all broken links, but figured I'd break up the pull requests so they are easier to review, versus just one big pull request.
2019-01-12 10:54:58 +01:00
Mazdak Farrokhzad
40a819b7df
Rollup merge of #57192 - czipperz:error_trait_doc_cause_to_source, r=wesleywiser
Change std::error::Error trait documentation to talk about `source` instead of `cause`

Resolves #57056
2019-01-12 10:54:57 +01:00
Mazdak Farrokhzad
bd8f464877
Rollup merge of #57175 - oli-obk:const_let_stabilization, r=nikomatsakis
Stabilize `let` bindings and destructuring in constants and const fn

r? @Centril

This PR stabilizes the following features in constants and `const` functions:

* irrefutable destructuring patterns (e.g. `const fn foo((x, y): (u8, u8)) { ... }`)
* `let` bindings (e.g. `let x = 1;`)
* mutable `let` bindings (e.g. `let mut x = 1;`)
* assignment (e.g. `x = y`) and assignment operator (e.g. `x += y`) expressions, even where the assignment target is a projection (e.g. a struct field or index operation like `x[3] = 42`)
* expression statements (e.g. `3;`)

This PR does explicitly *not* stabilize:

* mutable references (i.e. `&mut T`)
* dereferencing mutable references
* refutable patterns (e.g. `Some(x)`)
* operations on `UnsafeCell` types (as that would need raw pointers and mutable references and such, not because it is explicitly forbidden. We can't explicitly forbid it as such values are OK as long as they aren't mutated.)
* We are not stabilizing `let` bindings in constants that use `&&` and `||` short circuiting operations. These are treated as `&` and `|` inside `const` and `static` items right now. If we stopped treating them as `&` and `|` after stabilizing `let` bindings, we'd break code like `let mut x = false; false && { x = true; false };`. So to use `let` bindings in constants you need to change `&&` and `||` to `&` and `|` respectively.
2019-01-12 10:54:56 +01:00
Mazdak Farrokhzad
017f046c13
Rollup merge of #57042 - pnkfelix:issue-57038-sidestep-ice-in-fieldplacement-count, r=michaelwoerister
Don't call `FieldPlacement::count` when count is too large

Sidestep ICE in `FieldPlacement::count` by not calling it when count will not fit in host's usize.

(I briefly played with trying to fix this by changing `FieldPlacement::count` to return a `u64`. However, based on how `FieldPlacement` is used, it seems like this would be a largely pointless pursuit... I'm open to counter-arguments, however.)

Fix #57038
2019-01-12 10:54:54 +01:00
Mazdak Farrokhzad
53aa8a1ad0
Rollup merge of #56906 - blitzerr:master, r=nikomatsakis
Issue #56905

Adding a map to TypeckTables to get the list of all the Upvars
given a closureID. This is help us get rid of the recurring
pattern in the codebase of iterating over the free vars
using with_freevars.
2019-01-12 10:54:53 +01:00
Mazdak Farrokhzad
e69a5cb2d7
Rollup merge of #56425 - scottmcm:redo-vec-set_len-docs, r=Centril
Redo the docs for Vec::set_len

Inspired by the [recent conversation on IRLO](https://internals.rust-lang.org/t/make-vec-set-len-enforce-the-len-cap-invariant/8927/23?u=scottmcm).

This is just my first stab at this; suggestions welcome.
2019-01-12 10:54:51 +01:00
Mazdak Farrokhzad
6c623224dc const_let: --bless with --compare-mode=nll 2019-01-12 10:32:27 +01:00
Mazdak Farrokhzad
3dc08ed068 move const_let accepted gate to avoid future conflict. 2019-01-12 10:31:52 +01:00
bors
1190f7cdf7 Auto merge of #57532 - Centril:stabilize-2175, r=varkor
Stabilize #![feature(if_while_or_patterns)]

r? @varkor

Per https://github.com/rust-lang/rust/issues/56212#issue-384085857.
Leading `|` is also accepted per the comment in the stabilization proposal.
2019-01-12 08:40:17 +00:00
Mazdak Farrokhzad
0e1402dcda bless ui/while-let 2019-01-12 08:59:12 +01:00
varkor
afcb938116 Stabilise irrefutable if-let and while-let patterns
This stabilises RFC 2086 (https://github.com/rust-lang/rust/issues/44495).

Co-Authored-By: Sebastian Malton <sebastian@malton.name>
2019-01-12 03:10:59 +00:00
bors
0c91f3d97f Auto merge of #57234 - Centril:const-stabilizations-2, r=oli-obk
Const-stabilize `const_int_ops` + `const_ip`

r? @oli-obk

## Note for relnotes: This PR includes https://github.com/rust-lang/rust/pull/57105.

I've added T-lang since this affects intrinsics and the operational semantics of Rust's `const fn` fragment.

## Stable APIs proposed for constification

+ `const_int_ops`:
    + `count_ones`
    + `count_zeros`
    + `leading_zeros`
    + `trailing_zeros`
    + `swap_bytes`
    + `from_be`
    + `from_le`
    + `to_be`
    + `to_le`
+ `const_ip`
    + `Ipv4Addr::new`

## Unstable APIs constified

+ `const_int_conversion`:
    + `reverse_bits`
2019-01-12 02:00:18 +00:00
Mazdak Farrokhzad
561483e4e8 stabilize top level or-pats in if/while let. 2019-01-11 23:57:04 +01:00
David Sanders
49e8318b0c
Fixing a typographical error. 2019-01-11 13:58:13 -08:00
Alexander Ronald Altman
fdd2f0d823
Fix new hyperlinks in RELEASES.md 2019-01-11 13:59:04 -06:00
Andy Russell
020e1f5b60
don't unwrap unexpected tokens in format!
Fixes #57512.
2019-01-11 13:00:44 -05:00
Alexander Ronald Altman
434fe4e356
Correct RELEASES.md for 1.32.0
The `into_to_from_bytes` feature was stabilized for `i128` and `u128` just like for the other integer types, but they seem to have been missed.
2019-01-11 11:06:56 -06:00
Steve Klabnik
186d5d7fd4 re-do docs for core::cmp
Fixes #32934
2019-01-11 12:00:09 -05:00
bors
b43986184b Auto merge of #57470 - RalfJung:miri, r=oli-obk
update miri

r? @oli-obk
2019-01-11 16:28:45 +00:00
bors
88f19a774f Auto merge of #57355 - arielb1:correct-subst, r=nikomatsakis
use the correct supertrait substitution in `object_ty_for_trait`

beta-nominating because regression.

Fixes #57156.
2019-01-11 12:04:24 +00:00
Oliver Scherer
16a4e477d8 Remove unneeded but benign change 2019-01-11 12:19:08 +01:00
Jethro Beekman
928efca151 Fix undefined behavior 2019-01-11 15:00:08 +05:30
Nick Cameron
4103e5b34b Add a profiles section to the manifest 2019-01-11 18:13:45 +13:00
DebugSteven
ca47808479 add test for pub extern crate 2019-01-10 21:18:46 -05:00
DebugSteven
3f03297956 inline pub extern crate statements 2019-01-10 20:27:44 -05:00
Nick Cameron
27989ec30b
Remove submodule step from README
Since the bootstrap does it now
2019-01-11 14:27:12 +13:00
bors
729d3f07b4 Auto merge of #57471 - Aaronepower:master, r=Aaronepower
Updated RELEASES.md for 1.32.0

[Rendered](https://github.com/Aaronepower/rust/blob/master/RELEASES.md)

r? @Mark-Simulacrum
cc @rust-lang/release
2019-01-11 00:20:04 +00:00
Aaron Power
890a8a45c2
Update RELEASES.md 2019-01-10 23:28:18 +01:00
Mazdak Farrokhzad
e598ea83c8
Update src/libstd/path.rs
Co-Authored-By: steveklabnik <steve@steveklabnik.com>
2019-01-10 17:08:42 -05:00
Steve Klabnik
beb6495862 note that FromStr does not work for borrowed types
Fixes #47757
2019-01-10 17:08:27 -05:00
Aaron Power
359e6bf30b
Update RELEASES.md 2019-01-10 23:07:38 +01:00
bors
c2d381d39d Auto merge of #57484 - alexcrichton:fix-nightlies, r=Mark-Simulacru
Integrate miri into build-manifest

This fixes a mistake where miri was accidentally left out of the
build-manifest parsing, meaning that today's nightly generated a
manifest with invalid urls!

Fixes #57488.
2019-01-10 21:31:34 +00:00
Steve Klabnik
f282f6b1f7 make note of one more normalization that Paths do
Fixes #29008
2019-01-10 15:30:36 -05:00
Björn Steinbrink
5f402b8277 Add a fast path for identical regions in lub_concrete_regions
In functions with lots of region constraint, if the fixed point
iteration converges only slowly, a lot of the var/var constraints will
have equal regions most of the time. Yet, we still perform the LUB
calculation and try to intern the result. Especially the latter incurs
quite some overhead.

This reduces the take taken by the item bodies checking pass for the
unicode_normalization crate by about 75%.
2019-01-10 21:28:06 +01:00
Björn Steinbrink
07600c939b Drop "solved" constraints during region expansion
Once a region has been expanded to cover a fixed region, a corresponding
RegSubVar constraint won't have any effect on the expansion anymore, the
same is true for constraints where the variable on the RHS has already
reached static scope. By removing those constraints from the set that
we're iterating over, we remove a lot of needless overhead in case of
slow convergences (i.e. lots of iterations).

For the unicode_normalization crate, this about cuts the time required
for item_bodies checking in half.
2019-01-10 20:10:11 +01:00