Commit Graph

84271 Commits

Author SHA1 Message Date
bors
5ad5aca714 Auto merge of #54489 - matthiaskrgr:rls, r=kennytm
update rls to 32d457717ce37babef199fe4984b1e20d4e108d4

I patched rls to use the `rustc_tools_utils` supplied by the clippy submodule to get around the tidy warning.

Should fix rls and toolstate.
2018-09-24 04:32:24 +00:00
bors
8a92ebfb59 Auto merge of #54495 - raventid:improve-e0425-message, r=estebank
Improve error message for E0424

Resolves #54369

r? @estebank
2018-09-24 00:20:21 +00:00
bors
d4c6f40e7e Auto merge of #54485 - arielb1:avoid-ctor-attrs, r=eddyb
avoid loading constructor attributes in AdtDef decoding

During metadata loading, the AdtDefs for every ADT in the universe need
to be loaded (for example, for coherence of builtin traits). For that,
the attributes of the AdtDef need to be loaded too.

The attributes of a struct are duplicated between 2 def ids - the
constructor def-id, and the "type" def id. Loading attributes for both
def-ids, which was done in #53721, slowed the compilation of small
crates by 2-3%. This PR makes sure we only load the attributes for the
"type" def-id, avoiding the slowdown.

r? @eddyb & cc @nnethercote
2018-09-23 21:46:59 +00:00
Christian Poveda
1e3c86e1c4 Add test to check if inlining works for any operand 2018-09-23 16:15:46 -05:00
Mazdak Farrokhzad
e5b9331a86 dbg_macro: fix line numbers 2018-09-23 22:48:24 +02:00
Matthew Jasper
cfbd1a9a25 Update tests for changes to drop access 2018-09-23 20:27:41 +01:00
Matthew Jasper
4603fb8862 Rework checking for borrows conflicting with drops
Previously, we would split the drop access into multiple checks for each
field of a struct/tuple/closure and through `Box` dereferences. This
changes this to check if the borrow is accessed by the drop in
places_conflict.

This also allows us to handle enums in a simpler way, since we don't
have to construct any new places.
2018-09-23 20:27:41 +01:00
Matthew Jasper
d3f9af8891 Remove irrelevant message about drop order
When dropping a self-borrowing struct we shouldn't add a "values in a
scope are dropped in the opposite order they are defined" message,
since there is only one value being dropped.
2018-09-23 20:27:41 +01:00
bors
f49f6e73a8 Auto merge of #54229 - davidtwco:issue-52534, r=pnkfelix
[nll] borrows that must be valid for a free lifetime should explain why

Fixes #52534.

r? @nikomatsakis
2018-09-23 15:00:53 +00:00
csmoe
6523eabf6e add test for edition 2018 2018-09-23 22:59:06 +08:00
csmoe
4516ba7004 deny overflow literals 2018-09-23 22:58:47 +08:00
Mazdak Farrokhzad
5184dcc31c dbg_macro: only ignore cloudabi and emscripten 2018-09-23 15:59:34 +02:00
Mazdak Farrokhzad
3006d4ea48 dbg_macro: more things... 2018-09-23 15:50:11 +02:00
bors
be91c35f34 Auto merge of #54380 - RalfJung:miri-snapshot, r=eddyb
move CTFE engine snapshot state out of miri engine into CTFE machine instance

It still lives in the `interpret` module as it needs access to all sorts of private stuff. Also rename a thing to make @eddyb happy :D

The goal was not to change any behavior.
2018-09-23 12:33:54 +00:00
David Wood
b342f00179
Only annotate if borrow is returned.
Error now correctly checks whether the borrow that does not live
long enough is being returned before annotating the error with the
arguments and return type from the signature - as this would not be
relevant if the borrow was not being returned.
2018-09-23 14:18:35 +02:00
David Wood
ef10e94993
Correctly handle named lifetimes.
Enhances annotation logic to properly consider named lifetimes where
lifetime elision rules that were previously implemented would not apply.

Further, adds new help and note messages to diagnostics and highlights
only lifetime when dealing with named lifetimes.
2018-09-23 14:18:35 +02:00
David Wood
0eabba8c4c
Renamed ppaux highlight region hook.
Changed `highlight_region_with_region` function(s) to
`highlight_region_with_bound_region` to be more specific and less
ambigious.
2018-09-23 14:18:34 +02:00
David Wood
350ed4200c
Added note about dangling references.
This error can only occur within a function when a borrow of data owned
within the function is returned; and when there are arguments that could
have been returned instead. Therefore, it is always applicable to add a
specific note that links to the relevant rust documentation about
dangling references.
2018-09-23 14:18:34 +02:00
David Wood
3becbbc129
Fixed off-by-one span.
Fixes the off-by-one span issue where closure argument spans were
pointing to the token after the argument.
2018-09-23 14:18:34 +02:00
David Wood
97bbcabef1
Added multiple parameter closure test.
New test has multiple parameters in a closure with longer names in order
to clarify the issues relating to odd spans.
2018-09-23 14:18:34 +02:00
David Wood
876774bf71
Improve 'dropped here' note.
Start mentioning function name that the variable is valid within in
notes to provide context.
2018-09-23 14:18:34 +02:00
David Wood
9eb8d1179c
Improve borrow errors for closures.
Adds improved messages for closures where returned type
does not match the inferred return lifetime of the closure.
2018-09-23 14:18:27 +02:00
David Wood
22e49e248d
Improve non-closure, reference in-and-out errors.
For cases where there are references in the parameters and in the the
outputs that do not match, and where no closures are involved, this
commit introduces an improved error that mentions (or synthesizes)
a name for the regions involved to better illustrate why the borrow
does not live long enough.
2018-09-23 13:50:22 +02:00
David Wood
650a61c484
Refactor MirBorrowckCtxt to take infcx instead of tcx. 2018-09-23 13:50:22 +02:00
David Wood
9e3889e2ea
Refactor region naming for control of diagnostics.
Previously, region naming would always highlight the source of the
region name it found. Now, region naming returns the name as part
of a larger structure that encodes the source of the region naming
such that a region name can be optionally added to the diagnostic.
2018-09-23 13:50:11 +02:00
David Wood
10af6a2b37
Refactor explain_borrow to return explanation.
Previously, explain_borrow would emit an error with the explanation of
the a borrow. Now, it returns a enum with what the explanation for the
borrow is and any relevant spans or information such that the calling
code can choose to emit the same note/suggestion as before by calling
the emit method on the new enum.
2018-09-23 13:32:18 +02:00
bors
2287a7a6e2 Auto merge of #54339 - cramertj:no-cx, r=aturon
Remove spawning from task::Context

r? @aturon

cc https://github.com/rust-lang-nursery/wg-net/issues/56
2018-09-23 10:09:22 +00:00
bors
317ae05a7e Auto merge of #54325 - michaelwoerister:incr-thinlto-tests, r=alexcrichton
incr.comp.: Allow for more fine-grained testing of CGU reuse and use it to test incremental ThinLTO.

This adds some tests specifically targeted at incremental ThinLTO, plus the infrastructure for tracking the kind of cache hit/miss we had for a given CGU. @alexcrichton, let me know if you can think of any more tests to add. ThinLTO works rather reliably for small functions, so we should be able to test it in a robust way.

I think after this lands it might time for a "Help us test incremental ThinLTO" post on irlo.

r? @alexcrichton
2018-09-23 07:38:17 +00:00
Clément Renault
d560292a87 Make the Vec::dedup method use slice::partition_dedup internally 2018-09-23 09:10:18 +02:00
Clément Renault
78bccb3540 Introduce the partition_dedup/by/by_key methods for slices 2018-09-23 09:09:54 +02:00
Sylvestre Ledru
5139865af1
and llvm has https now 2018-09-23 08:27:39 +02:00
Sylvestre Ledru
d14db1165a
The project moved under the Mozilla umbrella 2018-09-23 08:26:34 +02:00
bors
7714c430ae Auto merge of #54310 - pnkfelix:issue-52059-report-borrow-drop-conflict, r=nikomatsakis
Report when borrow could cause `&mut` aliasing during Drop

We were already issuing an error for the cases where this cropped up, so this is not fixing any soundness holes. The previous diagnostic just wasn't accurately describing the problem in the user's code.

Fix #52059
2018-09-23 04:06:15 +00:00
Julian Kulesh
b8a7c6f5b6 Improve error message for E0424 2018-09-23 05:35:42 +03:00
bors
576b640a02 Auto merge of #54262 - matthewjasper:explain-in-typeck, r=nikomatsakis
[NLL] Record more infomation on free region constraints in typeck

Changes:

* Makes the span of the MIR return place point to the return type
* Don't try to use a path to a type alias as a path to the adt it aliases (fixes an ICE)
* Don't claim that `self` is declared outside of the function. [see this test](f2995d5b1a (diff-0c9e6b1b204f42129b481df9ce459d44))
* Remove boring/interesting distinction and instead add a `ConstraintCategory` to the constraint.
* Add categories for implicit `Sized` and `Copy` requirements, for closure bounds, for user type annotations and `impl Trait`.
* Don't use the span of the first statement for Locations::All bounds (even if it happens to work on the tests we have)

Future work:

* Fine tuning the heuristic used to choose the place the report the error.
* Reporting multiple places (behind a flag)
* Better closure bounds reporting. This probably requires some discussion.

r? @nikomatsakis
2018-09-23 01:39:54 +00:00
Matthias Krüger
500352f5bc update rls to 32d457717ce37babef199fe4984b1e20d4e108d4 2018-09-23 02:19:57 +02:00
Alex Stokes
a3818685e4 stabilize pattern_parentheses feature 2018-09-22 17:07:56 -07:00
Alex Stokes
de5f6ee3c6 fix typo in comment 2018-09-22 16:19:44 -07:00
bors
c6e3d7fa31 Auto merge of #53508 - japaric:maybe-uninit, r=RalfJung
Implement `MaybeUninit`

This PR:

- Adds `MaybeUninit` (see #53491) to `{core,std}::mem`.
- Makes `mem::{uninitialized,zeroed}` panic when they are used to instantiate an uninhabited type.
- Does *not* deprecate `mem::{uninitialized,zeroed}` just yet. As per https://github.com/rust-lang/rust/issues/53491#issuecomment-414147666, we should not deprecate them until `MaybeUninit` is stabilized.
- It replaces uses of `mem::{uninitialized,zeroed}` in core and alloc with `MaybeUninit`.

There are still several instances of `mem::{uninitialized,zeroed}` in `std` that *this* PR doesn't address.

r? @RalfJung
cc @eddyb you may want to look at the new panicking logic
2018-09-22 23:08:03 +00:00
Jorge Aparicio
1cdbad2022 allow dead_code 2018-09-23 00:37:08 +02:00
Zack M. Davis
7cbe0605fa in which we include attributes in unused extern crate suggestion spans
Resolves #54400.
2018-09-22 13:51:29 -07:00
bors
4591a245c7 Auto merge of #54188 - lqd:fallout-53695, r=nikomatsakis
NLL: disallow creation of immediately unusable variables

Fix #53695

Original description follows

----

This WIP PR is for discussing the impact of fixing #53695 by injecting a fake read in let patterns.

(Travis will fail, at least the `mir-opt` suite is failing in its current state)
2018-09-22 20:38:19 +00:00
Jorge Aparicio
d266722a59 the test requires unwinding so we don't run it on the wasm32-bare target 2018-09-22 21:01:21 +02:00
Jorge Aparicio
41b242eeec add codegen test 2018-09-22 21:01:21 +02:00
Jorge Aparicio
dd9f019660 fix tidy 2018-09-22 21:01:21 +02:00
Jorge Aparicio
7fea7f4912 make the nil-enum test work again 2018-09-22 21:01:21 +02:00
Jorge Aparicio
8482c93362 gdb_rust_pretty_printing: adapt to the changes in the layout of btree::LeafNode 2018-09-22 21:01:21 +02:00
Jorge Aparicio
8fb0e80e40 address RalfJung's comment 2018-09-22 21:01:21 +02:00
Jorge Aparicio
758ce16b3d add empty enum to the test cases 2018-09-22 21:01:21 +02:00
Jorge Aparicio
d864edc349 improve the run-pass test 2018-09-22 21:01:21 +02:00