Commit Graph

98487 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
998060ba3f or-patterns: syntax: adjust visit and mut_visit. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
ca968a10d8 or-patterns: syntax: simplify Arm.pats and ExprKind::Let.0. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
dbe6873387 resolve: test consistent or-patterns being allowed. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
aa7a02b029 resolve: test binding mode consistency for or-patterns. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
33317c7baa resolve: add test for missing bindings in or-patterns. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
896a1c7fcd resolve: account for general or-patterns in consistency checking. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
498ec59520 resolve: add tests for already-bound check. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
166a558da6 resolve: revamp already-bound check -- fix some bugs. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
70cae78387 resolve: already-bound-check: account for or-patterns.
Also document `ast::Pat::walk`.
2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
dc91e229d2 resolve: move resolve_block to a better place. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
fd3b441846 resolve: move fresh_binding. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
f343e84f40 resolve: add type IdentMap<T> alias. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
219ddde26b resolve: extract try_resolve_as_non_binding. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
6d537d4020 resolve: simplify resolve_arm. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
f8835eeaf8 resolve: cleanup using with_rib, etc. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
af06bfb84c resolve: extract resolve_params. 2019-09-05 08:33:09 +02:00
bors
a24f636e60 Auto merge of #64160 - Centril:rollup-vrfj1pt, r=Centril
Rollup of 15 pull requests

Successful merges:

 - #62860 (Stabilize checked_duration_since for 1.38.0)
 - #63549 (Rev::rposition counts from the wrong end)
 - #63985 (Stabilize pin_into_inner in 1.39.0)
 - #64005 (Add a `Place::is_indirect` method to determine whether a `Place` contains a `Deref` projection)
 - #64031 (Harden `param_attrs` test wrt. usage of a proc macro `#[attr]`)
 - #64038 (Check impl trait substs when checking for recursive types)
 - #64043 (Add some more tests for underscore imports)
 - #64092 (Update xLTO compatibility table in rustc book.)
 - #64110 (Refer to "`self` type" instead of "receiver type")
 - #64120 (Move path parsing earlier)
 - #64123 (Added warning around code with reference to uninit bytes)
 - #64128 (unused_parens: account for or-patterns and `&(mut x)`)
 - #64141 (Minimize uses of `LocalInternedString`)
 - #64142 (Fix doc links in `std::cmp` module)
 - #64148 (fix a few typos in comments)

Failed merges:

r? @ghost
2019-09-05 02:11:06 +00:00
Mazdak Farrokhzad
51ae5d053b
Rollup merge of #64148 - guanqun:typo-fix, r=zackmdavis
fix a few typos in comments
2019-09-05 03:59:52 +02:00
Mazdak Farrokhzad
a0f0a96e5d
Rollup merge of #64142 - lzutao:fix-doc-cmp, r=jonas-schievink
Fix doc links in `std::cmp` module

r? @jonas-schievink
2019-09-05 03:59:51 +02:00
Mazdak Farrokhzad
4dfbaba3bf
Rollup merge of #64141 - nnethercote:minimize-LocalInternedString, r=petrochenkov
Minimize uses of `LocalInternedString`

`LocalInternedString` is described as "An alternative to `Symbol` and `InternedString`, useful when the chars within the symbol need to be accessed. It is best used for temporary values."

This PR makes the code match that comment, by removing all non-local uses of `LocalInternedString`. This allows the removal of a number of operations on `LocalInternedString` and a couple of uses of `unsafe`.
2019-09-05 03:59:49 +02:00
Mazdak Farrokhzad
57ffc83312
Rollup merge of #64128 - Centril:unused-parens-pat, r=davidtwco
unused_parens: account for or-patterns and `&(mut x)`

Fixes https://github.com/rust-lang/rust/issues/55342.
Fixes https://github.com/rust-lang/rust/issues/64106.

cc https://github.com/rust-lang/rust/issues/54883
cc https://github.com/rust-lang/rust/pull/64111

r? @oli-obk
2019-09-05 03:59:48 +02:00
Mazdak Farrokhzad
c195145f56
Rollup merge of #64123 - danielhenrymantilla:add_comment_about_uninit_integers, r=Centril
Added warning around code with reference to uninit bytes

Officially, uninitialized integers, and therefore, Rust references to them are _invalid_ (note that this may evolve into official defined behavior (_c.f._, https://github.com/rust-lang/unsafe-code-guidelines/issues/71)).

However, `::std` uses references to uninitialized integers when working with the `Read::initializer` feature (#42788), since it relies on this unstably having defined behavior with the current implementation of the compiler (IIUC).

Hence the comment to disincentivize people from using this pattern outside the standard library.
2019-09-05 03:59:47 +02:00
Mazdak Farrokhzad
24f0778341
Rollup merge of #64120 - nnethercote:move-path-parsing-earlier, r=petrochenkov
Move path parsing earlier

It's a hot enough path that moving it slightly earlier gives a tiny but easy speedup.

r? @petrochenkov
2019-09-05 03:59:45 +02:00
Mazdak Farrokhzad
8ef11fcf4b
Rollup merge of #64110 - estebank:receiver-type, r=Centril
Refer to "`self` type" instead of "receiver type"

Fix https://github.com/rust-lang/rust/issues/42603.
2019-09-05 03:59:44 +02:00
Mazdak Farrokhzad
68660d2494
Rollup merge of #64092 - michaelwoerister:update-xlto-table-rustc-book-1.37, r=alexcrichton
Update xLTO compatibility table in rustc book.

This is a combination known to work reliable when building Firefox on all the major platforms.

r? @alexcrichton
2019-09-05 03:59:43 +02:00
Mazdak Farrokhzad
fe1c1f8c36
Rollup merge of #64043 - matthewjasper:underscore-import-tests, r=alexcrichton
Add some more tests for underscore imports
2019-09-05 03:59:42 +02:00
Mazdak Farrokhzad
9024032591
Rollup merge of #64038 - matthewjasper:deny-mutual-impl-trait-recursion, r=varkor
Check impl trait substs when checking for recursive types

closes #64004
2019-09-05 03:59:40 +02:00
Mazdak Farrokhzad
07a28338fa
Rollup merge of #64031 - Centril:param-attrs-no-macros-test, r=nikomatsakis
Harden `param_attrs` test wrt. usage of a proc macro `#[attr]`

The `param-attrs-builtin-attrs.rs` test file uses the `#[test]` attribute which should cover this but `#[test]` isn't a proc macro attribute so we add another test to be on the safe side. This intends to address https://github.com/rust-lang/rust/pull/64010#issuecomment-526564316.

r? @nikomatsakis

cc @c410-f3r @petrochenkov
cc https://github.com/rust-lang/rust/issues/60406
2019-09-05 03:59:39 +02:00
Mazdak Farrokhzad
9718f7a09f
Rollup merge of #64005 - ecstatic-morse:is-indirect, r=oli-obk
Add a `Place::is_indirect` method to determine whether a `Place` contains a `Deref` projection

Working on #63860 requires tracking some property about each local. This requires differentiating `Place`s like `x` and `x.field[index]` from ones like `*x` and `*x.field`, since the first two will always access the same region of memory as `x` while the latter two may access any region of memory. This functionality is duplicated in various places across the compiler. This PR adds a helper method to `Place` which determines whether that `Place` has a `Deref` projection at any point and changes some existing code to use the new method.

I've not converted `qualify_consts.rs` to use the new method, since it's not a trivial conversion and it will get replaced anyway by #63860. There may be other potential uses besides the two I change in this PR.

r? @oli-obk
2019-09-05 03:59:37 +02:00
Mazdak Farrokhzad
d1d511df8c
Rollup merge of #63985 - ghedo:stabilize_pin_into_inner, r=alexcrichton
Stabilize pin_into_inner in 1.39.0

FCP: https://github.com/rust-lang/rust/issues/60245#issuecomment-522258129

Closes #60245
2019-09-05 03:59:36 +02:00
Mazdak Farrokhzad
38ce68768d
Rollup merge of #63549 - sfanxiang:rev-rposition, r=scottmcm
Rev::rposition counts from the wrong end

Introduced in #43074.

cc @SimonSapin
2019-09-05 03:59:35 +02:00
Mazdak Farrokhzad
ee437eb5d4
Rollup merge of #62860 - vi:stabilize_checked_duration_since, r=Mark-Simulacrum
Stabilize checked_duration_since for 1.38.0

Looks like it has already found some use in projects.

Resolves #58402.
2019-09-05 03:59:33 +02:00
Vitaly _Vi Shukela
5545582a6f
Avoid feature name 'checked_duration_since' in a Tidy test 2019-09-05 01:58:41 +03:00
Vitaly _Vi Shukela
843fba3ed1
Stabilize checked_duration_since for 1.39.0
Resolves #58402.
2019-09-05 01:58:37 +03:00
bors
f257c40b19 Auto merge of #64150 - ehuss:update-cargo-books, r=alexcrichton
Update cargo, books

## cargo

8 commits in 22f7dd0495cd72ce2082d318d5a9b4dccb9c5b8c..fe0e5a48b75da2b405c8ce1ba2674e174ae11d5d
2019-08-27 16:10:51 +0000 to 2019-09-04 00:51:27 +0000
- Rename `--all` to `--workspace` (rust-lang/cargo#7241)
- Basic standard library support. (rust-lang/cargo#7216)
- Allow using 'config.toml' instead of just 'config' files. (rust-lang/cargo#7295)
- Retry on SSL Connect Error. (rust-lang/cargo#7318)
- minimal-copy `deserialize` for `InternedString` (rust-lang/cargo#7310)
- Fix typo in cargo vendor examples (rust-lang/cargo#7320)
- Fixes around multiple `[patch]` per crate (rust-lang/cargo#7303)
- Improve error messages on mkdir failure (rust-lang/cargo#7306)

## reference

7 commits in d191a0cdd3b92648e0f1e53b13140a14677cc65b..090c015f7939665866432c334957bd536c811870
2019-08-15 08:42:23 +0200 to 2019-09-03 13:59:28 -0700
- Fix rust-lang-nursery/reference#664: Review Oxford comma usage. (rust-lang-nursery/reference#668)
- Fix some links. (rust-lang-nursery/reference#667)
- Remove trait object warning. (rust-lang-nursery/reference#666)
- Specify pattern types in `let` statements and `for` expressions (rust-lang-nursery/reference#663)
- Fix loop expression link. (rust-lang-nursery/reference#662)
- async-await initial reference material (rust-lang-nursery/reference#635)
- Correct errors in the reference of extern functions definitions and declarations (rust-lang-nursery/reference#652)

## rust-by-example

1 commits in 580839d90aacd537f0293697096fa8355bc4e673..e76be6b2dc84c6a992e186157efe29d625e29b94
2019-08-17 23:17:50 -0300 to 2019-09-03 07:42:26 -0300
- Change link to russian translation repository (rust-lang/rust-by-example#1245)

## embedded-book

1 commits in 432ca26686c11d396eed6a59499f93ce1bf2433c..5ca585c4a7552efb546e7681c3de0712f4ae4fdc
2019-08-09 23:20:22 +0000 to 2019-08-27 13:39:14 +0000
- Fixup book CI  (rust-embedded/book#205)
2019-09-04 20:30:52 +00:00
bors
c6e9c76c59 Auto merge of #64125 - JohnTitor:update-clippy, r=oli-obk
Update Clippy

cc https://github.com/rust-lang/rust-clippy/pull/4493

r? @oli-obk
2019-09-04 16:34:38 +00:00
Eric Huss
74ccd08401 Update cargo, books 2019-09-04 08:35:52 -07:00
Guanqun Lu
8e067243e4 fix a few typos in comments 2019-09-04 23:25:51 +08:00
Lzu Tao
b6f9523dc6 Fix doc links in std::cmp module
These links are rendered in `core::cmp` but not in `std::cmp`.
2019-09-04 13:52:28 +00:00
bors
6c18a3d775 Auto merge of #63825 - nathanwhit:check-run-results, r=Mark-Simulacrum
Allow checking of run-pass execution output in compiletest

Closes #63751
Adds a `check-run-results` flag to compiletest headers, which if enabled checks the output of the execution of a run-pass test's binary against expected output.
2019-09-04 11:37:37 +00:00
bors
5f42f3e108 Auto merge of #63166 - ksqsf:master, r=alexcrichton
Add Result::cloned{,_err} and Result::copied{,_err}

This is a little nice addition to `Result`.

1. I'm not sure how useful are `cloned_err` and `copied_err`, but for the sake of completeness they are here.
2. Naming is similar to `map`/`map_err`. I thought about naming `cloned` as `cloned_ok` and add another method called `cloned` that clones both Ok and Err, but `cloned_ok` should be more prevalent than `cloned_both`.
2019-09-04 07:47:08 +00:00
Nicholas Nethercote
cc17b1bc3c Add Symbol::{with,with2}.
And remove the `unsafe` blocks, they're not necessary.

Also rewrite `InternedString::{with,with2}` to use the new functions.

Finally, add some comments about the speed of the
`as_str()`/`as_interned_str()` functions.
2019-09-04 15:21:33 +10:00
Nicholas Nethercote
7a1bc79cbd Remove LocalInternedString::intern. 2019-09-04 14:41:09 +10:00
Nicholas Nethercote
a1cd79ff4e Remove Encodable/Decodable impls for LocalInternedString. 2019-09-04 14:41:09 +10:00
Nicholas Nethercote
6025fc843a Remove hashing impls for LocalInternedString. 2019-09-04 14:41:07 +10:00
Nicholas Nethercote
224daa64bd Remove LocalInternedString::get.
It has a single use, which is easily changed to something better.
2019-09-04 14:40:23 +10:00
Nicholas Nethercote
69ae8d9dfd Remove LocalInternedString::as_interned_str().
It's unused.
2019-09-04 14:23:45 +10:00
Nicholas Nethercote
bf536dde3b Remove LocalInternedString uses from librustc/traits/. 2019-09-04 14:23:45 +10:00
Nicholas Nethercote
d78b33a807 Remove LocalInternedString uses from librustc_codegen_llvm. 2019-09-04 14:23:45 +10:00
Nicholas Nethercote
b50db34e4d Remove LocalInternedString uses from librustc_codegen_llvm/consts.rs. 2019-09-04 14:23:45 +10:00