Commit graph

363 commits

Author SHA1 Message Date
Dylan MacKenzie
d6139f76c0 Update tests 2020-06-28 10:08:10 -07:00
Aaron Hill
fa6a61c689
Explain move errors that occur due to method calls involving self
This is a re-attempt of #72389 (which was reverted in #73594)
Instead of using `ExpnKind::Desugaring` to represent operators, this PR
checks the lang item directly.
2020-06-26 16:28:09 -04:00
Esteban Küber
520461f1fb Provide suggestions for some moved value errors
When encountering an used moved value where the previous move happened
in a `match` or `if let` pattern, suggest using `ref`. Fix #63988.

When encountering a `&mut` value that is used in multiple iterations of
a loop, suggest reborrowing it with `&mut *`. Fix #62112.
2020-06-24 17:42:26 -07:00
Aaron Hill
ad9972a20d
Revert "Rollup merge of #72389 - Aaron1011:feature/move-fn-self-msg, r=nikomatsakis"
This reverts commit 372cb9b69c, reversing
changes made to 5c61a8dc34.
2020-06-22 12:46:29 -04:00
Ralf Jung
5193c5d608
Rollup merge of #72598 - Aaron1011:feature/fnmut-capture-span, r=nikomatsakis
Display information about captured variable in `FnMut` error

Fixes #69446

When we encounter a region error involving an `FnMut` closure, we
display a specialized error message. However, we currently do not
tell the user which upvar was captured. This makes it difficult to
determine the cause of the error, especially when the closure is large.

This commit records marks constraints involving closure upvars
with `ConstraintCategory::ClosureUpvar`. When we decide to 'blame'
a `ConstraintCategory::Return`, we additionall store
the captured upvar if we found a `ConstraintCategory::ClosureUpvar` in
the path.

When generating an error message, we point to relevant spans if we have
closure upvar information available. We further customize the message if
an `async` closure is being returned, to make it clear that the captured
variable is being returned indirectly.
2020-06-15 09:57:28 +02:00
Aaron Hill
2c11c35f89
Explain move errors that occur due to method calls involving self 2020-06-11 17:40:40 -04:00
Tom Eccles
8edb05c2a0 test: ui: skip tests which aren't appropriate for RISC-V 2020-06-04 15:59:59 +01:00
Aaron Hill
9cee22c1a4
Display information about captured variable in FnMut error
Fixes #69446

When we encounter a region error involving an `FnMut` closure, we
display a specialized error message. However, we currently do not
tell the user which upvar was captured. This makes it difficult to
determine the cause of the error, especially when the closure is large.

This commit records marks constraints involving closure upvars
with `ConstraintCategory::ClosureUpvar`. When we decide to 'blame'
a `ConstraintCategory::Return`, we additionall store
the captured upvar if we found a `ConstraintCategory::ClosureUpvar` in
the path.

When generating an error message, we point to relevant spans if we have
closure upvar information available. We further customize the message if
an `async` closure is being returned, to make it clear that the captured
variable is being returned indirectly.
2020-05-25 23:18:00 -04:00
Matthew Jasper
f9f3063cfa Update tests 2020-05-22 18:03:08 +01:00
Yuki Okushi
9a164ff4c5
Skip tests on emscripten 2020-05-08 00:39:02 +09:00
Yuki Okushi
e69748ba4f
Move tests from test/run-fail to UI 2020-05-06 14:02:55 +09:00
Matthew Jasper
34eb2c1d4f Report cannot move errors in promoted MIR 2020-05-02 11:11:17 +01:00
RoccoDev
b85c64c3ea
rustc: Add a warning count upon completion 2020-04-11 16:15:24 +02:00
Esteban Küber
2c71894657 Tweak suggest_constraining_type_param
Some of the bound restriction structured suggestions were incorrect
while others had subpar output.
2020-03-29 13:13:17 -07:00
Amanieu d'Antras
1cc521ef9d Update tests to use llvm_asm! 2020-03-26 15:49:22 +00:00
Wonwoo Choi
1e5d81de1d Fix invalid suggestion on &mut iterators yielding & references 2020-03-22 18:37:34 +09:00
Matthew Kuo
b974d6fc30 test(patterns): add borrowck tests for combination of pattern features
Adds borrowck tests for the following features:
- bindings_after_at
- or_patterns
- slice_patterns
- box_patterns
2020-03-09 08:27:45 -05:00
Vadim Petrochenkov
b2605c118d parser: token -> normalized_token, nonnormalized_token -> token 2020-02-24 13:04:13 +03:00
Matthew Jasper
d863978f89 Fix tests after rebase 2020-02-14 22:40:03 +00:00
Dylan DPC
b6024c4766
Rollup merge of #68816 - estebank:fn-mut-closure, r=varkor
Tweak borrow error on `FnMut` when `Fn` is expected

Fix #31701, fix #66097.
2020-02-11 16:36:55 +01:00
bors
dc4242d905 Auto merge of #68929 - matprec:consistent-issue-references, r=Dylan-DPC
Make issue references consistent

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

cc https://github.com/rust-lang/rust/pull/63008

r? @varkor because you reviewed the original pr
2020-02-11 02:00:27 +00:00
Matthias Prechtl
7b555178ae --bless --compare-mode=nll 2020-02-09 20:43:49 +01:00
Patryk Wychowaniec
a8d34c1062
Improve reporting errors and suggestions for trait bounds 2020-02-09 10:33:47 +01:00
Esteban Küber
d51f2bd9d7 review comments 2020-02-08 21:05:43 -08:00
Eduard-Mihai Burtescu
4c7eb59e81 rustc_macros: don't limit the -Zmacro-backtrace suggestion to extern macros. 2020-02-06 21:46:38 +02:00
Eduard-Mihai Burtescu
f6fc80206e rustc: rename -Zexternal-macro-backtrace to -Zmacro-backtrace. 2020-02-06 21:32:07 +02:00
Esteban Küber
109d5c189f Tweak borrow error on FnMut when Fn is expected 2020-02-03 18:02:44 -08:00
bors
42a0bd2091 Auto merge of #67668 - matthewjasper:or-patterns, r=pnkfelix
Implement MIR lowering for or-patterns

This is the last thing needed to get meaningful run-pass tests for or-patterns. There probably need to be more tests before stabilizing this, but the most important cases should have been covered.

Note: we can generate exponentially large MIR CFGs when using or-patterns containing bindings, type ascriptions, or that are for a match arm with a guard. `src/test/mir-opt/exponential-or.rs` shows the best case for what we currently do.

cc #54883
closes #60350
closes #67514

cc @Centril
r? @pnkfelix
2020-02-03 22:02:26 +00:00
Matthew Jasper
c7e6f88926 Add more tests for or-patterns 2020-02-03 19:42:15 +00:00
Tyler Lanphear
f6c3894724 compiletest: error if compile-fail header in ui test. 2020-02-02 02:08:30 -05:00
bors
5371ddf8c6 Auto merge of #68080 - varkor:declared-here, r=petrochenkov
Address inconsistency in using "is" with "declared here"

"is" was generally used for NLL diagnostics, but not other diagnostics. Using "is" makes the diagnostics sound more natural and readable, so it seems sensible to commit to them throughout.

r? @Centril
2020-01-31 15:13:51 +00:00
Tomasz Miąsko
ee73259bdc Fix revision annotations in borrowck-feature-nll-overrides-migrate 2020-01-29 20:51:29 +01:00
varkor
4583283908 Update new tests 2020-01-24 20:52:16 +00:00
varkor
24a2929ed1 Normalise notes with the/is 2020-01-24 16:24:50 +00:00
varkor
f4f96e2943 Normalise diagnostics with respect to "the X is declared/defined here" 2020-01-24 16:24:49 +00:00
Mazdak Farrokhzad
57b6843100 slice_patterns: address review comments 2020-01-18 19:33:47 +01:00
Mazdak Farrokhzad
a1eadca88f slice_patterns: remove gates in tests 2020-01-18 19:33:47 +01:00
Vadim Petrochenkov
642669c74d Update tests 2020-01-09 21:23:12 +03:00
Mazdak Farrokhzad
0a6cdc231e slice patterns: harden match-based borrowck tests 2020-01-08 00:42:53 +01:00
Mazdak Farrokhzad
0a2813c6ec
Rollup merge of #67467 - matthewjasper:test-slice-patterns, r=oli-obk
Test slice patterns more

Adds tests for const evaluation and some more borrow checking tests.

Fixes some bugs in const eval for subslice patterns.
closes #66934

r? @oli-obk
cc @Centril
2019-12-21 15:29:49 +01:00
Matthew Jasper
8c3c446648 Add more tests for slice patterns 2019-12-21 12:29:30 +00:00
Mazdak Farrokhzad
86282d0b0f
Rollup merge of #67314 - matthewjasper:union-move-errors, r=nikomatsakis
Don't suppress move errors for union fields

closes #66500
2019-12-20 22:05:31 +01:00
Matthew Jasper
97219d87fe Don't suppress move errors for union fields 2019-12-19 20:28:57 +00:00
Matthew Jasper
6dcc78997f Add more tests for raw_ref_op 2019-12-18 20:30:00 +00:00
Niko Matsakis
1719337d02 Revert "Remove #![feature(never_type)] from tests."
This reverts commit 8f6197f39f.
2019-12-14 09:01:04 -05:00
Matthew Jasper
d96485d49e Add more tests for borrowck and dropck slice pattern handling 2019-12-09 20:43:24 +00:00
Esteban Küber
9fb446d472 Deduplicate type param constraint suggestion code 2019-11-28 12:20:28 -08:00
Esteban Küber
02bc412d19 Use structured suggestion when requiring Copy constraint in type param 2019-11-28 12:20:28 -08:00
Tyler Mandry
bb6236cd74
Rollup merge of #66754 - estebank:rustdoc-capitalization, r=Dylan-DPC
Various tweaks to diagnostic output
2019-11-26 17:56:19 -06:00
Esteban Küber
9c97d73a2d Tweak move error due to non-Copy 2019-11-25 13:30:52 -08:00