26 Commits

Author SHA1 Message Date
kennytm
93f84e5586
Rollup merge of #55494 - pnkfelix:issue-55492-borrowck-migrate-must-look-at-parents-of-closures, r=davidtwco
borrowck=migrate must look at parents of closures

This fixes the NLL migration mode (which is the default with edition=2018) to inspect all parents of a closure in addition to the closure itself when looking to see if AST-borrowck issues an error for the given code.

This should be a candidate for beta backport.

Fix #55492
2018-10-30 18:55:37 +08:00
Felix S. Klock II
87ce5ec6e9 Update compare-mode=nll stderr files to reflect the fix to #55492. 2018-10-30 00:37:38 +01:00
Matthew Jasper
42a541e0f1 Don't emit cannot move errors twice in migrate mode 2018-10-29 20:22:01 +00:00
Matthew Jasper
2a3969a3f7 Use new region infer errors for explaining borrows
This gives at least some explanation for why a borrow is expected to
last for a certain free region. Also:

* Reports E0373: "closure may outlive the current function" with NLL.
* Special cases the case of returning a reference to (or value
  referencing) a local variable or temporary (E0515).
* Special case assigning a reference to a local variable in a closure
  to a captured variable.
2018-10-21 12:35:00 +01:00
David Wood
375645abb8
Add by-value captured variable note on second use.
This commit adds a note that was present in the AST borrow checker when
closures are invoked more than once and have captured variables
by-value.
2018-10-18 18:21:14 +02:00
David Wood
539404b77d
Update output for borrowck=migrate compare mode.
This commit updates the test output for the updated NLL compare mode
that uses `-Z borrowck=migrate` rather than `-Z borrowck=mir`. The
previous commit changes `compiletest` and this commit only updates
`.nll.stderr` files.
2018-10-17 00:57:32 +02:00
Felix S. Klock II
37f1003121 Updates to .stderr output in ui tests from earlier changes. 2018-10-05 12:04:53 +02:00
Matthew Jasper
bc4f9b848d Clearer later use messages for calls
Give a special message when the later use is from a call. Use the span
of the callee instead of the whole expression. For conflicting borrow
messages say that the later use is of the first borrow.
2018-10-03 20:32:38 +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
Remy Rakic
ab236dfc86 Update NLL 3-point error message for fake reads in optimized let patterns 2018-09-18 14:36:37 +02:00
Andy Russell
d871b8ad4a
use structured suggestion for "missing mut" label
Fixes #54133.
2018-09-12 17:16:18 -04:00
Basile Desloges
b01550a718 Update tests 2018-09-01 12:58:18 +02:00
bors
545f22340f Auto merge of #53584 - mcr431:Fix-#53525, r=varkor
Fix #53525  - Unify E0243, E0244, E0087, E0088, E0089, and E0090 into E0107

Fix #53525

This pr merges all errors related to too many or too few generic arguments in types and functions. E0243, E0244, E0087, E0088, E0089, E0090 errors will no longer be emitted and E0107 will be used instead.
2018-08-25 13:00:20 +00:00
Matthew Russo
79afc6e9e8 updates tests to use new error code 2018-08-24 08:51:25 -04:00
Guillaume Gomez
e53a575ddb
Rollup merge of #53544 - estebank:issue-53534, r=varkor
Point at the trait argument when using unboxed closure

Fix #53534.

r? @varkor
2018-08-22 17:45:37 +02:00
bors
9f9f2c0095 Auto merge of #53530 - kennytm:rollup, r=kennytm
Rollup of 17 pull requests

Successful merges:

 - #53030 (Updated RELEASES.md for 1.29.0)
 - #53104 (expand the documentation on the `Unpin` trait)
 - #53213 (Stabilize IP associated constants)
 - #53296 (When closure with no arguments was expected, suggest wrapping)
 - #53329 (Replace usages of ptr::offset with ptr::{add,sub}.)
 - #53363 (add individual docs to `core::num::NonZero*`)
 - #53370 (Stabilize macro_vis_matcher)
 - #53393 (Mark libserialize functions as inline)
 - #53405 (restore the page title after escaping out of a search)
 - #53452 (Change target triple used to check for lldb in build-manifest)
 - #53462 (Document Box::into_raw returns non-null ptr)
 - #53465 (Remove LinkMeta struct)
 - #53492 (update lld submodule to include RISCV patch)
 - #53496 (Fix typos found by codespell.)
 - #53521 (syntax: Optimize some literal parsing)
 - #53540 (Moved issue-53157.rs into src/test/ui/consts/const-eval/)
 - #53551 (Avoid some Place clones.)

Failed merges:

r? @ghost
2018-08-21 16:04:11 +00:00
Esteban Küber
05d19fba27 Point at the trait argument when using unboxed closure 2018-08-20 16:16:17 -07:00
kennytm
ffde96c201
Rollup merge of #53296 - estebank:suggest-closure, r=KodrAus
When closure with no arguments was expected, suggest wrapping

Fix #49694.
2018-08-21 01:20:12 +08:00
varkor
aa3b5c58e4 Fix diagnostic regression 2018-08-20 16:16:39 +01:00
varkor
b5c2470ba3 Update new ui tests 2018-08-20 00:08:01 +01:00
varkor
49c45734c0 Refactor generic argument count check in astconv 2018-08-19 20:02:34 +01:00
Corey Farwell
5ad7b914c0
Rollup merge of #53407 - pnkfelix:partial-53351-make-more-ported-compile-fail-tests-more-robust-wrt-nll, r=nikomatsakis
make more ported compile fail tests more robust w.r.t. NLL

This is similar to PR #53369, except it covers a disjoint (and much smaller) set of tests that I needed to look at more carefully before being 100% certain they were the same kind of issue.
2018-08-17 08:23:43 -07:00
Felix S. Klock II
cd89fdbbc9 Removed ignore-test-compare-mode-nll from unboxed-closures tests
by strengthening the tests (by adding no-op references to the
closures doing the borrows after the conflicting borrows, thus
forcing the lifetimes to resemble lexical scopes even under NLL).
2018-08-15 23:47:29 +02:00
Esteban Küber
cea73d6341 update recently moved tests 2018-08-15 13:17:04 -07:00
David Wood
5532e9dec5
Improved how upvars are detected when presenting errors using prefixes. 2018-08-14 18:38:57 +02:00
David Wood
3fc7ab2373
Merged migrated compile-fail tests and ui tests. Fixes #46841. 2018-08-14 11:12:09 +02:00