rust/src/libsyntax/print
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
..
pprust syntactically allow visibility on trait item & enum variant 2019-11-11 06:33:09 +01:00
helpers.rs Move pp::Printer helpers to direct impl 2019-07-10 07:13:20 -04:00
pp.rs Move pp::Printer helpers to direct impl 2019-07-10 07:13:20 -04:00
pprust.rs ast: Keep string literals in ABIs precisely 2019-11-16 21:21:37 +03:00