Ximin Luo
485697bf42
Better way of conditioning the sanitizer builds
...
Previously the build would take the presence of the LLVM_CONFIG envvar to
mean that the sanitizers should be built, but this is a common envvar that
could be set for reasons unrelated to the rustc sanitizers.
This commit adds a new envvar RUSTC_BUILD_SANITIZERS and uses it instead.
2019-09-05 00:14:09 -07:00
Esteban Küber
24d0a01b75
review comment
2019-09-05 00:01:37 -07:00
Mazdak Farrokhzad
0341b78044
resolve: bool -> enum PatBoundCtx
2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
a7db1a4861
or-patterns: address review comments.
2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
d70b0c5d42
or-patterns: fix pprust-expr-roundtrip due to AST change.
2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
be95dee5a1
or-patterns: adjust save_analysis wrt. process_var_decl{_multi}.
2019-09-05 08:33:09 +02:00
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
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
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