]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoreduced a code repetition related to bit operation.
kenta7777 [Fri, 15 Mar 2019 12:48:05 +0000 (21:48 +0900)]
reduced a code repetition related to bit operation.

5 years agoAuto merge of #58710 - EdorianDark:master, r=sfackler
bors [Fri, 15 Mar 2019 06:23:21 +0000 (06:23 +0000)]
Auto merge of #58710 - EdorianDark:master, r=sfackler

Add clamp for ranges. Implements #44095

Ready for merge

5 years agoAuto merge of #59181 - RalfJung:miri, r=oli-obk
bors [Thu, 14 Mar 2019 15:37:26 +0000 (15:37 +0000)]
Auto merge of #59181 - RalfJung:miri, r=oli-obk

update miri

Fixes https://github.com/rust-lang/rust/issues/59059

r? @oli-obk

5 years agoupdate miri
Ralf Jung [Thu, 14 Mar 2019 14:25:23 +0000 (15:25 +0100)]
update miri

5 years agoAuto merge of #58176 - Zoxc:lint-levels, r=oli-obk
bors [Thu, 14 Mar 2019 12:09:13 +0000 (12:09 +0000)]
Auto merge of #58176 - Zoxc:lint-levels, r=oli-obk

Only insert nodes which changes lint levels in the LintLevelMap

r? @eddyb

5 years agoAuto merge of #58488 - wesleywiser:llvm_prof, r=michaelwoerister
bors [Thu, 14 Mar 2019 08:38:56 +0000 (08:38 +0000)]
Auto merge of #58488 - wesleywiser:llvm_prof, r=michaelwoerister

Replace TimeLine LLVM profiling with the self profiler

5 years agoAuto merge of #59120 - alexreg:move-issue-tests-1, r=varkor
bors [Thu, 14 Mar 2019 01:28:18 +0000 (01:28 +0000)]
Auto merge of #59120 - alexreg:move-issue-tests-1, r=varkor

Moved issue tests to subdirs and normalised names

Consistency, decluttering, ease of navigation :-)

r? @Centril

5 years agoMoved issue tests to subdirs and normalised names.
Alexander Regueiro [Tue, 12 Mar 2019 00:49:17 +0000 (00:49 +0000)]
Moved issue tests to subdirs and normalised names.

5 years agoAuto merge of #59143 - ehuss:update-cargo, r=ehuss
bors [Wed, 13 Mar 2019 18:26:45 +0000 (18:26 +0000)]
Auto merge of #59143 - ehuss:update-cargo, r=ehuss

Update cargo

6 commits in 95b45eca19ac785263fed98ecefe540bb47337ac..0e35bd8af0ec72d3225c4819b330b94628f0e9d0
2019-03-06 19:24:30 +0000 to 2019-03-13 06:52:51 +0000
- Make `hg` optional for tests. (rust-lang/cargo#6739)
- Fingerprint build script deps only for path packages. (rust-lang/cargo#6734)
- Add --quiet option for `cargo test` (rust-lang/cargo#6358)
- .gitignore should end with a newline. (rust-lang/cargo#6732)
- Emit warning on misspelled environment variables (rust-lang/cargo#6694)
- Update glob requirement from 0.2.11 to 0.3.0 (rust-lang/cargo#6724)

5 years agoUpdate cargo
Eric Huss [Tue, 12 Mar 2019 20:34:47 +0000 (13:34 -0700)]
Update cargo

5 years agoAuto merge of #58349 - petrochenkov:uni201x, r=pnkfelix
bors [Wed, 13 Mar 2019 14:59:05 +0000 (14:59 +0000)]
Auto merge of #58349 - petrochenkov:uni201x, r=pnkfelix

resolve: Simplify import resolution for mixed 2015/2018 edition mode

Non-controversial part of https://github.com/rust-lang/rust/pull/57745.

Before:

| Local edition (per-span) | Global edition (--edition) | Imports (`use foo;`)                                 | Absolute paths (`::foo`)                                 |
| ------------- |----------------|-----------------------------------------|------------------------------------------------|
| 2018          | Any            | Uniform                                 | Extern prelude                                 |
| 2015          | 2015           | Crate-relative                          | Crate-relative                                 |
| 2015          | 2018           | Crate-relative with fallback to Uniform (future-proofed to error if the result is not Crate-relative or from Extern prelude) | Crate-relative with fallback to Extern prelude |

After:

| Local edition (per-span) | Global edition (--edition) | Imports (`use foo;`)                                 | Absolute paths (`::foo`)                                 |
| ------------- |----------------|-----------------------------------------|------------------------------------------------|
| 2018          | Any            | Uniform                                 | Extern prelude                                 |
| 2015          | 2015           | Crate-relative                          | Crate-relative                                 |
| 2015          | 2018           | Crate-relative with fallback to Extern prelude | Crate-relative with fallback to Extern prelude |

I.e. only the behavior of the mixed local-2015-global-2018 mode is changed.
This mixed mode has two goals:
- Address regressions from https://github.com/rust-lang/rust/pull/56053#issuecomment-440826397.
Both "before" and "after" variants address those regressions.
- Be retrofit-able to "full 2015" edition (https://github.com/rust-lang/rust/pull/57745).
Any more complex fallback scheme (with more candidates) than "Crate-relative with fallback to Extern prelude" will give more regressions than https://github.com/rust-lang/rust/pull/57745#issuecomment-455855089 and is therefore less retrofit-able while also being, well, more complex.
So, we can settle on "Crate-relative with fallback to Extern prelude".

(I'll hopefully proceed with https://github.com/rust-lang/rust/pull/57745 after mid-February.)

r? @Centril

5 years agoAuto merge of #56864 - Zoxc:stable-hash-macro, r=michaelwoerister
bors [Wed, 13 Mar 2019 11:36:46 +0000 (11:36 +0000)]
Auto merge of #56864 - Zoxc:stable-hash-macro, r=michaelwoerister

Use derive macro for HashStable

Blocked on https://github.com/rust-lang/rust/pull/56795

5 years agoAuto merge of #59151 - Centril:rollup, r=Centril
bors [Wed, 13 Mar 2019 03:30:20 +0000 (03:30 +0000)]
Auto merge of #59151 - Centril:rollup, r=Centril

Rollup of 16 pull requests

Successful merges:

 - #58829 (librustc_interface: Update scoped-tls to 1.0)
 - #58876 (Parse lifetimes that start with a number and give specific error)
 - #58908 (Update rand version)
 - #58998 (Fix documentation of from_ne_bytes and from_le_bytes)
 - #59056 (Use lifetime contravariance to elide more lifetimes in core+alloc+std)
 - #59057 (Standardize `Range*` documentation)
 - #59080 (Fix incorrect links in librustc_codegen_llvm documentation)
 - #59083 (Fix #54822 and associated faulty tests)
 - #59093 (Remove precompute_in_scope_traits_hashes)
 - #59101 (Reduces Code Repetitions like `!n >> amt`)
 - #59121 (impl FromIterator for Result: Use assert_eq! instead of assert!)
 - #59124 (Replace assert with assert_eq)
 - #59129 (Visit impl Trait for dead_code lint)
 - #59130 (Note that NonNull does not launder shared references for mutation)
 - #59132 (ignore higher-ranked object bound conditions created by WF)
 - #59138 (Simplify Iterator::{min, max})

Failed merges:

r? @ghost

5 years agoRollup merge of #59138 - timvermeulen:simplify_select_fold1, r=sfackler
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:57 +0000 (03:33 +0100)]
Rollup merge of #59138 - timvermeulen:simplify_select_fold1, r=sfackler

Simplify Iterator::{min, max}

This PR simplifies the `select_fold1` helper method used to implmement `Iterator::{min, min_by, min_by_key, max, max_by, max_by_key}` by removing the projection argument, which was only used by the implementations of `min_by_key` and `max_by_key`.

I also added tests to ensure that the stability as mentioned in the comments of `min` and `max` is preserved, and fixed the `iter::{bench_max, bench_max_by_key}` benchmarks which the compiler presumably was able to collapse into closed-form expressions. None of the benchmark results were impacted, I suspect their generated assembly didn't change.

5 years agoRollup merge of #59132 - nikomatsakis:issue-53548-generator-bound, r=pnkfelix
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:56 +0000 (03:33 +0100)]
Rollup merge of #59132 - nikomatsakis:issue-53548-generator-bound, r=pnkfelix

ignore higher-ranked object bound conditions created by WF

In the `issue-53548` test added in this PR, the `Box<dyn Trait>` type is expanded to `Box<dyn Trait + 'static>`, but the generator "witness" that results is `for<'r> { Box<dyn Trait + 'r> }`. The WF code was encountering an ICE (when debug-assertions were enabled) and an unexpected compilation error (without debug-asserions) when trying to process this `'r` region bound. In particular, to be WF, the region bound must meet the requirements of the trait, and hence we got `for<'r> { 'r: 'static }`. This would ICE because the `Binder` constructor we were using was assering that no higher-ranked regions were involved (because the WF code is supposed to skip those). The error (if debug-asserions were disabled) came because we obviously cannot prove that `'r: 'static` for any region `'r`.  Pursuant with
our "lazy WF" strategy for higher-ranked regions, the fix is not to require that `for<'r> { 'r: 'static }` holds (this is also analogous to what we would do for higher-ranked regions appearing within the trait in other positions).

Fixes #53548

r? @pnkfelix

5 years agoRollup merge of #59130 - RalfJung:non-null, r=rkruppe
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:54 +0000 (03:33 +0100)]
Rollup merge of #59130 - RalfJung:non-null, r=rkruppe

Note that NonNull does not launder shared references for mutation

See https://users.rust-lang.org/t/relative-pointer-an-abstraction-to-build-movable-self-referential-types/26186/6

5 years agoRollup merge of #59129 - sanxiyn:visit-impl-trait, r=varkor
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:53 +0000 (03:33 +0100)]
Rollup merge of #59129 - sanxiyn:visit-impl-trait, r=varkor

Visit impl Trait for dead_code lint

Fix #59085.

5 years agoRollup merge of #59124 - sntdevco:master, r=Centril
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:51 +0000 (03:33 +0100)]
Rollup merge of #59124 - sntdevco:master, r=Centril

Replace assert with assert_eq

Use `assert_eq!` instead of `assert!` for the tests

5 years agoRollup merge of #59121 - czipperz:fix_assert_result_fromiterater, r=Centril
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:50 +0000 (03:33 +0100)]
Rollup merge of #59121 - czipperz:fix_assert_result_fromiterater, r=Centril

impl FromIterator for Result: Use assert_eq! instead of assert!

5 years agoRollup merge of #59101 - kenta7777:reduce-code-repetition, r=oli-obk
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:49 +0000 (03:33 +0100)]
Rollup merge of #59101 - kenta7777:reduce-code-repetition, r=oli-obk

Reduces Code Repetitions like `!n >> amt`

Fixes #49937 .
This PR contains defining a function which operates bit inversion and reducing bit operation like `!0u128 >> (128 - size.bits())`.

5 years agoRollup merge of #59093 - Zoxc:no-prealloc, r=michaelwoerister
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:47 +0000 (03:33 +0100)]
Rollup merge of #59093 - Zoxc:no-prealloc, r=michaelwoerister

Remove precompute_in_scope_traits_hashes

r? @michaelwoerister

5 years agoRollup merge of #59083 - kyren:master, r=varkor
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:46 +0000 (03:33 +0100)]
Rollup merge of #59083 - kyren:master, r=varkor

Fix #54822 and associated faulty tests

Type checking associated constants can require trait bounds, but an empty
parameter environment was provided to the trait solver.  Providing an
appropriate parameter environment seems to fix #54822 and also make one of the
cases in src/test/ui/nll/trait-associated-constant.rs that should compile
successfully do so.  It also (slightly) improves the error message in
src/test/ui/associated-const/associated-const-generic-obligations.rs

5 years agoRollup merge of #59080 - nbaksalyar:fix-llvm-codegen-doc, r=frewsxcv
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:44 +0000 (03:33 +0100)]
Rollup merge of #59080 - nbaksalyar:fix-llvm-codegen-doc, r=frewsxcv

Fix incorrect links in librustc_codegen_llvm documentation

5 years agoRollup merge of #59057 - czipperz:standardize_range_documentation, r=shepmaster
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:43 +0000 (03:33 +0100)]
Rollup merge of #59057 - czipperz:standardize_range_documentation, r=shepmaster

Standardize `Range*` documentation

This updates the final example in the documentation for the types
`Range`, `RangeFrom`, `RangeFull`, `RangeInclusive`, `RangeTo`,
`RangeToInclusive`.

5 years agoRollup merge of #59056 - scottmcm:even-fewer-lifetimes, r=sfackler
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:41 +0000 (03:33 +0100)]
Rollup merge of #59056 - scottmcm:even-fewer-lifetimes, r=sfackler

Use lifetime contravariance to elide more lifetimes in core+alloc+std

Sample:
```diff
-    impl<'a, 'b, A: ?Sized, B: ?Sized> PartialEq<&'b mut B> for &'a mut A where A: PartialEq<B> {
+    impl<A: ?Sized, B: ?Sized> PartialEq<&mut B> for &mut A where A: PartialEq<B> {
         #[inline]
-        fn eq(&self, other: &&'b mut B) -> bool { PartialEq::eq(*self, *other) }
+        fn eq(&self, other: &&mut B) -> bool { PartialEq::eq(*self, *other) }
         #[inline]
-        fn ne(&self, other: &&'b mut B) -> bool { PartialEq::ne(*self, *other) }
+        fn ne(&self, other: &&mut B) -> bool { PartialEq::ne(*self, *other) }
     }
```

[I didn't know this worked](https://internals.rust-lang.org/t/why-can-you-use-different-unconstrained-lifetimes-to-implement-traits/9544/2?u=scottmcm) until recently, but since defining methods contravariantly in their lifetimes this way has worked back to Rust 1.0, we might as well take advantage of combining it with IHLE.

5 years agoRollup merge of #58998 - xTibor:doc_from_bytes, r=scottmcm
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:39 +0000 (03:33 +0100)]
Rollup merge of #58998 - xTibor:doc_from_bytes, r=scottmcm

Fix documentation of from_ne_bytes and from_le_bytes

Copypasta mistake, the documentation of `from_ne_bytes` and `from_le_bytes` used the big-endian variant in the example snippets.

5 years agoRollup merge of #58908 - JohnTitor:improve-rand, r=scottmcm
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:37 +0000 (03:33 +0100)]
Rollup merge of #58908 - JohnTitor:improve-rand, r=scottmcm

Update rand version

cc: #57724

r? @scottmcm

5 years agoRollup merge of #58876 - estebank:numeric-lifetime, r=petrochenkov
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:36 +0000 (03:33 +0100)]
Rollup merge of #58876 - estebank:numeric-lifetime, r=petrochenkov

Parse lifetimes that start with a number and give specific error

Fix #58786.

5 years agoRollup merge of #58829 - Xanewok:scoped-tls, r=Zoxc
Mazdak Farrokhzad [Wed, 13 Mar 2019 02:33:34 +0000 (03:33 +0100)]
Rollup merge of #58829 - Xanewok:scoped-tls, r=Zoxc

librustc_interface: Update scoped-tls to 1.0

Done previously as a part of https://github.com/rust-lang/rust/pull/58748.

r? @Zoxc

5 years agoAdd missing project attributes
John Kåre Alsaker [Tue, 12 Mar 2019 23:08:36 +0000 (00:08 +0100)]
Add missing project attributes

5 years agoUse derive macro for HashStable
John Kåre Alsaker [Mon, 3 Dec 2018 00:14:35 +0000 (01:14 +0100)]
Use derive macro for HashStable

5 years agoFix newtype_index
John Kåre Alsaker [Sat, 9 Mar 2019 21:04:00 +0000 (22:04 +0100)]
Fix newtype_index

5 years agoRename test struct names to something more sensible
kyren [Tue, 12 Mar 2019 22:33:27 +0000 (18:33 -0400)]
Rename test struct names to something more sensible

5 years agoAuto merge of #58743 - varkor:bulk-needstest-1, r=alexcrichton
bors [Tue, 12 Mar 2019 22:15:07 +0000 (22:15 +0000)]
Auto merge of #58743 - varkor:bulk-needstest-1, r=alexcrichton

Add tests for several E-needstest issues

This PR adds a number of tests for various `E-needstest` errors. These tend to have been left open for a long time and seem unlikely to be closed otherwise.

Closes https://github.com/rust-lang/rust/issues/10876.
Closes https://github.com/rust-lang/rust/issues/26448.
Closes https://github.com/rust-lang/rust/issues/26577.
Closes https://github.com/rust-lang/rust/issues/26619.
Closes https://github.com/rust-lang/rust/issues/27054.
Closes https://github.com/rust-lang/rust/issues/44127.
Closes https://github.com/rust-lang/rust/issues/44255.
Closes https://github.com/rust-lang/rust/issues/55731.
Closes https://github.com/rust-lang/rust/issues/57781.

5 years agoForward `max` and `min` to `max_by` and `min_by` respectively
Tim Vermeulen [Tue, 12 Mar 2019 19:24:10 +0000 (20:24 +0100)]
Forward `max` and `min` to `max_by` and `min_by` respectively

5 years agoRemove compiletest comments from tests
varkor [Tue, 12 Mar 2019 19:06:13 +0000 (19:06 +0000)]
Remove compiletest comments from tests

5 years agoAuto merge of #58015 - icefoxen:tryfrom-docs, r=SimonSapin
bors [Tue, 12 Mar 2019 18:58:23 +0000 (18:58 +0000)]
Auto merge of #58015 - icefoxen:tryfrom-docs, r=SimonSapin

Expand docs for `TryFrom` and `TryInto`.

The examples are still lacking for now, both for module docs and for methods/impl's.  Will be adding those in further pushes.

Should hopefully resolve the doc concern in #33417 when finished?

5 years agoresolve: Simplify import resolution for mixed 2015/2018 edition mode
Vadim Petrochenkov [Wed, 16 Jan 2019 23:17:22 +0000 (02:17 +0300)]
resolve: Simplify import resolution for mixed 2015/2018 edition mode

5 years agoAdd NLL test error output
varkor [Mon, 11 Mar 2019 23:06:34 +0000 (23:06 +0000)]
Add NLL test error output

5 years agoRemove invalid ASM tests
varkor [Sat, 9 Mar 2019 17:02:11 +0000 (17:02 +0000)]
Remove invalid ASM tests

These still fail on some architectures.

5 years agoIgnore WASM on asm tests
varkor [Sat, 2 Mar 2019 12:47:39 +0000 (12:47 +0000)]
Ignore WASM on asm tests

5 years agoUpdate test for issue #55731
varkor [Tue, 26 Feb 2019 20:56:52 +0000 (20:56 +0000)]
Update test for issue #55731

5 years agoAdd a test for #27054
varkor [Mon, 25 Feb 2019 23:57:08 +0000 (23:57 +0000)]
Add a test for #27054

5 years agoAdd a test for #26577
varkor [Mon, 25 Feb 2019 23:56:53 +0000 (23:56 +0000)]
Add a test for #26577

5 years agoAdd a test for #28587
varkor [Mon, 25 Feb 2019 23:56:27 +0000 (23:56 +0000)]
Add a test for #28587

5 years agoAdd a test for #22892
varkor [Mon, 25 Feb 2019 23:56:10 +0000 (23:56 +0000)]
Add a test for #22892

5 years agoAdd a test for #57781
varkor [Mon, 25 Feb 2019 23:55:43 +0000 (23:55 +0000)]
Add a test for #57781

5 years agoAdd a test for #55731
varkor [Mon, 25 Feb 2019 23:55:34 +0000 (23:55 +0000)]
Add a test for #55731

5 years agoAdd a test for #46101
varkor [Mon, 25 Feb 2019 23:55:25 +0000 (23:55 +0000)]
Add a test for #46101

5 years agoAdd a test for #44255
varkor [Mon, 25 Feb 2019 23:55:16 +0000 (23:55 +0000)]
Add a test for #44255

5 years agoAdd a test for #44127
varkor [Mon, 25 Feb 2019 23:55:08 +0000 (23:55 +0000)]
Add a test for #44127

5 years agoAdd a test for #26619
varkor [Mon, 25 Feb 2019 23:55:00 +0000 (23:55 +0000)]
Add a test for #26619

5 years agoAdd tests for #26448
varkor [Mon, 25 Feb 2019 23:54:49 +0000 (23:54 +0000)]
Add tests for #26448

5 years agoAdd a test for #10876
varkor [Mon, 25 Feb 2019 23:07:12 +0000 (23:07 +0000)]
Add a test for #10876

5 years agoAdd tests to ensure that Iterator::min and Iterator::max are stable
Tim Vermeulen [Tue, 12 Mar 2019 18:25:44 +0000 (19:25 +0100)]
Add tests to ensure that Iterator::min and Iterator::max are stable

5 years agoFix comment
Tim Vermeulen [Tue, 12 Mar 2019 16:53:25 +0000 (17:53 +0100)]
Fix comment

5 years agoRemove the projection part of select_fold1
Tim Vermeulen [Tue, 12 Mar 2019 16:52:26 +0000 (17:52 +0100)]
Remove the projection part of select_fold1

5 years agoFix the bench_max and bench_max_by_key benchmarks
Tim Vermeulen [Tue, 12 Mar 2019 16:52:10 +0000 (17:52 +0100)]
Fix the bench_max and bench_max_by_key benchmarks

5 years agoRemove stabilized feature gate in doctest
Simon Sapin [Tue, 12 Mar 2019 16:42:42 +0000 (17:42 +0100)]
Remove stabilized feature gate in doctest

5 years agoAuto merge of #58330 - GuillaumeGomez:rustdoc-js-non-std, r=QuietMisdreavus,Mark...
bors [Tue, 12 Mar 2019 15:33:59 +0000 (15:33 +0000)]
Auto merge of #58330 - GuillaumeGomez:rustdoc-js-non-std, r=QuietMisdreavus,Mark-Simulacrum

Add rustdoc JS non-std tests

@QuietMisdreavus: You asked it, here it is!

r? @QuietMisdreavus

5 years agoignore higher-ranked WF requirements for trait objects
Niko Matsakis [Tue, 12 Mar 2019 14:57:06 +0000 (10:57 -0400)]
ignore higher-ranked WF requirements for trait objects

In the `issue-53548` test added in this commit, the `Box<dyn Trait>`
type is expanded to `Box<dyn Trait + 'static>`, but the generator
"witness" that results is `for<'r> { Box<dyn Trait + 'r> }`. The WF
code was encountering an ICE (when debug-assertions were enabled) and
an unexpected compilation error (without debug-asserions) when trying
to process this `'r` region bound. In particular, to be WF, the region
bound must meet the requirements of the trait, and hence we got
`for<'r> { 'r: 'static }`. This would ICE because the `Binder`
constructor we were using was assering that no higher-ranked regions
were involved (because the WF code is supposed to skip those). The
error (if debug-asserions were disabled) came because we obviously
cannot prove that `'r: 'static` for any region `'r`.  Pursuant with
our "lazy WF" strategy for higher-ranked regions, the fix is not to
require that `for<'r> { 'r: 'static }` holds (this is also analogous
to what we would do for higher-ranked regions appearing within the
trait in other positions).

5 years agoadd a useful debug printout
Niko Matsakis [Tue, 12 Mar 2019 14:52:29 +0000 (10:52 -0400)]
add a useful debug printout

5 years agoexpand
Ralf Jung [Tue, 12 Mar 2019 12:44:09 +0000 (13:44 +0100)]
expand

5 years agoNote that NonNull does not launder shared references for mutation
Ralf Jung [Tue, 12 Mar 2019 12:41:12 +0000 (13:41 +0100)]
Note that NonNull does not launder shared references for mutation

5 years agoVisit impl Trait for dead_code lint
Seo Sanghyeon [Tue, 12 Mar 2019 12:35:20 +0000 (21:35 +0900)]
Visit impl Trait for dead_code lint

5 years agoAuto merge of #58608 - pnkfelix:warning-period-for-detecting-nested-impl-trait, r...
bors [Tue, 12 Mar 2019 12:09:47 +0000 (12:09 +0000)]
Auto merge of #58608 - pnkfelix:warning-period-for-detecting-nested-impl-trait, r=zoxc

Warning period for detecting nested impl trait

Here is some proposed code for making a warning period for the new checking of nested impl trait.

It undoes some of the corrective effects of PR #57730, by using boolean flags to track parts of the analysis that were previously skipped prior to PRs #57730 and #57981 landing.

Cc #57979

5 years agoAddressed review feedback regarding comment phrasing.
Felix S. Klock II [Tue, 12 Mar 2019 12:00:50 +0000 (13:00 +0100)]
Addressed review feedback regarding comment phrasing.

5 years agoReplace assert with assert_eq for better debugging
Sayan Nandan [Tue, 12 Mar 2019 04:38:57 +0000 (10:08 +0530)]
Replace assert with assert_eq for better debugging

5 years agoimpl FromIterator for Result: Use assert_eq! instead of assert!
Chris Gregory [Tue, 12 Mar 2019 01:04:34 +0000 (21:04 -0400)]
impl FromIterator for Result: Use assert_eq! instead of assert!

5 years agoFix RangeBounds documentation to include inclusive operations
Chris Gregory [Sun, 10 Mar 2019 06:21:30 +0000 (01:21 -0500)]
Fix RangeBounds documentation to include inclusive operations

5 years agoStandardize `Range*` documentation
Chris Gregory [Sun, 10 Mar 2019 06:02:38 +0000 (01:02 -0500)]
Standardize `Range*` documentation

This updates the final example in the documentation for the types
`Range`, `RangeFrom`, `RangeFull`, `RangeInclusive`, `RangeTo`,
`RangeToInclusive`.

5 years agoAuto merge of #59044 - petrochenkov:uiui, r=davidtwco
bors [Mon, 11 Mar 2019 21:45:29 +0000 (21:45 +0000)]
Auto merge of #59044 - petrochenkov:uiui, r=davidtwco

Filter away test annotations from UI test output

If you worked with UI tests for some time you could notice one issue affecting their readability and also readability of diffs when the tests change.
Look at the output of this test.
```rust
fn main() {
    let 1 = 2; //~ ERROR refutable pattern in local binding
}
```
```
error[E0005]: refutable pattern in local binding: `-2147483648i32..=0i32` not covered
 --> src/main.rs:2:9
  |
2 |     let 1 = 2; //~ ERROR refutable pattern in local binding
  |         ^ pattern `-2147483648i32..=0i32` not covered

error: aborting due to previous error

For more information about this error, try `rustc --explain E0005`.
```
You can see that the "refutable pattern in local binding" is duplicated.
One instance is the actual error, and the second instance is the expected error annotation.
This annotation is useful in the test input, but in the output it clutters the text and makes it harder to see what text refers to actual errors and what is just comments, especially if there are many errors in a single test file.

@estebank [reported](https://github.com/rust-lang/rust/pull/57379#discussion_r245523361) using the next trick to avoid the clutter
```rust
fn main() {
    let 1 = 2;
    //~^ ERROR refutable pattern in local binding
}
```
```
error[E0005]: refutable pattern in local binding: `-2147483648i32..=0i32` not covered
 --> src/main.rs:2:9
  |
2 |     let 1 = 2;
  |         ^ pattern `-2147483648i32..=0i32` not covered

error: aborting due to previous error

For more information about this error, try `rustc --explain E0005`.
```
, i.e. using `//~^` and placing the annotation one line below will remove the annotation from the output.

However, this doesn't always works (consider errors with multi-line spans), and shouldn't be necessary in general!
`compiletest` could automatically filter away its own annotations from the output instead.
This is exactly what this PR does.

r? @davidtwco

5 years agoUpdate tests that don't run on my platform
Vadim Petrochenkov [Mon, 11 Mar 2019 20:30:10 +0000 (23:30 +0300)]
Update tests that don't run on my platform

5 years agoUpdate NLL tests
Vadim Petrochenkov [Mon, 11 Mar 2019 20:18:35 +0000 (23:18 +0300)]
Update NLL tests

5 years agoUpdate tests
Vadim Petrochenkov [Sat, 9 Mar 2019 12:03:44 +0000 (15:03 +0300)]
Update tests

5 years agocompiletest: Filter away test annotations from UI test output
Vadim Petrochenkov [Sat, 9 Mar 2019 11:29:55 +0000 (14:29 +0300)]
compiletest: Filter away test annotations from UI test output

5 years agoAuto merge of #58021 - ishitatsuyuki:57667-fix, r=RalfJung
bors [Mon, 11 Mar 2019 17:20:20 +0000 (17:20 +0000)]
Auto merge of #58021 - ishitatsuyuki:57667-fix, r=RalfJung

Fix fallout from #57667

5 years agoremoved the definition of mask
kenta7777 [Mon, 11 Mar 2019 16:15:05 +0000 (01:15 +0900)]
removed the definition of mask

5 years agoreplaced some bit operations with truncate
kenta7777 [Mon, 11 Mar 2019 16:06:12 +0000 (01:06 +0900)]
replaced some bit operations with truncate

5 years agoTest illustrating that the nested_impl_trait lint should only catch shallow cases.
Felix S. Klock II [Mon, 11 Mar 2019 15:30:40 +0000 (16:30 +0100)]
Test illustrating that the nested_impl_trait lint should only catch shallow cases.

5 years agoRevised warning-downgrade strategy for nested impl trait.
Felix S. Klock II [Mon, 11 Mar 2019 14:14:24 +0000 (15:14 +0100)]
Revised warning-downgrade strategy for nested impl trait.

Instead of a sticky-boolean flag that would downgrade errors to
warnings during further recursion into the type (which is overly broad
because we were not missing errors at arbitrarily deep levels), this
instead tracks state closer to what the original bug actually was.

In particular, the actual original bug was that we were failing to
record the existence of an outer `impl Trait` solely when it occurred
as an *immediate child* during the walk of the child types in
`visit_generic_args`.

Therefore, the correct way to precisely model when that bug would
manifest itself (and thus downgrade the error-to-warning accordingly)
is to track when those outer `impl Trait` cases were previously
unrecorded.

That's what this code does, by storing a flag with the recorded outer
`impl Trait` indicating at which point in the compiler's control flow
it had been stored.

I will note that this commit passes the current test suite. A
follow-up commit will also include tests illustrating the cases that
this commit gets right (and were handled incorrectly by the previous
sticky boolean).

5 years agoreduced some code repetitions of bit operation
kenta7777 [Mon, 11 Mar 2019 13:32:27 +0000 (22:32 +0900)]
reduced some code repetitions of bit operation

5 years agoadded a function for reducing repetition of bit operation
kenta7777 [Mon, 11 Mar 2019 13:31:25 +0000 (22:31 +0900)]
added a function for reducing repetition of bit operation

5 years agoAuto merge of #59073 - Xanewok:rustup-rustc-interface, r=Zoxc
bors [Mon, 11 Mar 2019 12:14:00 +0000 (12:14 +0000)]
Auto merge of #59073 - Xanewok:rustup-rustc-interface, r=Zoxc

Update RLS and Clippy due to #56732 (rustc_interface crate)

Closes #59060.

In addition to plain submodule bumps, this also contains update to rls-rustc. The in-tree, from the RLS monorepo, version is used instead of the crates.io one (@nrc I think we might stop publishing `rls-rustc` altogether, right? It's only there to work around passing `-Zsave-analysis` to stable `rustc` and meant to be used only by RLS, IIRC).

@Zoxc also due to how we need to access the expanded AST still from the RLS side in order to pass save analysis data in-memory, I delayed the AST drop after the `after_analysis` callback if the `-Zsave-analysis` is passed.

It'd be also good if you could take a look at the changes inside the `rls` and `rls-rustc`: https://github.com/rust-lang/rls/compare/6a1b5a9cfda2ae19372e0613e76ebefba36edcf5...6840dd69af3ada1f8a432075f1f0be679ea8a468. The `rls-rustc` is based on your [PR](https://github.com/rust-dev-tools/rls-rustc/pull/11) but I also had to change some bits in the RLS itself.

r? @Zoxc / @Manishearth

5 years agoAuto merge of #59071 - Manishearth:clippyup, r=oli-obk
bors [Mon, 11 Mar 2019 09:08:45 +0000 (09:08 +0000)]
Auto merge of #59071 - Manishearth:clippyup, r=oli-obk

Update clippy

r? @oli-obk

5 years agoRemove precompute_in_scope_traits_hashes
John Kåre Alsaker [Sun, 10 Mar 2019 09:11:15 +0000 (10:11 +0100)]
Remove precompute_in_scope_traits_hashes

5 years agoAuto merge of #58788 - matthewjasper:compare-children, r=pnkfelix
bors [Mon, 11 Mar 2019 06:10:31 +0000 (06:10 +0000)]
Auto merge of #58788 - matthewjasper:compare-children, r=pnkfelix

Make migrate mode work at item level granularity

Migrate mode now works entirely at the item level rather than the body level,
ensuring that we don't lose any errors in contained closures.

Closes #58776

r? @pnkfelix

5 years agoFix #54822 and associated faulty tests
kyren [Mon, 11 Mar 2019 02:18:38 +0000 (22:18 -0400)]
Fix #54822 and associated faulty tests

Type checking associated constants can require trait bounds, but an empty
parameter environment was provided to the trait solver.  Providing an
appropriate parameter environment seems to fix #54822 and also make one of the
cases in src/test/ui/nll/trait-associated-constant.rs that should compile
successfully do so.  It also (slightly) improves the error message in
src/test/ui/associated-const/associated-const-generic-obligations.rs

5 years agoAuto merge of #58784 - oli-obk:accidental_promotion, r=eddyb
bors [Mon, 11 Mar 2019 01:28:16 +0000 (01:28 +0000)]
Auto merge of #58784 - oli-obk:accidental_promotion, r=eddyb

Don't promote function calls to nonpromotable things

fixes https://github.com/rust-lang/rust/issues/58767 and fixes https://github.com/rust-lang/rust/issues/58634

r? @eddyb

should we additionally check the function call return type? It might be a promotable function (or any `const fn` inside a `const fn`), but its return type might contain interior mutability.

5 years agoFix incorrect links in librustc_codegen_llvm documentation
Nikita Baksalyar [Mon, 11 Mar 2019 01:11:54 +0000 (01:11 +0000)]
Fix incorrect links in librustc_codegen_llvm documentation

5 years agoMake js tests work even with resource-suffix option
Guillaume Gomez [Sun, 10 Mar 2019 22:10:40 +0000 (23:10 +0100)]
Make js tests work even with resource-suffix option

5 years agoAuto merge of #59054 - ehuss:ci-i686-gnu-tests, r=pietroalbini
bors [Sun, 10 Mar 2019 20:34:15 +0000 (20:34 +0000)]
Auto merge of #59054 - ehuss:ci-i686-gnu-tests, r=pietroalbini

CI: Trim some tests from i686-gnu

This removes some tests from the i686-gnu job. This job clocks in at 2hr 56min, and removing these should cut about 10 to 15 minutes, giving a little more breathing room. I suspect these don't need to be tested on every platform.

5 years agoMake migrate mode work at item level granularity
Matthew Jasper [Wed, 27 Feb 2019 21:01:42 +0000 (21:01 +0000)]
Make migrate mode work at item level granularity

5 years agoUpdate clippy
Manish Goregaokar [Sun, 10 Mar 2019 16:44:43 +0000 (09:44 -0700)]
Update clippy

5 years agoBump Clippy and RLS
Igor Matuszewski [Sun, 10 Mar 2019 16:03:32 +0000 (17:03 +0100)]
Bump Clippy and RLS

5 years agoDrop expanded AST later if in save_analysis mode
Igor Matuszewski [Sun, 10 Mar 2019 16:03:05 +0000 (17:03 +0100)]
Drop expanded AST later if in save_analysis mode

5 years agoCI: Trim some tests from i686-gnu
Eric Huss [Sat, 9 Mar 2019 23:40:39 +0000 (15:40 -0800)]
CI: Trim some tests from i686-gnu

This removes some tests from the i686-gnu job. This job clocks in at 2hr 56min, and removing these should cut about 10 to 15 minutes, giving a little more breathing room. I suspect these don't need to be tested on every platform.

5 years agoReplace TimeLine with SelfProfiler
Wesley Wiser [Wed, 13 Feb 2019 13:13:30 +0000 (08:13 -0500)]
Replace TimeLine with SelfProfiler

5 years agoAuto merge of #56732 - Zoxc:rustc-interface, r=oli-obk
bors [Sun, 10 Mar 2019 06:31:42 +0000 (06:31 +0000)]
Auto merge of #56732 - Zoxc:rustc-interface, r=oli-obk

Make the rustc driver and interface demand driven

This introduces a new crate `rustc_interface` which is the canonical interface for creating and using the compiler. It allows you to access a `Compiler` type in a closure and that types have methods to run passes on demand. The interesting parts are found [here (defining the queries)](https://github.com/Zoxc/rust/blob/rustc-interface/src/librustc_interface/queries.rs#L78) and [here (methods to create a `Compiler`)](https://github.com/Zoxc/rust/blob/rustc-interface/src/librustc_interface/interface.rs).

cc @rust-lang/compiler @rust-lang/dev-tools @rust-lang/rustdoc

5 years agoMake the rustc driver and interface demand driven
John Kåre Alsaker [Sat, 8 Dec 2018 19:30:23 +0000 (20:30 +0100)]
Make the rustc driver and interface demand driven