Commit Graph

84269 Commits

Author SHA1 Message Date
bors
6ddab3e078 Auto merge of #54720 - davidtwco:issue-51191, r=nikomatsakis
NLL fails to suggest "try removing `&mut` here"

Fixes #51191.

This PR adds ``try removing `&mut` here`` suggestions to functions where a mutable borrow is being taken of a `&mut self` or a `self: &mut Self`. This PR also enables the suggestion for adding a `mut` pattern to by-value implicit self arguments without `mut` patterns already.

r? @nikomatsakis
2018-10-03 10:49:27 +00:00
bors
4cf11765dc Auto merge of #54767 - pietroalbini:rollup, r=pietroalbini
Rollup of 10 pull requests

Successful merges:

 - #54269 (#53840: Consolidate pattern check errors)
 - #54458 (Allow both explicit and elided lifetimes in the same impl header)
 - #54603 (Add `crate::` to trait suggestions in Rust 2018.)
 - #54648 (Update Cargo's submodule)
 - #54680 (make run-pass tests with empty main just compile-pass tests)
 - #54687 (Use impl_header_lifetime_elision in libcore)
 - #54699 (Re-export `getopts` so custom drivers can reference it.)
 - #54702 (do not promote comparing function pointers)
 - #54728 (Renumber `proc_macro` tracking issues)
 - #54745 (make `CStr::from_bytes_with_nul_unchecked()` a const fn)

Failed merges:

r? @ghost
2018-10-02 23:29:58 +00:00
Pietro Albini
00e4b27796
Rollup merge of #54745 - abonander:cstr-const, r=oli-obk
make `CStr::from_bytes_with_nul_unchecked()` a const fn

closes #54678
2018-10-02 22:54:38 +02:00
Pietro Albini
1826970cf2
Rollup merge of #54728 - alexcrichton:renumber-issues, r=nikomatsakis
Renumber `proc_macro` tracking issues

Lots of issue links in the compiler still point to https://github.com/rust-lang/rust/issues/38356 which is a bit of a monster issue that isn't serving much purpose any more. I've split the issue into a number of more fine-grained tracking issues to track stabilizations.
2018-10-02 22:54:36 +02:00
Pietro Albini
d9d96637d4
Rollup merge of #54702 - RalfJung:fn-ptr-promotion, r=oli-obk
do not promote comparing function pointers

This *could* break existing code that relied on fn ptr comparison getting promoted to `'static` lifetime.

Fixes https://github.com/rust-lang/rust/issues/54696
2018-10-02 22:54:35 +02:00
Pietro Albini
958f1c5582
Rollup merge of #54699 - DiamondLovesYou:reexport-getopts, r=pnkfelix
Re-export `getopts` so custom drivers can reference it.

Otherwise, custom drivers will have to use their own copy of `getopts`, which won't match the types used in `CompilerCalls`.
2018-10-02 22:54:34 +02:00
Pietro Albini
7e571eead8
Rollup merge of #54687 - scottmcm:more-elision, r=dtolnay
Use impl_header_lifetime_elision in libcore

The feature is approved for stabilization, so let's use it to remove about 300 `'a`s.

Tracking issue for the feature: https://github.com/rust-lang/rust/issues/15872
2018-10-02 22:54:33 +02:00
Pietro Albini
32c1454a87
Rollup merge of #54680 - RalfJung:compile-pass, r=pnkfelix
make run-pass tests with empty main just compile-pass tests

Many run-pass tests have an empty main, so there is not actually any point in running them. This makes them `compile-pass` tests instead, saving some time (generating the binary and then running it).

For now I did this only for `run-pass/issues`; if there is interest I can also do it for the other directories. I used `^\s*fn\s+main\(\s*\)\s*\{\s*\}` as regexp to identify these files.
2018-10-02 22:54:32 +02:00
Pietro Albini
662f85ea26
Rollup merge of #54648 - alexcrichton:update-cargo, r=nikomatsakis
Update Cargo's submodule

Bring in a few updates and fixes, mostly a standard update.
2018-10-02 22:54:30 +02:00
Pietro Albini
f70f6ec567
Rollup merge of #54603 - davidtwco:issue-54559, r=nikomatsakis
Add `crate::` to trait suggestions in Rust 2018.

Fixes #54559.

In the 2018 edition, when suggesting traits to import that implement a
given method that is being invoked, suggestions will now include the
`crate::` prefix if the suggested trait is local to the current crate.

r? @nikomatsakis
2018-10-02 22:54:29 +02:00
Pietro Albini
ab338eadfa
Rollup merge of #54458 - scottmcm:bug-54456, r=nikomatsakis
Allow both explicit and elided lifetimes in the same impl header

While still prohibiting explicit and in-band in the same header.

Fixes #54456

As usual, I don't know the broader context of the code I'm changing, so please let me know whatever I can do better.

Pre-existing test that mixing explicit and in-band remains an error: https://github.com/rust-lang/rust/blob/master/src/test/ui/in-band-lifetimes/E0688.rs
2018-10-02 22:54:28 +02:00
Pietro Albini
49d4359f6d
Rollup merge of #54269 - PramodBisht:issue/53840, r=estebank
#53840: Consolidate pattern check errors

#53840  on this PR we are aggregating `cannot bind by-move and by-ref in the same pattern` message present on the different lines into one diagnostic message. Here we are first gathering those `spans` on `vector` then we are throwing them with the help of `MultiSpan`
r? @estebank

Addresses: #53480
2018-10-02 22:54:27 +02:00
bors
2bd5993ca2 Auto merge of #54343 - blitzerr:master, r=nikomatsakis
First shot at #54015

Closes #54015
2018-10-02 20:46:49 +00:00
Austin Bonander
e0caaec6f9 make CStr::from_bytes_with_nul_unchecked() a const fn
closes #54678
2018-10-02 04:26:16 -07:00
Austin Bonander
092bf2b500 make CStr::from_bytes_with_nul_unchecked() a const fn
closes #54678
2018-10-02 04:25:40 -07:00
Ralf Jung
454b14a511 move some more tests 2018-10-02 13:16:56 +02:00
bors
1c5e9c68ea Auto merge of #54742 - Manishearth:clippyup, r=oli-obk
Update clippy

r? @oli-obk @kennytm
2018-10-02 10:36:25 +00:00
Manish Goregaokar
b8a67f1477 Update clippy 2018-10-02 11:11:35 +02:00
Pramod Bisht
e536e64702 Consolidate pattern check errors
we are consolidating `cannot bind by-move and by-ref in the same
pattern` message present on the different lines into single diagnostic
message.

To do this, we are first gathering those spans into the vector
after that we are throwing them with the help of MultiSpan in
a separate block.

Addresses: #53840
2018-10-02 05:51:02 +00:00
bors
e812ca472a Auto merge of #54701 - arielb1:outlives-later, r=nikomatsakis
normalize param-env type-outlives predicates last

The normalization of type-outlives predicates can depend on misc.
environment predicates, but not the other way around. Inferred lifetime
bounds can propagate type-outlives bounds far and wide, so their
normalization needs to work well.

Fixes #54467

r? @nikomatsakis
beta-nominating because this is required for inferred_outlives_bounds, which is in beta
2018-10-02 04:22:55 +00:00
bors
2d1065bc2a Auto merge of #54694 - csmoe:self_this, r=estebank
Suggest to use self for fake-self from other languages

Closes https://github.com/rust-lang/rust/issues/54019
r? @estebank
2018-10-02 01:09:36 +00:00
David Wood
02357e459b
Attempt to resolve linking issues.
This commit takes a different approach to add the `crate::` prefix to
item paths than previous commits. Previously, recursion was stopped
after a prelude crate name was pushed to the path. It is theorized that
this was the cause of the linking issues since the same path logic is
used for symbol names and that not recursing meant that details were
being missed that affect symbol names. As of this commit, instead of
ceasing recursion, a flag is passed through to any subsequent recursive
calls so that the same effect can be achieved by checking that flag.
2018-10-02 01:16:08 +02:00
David Wood
4cbd397ce8
Move prelude crate names into Session.
Avoid hardcoding and special-casing the `std` crate name in the item
path logic by moving the prelude crate name logic into the `Session`
type so it can be reused in the item path logic and resolve module.
2018-10-02 01:16:08 +02:00
David Wood
9e2d6e1e62
Add crate:: to trait suggestions in Rust 2018.
In the 2018 edition, when suggesting traits to import that implement a
given method that is being invoked, suggestions will now include the
`crate::` prefix if the suggested trait is local to the current crate.
2018-10-02 01:16:05 +02:00
David Wood
2be306939d
Improve mutability error suggestions.
This commit improves mutability error suggestions by suggesting the
removal of `&mut` where a mutable borrow is being taken of a `&mut self`
or a `self: &mut Self`.
2018-10-02 00:35:15 +02:00
David Wood
43b5d725d0
Improve implicit self mutability suggestions.
This commit adds an `ImplicitSelfKind` to the HIR and the MIR that keeps
track of whether a implicit self argument is immutable by-value, mutable
by-value, immutable reference or mutable reference so that the addition
of the `mut` keyword can be suggested for the immutable by-value case.
2018-10-02 00:35:15 +02:00
bors
7cbcdae818 Auto merge of #54693 - RalfJung:ctfe-scalar-pair-undef, r=oli-obk
do not normalize all non-scalar constants to a ConstValue::ScalarPair

We still need `ConstValue::ScalarPair` for match handling (matching slices and strings), but that will never see anything `Undef`. For non-fat-ptr `ScalarPair`, just point to the allocation like larger data structures do.

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

r? @eddyb
2018-10-01 22:32:26 +00:00
Ariel Ben-Yehuda
b95d0489d9 normalize param-env type-outlives predicates last
The normalization of type-outlives predicates can depend on misc.
environment predicates, but not the other way around. Inferred lifetime
bounds can propagate type-outlives bounds far and wide, so their
normalization needs to work well.

Fixes #54467
2018-10-01 22:42:53 +03:00
Alex Crichton
615214480a Extra proc macro gates are now at #54727 2018-10-01 12:37:07 -07:00
Alex Crichton
526ca7ce79 All proc_macro_span APIs tracked at #54725 now 2018-10-01 12:15:35 -07:00
Alex Crichton
7662523492 Span::def_site() is now at #54724 2018-10-01 12:15:35 -07:00
Alex Crichton
3ced475360 The proc_macro_raw_ident feature is now at #54723 2018-10-01 12:15:35 -07:00
Alex Crichton
b871293cfd The proc_macro_quote feature now lives at #54722 2018-10-01 12:15:35 -07:00
bors
de3d640f59 Auto merge of #54667 - RalfJung:maybe-uninit, r=pnkfelix
Panic when using mem::uninitialized or mem::zeroed on an uninhabited type

All code by @japaric. This re-submits one half of https://github.com/rust-lang/rust/pull/53508. This is likely not the one that introduced the perf regression, but just to be sure I'll do a perf run anyway.
2018-10-01 14:58:24 +00:00
bors
6188c58a55 Auto merge of #54711 - kennytm:rollup, r=kennytm
Rollup of 13 pull requests

Successful merges:

 - #53784 (Document that slices cannot be larger than `isize::MAX` bytes)
 - #54308 (Better user experience when attempting to call associated functions with dot notation)
 - #54488 (in which we include attributes in unused `extern crate` suggestion spans)
 - #54544 (Indicate how to move value out of Box in docs.)
 - #54623 (Added help message for `impl_trait_in_bindings` feature gate)
 - #54641 (A few cleanups and minor improvements to rustc/infer)
 - #54656 (Correct doc for WorkQueue<T>::pop().)
 - #54674 (update miri)
 - #54676 (Remove `-Z disable_ast_check_for_mutation_in_guard`)
 - #54679 (Improve bug! message for impossible case in Relate)
 - #54681 (Rename sanitizer runtime libraries on OSX)
 - #54708 (Make ./x.py help <cmd> invoke ./x.py <cmd> -h on its own)
 - #54713 (Add nightly check for tool_lints warning)
2018-10-01 10:16:00 +00:00
kennytm
5b08200223
Rollup merge of #54676 - pnkfelix:issue-15287-kill-zflag-disabling-ast-check, r=alexcrichton
Remove `-Z disable_ast_check_for_mutation_in_guard`

One should use `#![feature(bind_by_move_pattern_guards)]` over `-Z disable_ast_check_for_mutation_in_guard`

cc #15287
2018-10-01 17:49:33 +08:00
kennytm
4433116da1
Rollup merge of #54713 - flip1995:tool_lints_nightly, r=Manishearth
Add nightly check for tool_lints warning

cc #54358

Let's add the nightly check, just in case something prevents a stabilization until 1.31.beta.
2018-10-01 17:49:09 +08:00
kennytm
94254d3883
Rollup merge of #54674 - RalfJung:miri, r=oli-obk
update miri
2018-10-01 17:47:14 +08:00
flip1995
e68db04288
Add nightly check for tool_lints warning
cc #54358
2018-10-01 11:11:58 +02:00
kennytm
3401db0021
Rollup merge of #54708 - collin5:b49475, r=Mark-Simulacrum
Make ./x.py help <cmd> invoke ./x.py <cmd> -h on its own

Fixes #49475

r? @Mark-Simulacrum
2018-10-01 16:13:05 +08:00
kennytm
7014afcfa1
Rollup merge of #54681 - alexcrichton:san-names, r=kennytm
Rename sanitizer runtime libraries on OSX

Currently we ship sanitizer libraries as they're built, but these names
unfortunately conflict with the names of the sanitizer libraries
installed on the system. If a crate, for example, links in C code that
wants to use the system sanitizer and the Rust code doesn't use
sanitizers at all, then using `cargo` may accidentally pull in the
Rust-installed sanitizer library due to a conflict in names.

This change is intended to be entirely transparent for Rust users of
sanitizers, it should only hopefully improve our story with other users!

Closes #54134
2018-10-01 16:13:04 +08:00
kennytm
23a993c8c9
Rollup merge of #54679 - phansch:improve_bug_message, r=matthewjasper
Improve bug! message for impossible case in Relate

Hitting this branch [in Clippy][clippy_issue] and I think it makes sense to print
both values here in case other people hit this branch, too.

(still have to figure out why this branch is hit)

[clippy_issue]: https://github.com/rust-lang-nursery/rust-clippy/issues/2831#issuecomment-424597092
2018-10-01 16:13:03 +08:00
kennytm
9ad783e09e
Rollup merge of #54656 - nieksand:workqueue_doc, r=varkor
Correct doc for WorkQueue<T>::pop().

The old function doc looks like copy-pasta from WorkQueue::insert().

WorkQueue::pop() does not enqueue nor does it return a boolean false.  Doc corrected accordingly.
2018-10-01 16:13:02 +08:00
kennytm
41706ff12b
Rollup merge of #54641 - ljedrz:cleanup_rustc_infer, r=estebank
A few cleanups and minor improvements to rustc/infer

- use unwrap_or(_else) where applicable
- convert single-branch matches to if-let
- use to_owned instead of to_string with string literals
- improve vector allocations
- readability improvements
- miscellaneous minor code improvements
2018-10-01 16:13:00 +08:00
kennytm
5bfd085cd2
Rollup merge of #54623 - alexreg:impl_trait_in_bindings-help, r=estebank
Added help message for `impl_trait_in_bindings` feature gate

r? @estebank

CC @Centril
2018-10-01 16:12:59 +08:00
kennytm
4941670cb8
Rollup merge of #54544 - frewsxcv:frewsxcv-deref, r=GuillaumeGomez
Indicate how to move value out of Box in docs.

Fixes https://github.com/rust-lang/rust/issues/53634.
2018-10-01 16:12:58 +08:00
kennytm
b18821201f
Rollup merge of #54488 - zackmdavis:and_the_case_of_the_unused_crate, r=estebank
in which we include attributes in unused `extern crate` suggestion spans

![unused_extern](https://user-images.githubusercontent.com/1076988/45921698-50243e80-be6f-11e8-930a-7b2a33b4935c.png)

Resolves #54400.

r? @estebank
2018-10-01 16:12:56 +08:00
kennytm
a1f3b0fe74
Rollup merge of #54308 - dsciarra:issue-22692, r=estebank
Better user experience when attempting to call associated functions with dot notation

Closes #22692
2018-10-01 16:12:55 +08:00
kennytm
818a05d6e3
Rollup merge of #53784 - tbu-:pr_doc_slice_isize_max, r=RalfJung
Document that slices cannot be larger than `isize::MAX` bytes

Fixes #53676.
2018-10-01 16:12:54 +08:00
csmoe
4470b1cec0 mark fix as MaybeIncorrect 2018-10-01 13:03:04 +08:00