Inline constness, defaultness, impl polarity
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index 0e93754..3132fd4 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -77,10 +77,6 @@
fn fold_bound_lifetimes(&mut self, i: BoundLifetimes) -> BoundLifetimes { fold_bound_lifetimes(self, i) }
fn fold_const_param(&mut self, i: ConstParam) -> ConstParam { fold_const_param(self, i) }
-# [ cfg ( feature = "full" ) ]
-fn fold_constness(&mut self, i: Constness) -> Constness { fold_constness(self, i) }
-# [ cfg ( feature = "full" ) ]
-fn fold_defaultness(&mut self, i: Defaultness) -> Defaultness { fold_defaultness(self, i) }
fn fold_derive_input(&mut self, i: DeriveInput) -> DeriveInput { fold_derive_input(self, i) }
@@ -203,8 +199,6 @@
fn fold_impl_item_method(&mut self, i: ImplItemMethod) -> ImplItemMethod { fold_impl_item_method(self, i) }
# [ cfg ( feature = "full" ) ]
fn fold_impl_item_type(&mut self, i: ImplItemType) -> ImplItemType { fold_impl_item_type(self, i) }
-# [ cfg ( feature = "full" ) ]
-fn fold_impl_polarity(&mut self, i: ImplPolarity) -> ImplPolarity { fold_impl_polarity(self, i) }
fn fold_index(&mut self, i: Index) -> Index { fold_index(self, i) }
# [ cfg ( feature = "full" ) ]
@@ -736,30 +730,6 @@
default: (_i . default).map(|it| { _visitor.fold_expr(it) }),
}
}
-# [ cfg ( feature = "full" ) ]
-pub fn fold_constness<V: Folder + ?Sized>(_visitor: &mut V, _i: Constness) -> Constness {
- use ::Constness::*;
- match _i {
- Const(_binding_0, ) => {
- Const (
- Token ! [ const ](tokens_helper(_visitor, &(_binding_0).0)),
- )
- }
- NotConst => { NotConst }
- }
-}
-# [ cfg ( feature = "full" ) ]
-pub fn fold_defaultness<V: Folder + ?Sized>(_visitor: &mut V, _i: Defaultness) -> Defaultness {
- use ::Defaultness::*;
- match _i {
- Default(_binding_0, ) => {
- Default (
- Token ! [ default ](tokens_helper(_visitor, &(_binding_0).0)),
- )
- }
- Final => { Final }
- }
-}
pub fn fold_derive_input<V: Folder + ?Sized>(_visitor: &mut V, _i: DeriveInput) -> DeriveInput {
DeriveInput {
@@ -1572,7 +1542,7 @@
ImplItemConst {
attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
vis: _visitor.fold_visibility(_i . vis),
- defaultness: _visitor.fold_defaultness(_i . defaultness),
+ defaultness: (_i . defaultness).map(|it| { Token ! [ default ](tokens_helper(_visitor, &(it).0)) }),
const_token: Token ! [ const ](tokens_helper(_visitor, &(_i . const_token).0)),
ident: _visitor.fold_ident(_i . ident),
colon_token: Token ! [ : ](tokens_helper(_visitor, &(_i . colon_token).0)),
@@ -1595,7 +1565,7 @@
ImplItemMethod {
attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
vis: _visitor.fold_visibility(_i . vis),
- defaultness: _visitor.fold_defaultness(_i . defaultness),
+ defaultness: (_i . defaultness).map(|it| { Token ! [ default ](tokens_helper(_visitor, &(it).0)) }),
sig: _visitor.fold_method_sig(_i . sig),
block: _visitor.fold_block(_i . block),
}
@@ -1605,7 +1575,7 @@
ImplItemType {
attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
vis: _visitor.fold_visibility(_i . vis),
- defaultness: _visitor.fold_defaultness(_i . defaultness),
+ defaultness: (_i . defaultness).map(|it| { Token ! [ default ](tokens_helper(_visitor, &(it).0)) }),
type_token: Token ! [ type ](tokens_helper(_visitor, &(_i . type_token).0)),
ident: _visitor.fold_ident(_i . ident),
generics: _visitor.fold_generics(_i . generics),
@@ -1614,18 +1584,6 @@
semi_token: Token ! [ ; ](tokens_helper(_visitor, &(_i . semi_token).0)),
}
}
-# [ cfg ( feature = "full" ) ]
-pub fn fold_impl_polarity<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplPolarity) -> ImplPolarity {
- use ::ImplPolarity::*;
- match _i {
- Positive => { Positive }
- Negative(_binding_0, ) => {
- Negative (
- Token ! [ ! ](tokens_helper(_visitor, &(_binding_0).0)),
- )
- }
- }
-}
pub fn fold_index<V: Folder + ?Sized>(_visitor: &mut V, _i: Index) -> Index {
Index {
@@ -1777,7 +1735,7 @@
ItemFn {
attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
vis: _visitor.fold_visibility(_i . vis),
- constness: _visitor.fold_constness(_i . constness),
+ constness: (_i . constness).map(|it| { Token ! [ const ](tokens_helper(_visitor, &(it).0)) }),
unsafety: _visitor.fold_unsafety(_i . unsafety),
abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
ident: _visitor.fold_ident(_i . ident),
@@ -1798,12 +1756,12 @@
pub fn fold_item_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemImpl) -> ItemImpl {
ItemImpl {
attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
- defaultness: _visitor.fold_defaultness(_i . defaultness),
+ defaultness: (_i . defaultness).map(|it| { Token ! [ default ](tokens_helper(_visitor, &(it).0)) }),
unsafety: _visitor.fold_unsafety(_i . unsafety),
impl_token: Token ! [ impl ](tokens_helper(_visitor, &(_i . impl_token).0)),
generics: _visitor.fold_generics(_i . generics),
trait_: (_i . trait_).map(|it| { (
- _visitor.fold_impl_polarity(( it ) . 0),
+ (( it ) . 0).map(|it| { Token ! [ ! ](tokens_helper(_visitor, &(it).0)) }),
_visitor.fold_path(( it ) . 1),
Token ! [ for ](tokens_helper(_visitor, &(( it ) . 2).0)),
) }),
@@ -2018,7 +1976,7 @@
# [ cfg ( feature = "full" ) ]
pub fn fold_method_sig<V: Folder + ?Sized>(_visitor: &mut V, _i: MethodSig) -> MethodSig {
MethodSig {
- constness: _visitor.fold_constness(_i . constness),
+ constness: (_i . constness).map(|it| { Token ! [ const ](tokens_helper(_visitor, &(it).0)) }),
unsafety: _visitor.fold_unsafety(_i . unsafety),
abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
ident: _visitor.fold_ident(_i . ident),
diff --git a/src/gen/visit.rs b/src/gen/visit.rs
index 2f3f414..9ab94cb 100644
--- a/src/gen/visit.rs
+++ b/src/gen/visit.rs
@@ -73,10 +73,6 @@
fn visit_bound_lifetimes(&mut self, i: &'ast BoundLifetimes) { visit_bound_lifetimes(self, i) }
fn visit_const_param(&mut self, i: &'ast ConstParam) { visit_const_param(self, i) }
-# [ cfg ( feature = "full" ) ]
-fn visit_constness(&mut self, i: &'ast Constness) { visit_constness(self, i) }
-# [ cfg ( feature = "full" ) ]
-fn visit_defaultness(&mut self, i: &'ast Defaultness) { visit_defaultness(self, i) }
fn visit_derive_input(&mut self, i: &'ast DeriveInput) { visit_derive_input(self, i) }
@@ -199,8 +195,6 @@
fn visit_impl_item_method(&mut self, i: &'ast ImplItemMethod) { visit_impl_item_method(self, i) }
# [ cfg ( feature = "full" ) ]
fn visit_impl_item_type(&mut self, i: &'ast ImplItemType) { visit_impl_item_type(self, i) }
-# [ cfg ( feature = "full" ) ]
-fn visit_impl_polarity(&mut self, i: &'ast ImplPolarity) { visit_impl_polarity(self, i) }
fn visit_index(&mut self, i: &'ast Index) { visit_index(self, i) }
# [ cfg ( feature = "full" ) ]
@@ -626,26 +620,6 @@
if let Some(ref it) = _i . eq_token { tokens_helper(_visitor, &(it).0) };
if let Some(ref it) = _i . default { _visitor.visit_expr(it) };
}
-# [ cfg ( feature = "full" ) ]
-pub fn visit_constness<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast Constness) {
- use ::Constness::*;
- match *_i {
- Const(ref _binding_0, ) => {
- tokens_helper(_visitor, &(_binding_0).0);
- }
- NotConst => { }
- }
-}
-# [ cfg ( feature = "full" ) ]
-pub fn visit_defaultness<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast Defaultness) {
- use ::Defaultness::*;
- match *_i {
- Default(ref _binding_0, ) => {
- tokens_helper(_visitor, &(_binding_0).0);
- }
- Final => { }
- }
-}
pub fn visit_derive_input<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast DeriveInput) {
for it in & _i . attrs { _visitor.visit_attribute(it) };
@@ -1244,7 +1218,7 @@
pub fn visit_impl_item_const<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ImplItemConst) {
for it in & _i . attrs { _visitor.visit_attribute(it) };
_visitor.visit_visibility(& _i . vis);
- _visitor.visit_defaultness(& _i . defaultness);
+ if let Some(ref it) = _i . defaultness { tokens_helper(_visitor, &(it).0) };
tokens_helper(_visitor, &(& _i . const_token).0);
_visitor.visit_ident(& _i . ident);
tokens_helper(_visitor, &(& _i . colon_token).0);
@@ -1263,7 +1237,7 @@
pub fn visit_impl_item_method<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ImplItemMethod) {
for it in & _i . attrs { _visitor.visit_attribute(it) };
_visitor.visit_visibility(& _i . vis);
- _visitor.visit_defaultness(& _i . defaultness);
+ if let Some(ref it) = _i . defaultness { tokens_helper(_visitor, &(it).0) };
_visitor.visit_method_sig(& _i . sig);
_visitor.visit_block(& _i . block);
}
@@ -1271,7 +1245,7 @@
pub fn visit_impl_item_type<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ImplItemType) {
for it in & _i . attrs { _visitor.visit_attribute(it) };
_visitor.visit_visibility(& _i . vis);
- _visitor.visit_defaultness(& _i . defaultness);
+ if let Some(ref it) = _i . defaultness { tokens_helper(_visitor, &(it).0) };
tokens_helper(_visitor, &(& _i . type_token).0);
_visitor.visit_ident(& _i . ident);
_visitor.visit_generics(& _i . generics);
@@ -1279,16 +1253,6 @@
_visitor.visit_type(& _i . ty);
tokens_helper(_visitor, &(& _i . semi_token).0);
}
-# [ cfg ( feature = "full" ) ]
-pub fn visit_impl_polarity<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ImplPolarity) {
- use ::ImplPolarity::*;
- match *_i {
- Positive => { }
- Negative(ref _binding_0, ) => {
- tokens_helper(_visitor, &(_binding_0).0);
- }
- }
-}
pub fn visit_index<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast Index) {
// Skipped field _i . index;
@@ -1397,7 +1361,7 @@
pub fn visit_item_fn<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ItemFn) {
for it in & _i . attrs { _visitor.visit_attribute(it) };
_visitor.visit_visibility(& _i . vis);
- _visitor.visit_constness(& _i . constness);
+ if let Some(ref it) = _i . constness { tokens_helper(_visitor, &(it).0) };
_visitor.visit_unsafety(& _i . unsafety);
if let Some(ref it) = _i . abi { _visitor.visit_abi(it) };
_visitor.visit_ident(& _i . ident);
@@ -1414,12 +1378,12 @@
# [ cfg ( feature = "full" ) ]
pub fn visit_item_impl<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ItemImpl) {
for it in & _i . attrs { _visitor.visit_attribute(it) };
- _visitor.visit_defaultness(& _i . defaultness);
+ if let Some(ref it) = _i . defaultness { tokens_helper(_visitor, &(it).0) };
_visitor.visit_unsafety(& _i . unsafety);
tokens_helper(_visitor, &(& _i . impl_token).0);
_visitor.visit_generics(& _i . generics);
if let Some(ref it) = _i . trait_ {
- _visitor.visit_impl_polarity(& ( it ) . 0);
+ if let Some(ref it) = ( it ) . 0 { tokens_helper(_visitor, &(it).0) };
_visitor.visit_path(& ( it ) . 1);
tokens_helper(_visitor, &(& ( it ) . 2).0);
};
@@ -1597,7 +1561,7 @@
}
# [ cfg ( feature = "full" ) ]
pub fn visit_method_sig<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast MethodSig) {
- _visitor.visit_constness(& _i . constness);
+ if let Some(ref it) = _i . constness { tokens_helper(_visitor, &(it).0) };
_visitor.visit_unsafety(& _i . unsafety);
if let Some(ref it) = _i . abi { _visitor.visit_abi(it) };
_visitor.visit_ident(& _i . ident);
diff --git a/src/gen/visit_mut.rs b/src/gen/visit_mut.rs
index a9dc75a..e879222 100644
--- a/src/gen/visit_mut.rs
+++ b/src/gen/visit_mut.rs
@@ -73,10 +73,6 @@
fn visit_bound_lifetimes_mut(&mut self, i: &mut BoundLifetimes) { visit_bound_lifetimes_mut(self, i) }
fn visit_const_param_mut(&mut self, i: &mut ConstParam) { visit_const_param_mut(self, i) }
-# [ cfg ( feature = "full" ) ]
-fn visit_constness_mut(&mut self, i: &mut Constness) { visit_constness_mut(self, i) }
-# [ cfg ( feature = "full" ) ]
-fn visit_defaultness_mut(&mut self, i: &mut Defaultness) { visit_defaultness_mut(self, i) }
fn visit_derive_input_mut(&mut self, i: &mut DeriveInput) { visit_derive_input_mut(self, i) }
@@ -199,8 +195,6 @@
fn visit_impl_item_method_mut(&mut self, i: &mut ImplItemMethod) { visit_impl_item_method_mut(self, i) }
# [ cfg ( feature = "full" ) ]
fn visit_impl_item_type_mut(&mut self, i: &mut ImplItemType) { visit_impl_item_type_mut(self, i) }
-# [ cfg ( feature = "full" ) ]
-fn visit_impl_polarity_mut(&mut self, i: &mut ImplPolarity) { visit_impl_polarity_mut(self, i) }
fn visit_index_mut(&mut self, i: &mut Index) { visit_index_mut(self, i) }
# [ cfg ( feature = "full" ) ]
@@ -626,26 +620,6 @@
if let Some(ref mut it) = _i . eq_token { tokens_helper(_visitor, &mut (it).0) };
if let Some(ref mut it) = _i . default { _visitor.visit_expr_mut(it) };
}
-# [ cfg ( feature = "full" ) ]
-pub fn visit_constness_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut Constness) {
- use ::Constness::*;
- match *_i {
- Const(ref mut _binding_0, ) => {
- tokens_helper(_visitor, &mut (_binding_0).0);
- }
- NotConst => { }
- }
-}
-# [ cfg ( feature = "full" ) ]
-pub fn visit_defaultness_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut Defaultness) {
- use ::Defaultness::*;
- match *_i {
- Default(ref mut _binding_0, ) => {
- tokens_helper(_visitor, &mut (_binding_0).0);
- }
- Final => { }
- }
-}
pub fn visit_derive_input_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut DeriveInput) {
for it in & mut _i . attrs { _visitor.visit_attribute_mut(it) };
@@ -1244,7 +1218,7 @@
pub fn visit_impl_item_const_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ImplItemConst) {
for it in & mut _i . attrs { _visitor.visit_attribute_mut(it) };
_visitor.visit_visibility_mut(& mut _i . vis);
- _visitor.visit_defaultness_mut(& mut _i . defaultness);
+ if let Some(ref mut it) = _i . defaultness { tokens_helper(_visitor, &mut (it).0) };
tokens_helper(_visitor, &mut (& mut _i . const_token).0);
_visitor.visit_ident_mut(& mut _i . ident);
tokens_helper(_visitor, &mut (& mut _i . colon_token).0);
@@ -1263,7 +1237,7 @@
pub fn visit_impl_item_method_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ImplItemMethod) {
for it in & mut _i . attrs { _visitor.visit_attribute_mut(it) };
_visitor.visit_visibility_mut(& mut _i . vis);
- _visitor.visit_defaultness_mut(& mut _i . defaultness);
+ if let Some(ref mut it) = _i . defaultness { tokens_helper(_visitor, &mut (it).0) };
_visitor.visit_method_sig_mut(& mut _i . sig);
_visitor.visit_block_mut(& mut _i . block);
}
@@ -1271,7 +1245,7 @@
pub fn visit_impl_item_type_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ImplItemType) {
for it in & mut _i . attrs { _visitor.visit_attribute_mut(it) };
_visitor.visit_visibility_mut(& mut _i . vis);
- _visitor.visit_defaultness_mut(& mut _i . defaultness);
+ if let Some(ref mut it) = _i . defaultness { tokens_helper(_visitor, &mut (it).0) };
tokens_helper(_visitor, &mut (& mut _i . type_token).0);
_visitor.visit_ident_mut(& mut _i . ident);
_visitor.visit_generics_mut(& mut _i . generics);
@@ -1279,16 +1253,6 @@
_visitor.visit_type_mut(& mut _i . ty);
tokens_helper(_visitor, &mut (& mut _i . semi_token).0);
}
-# [ cfg ( feature = "full" ) ]
-pub fn visit_impl_polarity_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ImplPolarity) {
- use ::ImplPolarity::*;
- match *_i {
- Positive => { }
- Negative(ref mut _binding_0, ) => {
- tokens_helper(_visitor, &mut (_binding_0).0);
- }
- }
-}
pub fn visit_index_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut Index) {
// Skipped field _i . index;
@@ -1397,7 +1361,7 @@
pub fn visit_item_fn_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ItemFn) {
for it in & mut _i . attrs { _visitor.visit_attribute_mut(it) };
_visitor.visit_visibility_mut(& mut _i . vis);
- _visitor.visit_constness_mut(& mut _i . constness);
+ if let Some(ref mut it) = _i . constness { tokens_helper(_visitor, &mut (it).0) };
_visitor.visit_unsafety_mut(& mut _i . unsafety);
if let Some(ref mut it) = _i . abi { _visitor.visit_abi_mut(it) };
_visitor.visit_ident_mut(& mut _i . ident);
@@ -1414,12 +1378,12 @@
# [ cfg ( feature = "full" ) ]
pub fn visit_item_impl_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut ItemImpl) {
for it in & mut _i . attrs { _visitor.visit_attribute_mut(it) };
- _visitor.visit_defaultness_mut(& mut _i . defaultness);
+ if let Some(ref mut it) = _i . defaultness { tokens_helper(_visitor, &mut (it).0) };
_visitor.visit_unsafety_mut(& mut _i . unsafety);
tokens_helper(_visitor, &mut (& mut _i . impl_token).0);
_visitor.visit_generics_mut(& mut _i . generics);
if let Some(ref mut it) = _i . trait_ {
- _visitor.visit_impl_polarity_mut(& mut ( it ) . 0);
+ if let Some(ref mut it) = ( it ) . 0 { tokens_helper(_visitor, &mut (it).0) };
_visitor.visit_path_mut(& mut ( it ) . 1);
tokens_helper(_visitor, &mut (& mut ( it ) . 2).0);
};
@@ -1597,7 +1561,7 @@
}
# [ cfg ( feature = "full" ) ]
pub fn visit_method_sig_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut MethodSig) {
- _visitor.visit_constness_mut(& mut _i . constness);
+ if let Some(ref mut it) = _i . constness { tokens_helper(_visitor, &mut (it).0) };
_visitor.visit_unsafety_mut(& mut _i . unsafety);
if let Some(ref mut it) = _i . abi { _visitor.visit_abi_mut(it) };
_visitor.visit_ident_mut(& mut _i . ident);
diff --git a/src/item.rs b/src/item.rs
index 96655cf..1151ed4 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -69,7 +69,7 @@
pub Fn(ItemFn {
pub attrs: Vec<Attribute>,
pub vis: Visibility,
- pub constness: Constness,
+ pub constness: Option<Token![const]>,
pub unsafety: Unsafety,
pub abi: Option<Abi>,
pub ident: Ident,
@@ -177,12 +177,12 @@
/// E.g. `impl<A> Foo<A> { .. }` or `impl<A> Trait for Foo<A> { .. }`
pub Impl(ItemImpl {
pub attrs: Vec<Attribute>,
- pub defaultness: Defaultness,
+ pub defaultness: Option<Token![default]>,
pub unsafety: Unsafety,
pub impl_token: Token![impl],
pub generics: Generics,
/// Trait this impl implements.
- pub trait_: Option<(ImplPolarity, Path, Token![for])>,
+ pub trait_: Option<(Option<Token![!]>, Path, Token![for])>,
/// The Self type of the impl.
pub self_ty: Box<Type>,
pub brace_token: token::Brace,
@@ -283,22 +283,6 @@
}
}
-ast_enum! {
- #[cfg_attr(feature = "clone-impls", derive(Copy))]
- pub enum Constness {
- Const(Token![const]),
- NotConst,
- }
-}
-
-ast_enum! {
- #[cfg_attr(feature = "clone-impls", derive(Copy))]
- pub enum Defaultness {
- Default(Token![default]),
- Final,
- }
-}
-
ast_enum_of_structs! {
/// An item within an `extern` block
pub enum ForeignItem {
@@ -371,22 +355,12 @@
}
}
-ast_enum! {
- #[cfg_attr(feature = "clone-impls", derive(Copy))]
- pub enum ImplPolarity {
- /// `impl Trait for Type`
- Positive,
- /// `impl !Trait for Type`
- Negative(Token![!]),
- }
-}
-
ast_enum_of_structs! {
pub enum ImplItem {
pub Const(ImplItemConst {
pub attrs: Vec<Attribute>,
pub vis: Visibility,
- pub defaultness: Defaultness,
+ pub defaultness: Option<Token![default]>,
pub const_token: Token![const],
pub ident: Ident,
pub colon_token: Token![:],
@@ -398,14 +372,14 @@
pub Method(ImplItemMethod {
pub attrs: Vec<Attribute>,
pub vis: Visibility,
- pub defaultness: Defaultness,
+ pub defaultness: Option<Token![default]>,
pub sig: MethodSig,
pub block: Block,
}),
pub Type(ImplItemType {
pub attrs: Vec<Attribute>,
pub vis: Visibility,
- pub defaultness: Defaultness,
+ pub defaultness: Option<Token![default]>,
pub type_token: Token![type],
pub ident: Ident,
pub generics: Generics,
@@ -425,7 +399,7 @@
/// Represents a method's signature in a trait declaration,
/// or in an implementation.
pub struct MethodSig {
- pub constness: Constness,
+ pub constness: Option<Token![const]>,
pub unsafety: Unsafety,
pub abi: Option<Abi>,
pub ident: Ident,
@@ -703,7 +677,7 @@
impl_synom!(ItemFn "fn item" do_parse!(
outer_attrs: many0!(Attribute::parse_outer) >>
vis: syn!(Visibility) >>
- constness: syn!(Constness) >>
+ constness: option!(keyword!(const)) >>
unsafety: syn!(Unsafety) >>
abi: option!(syn!(Abi)) >>
fn_: keyword!(fn) >>
@@ -1060,7 +1034,7 @@
impl_synom!(TraitItemMethod "method trait item" do_parse!(
outer_attrs: many0!(Attribute::parse_outer) >>
- constness: syn!(Constness) >>
+ constness: option!(keyword!(const)) >>
unsafety: syn!(Unsafety) >>
abi: option!(syn!(Abi)) >>
fn_: keyword!(fn) >>
@@ -1153,13 +1127,13 @@
impl_synom!(ItemImpl "impl item" do_parse!(
attrs: many0!(Attribute::parse_outer) >>
- defaultness: syn!(Defaultness) >>
+ defaultness: option!(keyword!(default)) >>
unsafety: syn!(Unsafety) >>
impl_: keyword!(impl) >>
generics: syn!(Generics) >>
polarity_path: alt!(
do_parse!(
- polarity: syn!(ImplPolarity) >>
+ polarity: option!(punct!(!)) >>
path: syn!(Path) >>
for_: keyword!(for) >>
(Some((polarity, path, for_)))
@@ -1199,7 +1173,7 @@
impl_synom!(ImplItemConst "const item in impl block" do_parse!(
attrs: many0!(Attribute::parse_outer) >>
vis: syn!(Visibility) >>
- defaultness: syn!(Defaultness) >>
+ defaultness: option!(keyword!(default)) >>
const_: keyword!(const) >>
ident: syn!(Ident) >>
colon: punct!(:) >>
@@ -1224,8 +1198,8 @@
impl_synom!(ImplItemMethod "method in impl block" do_parse!(
outer_attrs: many0!(Attribute::parse_outer) >>
vis: syn!(Visibility) >>
- defaultness: syn!(Defaultness) >>
- constness: syn!(Constness) >>
+ defaultness: option!(keyword!(default)) >>
+ constness: option!(keyword!(const)) >>
unsafety: syn!(Unsafety) >>
abi: option!(syn!(Abi)) >>
fn_: keyword!(fn) >>
@@ -1273,7 +1247,7 @@
impl_synom!(ImplItemType "type in impl block" do_parse!(
attrs: many0!(Attribute::parse_outer) >>
vis: syn!(Visibility) >>
- defaultness: syn!(Defaultness) >>
+ defaultness: option!(keyword!(default)) >>
type_: keyword!(type) >>
ident: syn!(Ident) >>
generics: syn!(Generics) >>
@@ -1304,30 +1278,6 @@
})
));
- impl Synom for ImplPolarity {
- named!(parse -> Self, alt!(
- punct!(!) => { ImplPolarity::Negative }
- |
- epsilon!() => { |_| ImplPolarity::Positive }
- ));
- }
-
- impl Synom for Constness {
- named!(parse -> Self, alt!(
- keyword!(const) => { Constness::Const }
- |
- epsilon!() => { |_| Constness::NotConst }
- ));
- }
-
- impl Synom for Defaultness {
- named!(parse -> Self, alt!(
- keyword!(default) => { Defaultness::Default }
- |
- epsilon!() => { |_| Defaultness::Final }
- ));
- }
-
fn is_braced(tt: &TokenTree) -> bool {
match tt.kind {
TokenNode::Group(Delimiter::Brace, _) => true,
@@ -1799,37 +1749,4 @@
self.ty.to_tokens(tokens);
}
}
-
- impl ToTokens for Constness {
- fn to_tokens(&self, tokens: &mut Tokens) {
- match *self {
- Constness::Const(ref t) => t.to_tokens(tokens),
- Constness::NotConst => {
- // nothing
- }
- }
- }
- }
-
- impl ToTokens for Defaultness {
- fn to_tokens(&self, tokens: &mut Tokens) {
- match *self {
- Defaultness::Default(ref t) => t.to_tokens(tokens),
- Defaultness::Final => {
- // nothing
- }
- }
- }
- }
-
- impl ToTokens for ImplPolarity {
- fn to_tokens(&self, tokens: &mut Tokens) {
- match *self {
- ImplPolarity::Negative(ref t) => t.to_tokens(tokens),
- ImplPolarity::Positive => {
- // nothing
- }
- }
- }
- }
}
diff --git a/src/lib.rs b/src/lib.rs
index b63974e..38303f9 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -58,9 +58,9 @@
#[cfg(feature = "full")]
mod item;
#[cfg(feature = "full")]
-pub use item::{ArgCaptured, ArgSelf, ArgSelfRef, Constness, Defaultness, FnArg, FnDecl,
+pub use item::{ArgCaptured, ArgSelf, ArgSelfRef, FnArg, FnDecl,
ForeignItem, ForeignItemFn, ForeignItemStatic, ForeignItemType, ImplItem,
- ImplItemConst, ImplItemMacro, ImplItemMethod, ImplItemType, ImplPolarity, Item,
+ ImplItemConst, ImplItemMacro, ImplItemMethod, ImplItemType, Item,
ItemConst, ItemDefaultImpl, ItemEnum, ItemExternCrate, ItemFn, ItemForeignMod,
ItemImpl, ItemMacro, ItemMacro2, ItemMod, ItemStatic, ItemStruct, ItemTrait,
ItemType, ItemUnion, ItemUse, MethodSig, TraitItem, TraitItemConst, TraitItemMacro,