Redesign MetaItem naming
diff --git a/src/attr.rs b/src/attr.rs
index 393ffc8..d2ca870 100644
--- a/src/attr.rs
+++ b/src/attr.rs
@@ -94,8 +94,8 @@
 }
 
 impl Attribute {
-    /// Parses the tokens after the path as a [`MetaItem`](enum.MetaItem.html) if possible.
-    pub fn meta_item(&self) -> Option<MetaItem> {
+    /// Parses the tokens after the path as a [`Meta`](enum.Meta.html) if possible.
+    pub fn interpret_meta(&self) -> Option<Meta> {
         let name = if self.path.segments.len() == 1 {
             &self.path.segments.first().unwrap().value().ident
         } else {
@@ -103,7 +103,7 @@
         };
 
         if self.tts.is_empty() {
-            return Some(MetaItem::Term(*name));
+            return Some(Meta::Word(*name));
         }
 
         let tts = self.tts.clone().into_iter().collect::<Vec<_>>();
@@ -112,7 +112,7 @@
             if let TokenNode::Group(Delimiter::Parenthesis, ref ts) = tts[0].kind {
                 let tokens = ts.clone().into_iter().collect::<Vec<_>>();
                 if let Some(nested_meta_items) = list_of_nested_meta_items_from_tokens(&tokens) {
-                    return Some(MetaItem::List(MetaItemList {
+                    return Some(Meta::List(MetaList {
                         paren_token: token::Paren(tts[0].span),
                         ident: *name,
                         nested: nested_meta_items,
@@ -124,7 +124,7 @@
         if tts.len() == 2 {
             if let TokenNode::Op('=', Spacing::Alone) = tts[0].kind {
                 if let TokenNode::Literal(ref lit) = tts[1].kind {
-                    return Some(MetaItem::NameValue(MetaNameValue {
+                    return Some(Meta::NameValue(MetaNameValue {
                         ident: *name,
                         eq_token: Token![=]([tts[0].span]),
                         lit: Lit::new(lit.clone(), tts[1].span),
@@ -137,13 +137,13 @@
     }
 }
 
-fn nested_meta_item_from_tokens(tts: &[TokenTree]) -> Option<(NestedMetaItem, &[TokenTree])> {
+fn nested_meta_item_from_tokens(tts: &[TokenTree]) -> Option<(NestedMeta, &[TokenTree])> {
     assert!(!tts.is_empty());
 
     match tts[0].kind {
         TokenNode::Literal(ref lit) => {
             let lit = Lit::new(lit.clone(), tts[0].span);
-            Some((NestedMetaItem::Literal(lit), &tts[1..]))
+            Some((NestedMeta::Literal(lit), &tts[1..]))
         }
 
         TokenNode::Term(sym) => {
@@ -156,7 +156,7 @@
                             eq_token: Token![=]([tts[1].span]),
                             lit: Lit::new(lit.clone(), tts[2].span),
                         };
-                        return Some((MetaItem::NameValue(pair).into(), &tts[3..]));
+                        return Some((Meta::NameValue(pair).into(), &tts[3..]));
                     }
                 }
             }
@@ -166,12 +166,12 @@
                     let inner_tts = inner_tts.clone().into_iter().collect::<Vec<_>>();
                     return match list_of_nested_meta_items_from_tokens(&inner_tts) {
                         Some(nested_meta_items) => {
-                            let list = MetaItemList {
+                            let list = MetaList {
                                 ident: ident,
                                 paren_token: token::Paren(tts[1].span),
                                 nested: nested_meta_items,
                             };
-                            Some((MetaItem::List(list).into(), &tts[2..]))
+                            Some((Meta::List(list).into(), &tts[2..]))
                         }
 
                         None => None,
@@ -179,7 +179,7 @@
                 }
             }
 
-            Some((MetaItem::Term(ident).into(), &tts[1..]))
+            Some((Meta::Word(ident).into(), &tts[1..]))
         }
 
         _ => None,
@@ -188,7 +188,7 @@
 
 fn list_of_nested_meta_items_from_tokens(
     mut tts: &[TokenTree],
-) -> Option<Punctuated<NestedMetaItem, Token![,]>> {
+) -> Option<Punctuated<NestedMeta, Token![,]>> {
     let mut nested_meta_items = Punctuated::new();
     let mut first = true;
 
@@ -246,16 +246,16 @@
     /// A compile-time attribute item.
     ///
     /// E.g. `#[test]`, `#[derive(..)]` or `#[feature = "foo"]`
-    pub enum MetaItem {
+    pub enum Meta {
         /// Term meta item.
         ///
         /// E.g. `test` as in `#[test]`
-        pub Term(Ident),
+        pub Word(Ident),
 
         /// List meta item.
         ///
         /// E.g. `derive(..)` as in `#[derive(..)]`
-        pub List(MetaItemList {
+        pub List(MetaList {
             /// Name of this attribute.
             ///
             /// E.g. `derive` in `#[derive(..)]`
@@ -266,7 +266,7 @@
             /// Arguments to this attribute
             ///
             /// E.g. `..` in `#[derive(..)]`
-            pub nested: Punctuated<NestedMetaItem, Token![,]>,
+            pub nested: Punctuated<NestedMeta, Token![,]>,
         }),
 
         /// Name-value meta item.
@@ -288,16 +288,16 @@
     }
 }
 
-impl MetaItem {
+impl Meta {
     /// Name of the item.
     ///
     /// E.g. `test` as in `#[test]`, `derive` as in `#[derive(..)]`, and
     /// `feature` as in `#[feature = "foo"]`.
     pub fn name(&self) -> &str {
         match *self {
-            MetaItem::Term(ref name) => name.as_ref(),
-            MetaItem::NameValue(ref pair) => pair.ident.as_ref(),
-            MetaItem::List(ref list) => list.ident.as_ref(),
+            Meta::Word(ref name) => name.as_ref(),
+            Meta::NameValue(ref pair) => pair.ident.as_ref(),
+            Meta::List(ref list) => list.ident.as_ref(),
         }
     }
 }
@@ -306,11 +306,11 @@
     /// Possible values inside of compile-time attribute lists.
     ///
     /// E.g. the '..' in `#[name(..)]`.
-    pub enum NestedMetaItem {
-        /// A full `MetaItem`.
+    pub enum NestedMeta {
+        /// A full `Meta`.
         ///
-        /// E.g. `Copy` in `#[derive(Copy)]` would be a `MetaItem::Term(Ident::from("Copy"))`.
-        pub MetaItem(MetaItem),
+        /// E.g. `Copy` in `#[derive(Copy)]` would be a `Meta::Word(Ident::from("Copy"))`.
+        pub Meta(Meta),
 
         /// A Rust literal.
         ///
@@ -491,7 +491,7 @@
         fn to_tokens(&self, tokens: &mut Tokens) {
             // If this was a sugared doc, emit it in its original form instead of `#[doc = "..."]`
             if self.is_sugared_doc {
-                if let Some(MetaItem::NameValue(ref pair)) = self.meta_item() {
+                if let Some(Meta::NameValue(ref pair)) = self.interpret_meta() {
                     if pair.ident == "doc" {
                         if let Lit::Str(ref comment) = pair.lit {
                             tokens.append(TokenTree {
@@ -515,7 +515,7 @@
         }
     }
 
-    impl ToTokens for MetaItemList {
+    impl ToTokens for MetaList {
         fn to_tokens(&self, tokens: &mut Tokens) {
             self.ident.to_tokens(tokens);
             self.paren_token.surround(tokens, |tokens| {
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index 190e3b6..6c1d54b 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -272,9 +272,9 @@
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 fn fold_member(&mut self, i: Member) -> Member { fold_member(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn fold_meta_item(&mut self, i: MetaItem) -> MetaItem { fold_meta_item(self, i) }
+fn fold_meta(&mut self, i: Meta) -> Meta { fold_meta(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn fold_meta_item_list(&mut self, i: MetaItemList) -> MetaItemList { fold_meta_item_list(self, i) }
+fn fold_meta_list(&mut self, i: MetaList) -> MetaList { fold_meta_list(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 fn fold_meta_name_value(&mut self, i: MetaNameValue) -> MetaNameValue { fold_meta_name_value(self, i) }
 # [ cfg ( feature = "full" ) ]
@@ -282,7 +282,7 @@
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
 fn fold_method_turbofish(&mut self, i: MethodTurbofish) -> MethodTurbofish { fold_method_turbofish(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn fold_nested_meta_item(&mut self, i: NestedMetaItem) -> NestedMetaItem { fold_nested_meta_item(self, i) }
+fn fold_nested_meta(&mut self, i: NestedMeta) -> NestedMeta { fold_nested_meta(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 fn fold_parenthesized_generic_arguments(&mut self, i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments { fold_parenthesized_generic_arguments(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
@@ -2101,31 +2101,31 @@
     }
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn fold_meta_item<V: Fold + ?Sized>(_visitor: &mut V, _i: MetaItem) -> MetaItem {
+pub fn fold_meta<V: Fold + ?Sized>(_visitor: &mut V, _i: Meta) -> Meta {
     match _i {
-        MetaItem::Term(_binding_0, ) => {
-            MetaItem::Term (
+        Meta::Word(_binding_0, ) => {
+            Meta::Word (
                 _visitor.fold_ident(_binding_0),
             )
         }
-        MetaItem::List(_binding_0, ) => {
-            MetaItem::List (
-                _visitor.fold_meta_item_list(_binding_0),
+        Meta::List(_binding_0, ) => {
+            Meta::List (
+                _visitor.fold_meta_list(_binding_0),
             )
         }
-        MetaItem::NameValue(_binding_0, ) => {
-            MetaItem::NameValue (
+        Meta::NameValue(_binding_0, ) => {
+            Meta::NameValue (
                 _visitor.fold_meta_name_value(_binding_0),
             )
         }
     }
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn fold_meta_item_list<V: Fold + ?Sized>(_visitor: &mut V, _i: MetaItemList) -> MetaItemList {
-    MetaItemList {
+pub fn fold_meta_list<V: Fold + ?Sized>(_visitor: &mut V, _i: MetaList) -> MetaList {
+    MetaList {
         ident: _visitor.fold_ident(_i . ident),
         paren_token: Paren(tokens_helper(_visitor, &(_i . paren_token).0)),
-        nested: FoldHelper::lift(_i . nested, |it| { _visitor.fold_nested_meta_item(it) }),
+        nested: FoldHelper::lift(_i . nested, |it| { _visitor.fold_nested_meta(it) }),
     }
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
@@ -2156,15 +2156,15 @@
     }
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn fold_nested_meta_item<V: Fold + ?Sized>(_visitor: &mut V, _i: NestedMetaItem) -> NestedMetaItem {
+pub fn fold_nested_meta<V: Fold + ?Sized>(_visitor: &mut V, _i: NestedMeta) -> NestedMeta {
     match _i {
-        NestedMetaItem::MetaItem(_binding_0, ) => {
-            NestedMetaItem::MetaItem (
-                _visitor.fold_meta_item(_binding_0),
+        NestedMeta::Meta(_binding_0, ) => {
+            NestedMeta::Meta (
+                _visitor.fold_meta(_binding_0),
             )
         }
-        NestedMetaItem::Literal(_binding_0, ) => {
-            NestedMetaItem::Literal (
+        NestedMeta::Literal(_binding_0, ) => {
+            NestedMeta::Literal (
                 _visitor.fold_lit(_binding_0),
             )
         }
diff --git a/src/gen/visit.rs b/src/gen/visit.rs
index 5f0cb02..3ca8e38 100644
--- a/src/gen/visit.rs
+++ b/src/gen/visit.rs
@@ -270,9 +270,9 @@
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 fn visit_member(&mut self, i: &'ast Member) { visit_member(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_meta_item(&mut self, i: &'ast MetaItem) { visit_meta_item(self, i) }
+fn visit_meta(&mut self, i: &'ast Meta) { visit_meta(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_meta_item_list(&mut self, i: &'ast MetaItemList) { visit_meta_item_list(self, i) }
+fn visit_meta_list(&mut self, i: &'ast MetaList) { visit_meta_list(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 fn visit_meta_name_value(&mut self, i: &'ast MetaNameValue) { visit_meta_name_value(self, i) }
 # [ cfg ( feature = "full" ) ]
@@ -280,7 +280,7 @@
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
 fn visit_method_turbofish(&mut self, i: &'ast MethodTurbofish) { visit_method_turbofish(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_nested_meta_item(&mut self, i: &'ast NestedMetaItem) { visit_nested_meta_item(self, i) }
+fn visit_nested_meta(&mut self, i: &'ast NestedMeta) { visit_nested_meta(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 fn visit_parenthesized_generic_arguments(&mut self, i: &'ast ParenthesizedGenericArguments) { visit_parenthesized_generic_arguments(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
@@ -1666,24 +1666,24 @@
     }
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_meta_item<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast MetaItem) {
+pub fn visit_meta<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast Meta) {
     match *_i {
-        MetaItem::Term(ref _binding_0, ) => {
+        Meta::Word(ref _binding_0, ) => {
             _visitor.visit_ident(_binding_0);
         }
-        MetaItem::List(ref _binding_0, ) => {
-            _visitor.visit_meta_item_list(_binding_0);
+        Meta::List(ref _binding_0, ) => {
+            _visitor.visit_meta_list(_binding_0);
         }
-        MetaItem::NameValue(ref _binding_0, ) => {
+        Meta::NameValue(ref _binding_0, ) => {
             _visitor.visit_meta_name_value(_binding_0);
         }
     }
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_meta_item_list<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast MetaItemList) {
+pub fn visit_meta_list<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast MetaList) {
     _visitor.visit_ident(& _i . ident);
     tokens_helper(_visitor, &(& _i . paren_token).0);
-    for el in Punctuated::pairs(& _i . nested) { let it = el.value(); _visitor.visit_nested_meta_item(it) };
+    for el in Punctuated::pairs(& _i . nested) { let it = el.value(); _visitor.visit_nested_meta(it) };
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 pub fn visit_meta_name_value<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast MetaNameValue) {
@@ -1707,12 +1707,12 @@
     tokens_helper(_visitor, &(& _i . gt_token).0);
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_nested_meta_item<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast NestedMetaItem) {
+pub fn visit_nested_meta<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast NestedMeta) {
     match *_i {
-        NestedMetaItem::MetaItem(ref _binding_0, ) => {
-            _visitor.visit_meta_item(_binding_0);
+        NestedMeta::Meta(ref _binding_0, ) => {
+            _visitor.visit_meta(_binding_0);
         }
-        NestedMetaItem::Literal(ref _binding_0, ) => {
+        NestedMeta::Literal(ref _binding_0, ) => {
             _visitor.visit_lit(_binding_0);
         }
     }
diff --git a/src/gen/visit_mut.rs b/src/gen/visit_mut.rs
index 96f3338..e11e97d 100644
--- a/src/gen/visit_mut.rs
+++ b/src/gen/visit_mut.rs
@@ -271,9 +271,9 @@
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 fn visit_member_mut(&mut self, i: &mut Member) { visit_member_mut(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_meta_item_mut(&mut self, i: &mut MetaItem) { visit_meta_item_mut(self, i) }
+fn visit_meta_mut(&mut self, i: &mut Meta) { visit_meta_mut(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_meta_item_list_mut(&mut self, i: &mut MetaItemList) { visit_meta_item_list_mut(self, i) }
+fn visit_meta_list_mut(&mut self, i: &mut MetaList) { visit_meta_list_mut(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 fn visit_meta_name_value_mut(&mut self, i: &mut MetaNameValue) { visit_meta_name_value_mut(self, i) }
 # [ cfg ( feature = "full" ) ]
@@ -281,7 +281,7 @@
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
 fn visit_method_turbofish_mut(&mut self, i: &mut MethodTurbofish) { visit_method_turbofish_mut(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_nested_meta_item_mut(&mut self, i: &mut NestedMetaItem) { visit_nested_meta_item_mut(self, i) }
+fn visit_nested_meta_mut(&mut self, i: &mut NestedMeta) { visit_nested_meta_mut(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 fn visit_parenthesized_generic_arguments_mut(&mut self, i: &mut ParenthesizedGenericArguments) { visit_parenthesized_generic_arguments_mut(self, i) }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
@@ -1667,24 +1667,24 @@
     }
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_meta_item_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut MetaItem) {
+pub fn visit_meta_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut Meta) {
     match *_i {
-        MetaItem::Term(ref mut _binding_0, ) => {
+        Meta::Word(ref mut _binding_0, ) => {
             _visitor.visit_ident_mut(_binding_0);
         }
-        MetaItem::List(ref mut _binding_0, ) => {
-            _visitor.visit_meta_item_list_mut(_binding_0);
+        Meta::List(ref mut _binding_0, ) => {
+            _visitor.visit_meta_list_mut(_binding_0);
         }
-        MetaItem::NameValue(ref mut _binding_0, ) => {
+        Meta::NameValue(ref mut _binding_0, ) => {
             _visitor.visit_meta_name_value_mut(_binding_0);
         }
     }
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_meta_item_list_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut MetaItemList) {
+pub fn visit_meta_list_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut MetaList) {
     _visitor.visit_ident_mut(& mut _i . ident);
     tokens_helper(_visitor, &mut (& mut _i . paren_token).0);
-    for mut el in Punctuated::pairs_mut(& mut _i . nested) { let it = el.value_mut(); _visitor.visit_nested_meta_item_mut(it) };
+    for mut el in Punctuated::pairs_mut(& mut _i . nested) { let it = el.value_mut(); _visitor.visit_nested_meta_mut(it) };
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
 pub fn visit_meta_name_value_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut MetaNameValue) {
@@ -1708,12 +1708,12 @@
     tokens_helper(_visitor, &mut (& mut _i . gt_token).0);
 }
 # [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_nested_meta_item_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut NestedMetaItem) {
+pub fn visit_nested_meta_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut NestedMeta) {
     match *_i {
-        NestedMetaItem::MetaItem(ref mut _binding_0, ) => {
-            _visitor.visit_meta_item_mut(_binding_0);
+        NestedMeta::Meta(ref mut _binding_0, ) => {
+            _visitor.visit_meta_mut(_binding_0);
         }
-        NestedMetaItem::Literal(ref mut _binding_0, ) => {
+        NestedMeta::Literal(ref mut _binding_0, ) => {
             _visitor.visit_lit_mut(_binding_0);
         }
     }
diff --git a/src/lib.rs b/src/lib.rs
index b2075a5..948dd3e 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -281,7 +281,7 @@
 #[cfg(any(feature = "full", feature = "derive"))]
 mod attr;
 #[cfg(any(feature = "full", feature = "derive"))]
-pub use attr::{AttrStyle, Attribute, MetaItem, MetaItemList, MetaNameValue, NestedMetaItem};
+pub use attr::{AttrStyle, Attribute, Meta, MetaList, MetaNameValue, NestedMeta};
 
 #[cfg(any(feature = "full", feature = "derive"))]
 mod data;
diff --git a/tests/test_derive_input.rs b/tests/test_derive_input.rs
index 5772a94..9079b4a 100644
--- a/tests/test_derive_input.rs
+++ b/tests/test_derive_input.rs
@@ -154,16 +154,16 @@
 
     assert_eq!(expected, actual);
 
-    let expected_meta_item: MetaItem = MetaItemList {
+    let expected_meta_item: Meta = MetaList {
         ident: "derive".into(),
         paren_token: Default::default(),
         nested: punctuated![
-            NestedMetaItem::MetaItem(MetaItem::Term("Debug".into())),
-            NestedMetaItem::MetaItem(MetaItem::Term("Clone".into())),
+            NestedMeta::Meta(Meta::Word("Debug".into())),
+            NestedMeta::Meta(Meta::Word("Clone".into())),
         ],
     }.into();
 
-    assert_eq!(expected_meta_item, actual.attrs[0].meta_item().unwrap());
+    assert_eq!(expected_meta_item, actual.attrs[0].interpret_meta().unwrap());
 }
 
 #[test]
@@ -341,13 +341,13 @@
                 Default::default(),
             )),
         }.into(),
-        MetaItem::Term("must_use".into()),
+        Meta::Word("must_use".into()),
     ];
 
     let actual_meta_items: Vec<_> = actual
         .attrs
         .into_iter()
-        .map(|attr| attr.meta_item().unwrap())
+        .map(|attr| attr.interpret_meta().unwrap())
         .collect();
 
     assert_eq!(expected_meta_items, actual_meta_items);
@@ -413,7 +413,7 @@
 
     assert_eq!(expected, actual);
 
-    assert!(actual.attrs[0].meta_item().is_none());
+    assert!(actual.attrs[0].interpret_meta().is_none());
 }
 
 #[test]
@@ -451,7 +451,7 @@
 
     assert_eq!(expected, actual);
 
-    assert!(actual.attrs[0].meta_item().is_none());
+    assert!(actual.attrs[0].interpret_meta().is_none());
 }
 
 #[test]
@@ -489,7 +489,7 @@
 
     assert_eq!(expected, actual);
 
-    assert!(actual.attrs[0].meta_item().is_none());
+    assert!(actual.attrs[0].interpret_meta().is_none());
 }
 
 #[test]
diff --git a/tests/test_meta_item.rs b/tests/test_meta_item.rs
index e0378bc..8546733 100644
--- a/tests/test_meta_item.rs
+++ b/tests/test_meta_item.rs
@@ -24,7 +24,7 @@
 
 #[test]
 fn test_meta_item_word() {
-    run_test("#[foo]", MetaItem::Term("foo".into()))
+    run_test("#[foo]", Meta::Word("foo".into()))
 }
 
 #[test]
@@ -43,10 +43,10 @@
 fn test_meta_item_list_lit() {
     run_test(
         "#[foo(5)]",
-        MetaItemList {
+        MetaList {
             ident: "foo".into(),
             paren_token: Default::default(),
-            nested: punctuated![NestedMetaItem::Literal(lit(Literal::integer(5)))],
+            nested: punctuated![NestedMeta::Literal(lit(Literal::integer(5)))],
         },
     )
 }
@@ -55,10 +55,10 @@
 fn test_meta_item_list_word() {
     run_test(
         "#[foo(bar)]",
-        MetaItemList {
+        MetaList {
             ident: "foo".into(),
             paren_token: Default::default(),
-            nested: punctuated![NestedMetaItem::MetaItem(MetaItem::Term("bar".into()))],
+            nested: punctuated![NestedMeta::Meta(Meta::Word("bar".into()))],
         },
     )
 }
@@ -67,11 +67,11 @@
 fn test_meta_item_list_name_value() {
     run_test(
         "#[foo(bar = 5)]",
-        MetaItemList {
+        MetaList {
             ident: "foo".into(),
             paren_token: Default::default(),
             nested: punctuated![
-                NestedMetaItem::MetaItem(
+                NestedMeta::Meta(
                     MetaNameValue {
                         ident: "bar".into(),
                         eq_token: Default::default(),
@@ -87,24 +87,24 @@
 fn test_meta_item_multiple() {
     run_test(
         "#[foo(word, name = 5, list(name2 = 6), word2)]",
-        MetaItemList {
+        MetaList {
             ident: "foo".into(),
             paren_token: Default::default(),
             nested: punctuated![
-                NestedMetaItem::MetaItem(MetaItem::Term("word".into())),
-                NestedMetaItem::MetaItem(
+                NestedMeta::Meta(Meta::Word("word".into())),
+                NestedMeta::Meta(
                     MetaNameValue {
                         ident: "name".into(),
                         eq_token: Default::default(),
                         lit: lit(Literal::integer(5)),
                     }.into(),
                 ),
-                NestedMetaItem::MetaItem(
-                    MetaItemList {
+                NestedMeta::Meta(
+                    MetaList {
                         ident: "list".into(),
                         paren_token: Default::default(),
                         nested: punctuated![
-                            NestedMetaItem::MetaItem(
+                            NestedMeta::Meta(
                                 MetaNameValue {
                                     ident: "name2".into(),
                                     eq_token: Default::default(),
@@ -114,13 +114,13 @@
                         ],
                     }.into(),
                 ),
-                NestedMetaItem::MetaItem(MetaItem::Term("word2".into())),
+                NestedMeta::Meta(Meta::Word("word2".into())),
             ],
         },
     )
 }
 
-fn run_test<T: Into<MetaItem>>(input: &str, expected: T) {
+fn run_test<T: Into<Meta>>(input: &str, expected: T) {
     let tokens = input.parse::<TokenStream>().unwrap();
     let buf = TokenBuffer::new2(tokens);
     let attr = match Attribute::parse_outer(buf.begin()) {
@@ -130,5 +130,5 @@
         }
         Err(err) => panic!(err),
     };
-    assert_eq!(expected.into(), attr.meta_item().unwrap());
+    assert_eq!(expected.into(), attr.interpret_meta().unwrap());
 }