bors
8e948df707
Auto merge of #60463 - mjbshaw:transparent, r=varkor,rkruppe
...
Implement RFC 2645 (transparent enums and unions)
Tracking issue: #60405
2019-06-11 11:06:38 +00:00
Michael Bradshaw
dac1c6a731
Implement RFC 2645 (transparent enums and unions)
...
Tracking issue: #60405
2019-06-10 22:07:24 -07: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
bors
61a60ce7d3
Auto merge of #61229 - Centril:stabilize-repr_align_enum, r=nagisa
...
Stabilize #![feature(repr_align_enum)] in Rust 1.37.0
On an `enum` item, you may now write:
```rust
#[repr(align(X))]
enum Foo {
// ...
}
```
This has equivalent effects to first defining:
```rust
#[repr(align(X))]
struct AlignX<T>(T);
```
and then using `AlignX<Foo>` in `Foo`'s stead.
r? @nagisa
2019-06-09 23:50:04 +00: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
Mazdak Farrokhzad
3ba82f7cd8
pacify tidy.
2019-06-09 04:16:34 +02:00
Mazdak Farrokhzad
f86719a111
Some more cleanup in libsyntax::ext::tt::quoted
2019-06-09 04:16:34 +02:00
Mazdak Farrokhzad
ab7d75d89b
Cleanups in parse_sep_and_kleene_op.
2019-06-09 04:16:34 +02:00
Mazdak Farrokhzad
39fbcfb277
Support ? Kleene operator in 2015.
2019-06-09 04:16:33 +02:00
Igor Matuszewski
d4632744fa
Translate CRLF -> LF in raw (byte) strings
2019-06-09 00:33:21 +02:00
Mazdak Farrokhzad
6b71fba9c1
Rollup merge of #61669 - petrochenkov:tokderef2, r=oli-obk
...
syntax: Remove `Deref` impl from `Token`
Follow up to https://github.com/rust-lang/rust/pull/61541
r? @oli-obk
2019-06-09 00:20:38 +02:00
Mazdak Farrokhzad
21b5c1d51e
Rollup merge of #61660 - petrochenkov:nocusta, r=Centril
...
Minimize use of `#![feature(custom_attribute)]`
Some preparations before resurrecting https://github.com/rust-lang/rust/pull/57921 .
2019-06-09 00:20:35 +02:00
Mazdak Farrokhzad
8dea8464f4
Rollup merge of #61646 - L117:master, r=Centril
...
Remove useless allocations in macro_rules follow logic.
Closes #61543
2019-06-09 00:20:32 +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
ea4ad555d7
Introduce #[rustc_dummy] attribute and use it in tests
...
Unlike other built-in attributes, this attribute accepts any input
2019-06-08 23:55:25 +03:00
Vadim Petrochenkov
74a6d1c821
Turn #[allocator] into a built-in attribute and rename it to #[rustc_allocator]
2019-06-08 23:55:25 +03: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
Igor Matuszewski
08ede49dcb
Remove redundant, commented out code
...
It was commented out as part of
8a8e497ae7 .
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
Vadim Petrochenkov
ffe23475cb
syntax: Keep full Tokens for macro_rules separators
2019-06-08 20:36:20 +03: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
L117
7a74f33f90
Remove useless allocations in macro_rules follow logic.
2019-06-08 09:39:52 +10: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
bors
c1c60d292e
Auto merge of #61209 - matthewjasper:const-tuple-constructors, r=oli-obk
...
Make tuple constructors real const fns
Mir construction special cases `Ctor(...)` to be lowered as `Ctor { 0: ... }`, which means this doesn't come up much in practice, but it seems inconsistent not to allow this.
r? @oli-obk
2019-06-07 09:41:06 +00:00
Matthew Jasper
0d75ab2293
Make constructors actually be const functions
2019-06-06 17:20:06 +01: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
738e14565d
syntax: Use Token in visitors and fix a mut visitor test
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
cad1b1847e
Added feature gate.
2019-06-05 21:09:27 +01:00