Commit Graph

3832 Commits

Author SHA1 Message Date
bors 3f511ade5b Auto merge of #60669 - c410-f3r:attrs-fn, r=petrochenkov
Allow attributes in formal function parameters

Implements https://github.com/rust-lang/rust/issues/60406.

This is my first contribution to the compiler and since this is a large and complex project, I am not fully aware of the consequences of the changes I have made.

**TODO**

- [x] Forbid some built-in attributes.
- [x] Expand cfg/cfg_attr
2019-06-12 07:38:01 +00:00
Mazdak Farrokhzad 9f22708ced Rollup merge of #61654 - Electron-libre:use_slice_patterns_in_rustc, r=oli-obk,Centril
use pattern matching for slices destructuring

refs #61542

Use slices pattern where it seems to make sense .
2019-06-12 04:22:50 +02:00
bors 5e2c11034f Auto merge of #60793 - Xanewok:raw-string-cleanup, r=petrochenkov
lexer: Disallow bare CR in raw byte strings

Handles bare CR ~but doesn't translate `\r\n` to `\n` yet in raw strings yet~ and translates CRLF to LF in raw strings.

As a side-note I think it'd be good to change the `unescape_` to return plain iterators to reduce some boilerplate (e.g. `has_error` could benefit from collecting `Result<T>` and aborting early on errors) but will do that separately, unless I missed something here that prevents it.

@matklad @petrochenkov thoughts?
2019-06-10 23:32:12 +00:00
Igor Matuszewski 630d5f355f Don't suggest using \r in raw strings 2019-06-10 17:32:15 +02:00
Igor Matuszewski 63dc7da703 Use char byte calculation using existing iterator 2019-06-09 15:44:57 +02:00
Igor Matuszewski 735ac057bb Actually translate CRLF in raw byte strings and unify unescape impl 2019-06-09 15:14:55 +02:00
Igor Matuszewski 3c1d352dc4 Add a doc comment for scan_raw_string 2019-06-09 14:20:29 +02:00
Caio 1eaaf440d5 Allow attributes in formal function parameters 2019-06-09 07:58:40 -03:00
Igor Matuszewski d4632744fa Translate CRLF -> LF in raw (byte) strings 2019-06-09 00:33:21 +02:00
Igor Matuszewski 49d62e8d5a Prohibit bare CRs in raw byte strings 2019-06-08 22:58:53 +02:00
Igor Matuszewski cab7e7fe76 Validate and transcribe raw strings via unescape module 2019-06-08 22:58:53 +02:00
Vadim Petrochenkov 9aaa7c770c syntax: Move some Token methods around 2019-06-08 22:38:39 +03:00
Vadim Petrochenkov 25b05147b3 syntax: Remove Deref impl from Token 2019-06-08 22:38:23 +03:00
Vadim Petrochenkov 0ca3c2f881 syntax: Move most of the TokenKind methods to Token 2019-06-08 22:38:12 +03:00
Cedric 0a4504d400 fix libsyntax test 2019-06-08 20:43:24 +02:00
Igor Matuszewski 08ede49dcb Remove redundant, commented out code
It was commented out as part of
https://github.com/rust-lang/rust/commit/8a8e497ae786ffc032c1e68fc23da0edcf6fa5e3.
Done probably by accident, since the code in question was moved to a
match arm, along with newly introduced logic to detect bare CRs in raw
strings.
2019-06-08 20:05:02 +02:00
Igor Matuszewski b8e3533b73 Separate a scan_raw_string (similar raw_byte variant) 2019-06-08 20:05:02 +02:00
Igor Matuszewski 5b17a5e30a Clean up minor bits 2019-06-08 20:05:02 +02:00
Cedric 4c242a948c cast vec to slices 2019-06-08 16:21:15 +02:00
Cedric dd442a1fcf use default binding mode in match clauses 2019-06-08 13:29:43 +02:00
Cedric 4123b5d796 fix bad style for structs 2019-06-08 12:18:13 +02:00
Cedric ad91a8e59a improve style 2019-06-08 11:38:15 +02:00
Cedric 5fb099dc78 use pattern matching for slices destructuring 2019-06-08 10:49:46 +02:00
Mazdak Farrokhzad ae487e04c8 Rollup merge of #61616 - petrochenkov:parsderef, r=oli-obk
parser: Remove `Deref` impl from `Parser`

Follow up to https://github.com/rust-lang/rust/pull/61541

You have to write `self.token.span` instead of `self.span` in the parser now, which is not nice, but not too bad either, I guess.
Not sure.
Probably still better than people using both and being confused about the definition point of `span`.

r? @oli-obk @estebank
2019-06-08 03:33:57 +02:00
Vadim Petrochenkov 2af47facc3 syntax: Treat error literals in more principled way 2019-06-07 18:01:50 +03:00
Vadim Petrochenkov 3dbee57dae parser: Remove look_ahead_span 2019-06-07 13:57:57 +03:00
Vadim Petrochenkov 6eae6b0fe9 parser: Remove Deref impl from Parser 2019-06-07 13:52:03 +03:00
Vadim Petrochenkov 3da094319c parser: self.span -> self.token.span 2019-06-07 13:51:23 +03:00
Vadim Petrochenkov 3a31f0634b Address review comments 2019-06-06 14:04:33 +03:00
Vadim Petrochenkov ff40e37b98 Some code cleanup and tidy/test fixes 2019-06-06 14:04:02 +03:00
Vadim Petrochenkov 67ce3f4589 syntax: Switch function parameter order in TokenTree::token 2019-06-06 14:04:02 +03:00
Vadim Petrochenkov 350a34f85c syntax: Use Token in some more places 2019-06-06 14:04:02 +03:00
Vadim Petrochenkov f745e5f9b6 syntax: Remove duplicate span from token::Ident 2019-06-06 14:04:02 +03:00
Vadim Petrochenkov 4c5d773b4d syntax: Remove duplicate span from token::Lifetime 2019-06-06 14:04:02 +03:00
Vadim Petrochenkov 5e693531ff syntax: Add some helper methods to Token 2019-06-06 14:04:02 +03:00
Vadim Petrochenkov aa6fba98ae syntax: Use Token in Parser 2019-06-06 14:04:02 +03:00
Vadim Petrochenkov c0c57acd7b syntax: Use Token in StringReader and TokenTreesReader 2019-06-06 14:03:15 +03:00
Vadim Petrochenkov e0127dbf81 syntax: Use Token in TokenTree::Token 2019-06-06 14:03:15 +03:00
Vadim Petrochenkov a3425edb46 syntax: Rename TokenAndSpan into Token 2019-06-06 14:03:15 +03:00
Vadim Petrochenkov 99b27d749c syntax: Rename Token into TokenKind 2019-06-06 14:03:14 +03:00
Vadim Petrochenkov eac3846b65 Always use token kinds through token module rather than Token type 2019-06-06 14:01:57 +03:00
Alexander Regueiro 3816958f18 Implemented for function bounds, type bounds, and named existential types. 2019-06-05 21:09:26 +01:00
Alexander Regueiro 35585c499f Aggregation of drive-by cosmetic changes. 2019-06-05 21:09:26 +01:00
bors 2a1d6c83d3 Auto merge of #61484 - nnethercote:avoid-more-hygiene-lookups, r=petrochenkov
Avoid more hygiene lookups

Mostly by combining multiple `HygieneData::with` calls into a single call on hot paths.

r? @petrochenkov
2019-06-05 12:46:15 +00:00
Nicholas Nethercote ab9bbf48db Avoid unnecessary rust_2018 calls.
The commit combines two calls into one by saving the result in a local
variable. The commit also moves the check for `async` later, so that
when a different keyword is present the `rust_2018` call will be avoided
completely.
2019-06-05 07:43:15 +10:00
Pietro Albini 46344122d1 Rollup merge of #61500 - estebank:expregression, r=petrochenkov
Fix regression 61475

Addresses #61475.
2019-06-04 22:39:39 +02:00
Mazdak Farrokhzad 3a06a93f59 Rollup merge of #61413 - davidtwco:async-argument-order-in-a-sane-way, r=eddyb
Re-implement async fn drop order lowering

This PR re-implements the async fn drop order lowering changes so
that it all takes place in HIR lowering, building atop the work done by
@eddyb to refactor `Res::Upvar`.

Previously, this types involved in the lowering were constructed in
libsyntax as they had to be used during name resolution and HIR
lowering. This was awful because none of that logic should have existed
in libsyntax.

This commit also changes `ArgSource` to keep a `HirId` to the original
argument pattern rather than a cloned copy of the pattern.

Only b7aa4ed and 71fb8fa should be reviewed, any other commits
are from #61276 (though 447e336 might end up staying in this PR).

As a nice side effect, it also fixes #61187 (cc #61192).

r? @eddyb
cc @cramertj
2019-06-04 04:48:11 +02:00
Mazdak Farrokhzad 1563514196 Rollup merge of #61409 - varkor:condition-trait-param-ice, r=oli-obk
Fix an ICE with a const argument in a trait

This goes some way towards fixing https://github.com/rust-lang/rust/issues/61383 (the reduced test case is fixed).
2019-06-04 04:48:08 +02:00
Esteban Küber 288202ec29 Fix regression #61475 2019-06-03 12:06:49 -07:00
Eduard-Mihai Burtescu d0c78dd7aa syntax: revert ast::AsyncArgument and associated changes.
Here follows the main reverts applied in order to make this commit:

Revert "Rollup merge of #60676 - davidtwco:issue-60674, r=cramertj"

This reverts commit 45b09453db, reversing
changes made to f6df1f6c30.

Revert "Rollup merge of #60437 - davidtwco:issue-60236, r=nikomatsakis"

This reverts commit 16939a50ea, reversing
changes made to 12bf981552.

Revert "Rollup merge of #59823 - davidtwco:issue-54716, r=cramertj"

This reverts commit 62d1574876, reversing
changes made to 4eff8526a7.
2019-06-03 10:20:35 +01:00