]> git.proxmox.com Git - rustc.git/blobdiff - vendor/syn/src/item.rs
New upstream version 1.52.0~beta.3+dfsg1
[rustc.git] / vendor / syn / src / item.rs
index d5c3b277bd8a1b5eec0e155f9d140f23658823d2..4c168508ccec174f652d9e7a1af95efc0db7011d 100644 (file)
@@ -380,7 +380,11 @@ impl Item {
             | Item::Macro(ItemMacro { attrs, .. })
             | Item::Macro2(ItemMacro2 { attrs, .. }) => mem::replace(attrs, new),
             Item::Verbatim(_) => Vec::new(),
-            Item::__TestExhaustive(_) => unreachable!(),
+
+            #[cfg(test)]
+            Item::__TestExhaustive(_) => unimplemented!(),
+            #[cfg(not(test))]
+            _ => unreachable!(),
         }
     }
 }
@@ -1164,7 +1168,6 @@ pub mod parsing {
         semi_token: Token![;],
     }
 
-    #[cfg_attr(doc_cfg, doc(cfg(feature = "parsing")))]
     impl Parse for FlexibleItemType {
         fn parse(input: ParseStream) -> Result<Self> {
             let vis: Visibility = input.parse()?;
@@ -1176,14 +1179,14 @@ pub mod parsing {
             let mut bounds = Punctuated::new();
             if colon_token.is_some() {
                 loop {
-                    bounds.push_value(input.parse::<TypeParamBound>()?);
                     if input.peek(Token![where]) || input.peek(Token![=]) || input.peek(Token![;]) {
                         break;
                     }
-                    bounds.push_punct(input.parse::<Token![+]>()?);
+                    bounds.push_value(input.parse::<TypeParamBound>()?);
                     if input.peek(Token![where]) || input.peek(Token![=]) || input.peek(Token![;]) {
                         break;
                     }
+                    bounds.push_punct(input.parse::<Token![+]>()?);
                 }
             }
             generics.where_clause = input.parse()?;
@@ -1497,11 +1500,11 @@ pub mod parsing {
                 abi,
                 fn_token,
                 ident,
+                generics,
                 paren_token,
                 inputs,
-                output,
                 variadic,
-                generics,
+                output,
             })
         }
     }
@@ -1787,7 +1790,11 @@ pub mod parsing {
                 ForeignItem::Type(item) => &mut item.attrs,
                 ForeignItem::Macro(item) => &mut item.attrs,
                 ForeignItem::Verbatim(_) => return Ok(item),
-                ForeignItem::__TestExhaustive(_) => unreachable!(),
+
+                #[cfg(test)]
+                ForeignItem::__TestExhaustive(_) => unimplemented!(),
+                #[cfg(not(test))]
+                _ => unreachable!(),
             };
             attrs.extend(item_attrs.drain(..));
             *item_attrs = attrs;
@@ -2265,7 +2272,12 @@ pub mod parsing {
                 TraitItem::Method(item) => &mut item.attrs,
                 TraitItem::Type(item) => &mut item.attrs,
                 TraitItem::Macro(item) => &mut item.attrs,
-                TraitItem::Verbatim(_) | TraitItem::__TestExhaustive(_) => unreachable!(),
+                TraitItem::Verbatim(_) => unreachable!(),
+
+                #[cfg(test)]
+                TraitItem::__TestExhaustive(_) => unimplemented!(),
+                #[cfg(not(test))]
+                _ => unreachable!(),
             };
             attrs.extend(item_attrs.drain(..));
             *item_attrs = attrs;
@@ -2596,7 +2608,11 @@ pub mod parsing {
                     ImplItem::Type(item) => &mut item.attrs,
                     ImplItem::Macro(item) => &mut item.attrs,
                     ImplItem::Verbatim(_) => return Ok(item),
-                    ImplItem::__TestExhaustive(_) => unreachable!(),
+
+                    #[cfg(test)]
+                    ImplItem::__TestExhaustive(_) => unimplemented!(),
+                    #[cfg(not(test))]
+                    _ => unreachable!(),
                 };
                 attrs.extend(item_attrs.drain(..));
                 *item_attrs = attrs;