Commit Graph

9421 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
371446cc50 Remove bindings_after_at from INCOMPLETE_FEATURES. 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
8846a6b6bb Test that nested type ascription is banned. 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
c37bd26eaa Test that _ @ subpat is syntactically rejected. 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
e39abcfad9 harden & split borrowck-pat-at-and-box 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
48f2766522 enhance borrowck-pat-by-copy-bindings-in-at 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
427b1c33e9 clarify bind-by-move-neither-can-livee.. 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
6fa8f4a57b bindings_after_at: harden tests wrt. contexts & slice_patterns 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
0034e6199e bindings_after_at: harden tests wrt. promotion 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
9ab36037a4 --bless bindings-after-at tests 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
6a87f99620 check_legality_of_move_bindings: generalize diagnostics & add comments 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
5f92a56ed6 Introduce #![feature(bindings_after_at)].
Under the gate, `x @ Some(y)` is allowed.
This is subject to various restrictions for soundness.
2019-12-23 14:47:19 +01:00
Donough Liu
587d03bea8 Yield is an expression form, not a statement. 2019-12-23 21:07:13 +08:00
Mazdak Farrokhzad
bc95228f1b extract parse_dot_suffix_expr 2019-12-23 13:45:45 +01:00
Mazdak Farrokhzad
9c6bbf1252 extract error_unexpected_after_dot and de-fatalize 2019-12-23 13:45:13 +01:00
Mazdak Farrokhzad
7bcc325034 refactor parse_if_expr 2019-12-23 13:42:49 +01:00
Mazdak Farrokhzad
44ff4df49d more recovery in if-parsing 2019-12-23 13:42:25 +01:00
Mazdak Farrokhzad
7262dcc4a7 refactor loop parsing a bit 2019-12-23 13:42:21 +01:00
varkor
9a602243c4 Add new folder for destructuring assignment tests 2019-12-23 11:20:13 +00:00
varkor
35979a92bf Add span information to ExprKind::Assign 2019-12-23 11:20:13 +00:00
varkor
5ab4735559 Recognise nested tuples/arrays/structs 2019-12-23 11:17:55 +00:00
varkor
5fa02ecc29 Add note about destructuring assignments 2019-12-23 11:17:55 +00:00
varkor
b7bfdbe681 Improve invalid assignment error 2019-12-23 11:16:51 +00:00
varkor
a5991c57cf Add the full issue reference to equality constraints in where clauses 2019-12-23 11:15:55 +00:00
Janusz Marcinkiewicz
7353afdfd9 Extend suggestion span to whole method call 2019-12-23 11:57:09 +01:00
Janusz Marcinkiewicz
091853946b Add arguments to suggestion method call 2019-12-23 11:57:09 +01:00
Janusz Marcinkiewicz
8e5b2c80d3 Add more detailed suggestion 2019-12-23 11:57:09 +01:00
Janusz Marcinkiewicz
8d189ed2f1 Suggest calling method when first argument is self 2019-12-23 11:57:08 +01:00
Mark Mansi
05e3d20080 Refactor region error handling to be done by mirborrowckctx 2019-12-23 00:32:00 -06:00
Mark Rousskov
c205f6a06a Remove mem::uninitalized from tests
This purges uses of uninitialized where possible from test cases. Some
are merely moved over to the equally bad pattern of
MaybeUninit::uninit().assume_init() but with an annotation that this is
"the best we can do".
2019-12-22 21:58:12 -05:00
Oliver Scherer
056dff5748 Fix ICE in mir interpretation 2019-12-23 01:24:11 +01:00
Mark Rousskov
86f12c110b test fallout 2019-12-22 19:04:10 -05:00
Yuki Okushi
6ec3a63bb2 Add test for issue-66270 2019-12-23 07:42:26 +09:00
Yuki Okushi
96253c2d15 Add test for issue-66205 2019-12-23 07:42:26 +09:00
Yuki Okushi
7c485ccfad Add test for issue-61747 2019-12-23 07:42:26 +09:00
bors
3982d3514e Auto merge of #67505 - Centril:rollup-7win7ty, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #67148 ( Refactor type & bounds parsing thoroughly)
 - #67410 (Reenable static linking of libstdc++ on windows-gnu)
 - #67439 (Cleanup `lower_pattern_unadjusted` & Improve slice pat typeck)
 - #67480 (Require issue = "none" over issue = "0" in unstable attributes)
 - #67500 (Tweak non_shorthand_field_patterns' suggestion)
 - #67504 (Warn against relying on ?Sized being last)

Failed merges:

r? @ghost
2019-12-22 07:01:50 +00:00
Mazdak Farrokhzad
c35546383f Rollup merge of #67500 - JohnTitor:non-shorthand-field-patterns, r=Centril
Tweak non_shorthand_field_patterns' suggestion

Fixes #66434

r? @estebank
2019-12-22 02:40:06 +01:00
Mazdak Farrokhzad
eaeb1138c6 Rollup merge of #67480 - rossmacarthur:fix-41260-avoid-issue-0-part-2, r=Centril
Require issue = "none" over issue = "0" in unstable attributes

These changes make the use of `issue = "none"` required in unstable attributes throughout the compiler.

Notes:
- #66299 is now in beta so `issue = "none"` is accepted.
- The `tidy` tool now fails on `issue = "0"`.
- Tests that used `issue = "0"` were changed to use `issue = "none"`, except for _one_ that asserts `issue = "0"` can still be used.
- The compiler still allows `issue = "0"` because some submodules require it, this could be disallowed once these are updated.

Resolves #41260

r? @varkor
2019-12-22 02:40:04 +01:00
Mazdak Farrokhzad
616373e668 Rollup merge of #67148 - Centril:ty-polish, r=estebank
Refactor type & bounds parsing thoroughly

PR is based on https://github.com/rust-lang/rust/pull/67131 with first one from this PR being ` extract parse_ty_tuple_or_parens`.

Also fixes #67146.

r? @estebank
2019-12-22 02:40:00 +01:00
bors
6e9172f633 Auto merge of #66932 - rust-lang:pass-check-runfail, r=petrochenkov
Revamp `// run-fail` wrt. `--pass` & support `// build-fail` & `// check-fail`

Revamp how `// run-fail` tests work internally by having a separate `FailMode` that does not interfere with `PassMode`. In particular, `--pass check` will now have no effect on `// *-fail` tests. Moreover, new test annotations `// check-fail` (the default) and `// build-fail` are added. The latter is useful to distinguish post-monomorphization failures from pre-monomorphization failures as seen throughout the PR. Finally, ensure that non-`Ui` tests do not listen to `--pass check` such that the flag can be used with e.g. `./x.py test --pass check` directly.

Fixes #66929.
Fixes #67128.

r? @petrochenkov
cc @RalfJung @ninjasource
2019-12-22 00:10:13 +00:00
Yuki Okushi
30e84b0244 Tweak non_shorthand_field_patterns' suggestion 2019-12-22 08:21:36 +09:00
Mazdak Farrokhzad
73e6a2174a add build-fail to 32-bit tests 2019-12-21 22:33:36 +01:00
Mazdak Farrokhzad
03046abbd0 fix rebase fallout 2019-12-21 22:16:00 +01:00
Mazdak Farrokhzad
27b75a580d refactor & address review comments 2019-12-21 22:16:00 +01:00
Mazdak Farrokhzad
b4420c8f5c rework run-fail and support check,build-fail 2019-12-21 22:16:00 +01:00
Mazdak Farrokhzad
db4818f325 span_suggestion_hidden -> tool_only_span_suggestion 2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
b5f00beaa5 parse_generic_bounds: account for negative lifetime bounds 2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
3b1fab8c1f parse_ty_common: .fatal -> .struct_span_err 2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
b50c3b7ddf Rollup merge of #67160 - matthewjasper:gat-generics, r=nikomatsakis
Make GATs less ICE-prone.

After this PR simple lifetime-generic associated types can now be used in a compiling program. There are two big limitations:

* #30472 has not been addressed in any way (see src/test/ui/generic-associated-types/iterable.rs)
* Using type- and const-generic associated types errors because bound types and constants aren't handled by trait solving.
    * The errors are technically non-fatal, but they happen in a [part of the compiler](4abb0ad273/src/librustc_typeck/lib.rs (L298)) that fairly aggressively stops compiling on errors.

closes #47206
closes #49362
closes #62521
closes #63300
closes #64755
closes #67089
2019-12-21 19:07:31 +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
Mazdak Farrokhzad
1113eb5cc0 Rollup merge of #67059 - TommasoBianchi:dropck_fix_pr, r=pnkfelix
Fix too restrictive checks on Drop impls

Fixes #34426. Fixes #58311.

This PR completes and extends #59497 (which has been inactive for a while now).
The problem generating both issues was that when checking that the `Predicate`s of the `Drop` impl are exactly the same as the ones of the struct definition, the check was essentially performed by a simple `==` operator, which was not handling correctly HRTBs and involved `Fn` types.

The implemented solution relies on the `relate` machinery to more correctly equate `Predicate`s, and on `anonymize_late_bound_regions` to handle HRTB in a more general way. As the `Relate` trait currently is implemented only for `TraitPredicate` and `ProjectionPredicate` (and as they were the ones generating problems), `relate` is used only for them while for other `Predicate`s the equality check is kept. I'm currently considering whether it would make sense to implement the `Relate` trait also for all other `Predicate`s to render the proposed solution more general.
2019-12-21 15:29:40 +01:00