Commit Graph

90845 Commits

Author SHA1 Message Date
csmoe
cf11729787 rename Substs to InternalSubsts
Change-Id: I3fa00e999a2ee4eb72db1fdf53a8633b49176a18
2019-02-27 00:39:13 +08:00
Angelos Oikonomopoulos
9b4055b302 Normalize the type Self resolves to in an impl
This is required at the very least in order to evaluate associated
constants for arrays (see #58212).
2019-02-26 17:22:13 +01:00
Alex Crichton
c196097e58 rustc: Update LLVM, remove dead wasm code
This commit updates the LLVM branch to the rebased version of the
upstream release/8.x branch. This includes a wasm patch which means that
the `rewrite_imports` pass in rustc is no longer needed (yay!) and we
can instead rely on `wasm-import-module`, an attribute we're already
emitting, to take care of all the work.
2019-02-26 07:20:17 -08:00
Tobias Bucher
998896c036 Clarify rotate_{left,right} docs
I wondered what the `<<!` operator is although the exclamation mark was
only the end of the sentence.
2019-02-26 16:10:28 +01:00
csmoe
ccfa5d6df8 replace &'tcx Substs with SubstsRef 2019-02-26 19:30:57 +08:00
Taiki Endo
6375efc822 Update string_cache_codegen to 0.4.2 2019-02-26 20:06:31 +09:00
Marcel Hellwig
56fb2873fe update Cargo.lock 2019-02-26 11:15:52 +01:00
kenta7777
992694ac4d reduce repetitions of (n << amt) >> amt 2019-02-26 17:54:57 +09:00
Marcel Hellwig
5b975162e2 update scoped_tls to 1.0 2019-02-26 09:54:45 +01:00
bors
ea43c3c688 Auto merge of #58561 - ljedrz:HirIdify_some_nodes, r=Zoxc
Remove NodeId from some HIR nodes

The next iteration of https://github.com/rust-lang/rust/pull/57578.

Removes `NodeId` from:

- [x] `Lifetime`
- [x] `Ty`
- [x] `GenericParam`
- [x] `WhereClause`
- [x] `WhereEqPredicate`
- [x] `MacroDef`
- [x] `Block`
- [x] `Expr`

r? @Zoxc
2019-02-26 06:13:27 +00:00
Ivan Petkov
abd88a9e3a
Disable running several Stdio doctests
* A number of `Stdio` related doc examples include running the "rev"
command to illustrate piping commands. The majority of these tests are
marked as `no_run` except for two tests which were not
* Not running these tests is unlikely to cause any negative impact, and
doing so also allows the test suite to pass in environments where the
"rev" command is unavailable
2019-02-25 19:53:32 -08:00
bors
fb162e6944 Auto merge of #58357 - sfackler:vectored-io, r=alexcrichton
Add vectored read and write support

This functionality has lived for a while in the tokio ecosystem, where
it can improve performance by minimizing copies.

r? @alexcrichton
2019-02-26 02:48:13 +00:00
Nicholas Nethercote
eddd07cc8a Make visit_clobber panic-safe. 2019-02-26 11:20:53 +11:00
Jethro Beekman
6c44bbbbaa Update dlmalloc to 0.1.3 2019-02-26 09:18:22 +09:00
bors
55c173c8ae Auto merge of #57367 - petrochenkov:unrestab, r=Centril
Stabilize `unrestricted_attribute_tokens`

In accordance with a plan described in https://internals.rust-lang.org/t/unrestricted-attribute-tokens-feature-status/8561/3.

Delimited non-macro non-builtin attributes now support the same syntax as macro attributes:
```
PATH
PATH `(` TOKEN_STREAM `)`
PATH `[` TOKEN_STREAM `]`
PATH `{` TOKEN_STREAM `}`
```
Such attributes mostly serve as inert proc macro helpers or tool attributes.
To some extent these attributes are de-facto stable due to a hole in feature gate checking (feature gating is done too late - after macro expansion.)
So if macro *removes* such helper attributes during expansion (and it must remove them, unless it's a derive macro), then the code will work on stable.

Key-value non-macro non-builtin attributes are now restricted to bare minimum required to support what we support on stable - unsuffixed literals (https://github.com/rust-lang/rust/issues/34981).
```
PATH `=` LITERAL
```
(Key-value macro attributes are not supported at all right now.)
Crater run in https://github.com/rust-lang/rust/pull/57321 found no regressions for this change.
There are multiple possible ways to extend key-value attributes (https://github.com/rust-lang/rust/pull/57321#issuecomment-451574065), but I'd expect an RFC for that and it's not a pressing enough issue to block stabilization of delimited attributes.

Built-in attributes are still restricted to the "classic" meta-item syntax, nothing changes here.
https://github.com/rust-lang/rust/pull/57321 goes further and adds some additional restrictions (more consistent input checking) to built-in attributes.

Closes https://github.com/rust-lang/rust/issues/55208
2019-02-25 23:23:09 +00:00
varkor
0f6b148db2 Allow lang and lib features to share names 2019-02-25 22:14:18 +00:00
bors
00aae71f50 Auto merge of #58302 - SimonSapin:tryfrom, r=alexcrichton
Stabilize TryFrom and TryInto with a convert::Infallible empty enum

This is the plan proposed in https://github.com/rust-lang/rust/issues/33417#issuecomment-423073898
2019-02-25 20:24:10 +00:00
Vadim Petrochenkov
eccc19996b Stabilize unrestricted_attribute_tokens 2019-02-25 23:21:54 +03:00
Vadim Petrochenkov
8e1b5d897a Restrict value in key-value attributes to literals 2019-02-25 22:40:38 +03:00
Jake Goulding
f1b88abffb Fix copy-pasted typo for read_string return value 2019-02-25 12:14:02 -05:00
Guillaume Gomez
240fad04f1 Update to last updates 2019-02-25 17:47:12 +01:00
Guillaume Gomez
be23cd9a2d Move documentation build into bootstrap 2019-02-25 17:46:06 +01:00
Guillaume Gomez
aa3ca321e9 Rename rustdoc js test suites 2019-02-25 17:46:06 +01:00
Guillaume Gomez
834347ddaf Add rustdoc JS non-std tests 2019-02-25 17:43:57 +01:00
Tim Vermeulen
1fd2f1687c Have all methods of Filter and FilterMap use internal iteration 2019-02-25 16:44:04 +01:00
bors
b57fe74a27 Auto merge of #58649 - pnkfelix:issue-57464-avoid-ice-when-region-sneaks-into-impl-trait, r=pnkfelix
avoid ICE when region sneaks into impl trait

Addresses non-NLL instances of #57464
2019-02-25 14:48:29 +00:00
Kornel
19c302c89a Update book submodule 2019-02-25 13:30:51 +00:00
bors
da573206f8 Auto merge of #58728 - Centril:rollup, r=Centril
Rollup of 10 pull requests

Successful merges:

 - #55632 (Deny the `overflowing_literals` lint for all editions)
 - #58687 (Reduce Miri Code Repetition like `(n << amt) >> amt`)
 - #58690 (Reduce a Code Repetition like `(n << amt) >> amt`)
 - #58718 (Apply docs convention: Replace # Unsafety with # Safety in docs)
 - #58719 (librustc_codegen_llvm: #![deny(elided_lifetimes_in_paths)])
 - #58720 (librustc_codegen_ssa: #![deny(elided_lifetimes_in_paths)])
 - #58722 (librustc_typeck: deny(elided_lifetimes_in_paths))
 - #58723 (librustc: deny(elided_lifetimes_in_paths))
 - #58725 (Test that binop subtyping in rustc_typeck fixes #27949)
 - #58727 (bootstrap: deny(rust_2018_idioms))

Failed merges:

r? @ghost
2019-02-25 11:57:00 +00:00
Mazdak Farrokhzad
d6de1e9714
Rollup merge of #58727 - taiki-e:deny-rust_2018_idioms-bootstrap, r=Centril
bootstrap: deny(rust_2018_idioms)

As part of the Rust 2018 transition, apply `#![deny(rust_2018_idioms)]` to `bootstrap`.

r? @Centril
2019-02-25 11:42:31 +01:00
Mazdak Farrokhzad
e53fbf8bf2
Rollup merge of #58725 - jamwt:fix-27949, r=Centril
Test that binop subtyping in rustc_typeck fixes #27949
2019-02-25 11:42:30 +01:00
Mazdak Farrokhzad
3f6d65ac7a
Rollup merge of #58723 - Centril:deny-elided_lifetimes_in_paths-librustc, r=oli-obk
librustc: deny(elided_lifetimes_in_paths)

As part of the Rust 2018 transition, remove `#![allow(elided_lifetimes_in_paths)]` from `librustc`.

r? @oli-obk
2019-02-25 11:42:28 +01:00
Mazdak Farrokhzad
d4a62a7fde
Rollup merge of #58722 - Centril:deny-elided_lifetimes_in_paths-librustc_typeck, r=oli-obk
librustc_typeck: deny(elided_lifetimes_in_paths)

As part of the Rust 2018 transition, remove `#![allow(elided_lifetimes_in_paths)]` from `librustc_typeck`.

r? @oli-obk
2019-02-25 11:42:27 +01:00
Mazdak Farrokhzad
2a69aec947
Rollup merge of #58720 - Centril:deny-elided_lifetimes_in_paths-librustc_codegen_ssa, r=oli-obk
librustc_codegen_ssa: #![deny(elided_lifetimes_in_paths)]

As part of the Rust 2018 transition, remove `#![allow(elided_lifetimes_in_paths)]` from `librustc_codegen_ssa`.

r? @oli-obk
2019-02-25 11:42:25 +01:00
Mazdak Farrokhzad
77e2e84191
Rollup merge of #58719 - Centril:deny-elided_lifetimes_in_paths, r=oli-obk
librustc_codegen_llvm: #![deny(elided_lifetimes_in_paths)]

As part of the Rust 2018 transition, remove `#![allow(elided_lifetimes_in_paths)]` from `librustc_codegen_llvm`.

r? @oli-obk
2019-02-25 11:42:24 +01:00
Mazdak Farrokhzad
2019d965c3
Rollup merge of #58718 - Centril:doc-convention-safety, r=RalfJung
Apply docs convention: Replace # Unsafety with # Safety in docs

As used in RFC 1574: https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md#using-markdown

"Safety" is used many times more than "Unsafety" is within existing docs.

@bors rollup

r? @RalfJung
2019-02-25 11:42:23 +01:00
Mazdak Farrokhzad
53f15f24a8
Rollup merge of #58690 - kenta7777:reduce-code-repetition-miri-related, r=oli-obk
Reduce a Code Repetition like `(n << amt) >> amt`

Fixes a part of [#49937](https://github.com/rust-lang/rust/issues/49937).
2019-02-25 11:42:22 +01:00
Mazdak Farrokhzad
5f910fa99c
Rollup merge of #58687 - kenta7777:reduce-miri-code-repetition, r=oli-obk
Reduce Miri Code Repetition like `(n << amt) >> amt`

This Pull Request fixes a part of [#49937](https://github.com/rust-lang/rust/issues/49937).
2019-02-25 11:42:20 +01:00
Mazdak Farrokhzad
554aed6c7d
Rollup merge of #55632 - ollie27:deny_overflowing_literals, r=Centril
Deny the `overflowing_literals` lint for all editions

The `overflowing_literals` was made deny by default for the 2018 edition by #54507, however I'm not aware of any reason it can't be made deny by default for the 2015 edition as well.
2019-02-25 11:42:18 +01:00
Taiki Endo
6343d6bc0d bootstrap: deny(rust_2018_idioms) 2019-02-25 19:30:32 +09:00
ljedrz
77a30ec593 update clippy 2019-02-25 11:25:23 +01:00
Jamie Turner
7029094735 Test that binop subtyping in rustc_typeck fixes #27949 2019-02-25 00:41:58 -08:00
Mazdak Farrokhzad
235d3ed083 librustc: deny(elided_lifetimes_in_paths) 2019-02-25 09:19:20 +01:00
Mazdak Farrokhzad
e8ce56f126 librustc_typeck: deny(elided_lifetimes_in_paths) 2019-02-25 09:13:22 +01:00
Mazdak Farrokhzad
1d34f2c228 librustc_codegen_ssa: deny(elided_lifetimes_in_paths) 2019-02-25 08:52:46 +01:00
Mazdak Farrokhzad
9661a81968 librustc_codegen_llvm: deny(elided_lifetimes_in_paths) 2019-02-25 08:40:18 +01:00
Mazdak Farrokhzad
4ca865e929 heading # Unsafety => # Safety in stdlib docs. 2019-02-25 08:01:35 +01:00
bors
31eb0e2d3c Auto merge of #57609 - matthewjasper:more-restrictive-match, r=pnkfelix
Use normal mutable borrows in matches

`ref mut` borrows are currently two-phase with NLL enabled. This changes them to be proper mutable borrows. To accommodate this, first the position of fake borrows is changed:

```text
[ 1. Pre-match ]
       |
[ (old create fake borrows) ]
[ 2. Discriminant testing -- check discriminants ] <-+
       |                                             |
       | (once a specific arm is chosen)             |
       |                                             |
[ (old read fake borrows) ]                          |
[ 3. Create "guard bindings" for arm ]               |
[ (create fake borrows) ]                            |
       |                                             |
[ 4. Execute guard code ]                            |
[ (read fake borrows) ] --(guard is false)-----------+
       |
       | (guard results in true)
       |
[ 5. Create real bindings and execute arm ]
       |
[ Exit match ]
```

The following additional changes are made to accommodate `ref mut` bindings:

* We no longer create fake `Shared` borrows. These borrows are no longer needed for soundness, just to avoid some arguably strange cases.
* `Shallow` borrows no longer conflict with existing borrows, avoiding conflicting access between the guard borrow access and the `ref mut` borrow.

There is some further clean up done in this PR:

* Avoid the "later used here" note for Shallow borrows (since it's not relevant with the message provided)
* Make any use of a two-phase borrow activate it.
* Simplify the cleanup_post_borrowck passes into a single pass.

cc #56254

r? @nikomatsakis
2019-02-25 06:27:35 +00:00
bors
c1911babed Auto merge of #58714 - Centril:rollup, r=Centril
Rollup of 5 pull requests

Successful merges:

 - #58370 (Relax some Hash bounds on HashMap<K, V, S> and HashSet<T, S>)
 - #58421 (Relax some Ord bounds on BinaryHeap<T>)
 - #58686 (replace deprecated rustfmt_skip with rustfmt::skip)
 - #58697 (Use ? in some macros)
 - #58704 (Remove some unnecessary 'extern crate')

Failed merges:

r? @ghost
2019-02-25 03:48:12 +00:00
Steven Fackler
4785c748f2 Fix redox 2019-02-24 18:48:44 -08:00
Mazdak Farrokhzad
6806d0cf69
Rollup merge of #58704 - taiki-e:extern-crate, r=Centril
Remove some unnecessary 'extern crate'

cc #58099

r? @Centril
2019-02-25 03:18:06 +01:00