Use Error and Result from root in tests
diff --git a/src/attr.rs b/src/attr.rs
index cad96f7..8a89289 100644
--- a/src/attr.rs
+++ b/src/attr.rs
@@ -81,8 +81,8 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::{Attribute, Ident};
-    /// use syn::parse::{Parse, ParseStream, Result};
+    /// use syn::{Attribute, Ident, Result};
+    /// use syn::parse::{Parse, ParseStream};
     ///
     /// // Parses a unit struct with attributes.
     /// //
diff --git a/src/error.rs b/src/error.rs
index 53069da..ca56c26 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -61,8 +61,8 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::{Ident, LitStr};
-    /// use syn::parse::{Error, ParseStream, Result};
+    /// use syn::{Error, Ident, LitStr, Result};
+    /// use syn::parse::ParseStream;
     ///
     /// // Parses input that looks like `name = "string"` where the key must be
     /// // the identifier `name` and the value may be any string literal.
diff --git a/src/expr.rs b/src/expr.rs
index 0251aa2..85f02e4 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -2303,8 +2303,8 @@
         /// #[macro_use]
         /// extern crate syn;
         ///
-        /// use syn::{token, Attribute, Block, Ident, Stmt};
-        /// use syn::parse::{Parse, ParseStream, Result};
+        /// use syn::{token, Attribute, Block, Ident, Result, Stmt};
+        /// use syn::parse::{Parse, ParseStream};
         ///
         /// // Parse a function with no generics or parameter list.
         /// //
diff --git a/src/ext.rs b/src/ext.rs
index ae6c2ae..16d0dbf 100644
--- a/src/ext.rs
+++ b/src/ext.rs
@@ -21,9 +21,9 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::Ident;
+    /// use syn::{Error, Ident, Result};
     /// use syn::ext::IdentExt;
-    /// use syn::parse::{Error, ParseStream, Result};
+    /// use syn::parse::ParseStream;
     ///
     /// // Parses input that looks like `name = NAME` where `NAME` can be
     /// // any identifier.
diff --git a/src/group.rs b/src/group.rs
index 84a19fd..026ece4 100644
--- a/src/group.rs
+++ b/src/group.rs
@@ -101,8 +101,8 @@
 /// #[macro_use]
 /// extern crate syn;
 ///
-/// use syn::{token, Ident, Type};
-/// use syn::parse::{Parse, ParseStream, Result};
+/// use syn::{token, Ident, Result, Type};
+/// use syn::parse::{Parse, ParseStream};
 /// use syn::punctuated::Punctuated;
 ///
 /// // Parse a simplified tuple struct syntax like:
@@ -161,8 +161,8 @@
 /// #
 /// #[macro_use]
 /// extern crate syn;
-/// use syn::{token, Ident, Type};
-/// use syn::parse::{Parse, ParseStream, Result};
+/// use syn::{token, Ident, Result, Type};
+/// use syn::parse::{Parse, ParseStream};
 /// use syn::punctuated::Punctuated;
 ///
 /// // Parse a simplified struct syntax like:
@@ -246,8 +246,8 @@
 /// extern crate proc_macro2;
 ///
 /// use proc_macro2::TokenStream;
-/// use syn::token;
-/// use syn::parse::{Parse, ParseStream, Result};
+/// use syn::{token, Result};
+/// use syn::parse::{Parse, ParseStream};
 ///
 /// // Parse an outer attribute like:
 /// //
diff --git a/src/keyword.rs b/src/keyword.rs
index bf7dffb..9bfb260 100644
--- a/src/keyword.rs
+++ b/src/keyword.rs
@@ -52,8 +52,8 @@
 /// #[macro_use]
 /// extern crate syn;
 ///
-/// use syn::{LitBool, LitStr};
-/// use syn::parse::{Parse, ParseStream, Result};
+/// use syn::{LitBool, LitStr, Result};
+/// use syn::parse::{Parse, ParseStream};
 ///
 /// mod kw {
 ///     custom_keyword!(bool);
diff --git a/src/lib.rs b/src/lib.rs
index 7c786f0..78408bc 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -664,8 +664,7 @@
 /// ```rust
 /// # extern crate syn;
 /// #
-/// use syn::Expr;
-/// use syn::parse::Result;
+/// use syn::{Expr, Result};
 ///
 /// fn run() -> Result<()> {
 ///     let code = "assert_eq!(u8::max_value(), 255)";
diff --git a/src/lit.rs b/src/lit.rs
index c1af9f2..d4670c0 100644
--- a/src/lit.rs
+++ b/src/lit.rs
@@ -134,8 +134,7 @@
     /// # extern crate syn;
     /// #
     /// use proc_macro2::Span;
-    /// use syn::{Attribute, Ident, Lit, Meta, MetaNameValue, Path};
-    /// use syn::parse::{Error, Result};
+    /// use syn::{Attribute, Error, Ident, Lit, Meta, MetaNameValue, Path, Result};
     ///
     /// // Parses the path from an attribute that looks like:
     /// //
diff --git a/src/lookahead.rs b/src/lookahead.rs
index 7320d02..c8fdbc8 100644
--- a/src/lookahead.rs
+++ b/src/lookahead.rs
@@ -25,8 +25,8 @@
 /// #[macro_use]
 /// extern crate syn;
 ///
-/// use syn::{ConstParam, Ident, Lifetime, LifetimeDef, TypeParam};
-/// use syn::parse::{Parse, ParseStream, Result};
+/// use syn::{ConstParam, Ident, Lifetime, LifetimeDef, Result, TypeParam};
+/// use syn::parse::{Parse, ParseStream};
 ///
 /// // A generic parameter, a single one of the comma-separated elements inside
 /// // angle brackets in:
diff --git a/src/parse.rs b/src/parse.rs
index 7683968..1ce65fb 100644
--- a/src/parse.rs
+++ b/src/parse.rs
@@ -40,8 +40,8 @@
 //! extern crate proc_macro;
 //!
 //! use proc_macro::TokenStream;
-//! use syn::{token, Field, Ident};
-//! use syn::parse::{Parse, ParseStream, Result};
+//! use syn::{token, Field, Ident, Result};
+//! use syn::parse::{Parse, ParseStream};
 //! use syn::punctuated::Punctuated;
 //!
 //! enum Item {
@@ -117,7 +117,7 @@
 //! ```
 //! use syn::Type;
 //!
-//! # fn run_parser() -> Result<(), syn::parse::Error> {
+//! # fn run_parser() -> syn::Result<()> {
 //! let t: Type = syn::parse_str("std::collections::HashMap<String, Value>")?;
 //! #     Ok(())
 //! # }
@@ -149,9 +149,8 @@
 //! # extern crate proc_macro;
 //! # extern crate syn;
 //! #
-//! # use syn::parse::Result;
 //! # use syn::punctuated::Punctuated;
-//! # use syn::{PathSegment, Token};
+//! # use syn::{PathSegment, Result, Token};
 //! #
 //! # fn f(tokens: proc_macro::TokenStream) -> Result<()> {
 //! #
@@ -180,7 +179,7 @@
 //! use syn::punctuated::Punctuated;
 //! use syn::{Attribute, Expr, PathSegment};
 //!
-//! # fn run_parsers() -> Result<(), syn::parse::Error> {
+//! # fn run_parsers() -> syn::Result<()> {
 //! #     let tokens = TokenStream::new().into();
 //! // Parse a nonempty sequence of path segments separated by `::` punctuation
 //! // with no trailing punctuation.
@@ -305,7 +304,8 @@
 /// # extern crate syn;
 /// #
 /// use proc_macro2::TokenTree;
-/// use syn::parse::{ParseStream, Result};
+/// use syn::Result;
+/// use syn::parse::ParseStream;
 ///
 /// // This function advances the stream past the next occurrence of `@`. If
 /// // no `@` is present in the stream, the stream position is unchanged and
@@ -441,8 +441,8 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::{Attribute, Ident};
-    /// use syn::parse::{Parse, ParseStream, Result};
+    /// use syn::{Attribute, Ident, Result};
+    /// use syn::parse::{Parse, ParseStream};
     ///
     /// // Parses a unit struct with attributes.
     /// //
@@ -497,8 +497,8 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::{token, Generics, Ident, TypeParamBound};
-    /// use syn::parse::{Parse, ParseStream, Result};
+    /// use syn::{token, Generics, Ident, Result, TypeParamBound};
+    /// use syn::parse::{Parse, ParseStream};
     /// use syn::punctuated::Punctuated;
     ///
     /// // Parses a trait definition containing no associated items.
@@ -569,8 +569,8 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::{Ident, ItemUnion, Macro};
-    /// use syn::parse::{Parse, ParseStream, Result};
+    /// use syn::{Ident, ItemUnion, Macro, Result};
+    /// use syn::parse::{Parse, ParseStream};
     ///
     /// // Parses either a union or a macro invocation.
     /// enum UnionOrMacro {
@@ -618,8 +618,8 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::{token, Ident, Type};
-    /// use syn::parse::{Parse, ParseStream, Result};
+    /// use syn::{token, Ident, Result, Type};
+    /// use syn::parse::{Parse, ParseStream};
     /// use syn::punctuated::Punctuated;
     ///
     /// // Parse a simplified tuple struct syntax like:
@@ -671,8 +671,8 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::{token, Ident, Item};
-    /// use syn::parse::{Parse, ParseStream, Result};
+    /// use syn::{token, Ident, Item, Result};
+    /// use syn::parse::{Parse, ParseStream};
     ///
     /// // Parses a Rust `mod m { ... }` containing zero or more items.
     /// struct Mod {
@@ -715,8 +715,8 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::{ConstParam, Ident, Lifetime, LifetimeDef, TypeParam};
-    /// use syn::parse::{Parse, ParseStream, Result};
+    /// use syn::{ConstParam, Ident, Lifetime, LifetimeDef, Result, TypeParam};
+    /// use syn::parse::{Parse, ParseStream};
     ///
     /// // A generic parameter, a single one of the comma-separated elements inside
     /// // angle brackets in:
@@ -767,8 +767,8 @@
     /// once.
     ///
     /// ```
-    /// # use syn::Expr;
-    /// # use syn::parse::{ParseStream, Result};
+    /// # use syn::{Expr, Result};
+    /// # use syn::parse::ParseStream;
     /// #
     /// # fn bad(input: ParseStream) -> Result<Expr> {
     /// // Do not do this.
@@ -824,9 +824,9 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::{token, Ident, Path};
+    /// use syn::{token, Ident, Path, Result};
     /// use syn::ext::IdentExt;
-    /// use syn::parse::{Parse, ParseStream, Result};
+    /// use syn::parse::{Parse, ParseStream};
     ///
     /// struct PubVisibility {
     ///     pub_token: Token![pub],
@@ -900,8 +900,8 @@
     /// #[macro_use]
     /// extern crate syn;
     ///
-    /// use syn::Expr;
-    /// use syn::parse::{Parse, ParseStream, Result};
+    /// use syn::{Expr, Result};
+    /// use syn::parse::{Parse, ParseStream};
     ///
     /// // Some kind of loop: `while` or `for` or `loop`.
     /// struct Loop {
@@ -943,7 +943,8 @@
     /// # extern crate syn;
     /// #
     /// use proc_macro2::TokenTree;
-    /// use syn::parse::{ParseStream, Result};
+    /// use syn::Result;
+    /// use syn::parse::ParseStream;
     ///
     /// // This function advances the stream past the next occurrence of `@`. If
     /// // no `@` is present in the stream, the stream position is unchanged and
diff --git a/src/parse_macro_input.rs b/src/parse_macro_input.rs
index 7c4d807..6b3785b 100644
--- a/src/parse_macro_input.rs
+++ b/src/parse_macro_input.rs
@@ -15,7 +15,8 @@
 /// extern crate proc_macro;
 ///
 /// use proc_macro::TokenStream;
-/// use syn::parse::{Parse, ParseStream, Result};
+/// use syn::Result;
+/// use syn::parse::{Parse, ParseStream};
 ///
 /// struct MyMacroInput {
 ///     /* ... */
diff --git a/src/path.rs b/src/path.rs
index 7c1f78d..beb5fdd 100644
--- a/src/path.rs
+++ b/src/path.rs
@@ -370,8 +370,8 @@
         /// #[macro_use]
         /// extern crate syn;
         ///
-        /// use syn::Path;
-        /// use syn::parse::{Parse, ParseStream, Result};
+        /// use syn::{Path, Result};
+        /// use syn::parse::{Parse, ParseStream};
         ///
         /// // A simplified single `use` statement like:
         /// //
diff --git a/src/token.rs b/src/token.rs
index 1d2deaa..1453ae9 100644
--- a/src/token.rs
+++ b/src/token.rs
@@ -56,8 +56,8 @@
 //! ```
 //! # extern crate syn;
 //! #
-//! use syn::Attribute;
-//! use syn::parse::{Parse, ParseStream, Result};
+//! use syn::{Attribute, Result};
+//! use syn::parse::{Parse, ParseStream};
 //! #
 //! # enum ItemStatic {}
 //!
diff --git a/tests/test_ident.rs b/tests/test_ident.rs
index 6134c54..58c2053 100644
--- a/tests/test_ident.rs
+++ b/tests/test_ident.rs
@@ -13,9 +13,9 @@
 
 use proc_macro2::{Ident, Span, TokenStream};
 use std::str::FromStr;
-use syn::parse::Error;
+use syn::Result;
 
-fn parse(s: &str) -> Result<Ident, Error> {
+fn parse(s: &str) -> Result<Ident> {
     syn::parse2(TokenStream::from_str(s).unwrap())
 }