Mazdak Farrokhzad
616373e668
Rollup merge of #67148 - Centril:ty-polish, r=estebank
...
Refactor type & bounds parsing thoroughly
PR is based on https://github.com/rust-lang/rust/pull/67131 with first one from this PR being ` extract parse_ty_tuple_or_parens`.
Also fixes #67146 .
r? @estebank
2019-12-22 02:40:00 +01:00
Mazdak Farrokhzad
211560d05c
extract parse_array_or_slice_ty
2019-12-21 19:20:41 +01:00
Mazdak Farrokhzad
c0bf3afc96
Rollup merge of #67355 - Centril:merge-mut, r=oli-obk
...
Merge `ast::Mutability` and `mir::Mutability`
r? @oli-obk
2019-12-21 15:29:42 +01:00
Mazdak Farrokhzad
a0d20935cc
introduce 'type AttrVec'
2019-12-20 22:53:40 +01:00
Mazdak Farrokhzad
a7aec3f207
1. ast::Mutability::{Mutable -> Mut, Immutable -> Not}.
...
2. mir::Mutability -> ast::Mutability.
2019-12-20 22:22:44 +01:00
Mazdak Farrokhzad
e52f902a8a
AssocImplKind::{Method -> Fn}.
2019-12-12 18:05:05 +01:00
Mazdak Farrokhzad
35e9e097e7
More c-variadic errors as semantic restrictions.
2019-12-12 18:01:33 +01:00
Mazdak Farrokhzad
0d41d0fe14
Move allow_c_varadic logic to ast_validation.
2019-12-12 18:01:33 +01:00
Mazdak Farrokhzad
51ccdebe0b
Unify associated item parsing more.
2019-12-12 18:00:00 +01:00
Mazdak Farrokhzad
34d91709b6
parse: refactor fun ret ty & param ty
2019-12-12 17:54:49 +01:00
Mazdak Farrokhzad
fa828d7a05
Relocate is_const_item.
2019-12-12 17:54:49 +01:00
Mazdak Farrokhzad
63a9030e7b
Unify associated item parsing.
...
An exception is `fn` params.
2019-12-12 17:54:49 +01:00
Mazdak Farrokhzad
7672bff378
Unify associated function parsing.
2019-12-12 17:54:48 +01:00
Mazdak Farrokhzad
10270bcd30
Fuse associated type parsing.
2019-12-12 17:54:48 +01:00
Mazdak Farrokhzad
2d92aa5535
Fuse associated constant parsing.
2019-12-12 17:54:48 +01:00
Mazdak Farrokhzad
39073767a4
Unify {Trait,Impl}ItemKind::TyAlias structures.
2019-12-12 17:54:48 +01:00
Mazdak Farrokhzad
c02fd31302
TraitItemKind::Type -> TraitItemKind::TyAlias.
2019-12-12 17:54:48 +01:00
Mazdak Farrokhzad
f6403c6c76
Use Option in ImplItemKind::Method.
2019-12-12 17:54:48 +01:00
Mazdak Farrokhzad
73557faed2
Use Option in ImplItemKind::Const.
2019-12-12 17:54:48 +01:00
Mazdak Farrokhzad
c4bbe9cbbe
Alias TraitItem & ImplItem.
...
Allow defaultness on trait items syntactically.
2019-12-12 17:54:48 +01:00
Mazdak Farrokhzad
c8850c7144
Make ForeignItem an alias of Item.
2019-12-07 06:05:25 +01:00
Kamlesh Kumar
f8ecf04f4b
accept union inside enum if not followed by identifier
2019-12-06 10:52:28 +05:30
Mazdak Farrokhzad
74804fa3e7
rustc_parser: cleanup imports
2019-12-05 06:38:06 +01:00
Mazdak Farrokhzad
d4b623547f
Rollup merge of #66903 - Centril:parse-enum-variant, r=estebank
...
parse_enum_item -> parse_enum_variant
r? @estebank
2019-12-03 19:41:51 +01:00
Vadim Petrochenkov
537895535d
syntax: Use ast::MacArgs for macro definitions
2019-12-02 21:56:34 +03:00
Vadim Petrochenkov
0fac56717a
syntax: Remove redundant span from ast::Mac
...
Also remove a couple of redundant `visit_mac` asserts
2019-12-02 21:56:34 +03:00
Vadim Petrochenkov
a81804b4d5
syntax: Introduce a struct MacArgs for macro arguments
2019-12-02 21:56:34 +03:00
Mazdak Farrokhzad
cb08677869
parse_enum_item -> parse_enum_variant
2019-11-30 14:55:05 +01:00
Tyler Mandry
999fd561ba
Rollup merge of #66798 - bwignall:typo, r=varkor
...
Fix spelling typos
Should be non-semantic.
Uses https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines to find likely typos.
2019-11-27 15:28:53 -06:00
Tyler Mandry
71f20b89ef
Rollup merge of #66718 - VirrageS:use_comma, r=Centril
...
Refactor `parse_enum_item` to use `parse_delim_comma_seq`
Followup after https://github.com/rust-lang/rust/pull/66641
Some errors got more verbose but I think they make sense with the help message.
2019-11-27 15:28:40 -06:00
Brian Wignall
16fabd8efd
Fix spelling typos
2019-11-26 22:19:54 -05:00
Tyler Mandry
bb6236cd74
Rollup merge of #66754 - estebank:rustdoc-capitalization, r=Dylan-DPC
...
Various tweaks to diagnostic output
2019-11-26 17:56:19 -06:00
Janusz Marcinkiewicz
5c34a11324
Refactor 'parse_enum_item' to use 'parse_delim_comma_seq'
2019-11-26 19:24:36 +01:00
Esteban Küber
5ea922aec4
Various cleanups
2019-11-25 13:30:52 -08:00
Janusz Marcinkiewicz
9300c3b6ad
Add FIXME for using 'parse_delim_comma_seq' when parsing enum variants
2019-11-23 23:23:40 +01:00
Janusz Marcinkiewicz
bbd0d9bea0
Cleanup code after review fixes
2019-11-23 04:01:14 +01:00
Janusz Marcinkiewicz
0e660d8a79
Add error reporting on nested keywords inside 'enum' definition
2019-11-23 03:41:12 +01:00
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
Tyler Mandry
c5bb2ec0dd
Rollup merge of #66197 - Centril:transparent-ast, r=varkor
...
Push `ast::{ItemKind, ImplItemKind}::OpaqueTy` hack down into lowering
We currently have a hack in the form of `ast::{ItemKind, ImplItemKind}::OpaqueTy` which is constructed literally when you write `type Alias = impl Trait;` but not e.g. `type Alias = Vec<impl Trait>;`. Per https://github.com/rust-lang/rfcs/pull/2515 , this needs to change to allow `impl Trait` in nested positions. This PR achieves this change for the syntactic aspect but not the semantic one, which will require changes in lowering and def collection. In the interim, `TyKind::opaque_top_hack` is introduced to avoid knock-on changes in lowering, collection, and resolve. These hacks can then be removed and fixed one by one until the desired semantics are supported.
r? @varkor
2019-11-15 14:44:47 +01:00
Mazdak Farrokhzad
0e8e176b69
TAIT: parse recursively instead of hack.
2019-11-14 13:40:42 +01:00
Guillaume Gomez
3302190b67
Clean some error codes diagnostics
2019-11-14 13:05:56 +01:00
Guanqun Lu
292ba98cb7
fix an ICE in macro's diagnostic message
2019-11-11 22:21:16 +08: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