Commit graph

10 commits

Author SHA1 Message Date
Mazdak Farrokhzad
8cba0a9073
Rollup merge of #66183 - Centril:empty-vis-trait-decl, r=petrochenkov
*Syntactically* permit visibilities on trait items & enum variants

Fixes #65041

Suppose we have `$vis trait_item` or `$vis enum_variant` and `$vis` is a `:vis` macro fragment. Before this PR, this would fail to parse. This is now instead allowed as per language team consensus in https://github.com/rust-lang/rust/issues/65041#issuecomment-538105286. (See added tests for elaboration.)

Moreover, we now also permit visibility modifiers on trait items & enum variants *syntactically* but reject them with semantic checks (in `ast_validation`):

```rust
#[cfg(FALSE)]
trait Foo { pub fn bar(); } // OK

#[cfg(FALSE)]
enum E { pub U } // OK
```
2019-11-22 19:57:41 +01:00
Vadim Petrochenkov
a699f17483 parse: Use string literal parsing in the asm macro 2019-11-16 21:21:37 +03:00
Vadim Petrochenkov
b85a3da421 parse: Support parsing optional literals
Revert weird renaming of the former `LitError::report`
2019-11-16 21:21:37 +03:00
Vadim Petrochenkov
00bc449602 ast: Keep string literals in ABIs precisely 2019-11-16 21:21:37 +03:00
Vadim Petrochenkov
266f547127 ast: Keep extern qualifiers in functions more precisely 2019-11-16 21:21:37 +03:00
Guillaume Gomez
3302190b67 Clean some error codes diagnostics 2019-11-14 13:05:56 +01:00
Guillaume Gomez
798e389e57 Update to use new librustc_error_codes library 2019-11-14 13:05:42 +01:00
Mazdak Farrokhzad
dcd91d5ceb parser: don't use unreachable!() in fn unexpected. 2019-11-13 12:05:37 +01:00
Mazdak Farrokhzad
9a88364525 syntactically allow visibility on trait item & enum variant 2019-11-11 06:33:09 +01:00
Mazdak Farrokhzad
4ae2728fa8 move syntax::parse -> librustc_parse
also move MACRO_ARGUMENTS -> librustc_parse
2019-11-10 03:57:18 +01:00
Renamed from src/libsyntax/parse/parser/mod.rs (Browse further)