Commit Graph

98955 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
a867c5f9cc resolve: merge resolve_pats and resolve_pattern_top. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
d8ef907886 or-patterns: adjust lowering of ast::Arm & ast::ExprKind::Let.
Introduces a temporary hack to keep `Vec<P<Pat>>` in
`hir::Arm.pats` so that we keep the changes more incremental.
2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
3fccbac4d3 or-patterns: adjust librustc_lint. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
76625eb0cc or-patterns: syntax: adjust derive, format, and building. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
424492acc8 or-patterns: syntax: adjust pretty printing. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
ad3db726d1 or-patterns: syntax: adjust parser removing a hack.
Fuse `parse_top_pat` and `parse_top_pat_unpack` into just `parse_top_pat`.
2019-09-05 08:33:09 +02:00
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
Giles Cope
9483db5052 Opaque type locations in error message for clarity. 2019-09-05 06:32:53 +01: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
Esteban Küber
21e7e3f1e9 Point at variant on pattern field count mismatch 2019-09-04 19:04:44 -07: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
Taylor Cramer
290f5b2275 Use backtrace formatting from the backtrace crate 2019-09-04 16:18:12 -07:00
Josh Stone
53fe76479a Assume non-git LLVM is fresh if the stamp file exists
Rustbuild usually writes the LLVM submodule commit in a stamp file, so
we can avoid rebuilding it unnecessarily. However, for builds from a
source tarball (non-git), we were assuming a rebuild is always needed.
This can cause a lot of extra work if any environment like `CFLAGS`
changed between steps like build and install, which are often separate
in distro builds.

Now we also write an empty stamp file if the git commit is unknown, and
its presence is trusted to indicate that no rebuild is needed. An info
message reports that this is happening, along with the stamp file path
that can be deleted to force a rebuild anyway.
2019-09-04 16:02:31 -07: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
Mark Rousskov
fda251b966 Rename --warnings=allow to --warnings=warn
We never allowed the warnings, only made them not denied.
2019-09-04 14:21:35 -04:00
Mark Rousskov
c86ea34639 Ensure all warnings are emitted even on warnings=warn 2019-09-04 14:21:35 -04: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
Dario Gonzalez
4a2094c9f6 address rebase changes 2019-09-04 09:24:33 -07:00
Eric Huss
74ccd08401 Update cargo, books 2019-09-04 08:35:52 -07:00