Commit Graph

4730 Commits

Author SHA1 Message Date
Eduard-Mihai Burtescu
a15bfc6f48 rustc: merge PrintCx::parameterized and def_path printing. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
e0c75ff40d rustc: rename item_path to def_path (except the module in ty). 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
6ca6c1a6cc rustc_mir: adjust the type_length_limit diagnostic to be more useful. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
3e1cef7007 rustc: pass Option<&Substs> and Namespace around in ty::item_path. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
329b8ca818 rustc: always rely on '_ to be not printed by ty::Region itself. 2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
1c2a3c5d79 rustc: support impl's in PrintCx::parameterized. 2019-03-15 09:26:13 +02:00
bors
0ad3207745 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
2019-03-14 01:28:18 +00:00
Alexander Regueiro
fe30743c79 Moved issue tests to subdirs and normalised names. 2019-03-14 01:00:49 +00:00
bors
8bf1f1c8f4 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
2019-03-13 14:59:05 +00:00
Mazdak Farrokhzad
c22566d96d
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
2019-03-13 03:33:56 +01:00
Mazdak Farrokhzad
b70a98f261
Rollup merge of #59129 - sanxiyn:visit-impl-trait, r=varkor
Visit impl Trait for dead_code lint

Fix #59085.
2019-03-13 03:33:53 +01:00
Mazdak Farrokhzad
c0dcfedd9f
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
2019-03-13 03:33:46 +01:00
Mazdak Farrokhzad
ad7b650815
Rollup merge of #58876 - estebank:numeric-lifetime, r=petrochenkov
Parse lifetimes that start with a number and give specific error

Fix #58786.
2019-03-13 03:33:36 +01:00
kyren
aa9bd68fa8 Rename test struct names to something more sensible 2019-03-12 18:33:27 -04:00
varkor
5b3e1be724 Remove compiletest comments from tests 2019-03-12 19:06:13 +00:00
Vadim Petrochenkov
1d6f4d66ad resolve: Simplify import resolution for mixed 2015/2018 edition mode 2019-03-12 21:57:02 +03:00
varkor
d17da3a17e Add NLL test error output 2019-03-12 18:34:43 +00:00
varkor
57c6a0b17b Remove invalid ASM tests
These still fail on some architectures.
2019-03-12 18:34:43 +00:00
varkor
216bee499f Ignore WASM on asm tests 2019-03-12 18:34:43 +00:00
varkor
4aa5fd0806 Update test for issue #55731 2019-03-12 18:34:43 +00:00
varkor
1dea6e00de Add a test for #27054 2019-03-12 18:34:43 +00:00
varkor
b4b8a6e0bb Add a test for #26577 2019-03-12 18:34:43 +00:00
varkor
5917d9fc62 Add a test for #28587 2019-03-12 18:34:43 +00:00
varkor
295b6fd0f7 Add a test for #22892 2019-03-12 18:34:43 +00:00
varkor
e3297e7ce3 Add a test for #57781 2019-03-12 18:34:43 +00:00
varkor
b7763af526 Add a test for #55731 2019-03-12 18:34:43 +00:00
varkor
776411bb5a Add a test for #46101 2019-03-12 18:34:43 +00:00
varkor
ec56d6e5b9 Add a test for #44255 2019-03-12 18:34:43 +00:00
varkor
3f16518c05 Add a test for #44127 2019-03-12 18:34:43 +00:00
varkor
d49f4f86d9 Add a test for #26619 2019-03-12 18:34:43 +00:00
varkor
651c1abfb7 Add tests for #26448 2019-03-12 18:34:43 +00:00
varkor
5c563f98b8 Add a test for #10876 2019-03-12 18:34:42 +00:00
Niko Matsakis
261daf27c9 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).
2019-03-12 10:57:06 -04:00
Seo Sanghyeon
2027459f77 Visit impl Trait for dead_code lint 2019-03-12 21:35:20 +09:00
bors
8f4c226fc5 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
2019-03-12 12:09:47 +00:00
Vadim Petrochenkov
07f99b9fec Update tests that don't run on my platform 2019-03-11 23:30:10 +03:00
Vadim Petrochenkov
c1cfacfb13 Update NLL tests 2019-03-11 23:18:35 +03:00
Vadim Petrochenkov
fa72a81bea Update tests 2019-03-11 23:10:26 +03:00
Felix S. Klock II
837856d120 Test illustrating that the nested_impl_trait lint should only catch shallow cases. 2019-03-11 16:30:40 +01:00
bors
f52f18529a 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
2019-03-11 06:10:31 +00:00
kyren
8b1742ea6a 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
2019-03-10 23:01:30 -04:00
bors
c2ddf5a1dd 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.
2019-03-11 01:28:16 +00:00
Matthew Jasper
7285b5630b Make migrate mode work at item level granularity 2019-03-10 17:27:31 +00:00
bors
8ad727eab6 Auto merge of #58498 - euclio:e0432-suggestions, r=estebank
use structured suggestions for E0432
2019-03-10 03:36:17 +00:00
Esteban Küber
f690821d58 review comments 2019-03-09 11:08:51 -08:00
Mazdak Farrokhzad
79873f79b1
Rollup merge of #58762 - petrochenkov:unwind, r=Mark-Simulacrum
Mention `unwind(aborts)` in diagnostics for `#[unwind]`

Simplify input validation for `#[unwind]`, add tests

cc https://github.com/rust-lang/rust/issues/58760
r? @Mark-Simulacrum
2019-03-09 17:18:23 +01:00
Mazdak Farrokhzad
f1e317b713
Rollup merge of #58750 - TimDiekmann:master, r=oli-obk
Make `Unique::as_ptr`, `NonNull::dangling` and `NonNull::cast` const
2019-03-09 17:18:21 +01:00
Mazdak Farrokhzad
f32d62e5ae
Rollup merge of #58679 - Zoxc:passes-refactor, r=michaelwoerister
Refactor passes and pass execution to be more parallel

For `syntex_syntax` (with 16 threads and 8 cores):
- Cuts `misc checking 1` from `0.096s` to `0.08325s`.
- Cuts `misc checking 2` from `0.3575s` to `0.2545s`.
- Cuts `misc checking 3` from `0.34625s` to `0.21375s`.
- Cuts `wf checking` from `0.3085s` to `0.05025s`.

Reduces overall execution time for `syntex_syntax` (with 8 threads and cores) from `4.92s` to `4.34s`.

Subsumes https://github.com/rust-lang/rust/pull/58494
Blocked on https://github.com/rust-lang/rust/pull/58250

r? @michaelwoerister
2019-03-09 17:18:20 +01:00
Andy Russell
4bbe8839dd
use structured suggestions for E0432 2019-03-09 11:05:30 -05:00
bors
e1b8898cfb Auto merge of #57882 - euclio:unused-doc-attributes, r=estebank
overhaul unused doc comments lint

This PR contains a number of improvements to the `unused_doc_comments` lint.

- Extends the span to cover the entire comment when using sugared doc comments.
- Triggers the lint for all unused doc comments on a node, instead of just the first one.
- Triggers the lint on macro expansions, and provides a help note explaining that doc comments must be expanded by the macro.
- Adds a label pointing at the node that cannot be documented.

Furthermore, this PR fixes any instances in rustc where a macro expansion was erroneously documented.
2019-03-09 08:17:48 +00:00