Set all documentation examples to 2018 edition
diff --git a/src/parse.rs b/src/parse.rs
index 03513c8..1b7e947 100644
--- a/src/parse.rs
+++ b/src/parse.rs
@@ -25,7 +25,7 @@
//!
//! [`parse_macro_input!`]: ../macro.parse_macro_input.html
//!
-//! ```
+//! ```edition2018
//! extern crate proc_macro;
//!
//! use proc_macro::TokenStream;
@@ -101,7 +101,7 @@
//! [`syn::parse_str`]: ../fn.parse_str.html
//! [`Parse`]: trait.Parse.html
//!
-//! ```
+//! ```edition2018
//! use syn::Type;
//!
//! # fn run_parser() -> syn::Result<()> {
@@ -132,7 +132,7 @@
//! The `Parse` trait is not implemented in these cases because there is no good
//! behavior to consider the default.
//!
-//! ```compile_fail
+//! ```edition2018,compile_fail
//! # extern crate proc_macro;
//! #
//! # use syn::punctuated::Punctuated;
@@ -154,7 +154,7 @@
//!
//! [`Parser`]: trait.Parser.html
//!
-//! ```
+//! ```edition2018
//! extern crate proc_macro;
//!
//! use proc_macro::TokenStream;
@@ -293,7 +293,7 @@
///
/// # Example
///
-/// ```
+/// ```edition2018
/// # extern crate proc_macro2;
/// #
/// use proc_macro2::TokenTree;
@@ -429,7 +429,7 @@
///
/// [`Attribute::parse_outer`]: ../struct.Attribute.html#method.parse_outer
///
- /// ```
+ /// ```edition2018
/// use syn::{Attribute, Ident, Result, Token};
/// use syn::parse::{Parse, ParseStream};
///
@@ -480,7 +480,7 @@
/// In this example we finish parsing the list of supertraits when the next
/// token in the input is either `where` or an opening curly brace.
///
- /// ```
+ /// ```edition2018
/// use syn::{braced, token, Generics, Ident, Result, Token, TypeParamBound};
/// use syn::parse::{Parse, ParseStream};
/// use syn::punctuated::Punctuated;
@@ -547,7 +547,7 @@
/// union` and a macro invocation that looks like `union::some_macro! { ...
/// }`. In other words `union` is a contextual keyword.
///
- /// ```
+ /// ```edition2018
/// use syn::{Ident, ItemUnion, Macro, Result, Token};
/// use syn::parse::{Parse, ParseStream};
///
@@ -588,7 +588,7 @@
///
/// # Example
///
- /// ```rust
+ /// ```edition2018
/// # extern crate quote;
/// # use quote::quote;
/// #
@@ -641,7 +641,7 @@
///
/// # Example
///
- /// ```rust
+ /// ```edition2018
/// use syn::{braced, token, Ident, Item, Result, Token};
/// use syn::parse::{Parse, ParseStream};
///
@@ -680,7 +680,7 @@
///
/// # Example
///
- /// ```
+ /// ```edition2018
/// use syn::{ConstParam, Ident, Lifetime, LifetimeDef, Result, Token, TypeParam};
/// use syn::parse::{Parse, ParseStream};
///
@@ -730,7 +730,7 @@
/// is if your macro ends up parsing a large amount of content more than
/// once.
///
- /// ```
+ /// ```edition2018
/// # use syn::{Expr, Result};
/// # use syn::parse::ParseStream;
/// #
@@ -767,7 +767,7 @@
/// needs to distinguish parentheses that specify visibility restrictions
/// from parentheses that form part of a tuple type.
///
- /// ```
+ /// ```edition2018
/// # struct A;
/// # struct B;
/// # struct C;
@@ -784,7 +784,7 @@
/// parentheses after the `pub` keyword. This is a small bounded amount of
/// work performed against the forked parse stream.
///
- /// ```
+ /// ```edition2018
/// use syn::{parenthesized, token, Ident, Path, Result, Token};
/// use syn::ext::IdentExt;
/// use syn::parse::{Parse, ParseStream};
@@ -855,7 +855,7 @@
///
/// # Example
///
- /// ```
+ /// ```edition2018
/// use syn::{Expr, Result, Token};
/// use syn::parse::{Parse, ParseStream};
///
@@ -892,7 +892,7 @@
///
/// # Example
///
- /// ```
+ /// ```edition2018
/// # extern crate proc_macro2;
/// #
/// use proc_macro2::TokenTree;