Commit Graph

106369 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
d154bef4d3 parser: avoid re-wrapping NtItem 2020-02-02 13:55:45 +01:00
Mazdak Farrokhzad
71a6f58229 parser: address review comments re. self. 2020-02-02 13:32:37 +01:00
Jonas Schievink
9fa46fe153 Teach dropck about resume arguments 2020-02-02 13:20:58 +01:00
Jonas Schievink
aae0f543cf No resume argument in the drop shim 2020-02-02 13:20:58 +01:00
Jonas Schievink
3bb8ecb512 Adjust mir-opt tests to new yield lowering 2020-02-02 13:20:58 +01:00
Jonas Schievink
7a9709b08a Fix bootstrap rustc build 2020-02-02 13:20:58 +01:00
Jonas Schievink
4ee857c4c3 Add test for E0628 (too many generator parameters) 2020-02-02 13:20:57 +01:00
Jonas Schievink
fca614eb57 Add tests for generator resume arguments 2020-02-02 13:20:57 +01:00
Jonas Schievink
5b2059b257 Fix error message on type mismatch in generator
Instead of "closure is expected to take 0 arguments"
we now get the expected type mismatch error.
2020-02-02 13:20:57 +01:00
Jonas Schievink
3c22e51e7f Make generator transform move resume arg around
The resume arg is passed as argument `_2` and needs to be moved to the
`Yield`s target `Place`
2020-02-02 13:20:57 +01:00
Jonas Schievink
3c069a066e Change MIR building to fill in the resume place
This changes `Yield` from `as_rvalue` to `into` lowering, which could
have a possible performance impact. I could imagine special-casing
some resume types here to use a simpler lowering for them, but it's
unclear if that makes sense at this stage.
2020-02-02 13:20:57 +01:00
Jonas Schievink
f2c1468965 Add resume arg place to Yield MIR terminator 2020-02-02 13:20:57 +01:00
Jonas Schievink
2101a1fec0 Adjust tests to type inference changes
This makes some error messages ungreat, but those seem to be preexisting
bugs that also apply to closures / return position `impl Trait` in
general.
2020-02-02 13:20:57 +01:00
Jonas Schievink
32005fe195 Allow 0 or 1 explicit generator parameters 2020-02-02 13:20:57 +01:00
Jonas Schievink
8a1227a67b Infer type of yield to be resume type 2020-02-02 13:20:57 +01:00
Jonas Schievink
25af2f66ce Use real resume type as second argument 2020-02-02 13:20:57 +01:00
Jonas Schievink
0117033c72 Add a resume type param to the generator substs
...and unify it with `()` for now
2020-02-02 13:20:57 +01:00
Jonas Schievink
044fe0f558 Add a resume type parameter to Generator 2020-02-02 13:20:57 +01:00
Matthew Jasper
a606ffdb17 Avoid exponential behaviour when relating types 2020-02-02 12:10:08 +00:00
Yuki Okushi
56ad8bcfe0 Do not suggest duplicate bounds 2020-02-02 18:38:23 +09:00
Mazdak Farrokhzad
8674efdb7c parser: move restrictions re. self to ast_validation. 2020-02-02 10:33:55 +01:00
bors
cef6894572 Auto merge of #68737 - Centril:fix-68710, r=petrochenkov
pretty: print attrs in struct expr

Fixes https://github.com/rust-lang/rust/issues/68710 by printing the attributes on struct expression fields.

r? @petrochenkov
cc @dtolnay
2020-02-02 09:19:40 +00:00
Mazdak Farrokhzad
00f0b0cd3a pretty: print attrs in struct expr 2020-02-02 09:25:54 +01:00
Friedrich von Never
b0a9e949e7
Strip unnecessary subexpression
It became unnecessary since a06baa56b9 reformatted the file.
2020-02-02 15:08:46 +07:00
Tyler Lanphear
f6c3894724 compiletest: error if compile-fail header in ui test. 2020-02-02 02:08:30 -05:00
bors
0cbcb17d33 Auto merge of #68754 - JohnTitor:clippy-up, r=JohnTitor
Update Clippy

Fixes #68745

r? @ghost
2020-02-02 06:09:00 +00:00
Tyler Lanphear
9fa54e594b stdarch: update submodule. 2020-02-01 22:04:18 -05:00
bors
bc4a339064 Auto merge of #68672 - jonas-schievink:dedup-witness, r=Zoxc
Deduplicate types in the generator witness

For the `await-call-tree` benchmark this often reduces the types inside the witness from 12 to 2.
2020-02-02 03:02:41 +00:00
David Ross
410114b9d2 Add tests for issue 59191 2020-02-01 18:59:11 -08:00
David Ross
276734d6a4 Fix 59191
This adds an explicit error for when macros replace the crate root with
a non-module item.
2020-02-01 18:58:40 -08:00
Yuki Okushi
c377ed606c Fix ICE with save-analysis 2020-02-02 09:23:47 +09:00
Yuki Okushi
ae22bf9d42 Catch more ICEs 2020-02-02 09:02:54 +09:00
Yuki Okushi
632d75e057 Update Clippy 2020-02-02 08:38:28 +09:00
bors
e5b150edaf Auto merge of #68752 - JohnTitor:rollup-zz3u4xl, r=JohnTitor
Rollup of 7 pull requests

Successful merges:

 - #68460 (Use BufWriter for emitting MIR)
 - #68681 (Suggest path separator for single-colon typos)
 - #68688 ([docs] remind bug reporters to update nightly)
 - #68704 (Ignore `build` dir formatting)
 - #68727 (Remove a comment about pretty printer in formatting tests)
 - #68736 (Remove `Alloc` in favor of `AllocRef`)
 - #68740 (Do not suggest things named underscore)

Failed merges:

r? @ghost
2020-02-01 23:31:51 +00:00
Yuki Okushi
87bb0c4389
Rollup merge of #68740 - JohnTitor:do-not-sugg-underscore, r=Centril
Do not suggest things named underscore

Fixes #68719

r? @estebank
2020-02-02 08:30:21 +09:00
Yuki Okushi
c7332abee2
Rollup merge of #68736 - TimDiekmann:remove-alloc, r=Amanieu
Remove `Alloc` in favor of `AllocRef`

`AllocRef` was reexported as `Alloc` in #68529  in order to not break toolstate in the week before the next stable release.

r? @Amanieu
2020-02-02 08:30:19 +09:00
Yuki Okushi
1529126411
Rollup merge of #68727 - xfix:remove-comment-about-pretty-printer-in-format-tests, r=jonas-schievink
Remove a comment about pretty printer in formatting tests

rustc is now using rustfmt, not the old formatter.
2020-02-02 08:30:18 +09:00
Yuki Okushi
44dc4c2617
Rollup merge of #68704 - jonas-schievink:ignore-build-fmt, r=Mark-Simulacrum
Ignore `build` dir formatting

I've noticed that rustfmt tries to parse and check the formatting of code in `build` if `.git` is missing (which includes test artifacts and generated code). This should fix that.
2020-02-02 08:30:16 +09:00
Yuki Okushi
518ed67ab1
Rollup merge of #68688 - jbr:remind-bug-reporters-to-update-if-on-nightly, r=centril
[docs] remind bug reporters to update nightly

Hi and thanks for rust! Today I reported a bug in nightly that was already fixed, so I thought other potential bug reporters might appreciate a reminder to update before reporting.  I wasn't sure if this would apply for other channels as well.
2020-02-02 08:30:15 +09:00
Yuki Okushi
b18b26924c
Rollup merge of #68681 - bobrippling:fix-matched-angle-brackets, r=Centril
Suggest path separator for single-colon typos

This commit adds guidance for when a user means to type a path, but ends
up typing a single colon, such as `<<Impl as T>:Ty>`.

This change seemed pertinent as the current error message is
particularly misleading, emitting `error: unmatched angle bracket`,
despite the angle bracket being matched later on, leaving the user to
track down the typo'd colon.
2020-02-02 08:30:11 +09:00
Yuki Okushi
bf68a057b3
Rollup merge of #68460 - sinkuu:emit_mir_buffered, r=Mark-Simulacrum
Use BufWriter for emitting MIR

I noticed that `--emit=mir` takes long time on a large crate. https://github.com/rust-lang/rust/pull/64344 seem to have fixed `-Zdump-mir`, but not `--emit=mir`.
2020-02-02 08:30:09 +09:00
Dan Robertson
0b1ff27cd8 Basic run-pass tests for or-patterns
Add some basic run-pass ui tests for or-patterns.
2020-02-01 22:10:58 +00:00
Matthew Jasper
30058df867 Update existing tests for or-patterns 2020-02-01 22:10:58 +00:00
Matthew Jasper
a20969c489 Implement general or-patterns in let statements 2020-02-01 22:10:43 +00:00
Matthew Jasper
5cc4352bc4 Implement general or-patterns in match expressions 2020-02-01 22:10:03 +00:00
Matthew Jasper
64eab7750b Don't create unnecessary block 2020-02-01 22:08:35 +00:00
Matthew Jasper
eecee76652 Generate prebinding blocks lazily 2020-02-01 22:08:35 +00:00
Matthew Jasper
425e494fce Remove or_patterns from INCOMPLETE_FEATURES 2020-02-01 22:07:11 +00:00
Yuki Okushi
9d8058fb42 Do not ICE in type-alias-impl-trait with save-analysis 2020-02-02 06:39:50 +09:00
Yuki Okushi
726568bd1b Do not suggest things named underscore 2020-02-02 04:55:37 +09:00