Use compile_fail rather than ignoring test
diff --git a/src/parse.rs b/src/parse.rs
index 28de2b9..7683968 100644
--- a/src/parse.rs
+++ b/src/parse.rs
@@ -145,10 +145,22 @@
 //! The `Parse` trait is not implemented in these cases because there is no good
 //! behavior to consider the default.
 //!
-//! ```ignore
+//! ```compile_fail
+//! # extern crate proc_macro;
+//! # extern crate syn;
+//! #
+//! # use syn::parse::Result;
+//! # use syn::punctuated::Punctuated;
+//! # use syn::{PathSegment, Token};
+//! #
+//! # fn f(tokens: proc_macro::TokenStream) -> Result<()> {
+//! #
 //! // Can't parse `Punctuated` without knowing whether trailing punctuation
 //! // should be allowed in this context.
 //! let path: Punctuated<PathSegment, Token![::]> = syn::parse(tokens)?;
+//! #
+//! #     Ok(())
+//! # }
 //! ```
 //!
 //! In these cases the types provide a choice of parser functions rather than a