Make proc-macro dependencies available

Change-Id: Icc8997041f7a7939eab59069a33103551b0e9c6d
diff --git a/rustc_deps/BUILD.gn b/rustc_deps/BUILD.gn
index 7d3d976..1189971 100644
--- a/rustc_deps/BUILD.gn
+++ b/rustc_deps/BUILD.gn
@@ -39,7 +39,9 @@
 
 third_party_crate_names = exec_script(
   "//build/rust/list_3p_crates.py",
-  ["--cargo-toml", rebase_path(third_party_toml)],
+  [
+    "--cargo-toml", rebase_path(third_party_toml),
+  ],
   "list lines",
   [third_party_toml]
 )
diff --git a/rustc_deps/Cargo.lock b/rustc_deps/Cargo.lock
index fb33f45..0c0d14c 100644
--- a/rustc_deps/Cargo.lock
+++ b/rustc_deps/Cargo.lock
@@ -429,7 +429,7 @@
 dependencies = [
  "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
  "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
  "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -485,7 +485,7 @@
 dependencies = [
  "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
  "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -526,7 +526,9 @@
  "pest_derive 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pin-utils 0.1.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
  "proptest 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "rouille 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -539,6 +541,7 @@
  "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "structopt 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
  "tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
  "timebomb 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1414,7 +1417,7 @@
 dependencies = [
  "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
  "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -1511,7 +1514,7 @@
 dependencies = [
  "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
  "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -1526,7 +1529,7 @@
 
 [[package]]
 name = "syn"
-version = "0.15.21"
+version = "0.15.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1541,7 +1544,7 @@
 dependencies = [
  "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
  "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
  "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -2119,7 +2122,7 @@
 "checksum structopt 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "d77af7242f18c40fd19cb270985930f239ee1646cfb482050bbae9da1d18743b"
 "checksum structopt-derive 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "17ff01fe96de9d16e7372ae5f19dd7ece2c703b51043c3db9ea27f9e393ea311"
 "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741"
-"checksum syn 0.15.21 (registry+https://github.com/rust-lang/crates.io-index)" = "816b7af21405b011a23554ea2dc3f6576dc86ca557047c34098c1d741f10f823"
+"checksum syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc"
 "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
 "checksum syntect 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dc8a6f0db88d4afc340522c20d260411e746b2225b257c6b238a75de9d7cec78"
 "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
diff --git a/rustc_deps/Cargo.toml b/rustc_deps/Cargo.toml
index fddd934..002442f 100644
--- a/rustc_deps/Cargo.toml
+++ b/rustc_deps/Cargo.toml
@@ -71,6 +71,17 @@
 xi-rpc = "0.2.0"
 xml-rs = "0.8"
 
+# Target-side only dependencies
+[target.'cfg(target_os = "fuchsia")'.dependencies]
+# -- FIXME(cramertj) separate out the dependencies above that will only be
+# needed target-side.
+
+# Host-side only dependencies
+[target.'cfg(not(target_os = "fuchsia"))'.dependencies]
+proc-macro2 = "0.4.24"
+quote = "0.6.10"
+syn = { version = "0.15.22", features = ["full"] }
+
 [patch.crates-io]
 backtrace-sys = { path = "tiny_mirrors/backtrace-sys" }
 fuchsia-async-macro = { path = "../../../garnet/public/rust/fuchsia-async-macro" }
diff --git a/rustc_deps/vendor/syn/.cargo-checksum.json b/rustc_deps/vendor/syn/.cargo-checksum.json
index 568cfc0..b285166 100644
--- a/rustc_deps/vendor/syn/.cargo-checksum.json
+++ b/rustc_deps/vendor/syn/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"851c907e8a6b270740101132e0ee5430977fe7ec59949309550fa8ba6d600540","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"f033c371492a4769d377a8bf1a139adc7bf94ea00595b867a3e234eeab994c8c","README.md":"1665556fa46bacbb28dd68e9deca7bd22ad28351ee2fd9f3691194e7c3d813fa","src/attr.rs":"4e36cd57805d17cb523b8805156b0493b47f58cc36c40430438615259f82fd64","src/buffer.rs":"a82b47bb12ec0de4159a7677712db5f4f54c145eb61aa88a1696d32cf143d50e","src/data.rs":"c34df5d623fed7a52be01fc625a4502f6ad97dc8feb25c51f7d57029dbdd91dd","src/derive.rs":"7a2246e8ee03fcbea040363d0b943daac696667ba799218231307c1b7a96aeed","src/error.rs":"332f8f6968afdc116f23c474d7bb3e24202ecdad63f1664633f88a7172325623","src/export.rs":"1f7e017dac9426e91c796445e733c390c408c808ba9c21cb7df7799b67352fde","src/expr.rs":"8db94be02a917cb475b76cb2172e3917b0c6735a96432219f72fc0e6c1eae485","src/ext.rs":"4902ffc7dc25a1bb5813d5292a3df7cbf72ebad79def578c7cd231cf67e1785c","src/file.rs":"ebd350b5ff548cdbb21a0fadd5572575a216a1b0caef36dd46477ca324c7af6f","src/gen/fold.rs":"bfca5243b4694cc6a9b0d1f34ca53fa90387325fd4ee6bce024adb3ca42f4472","src/gen/visit.rs":"4d13b239db7c38a38f8ce5dfe827317ec4d35df83dd65ad5a350a3c882632bfd","src/gen/visit_mut.rs":"f5c8aea5907084c2425cdb613a07def41735c764022f7549876c9fa4c7170d5a","src/gen_helper.rs":"d128fbd24fadfc5634976bdb9188c649f9905718c9c987a2839c3e6134b155a2","src/generics.rs":"929eaacd293b86389d4b05e03bc1a1cd093ae3925c8d316da4a0c57c8e4f6252","src/group.rs":"7faa0b3701b6e597a5766e316733cd4d88ecc2a24b54b233f33e28c23a7cbad8","src/ident.rs":"61534c48949ebfa03e948874ef64174e1c8111c3b953edd58f79748fe9e00507","src/item.rs":"3470593477d41eebeb4ff0f674d2dade7dfb91ff3ebc57e8a62342a88e989176","src/keyword.rs":"0a8fd45d065c56532065f97fb097136b6f1a8efc393a0946e6a95217877616a9","src/lib.rs":"6b0f7c7d88c56c2d532ffbb06c14ad2679186d6da0c82977bfaea1c0a320a140","src/lifetime.rs":"3174a81cea3eef0ec1555900b96b1641d6d3ed3609bc17d72b02a1495377ac35","src/lit.rs":"5d6bd505bc28e43930785bf104bd458aa1deb2208092a74df4d47bbe65a2801e","src/lookahead.rs":"04b13c2c34a49344fdf29f712eacac4364ff859a091640f5bf803907320e4fa5","src/mac.rs":"8a7efbdc9498612844c88660312117c401685bf300da7e91bef7effde3026019","src/macros.rs":"518e7943bc5565b9beea75df6a3602c698ee9cb096baf79a36b34f753b97615f","src/op.rs":"83bbe2199946abbf1d4a0bc6eb0d97285439f77e8e02646b8e3b707485e4301e","src/parse.rs":"e9971284377cf1fab338d26a9d2796d6f97c232513b0ce0e3d77318f712d6d6d","src/parse_macro_input.rs":"6c67382816fba92bc6931ebf360fe251460db35c414cc4f8b89d8591978273fd","src/parse_quote.rs":"afbaa9c2af3d20990847add9436111db0e62550261ec1004d970825a31c569ac","src/path.rs":"749d88c668b59b95671ababcb89fa8771b720cde71410e0673b92a87b23ab79e","src/print.rs":"7ebb68123898f2ebbae12abf028747c05bea7b08f1e96b17164f1dcebdab7355","src/punctuated.rs":"01539dcb51c75e0fe0a4cdfb7716a909ce1bfd0767370c04043159a0a0dec154","src/span.rs":"748c51c6feb223c26d3b1701f5bb98aee823666c775c98106cfa24fe29d8cec1","src/spanned.rs":"c5350463b3ab69cd49ef7afa2688ba3f5e24fc02ef26bf9587afaf3dc60415dd","src/synom.rs":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","src/thread.rs":"798dd0a6cca7807f1d55c1f79cec967314a75c4e8e2cfdb5644499c22618b307","src/token.rs":"4280a695bfe5da590bba79b2d2a81d9094d739df6dd7e8f80b908878b9a93484","src/tt.rs":"1272339be3d2ba64c025cba8d08cff7bb7b61770fc6e5da641db4d56c162e066","src/ty.rs":"baf7464aa3b5b0be061c808605352346086a6507a6e84ee9970a5bcb0d02114e"},"package":"816b7af21405b011a23554ea2dc3f6576dc86ca557047c34098c1d741f10f823"}
\ No newline at end of file
+{"files":{"Cargo.toml":"893edae8243ac9840df99b2931b772c942c0d3448688b3363408e5c24d858368","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"2aea43e1219e72c10347981dc5fb4969b1ec711fb6fb97771d80e0644dc3d334","src/attr.rs":"38e23326a184b1c27564b8797d0d17caafb5b662c9e59d8f11c17666742c3deb","src/buffer.rs":"f233cfe4df3d4298c374258fe4f31bb7dc647f4aca896cbb85984c0b34a6bc64","src/data.rs":"54ee54c3c650bc5e200d4bea947d6e89093a39f2444cd43e8861f5852975e0bc","src/derive.rs":"eb041b47a73bace73c2872cd9a8e190de7e2b3b57cd57213770f088ec19ab3c6","src/error.rs":"36fd3601e024256c5d306f68a1418953be341525ff3355c4951c6a11ce3073af","src/export.rs":"1f7e017dac9426e91c796445e733c390c408c808ba9c21cb7df7799b67352fde","src/expr.rs":"9f007525717955c20260bc803711c5f63ddedf1156279e042baf910bb3a17eba","src/ext.rs":"d86df834f299e16a8e6afbfe62588ecfd18144ad010ba6b579c44e0dc3fb6415","src/file.rs":"a31fee6f3ee5af0fb197ff428aaf91c75aef654e90e8b055417295ad84d1057f","src/gen/fold.rs":"7f7ab907e3c17b503a72707e2f8d9fc29d9139269d810ea9b6511af9de7d3080","src/gen/visit.rs":"0a4543ac9f82d8ab7ccf02c55e8325ff9b859e36ea08d3e187a4836f470eef1c","src/gen/visit_mut.rs":"66441522f544056cd464740e8ba614688a5f417857c649550eeba2b589ef6096","src/gen_helper.rs":"644b1d31987919c0239891d8f90c09f3bf541a71fb85e744438e4814cc6dff89","src/generics.rs":"413b76eddbf76690d1905b383be8369aa8d3137330658d3dd6ab04063a67cb12","src/group.rs":"e1b4336e9cd8f01c139bdb9cd4b3445f37c84f4e2cc64c6503e520eaea8dc937","src/ident.rs":"61534c48949ebfa03e948874ef64174e1c8111c3b953edd58f79748fe9e00507","src/item.rs":"6799adb332bedaa68c3801055e71a5665cc7b9c4ba53960f6b91487408e7e10c","src/keyword.rs":"7fbb01d0aa94a41a5bb1f23e61af1ba0de828d62df4f9356fc012dc7ecced077","src/lib.rs":"544aef42a66b4f26df530cf220562706a3ce5acc6a61d88282aa0bfb5952f2bf","src/lifetime.rs":"9016d4a395abac9f5343e348ddd7f0f4c2c43c9b1be5fd1af85da55f10c75887","src/lit.rs":"5705560b9d59c96147e520f97734a4c368fda5950f6059ee567eda26fa0e6537","src/lookahead.rs":"386fea0113a3fbfcad77183e9c3329a784b81832a3781a482c647fc1e84df059","src/mac.rs":"a91623ed9c1de7b18ef752db79a242002e95156497a52a1790a75069915d22ee","src/macros.rs":"2f91e07a1aec4b385986c0a0f66274e8de1c1aa81f95d398a5cd364b3c451bb4","src/op.rs":"01edb1e07b6d60b266797ca4b30788b0a511452228e04073a11f0b61f106a0e7","src/parse.rs":"4e88a0c943a18edafcd7553e70e696f6dd83db23f7415c47fc938157c9fed8ec","src/parse_macro_input.rs":"b47282bc85d7da7941f6abecbe09f7bf0bb908b66dde793b00b5df7e97c2c7ed","src/parse_quote.rs":"afbaa9c2af3d20990847add9436111db0e62550261ec1004d970825a31c569ac","src/path.rs":"f05b9e2fbb2f1dbe98c5cca7e2a395bbfda8eaded30d9a8f113e445939adcaab","src/print.rs":"7ebb68123898f2ebbae12abf028747c05bea7b08f1e96b17164f1dcebdab7355","src/punctuated.rs":"5ad6885e602cb1c79b49f11e1c739bdb7c33ecfa1ca9c709d711b0778ae48085","src/span.rs":"748c51c6feb223c26d3b1701f5bb98aee823666c775c98106cfa24fe29d8cec1","src/spanned.rs":"9bc7ee3d5a1f11ea810e474a390ace5c861920c0fa5fbeddc1874af377bc8830","src/synom.rs":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","src/thread.rs":"798dd0a6cca7807f1d55c1f79cec967314a75c4e8e2cfdb5644499c22618b307","src/token.rs":"0a5039e3e8a866a45316013ef1eaa6c94f3addf9e7e3489d48cd589b544e7890","src/tt.rs":"b3d99cbd68cd50749f26f4afa138e6366d327099ed566b30c315ccb58fa26ded","src/ty.rs":"4ac9d1b84f9bf269516348e1b923b1c8e3f7562b98ec7ef66174c31fffb8dce5"},"package":"9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc"}
\ No newline at end of file
diff --git a/rustc_deps/vendor/syn/Cargo.toml b/rustc_deps/vendor/syn/Cargo.toml
index b89c6be..93e5ff4 100644
--- a/rustc_deps/vendor/syn/Cargo.toml
+++ b/rustc_deps/vendor/syn/Cargo.toml
@@ -12,7 +12,7 @@
 
 [package]
 name = "syn"
-version = "0.15.21"
+version = "0.15.23"
 authors = ["David Tolnay <dtolnay@gmail.com>"]
 include = ["/Cargo.toml", "/src/**/*.rs", "/README.md", "/LICENSE-APACHE", "/LICENSE-MIT"]
 description = "Parser for Rust source code"
diff --git a/rustc_deps/vendor/syn/LICENSE-MIT b/rustc_deps/vendor/syn/LICENSE-MIT
index 5767dea..31aa793 100644
--- a/rustc_deps/vendor/syn/LICENSE-MIT
+++ b/rustc_deps/vendor/syn/LICENSE-MIT
@@ -1,5 +1,3 @@
-Copyright (c) 2018 Syn Developers
-
 Permission is hereby granted, free of charge, to any
 person obtaining a copy of this software and associated
 documentation files (the "Software"), to deal in the
diff --git a/rustc_deps/vendor/syn/README.md b/rustc_deps/vendor/syn/README.md
index 3e48286..bd28f61 100644
--- a/rustc_deps/vendor/syn/README.md
+++ b/rustc_deps/vendor/syn/README.md
@@ -241,6 +241,8 @@
 The proc-macro2 crate will automatically detect and use the compiler's data
 structures on sufficiently new compilers.
 
+[proc-macro2]: https://github.com/alexcrichton/proc-macro2
+
 ## License
 
 Licensed under either of
diff --git a/rustc_deps/vendor/syn/src/attr.rs b/rustc_deps/vendor/syn/src/attr.rs
index 04bde46..8494265 100644
--- a/rustc_deps/vendor/syn/src/attr.rs
+++ b/rustc_deps/vendor/syn/src/attr.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use super::*;
 use punctuated::Punctuated;
 
@@ -81,8 +73,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.
     /// //
@@ -533,6 +525,7 @@
     type Ret = iter::Filter<T::IntoIter, fn(&&Attribute) -> bool>;
 
     fn outer(self) -> Self::Ret {
+        #[cfg_attr(feature = "cargo-clippy", allow(trivially_copy_pass_by_ref))]
         fn is_outer(attr: &&Attribute) -> bool {
             match attr.style {
                 AttrStyle::Outer => true,
@@ -543,6 +536,7 @@
     }
 
     fn inner(self) -> Self::Ret {
+        #[cfg_attr(feature = "cargo-clippy", allow(trivially_copy_pass_by_ref))]
         fn is_inner(attr: &&Attribute) -> bool {
             match attr.style {
                 AttrStyle::Inner(_) => true,
diff --git a/rustc_deps/vendor/syn/src/buffer.rs b/rustc_deps/vendor/syn/src/buffer.rs
index e8e8c1a..258f7b4 100644
--- a/rustc_deps/vendor/syn/src/buffer.rs
+++ b/rustc_deps/vendor/syn/src/buffer.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 //! A stably addressed token buffer supporting efficient traversal based on a
 //! cheaply copyable cursor.
 //!
diff --git a/rustc_deps/vendor/syn/src/data.rs b/rustc_deps/vendor/syn/src/data.rs
index 4f0986a..f54f5b9 100644
--- a/rustc_deps/vendor/syn/src/data.rs
+++ b/rustc_deps/vendor/syn/src/data.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use super::*;
 use punctuated::Punctuated;
 
diff --git a/rustc_deps/vendor/syn/src/derive.rs b/rustc_deps/vendor/syn/src/derive.rs
index 5c1bb17..48ae7e4 100644
--- a/rustc_deps/vendor/syn/src/derive.rs
+++ b/rustc_deps/vendor/syn/src/derive.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use super::*;
 use punctuated::Punctuated;
 
diff --git a/rustc_deps/vendor/syn/src/error.rs b/rustc_deps/vendor/syn/src/error.rs
index 0e482e6..13095cc 100644
--- a/rustc_deps/vendor/syn/src/error.rs
+++ b/rustc_deps/vendor/syn/src/error.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use std;
 use std::fmt::{self, Display};
 use std::iter::FromIterator;
@@ -16,6 +8,7 @@
 #[cfg(feature = "printing")]
 use quote::ToTokens;
 
+#[cfg(feature = "parsing")]
 use buffer::Cursor;
 use thread::ThreadBound;
 
@@ -42,7 +35,9 @@
 }
 
 #[cfg(test)]
-struct _Test where Error: Send + Sync;
+struct _Test
+where
+    Error: Send + Sync;
 
 impl Error {
     /// Usually the [`ParseStream::error`] method will be used instead, which
@@ -60,8 +55,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.
@@ -146,7 +141,11 @@
     /// [`compile_error!`]: https://doc.rust-lang.org/std/macro.compile_error.html
     /// [`parse_macro_input!`]: ../macro.parse_macro_input.html
     pub fn to_compile_error(&self) -> TokenStream {
-        let start = self.start_span.get().cloned().unwrap_or_else(Span::call_site);
+        let start = self
+            .start_span
+            .get()
+            .cloned()
+            .unwrap_or_else(Span::call_site);
         let end = self.end_span.get().cloned().unwrap_or_else(Span::call_site);
 
         // compile_error!($message)
@@ -172,6 +171,7 @@
     }
 }
 
+#[cfg(feature = "parsing")]
 pub fn new_at<T: Display>(scope: Span, cursor: Cursor, message: T) -> Error {
     if cursor.eof() {
         Error::new(scope, format!("unexpected end of input, {}", message))
@@ -188,7 +188,11 @@
 
 impl Clone for Error {
     fn clone(&self) -> Self {
-        let start = self.start_span.get().cloned().unwrap_or_else(Span::call_site);
+        let start = self
+            .start_span
+            .get()
+            .cloned()
+            .unwrap_or_else(Span::call_site);
         let end = self.end_span.get().cloned().unwrap_or_else(Span::call_site);
         Error {
             start_span: ThreadBound::new(start),
diff --git a/rustc_deps/vendor/syn/src/expr.rs b/rustc_deps/vendor/syn/src/expr.rs
index 0251aa2..62c4832 100644
--- a/rustc_deps/vendor/syn/src/expr.rs
+++ b/rustc_deps/vendor/syn/src/expr.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use super::*;
 use proc_macro2::{Span, TokenStream};
 use punctuated::Punctuated;
@@ -2303,8 +2295,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/rustc_deps/vendor/syn/src/ext.rs b/rustc_deps/vendor/syn/src/ext.rs
index ae6c2ae..16d0dbf 100644
--- a/rustc_deps/vendor/syn/src/ext.rs
+++ b/rustc_deps/vendor/syn/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/rustc_deps/vendor/syn/src/file.rs b/rustc_deps/vendor/syn/src/file.rs
index 1f6054a..f1f7034 100644
--- a/rustc_deps/vendor/syn/src/file.rs
+++ b/rustc_deps/vendor/syn/src/file.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use super::*;
 
 ast_struct! {
diff --git a/rustc_deps/vendor/syn/src/gen/fold.rs b/rustc_deps/vendor/syn/src/gen/fold.rs
index 2b65e2e..3eb1875 100644
--- a/rustc_deps/vendor/syn/src/gen/fold.rs
+++ b/rustc_deps/vendor/syn/src/gen/fold.rs
@@ -1,7 +1,6 @@
 // THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
 
 #![allow(unreachable_code)]
-#![cfg_attr(feature = "cargo-clippy", allow(needless_pass_by_value))]
 #[cfg(any(feature = "full", feature = "derive"))]
 use gen::helper::fold::*;
 use proc_macro2::Span;
diff --git a/rustc_deps/vendor/syn/src/gen/visit.rs b/rustc_deps/vendor/syn/src/gen/visit.rs
index ec84cd2..1118fc9 100644
--- a/rustc_deps/vendor/syn/src/gen/visit.rs
+++ b/rustc_deps/vendor/syn/src/gen/visit.rs
@@ -1,6 +1,6 @@
 // THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
 
-#![cfg_attr(feature = "cargo-clippy", allow(match_same_arms))]
+#![cfg_attr(feature = "cargo-clippy", allow(trivially_copy_pass_by_ref))]
 #[cfg(any(feature = "full", feature = "derive"))]
 use gen::helper::visit::*;
 use proc_macro2::Span;
diff --git a/rustc_deps/vendor/syn/src/gen/visit_mut.rs b/rustc_deps/vendor/syn/src/gen/visit_mut.rs
index 4668c9b..ce875f5 100644
--- a/rustc_deps/vendor/syn/src/gen/visit_mut.rs
+++ b/rustc_deps/vendor/syn/src/gen/visit_mut.rs
@@ -1,6 +1,5 @@
 // THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
 
-#![cfg_attr(feature = "cargo-clippy", allow(match_same_arms))]
 #[cfg(any(feature = "full", feature = "derive"))]
 use gen::helper::visit_mut::*;
 use proc_macro2::Span;
diff --git a/rustc_deps/vendor/syn/src/gen_helper.rs b/rustc_deps/vendor/syn/src/gen_helper.rs
index fe00c8f..b15b42b 100644
--- a/rustc_deps/vendor/syn/src/gen_helper.rs
+++ b/rustc_deps/vendor/syn/src/gen_helper.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 #[cfg(feature = "fold")]
 pub mod fold {
     use fold::Fold;
diff --git a/rustc_deps/vendor/syn/src/generics.rs b/rustc_deps/vendor/syn/src/generics.rs
index 4e95480..b73d786 100644
--- a/rustc_deps/vendor/syn/src/generics.rs
+++ b/rustc_deps/vendor/syn/src/generics.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use super::*;
 use punctuated::{Iter, IterMut, Punctuated};
 
diff --git a/rustc_deps/vendor/syn/src/group.rs b/rustc_deps/vendor/syn/src/group.rs
index 84a19fd..026ece4 100644
--- a/rustc_deps/vendor/syn/src/group.rs
+++ b/rustc_deps/vendor/syn/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/rustc_deps/vendor/syn/src/item.rs b/rustc_deps/vendor/syn/src/item.rs
index 7c9066c..78709bb 100644
--- a/rustc_deps/vendor/syn/src/item.rs
+++ b/rustc_deps/vendor/syn/src/item.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use super::*;
 use derive::{Data, DeriveInput};
 use proc_macro2::TokenStream;
@@ -770,6 +762,8 @@
 
     use ext::IdentExt;
     use parse::{Parse, ParseStream, Result};
+    use proc_macro2::{Punct, Spacing, TokenTree};
+    use std::iter::FromIterator;
 
     impl Parse for Item {
         fn parse(input: ParseStream) -> Result<Self> {
@@ -903,17 +897,54 @@
     // TODO: figure out the actual grammar; is body required to be braced?
     impl Parse for ItemMacro2 {
         fn parse(input: ParseStream) -> Result<Self> {
+            let attrs = input.call(Attribute::parse_outer)?;
+            let vis: Visibility = input.parse()?;
+            let macro_token: Token![macro] = input.parse()?;
+            let ident: Ident = input.parse()?;
+
+            let paren_token;
             let args;
+            let brace_token;
             let body;
+            let lookahead = input.lookahead1();
+            if lookahead.peek(token::Paren) {
+                let paren_content;
+                paren_token = parenthesized!(paren_content in input);
+                args = paren_content.parse()?;
+
+                let brace_content;
+                brace_token = braced!(brace_content in input);
+                body = brace_content.parse()?;
+            } else if lookahead.peek(token::Brace) {
+                // Hack: the ItemMacro2 syntax tree will need to change so that
+                // we can store None for the args.
+                //
+                // https://github.com/dtolnay/syn/issues/548
+                //
+                // For now, store some sentinel tokens that are otherwise
+                // illegal.
+                paren_token = token::Paren::default();
+                args = TokenStream::from_iter(vec![
+                    TokenTree::Punct(Punct::new('$', Spacing::Alone)),
+                    TokenTree::Punct(Punct::new('$', Spacing::Alone)),
+                ]);
+
+                let brace_content;
+                brace_token = braced!(brace_content in input);
+                body = brace_content.parse()?;
+            } else {
+                return Err(lookahead.error());
+            }
+
             Ok(ItemMacro2 {
-                attrs: input.call(Attribute::parse_outer)?,
-                vis: input.parse()?,
-                macro_token: input.parse()?,
-                ident: input.parse()?,
-                paren_token: parenthesized!(args in input),
-                args: args.parse()?,
-                brace_token: braced!(body in input),
-                body: body.parse()?,
+                attrs: attrs,
+                vis: vis,
+                macro_token: macro_token,
+                ident: ident,
+                paren_token: paren_token,
+                args: args,
+                brace_token: brace_token,
+                body: body,
             })
         }
     }
@@ -925,7 +956,13 @@
                 vis: input.parse()?,
                 extern_token: input.parse()?,
                 crate_token: input.parse()?,
-                ident: input.parse()?,
+                ident: {
+                    if input.peek(Token![self]) {
+                        input.call(Ident::parse_any)?
+                    } else {
+                        input.parse()?
+                    }
+                },
                 rename: {
                     if input.peek(Token![as]) {
                         let as_token: Token![as] = input.parse()?;
@@ -2319,9 +2356,14 @@
             self.vis.to_tokens(tokens);
             self.macro_token.to_tokens(tokens);
             self.ident.to_tokens(tokens);
-            self.paren_token.surround(tokens, |tokens| {
-                self.args.to_tokens(tokens);
-            });
+
+            // Hack: see comment in impl Parse for ItemMacro2.
+            if self.args.to_string() != "$ $" {
+                self.paren_token.surround(tokens, |tokens| {
+                    self.args.to_tokens(tokens);
+                });
+            }
+
             self.brace_token.surround(tokens, |tokens| {
                 self.body.to_tokens(tokens);
             });
diff --git a/rustc_deps/vendor/syn/src/keyword.rs b/rustc_deps/vendor/syn/src/keyword.rs
index bf7dffb..9bfb260 100644
--- a/rustc_deps/vendor/syn/src/keyword.rs
+++ b/rustc_deps/vendor/syn/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/rustc_deps/vendor/syn/src/lib.rs b/rustc_deps/vendor/syn/src/lib.rs
index 17396aa..12802e9 100644
--- a/rustc_deps/vendor/syn/src/lib.rs
+++ b/rustc_deps/vendor/syn/src/lib.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 //! Syn is a parsing library for parsing a stream of Rust tokens into a syntax
 //! tree of Rust source code.
 //!
@@ -236,7 +228,7 @@
 //!   dynamic library libproc_macro from rustc toolchain.
 
 // Syn types in rustdoc of other crates get linked to here.
-#![doc(html_root_url = "https://docs.rs/syn/0.15.21")]
+#![doc(html_root_url = "https://docs.rs/syn/0.15.23")]
 #![cfg_attr(feature = "cargo-clippy", allow(renamed_and_removed_lints))]
 #![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
 // Ignored clippy lints.
@@ -250,13 +242,10 @@
         doc_markdown,
         eval_order_dependence,
         large_enum_variant,
-        match_bool,
         needless_pass_by_value,
         never_loop,
-        redundant_closure,
         redundant_field_names,
         too_many_arguments,
-        trivially_copy_pass_by_ref,
     )
 )]
 // Ignored clippy_pedantic lints.
@@ -267,7 +256,6 @@
         cast_possible_wrap,
         empty_enum,
         if_not_else,
-        indexing_slicing,
         items_after_statements,
         shadow_unrelated,
         similar_names,
@@ -569,7 +557,6 @@
 #[cfg(all(any(feature = "full", feature = "derive"), feature = "printing"))]
 mod print;
 
-#[cfg(feature = "parsing")]
 mod thread;
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -580,10 +567,8 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 
-#[cfg(feature = "parsing")]
 mod error;
-#[cfg(feature = "parsing")]
-use error::Error;
+pub use error::{Error, Result};
 
 /// Parse tokens of source code into the chosen syntax tree node.
 ///
@@ -636,7 +621,7 @@
     feature = "parsing",
     feature = "proc-macro"
 ))]
-pub fn parse<T: parse::Parse>(tokens: proc_macro::TokenStream) -> Result<T, Error> {
+pub fn parse<T: parse::Parse>(tokens: proc_macro::TokenStream) -> Result<T> {
     parse::Parser::parse(T::parse, tokens)
 }
 
@@ -653,7 +638,7 @@
 ///
 /// *This function is available if Syn is built with the `"parsing"` feature.*
 #[cfg(feature = "parsing")]
-pub fn parse2<T: parse::Parse>(tokens: proc_macro2::TokenStream) -> Result<T, Error> {
+pub fn parse2<T: parse::Parse>(tokens: proc_macro2::TokenStream) -> Result<T> {
     parse::Parser::parse2(T::parse, tokens)
 }
 
@@ -671,8 +656,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)";
@@ -684,7 +668,7 @@
 /// # fn main() { run().unwrap() }
 /// ```
 #[cfg(feature = "parsing")]
-pub fn parse_str<T: parse::Parse>(s: &str) -> Result<T, Error> {
+pub fn parse_str<T: parse::Parse>(s: &str) -> Result<T> {
     parse::Parser::parse_str(T::parse, s)
 }
 
@@ -727,7 +711,7 @@
 /// # fn main() { run().unwrap() }
 /// ```
 #[cfg(all(feature = "parsing", feature = "full"))]
-pub fn parse_file(mut content: &str) -> Result<File, Error> {
+pub fn parse_file(mut content: &str) -> Result<File> {
     // Strip the BOM if it is present
     const BOM: &'static str = "\u{feff}";
     if content.starts_with(BOM) {
diff --git a/rustc_deps/vendor/syn/src/lifetime.rs b/rustc_deps/vendor/syn/src/lifetime.rs
index 3f093c8..dbf01a9 100644
--- a/rustc_deps/vendor/syn/src/lifetime.rs
+++ b/rustc_deps/vendor/syn/src/lifetime.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use std::cmp::Ordering;
 use std::fmt::{self, Display};
 use std::hash::{Hash, Hasher};
diff --git a/rustc_deps/vendor/syn/src/lit.rs b/rustc_deps/vendor/syn/src/lit.rs
index c1af9f2..a39cd3c 100644
--- a/rustc_deps/vendor/syn/src/lit.rs
+++ b/rustc_deps/vendor/syn/src/lit.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use proc_macro2::{Literal, Span};
 use std::str;
 
@@ -134,8 +126,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/rustc_deps/vendor/syn/src/lookahead.rs b/rustc_deps/vendor/syn/src/lookahead.rs
index 7320d02..c8fdbc8 100644
--- a/rustc_deps/vendor/syn/src/lookahead.rs
+++ b/rustc_deps/vendor/syn/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/rustc_deps/vendor/syn/src/mac.rs b/rustc_deps/vendor/syn/src/mac.rs
index 4bffb55..46dc5dd 100644
--- a/rustc_deps/vendor/syn/src/mac.rs
+++ b/rustc_deps/vendor/syn/src/mac.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use super::*;
 use proc_macro2::TokenStream;
 #[cfg(feature = "parsing")]
diff --git a/rustc_deps/vendor/syn/src/macros.rs b/rustc_deps/vendor/syn/src/macros.rs
index aa995d3..bb59063 100644
--- a/rustc_deps/vendor/syn/src/macros.rs
+++ b/rustc_deps/vendor/syn/src/macros.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 #[cfg(any(feature = "full", feature = "derive"))]
 macro_rules! ast_struct {
     (
diff --git a/rustc_deps/vendor/syn/src/op.rs b/rustc_deps/vendor/syn/src/op.rs
index c777242..96d8c99 100644
--- a/rustc_deps/vendor/syn/src/op.rs
+++ b/rustc_deps/vendor/syn/src/op.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 ast_enum! {
     /// A binary operator: `+`, `+=`, `&`.
     ///
diff --git a/rustc_deps/vendor/syn/src/parse.rs b/rustc_deps/vendor/syn/src/parse.rs
index 7683968..247d45f 100644
--- a/rustc_deps/vendor/syn/src/parse.rs
+++ b/rustc_deps/vendor/syn/src/parse.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 //! Parsing interface for parsing a token stream into a syntax tree node.
 //!
 //! Parsing in Syn is built on parser functions that take in a [`ParseStream`]
@@ -40,8 +32,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 +109,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 +141,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 +171,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 +296,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 +433,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 +489,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 +561,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 +610,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 +663,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 +707,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 +759,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 +816,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 +892,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 +935,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/rustc_deps/vendor/syn/src/parse_macro_input.rs b/rustc_deps/vendor/syn/src/parse_macro_input.rs
index 7c4d807..6b3785b 100644
--- a/rustc_deps/vendor/syn/src/parse_macro_input.rs
+++ b/rustc_deps/vendor/syn/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/rustc_deps/vendor/syn/src/path.rs b/rustc_deps/vendor/syn/src/path.rs
index 7c1f78d..97ba58c 100644
--- a/rustc_deps/vendor/syn/src/path.rs
+++ b/rustc_deps/vendor/syn/src/path.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use super::*;
 use punctuated::Punctuated;
 
@@ -370,8 +362,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/rustc_deps/vendor/syn/src/punctuated.rs b/rustc_deps/vendor/syn/src/punctuated.rs
index 7bb7368..c6f07d3 100644
--- a/rustc_deps/vendor/syn/src/punctuated.rs
+++ b/rustc_deps/vendor/syn/src/punctuated.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 //! A punctuated sequence of syntax tree nodes separated by punctuation.
 //!
 //! Lots of things in Rust are punctuated sequences.
diff --git a/rustc_deps/vendor/syn/src/spanned.rs b/rustc_deps/vendor/syn/src/spanned.rs
index 8978727..a1a2a9a 100644
--- a/rustc_deps/vendor/syn/src/spanned.rs
+++ b/rustc_deps/vendor/syn/src/spanned.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 //! A trait that can provide the `Span` of the complete contents of a syntax
 //! tree node.
 //!
diff --git a/rustc_deps/vendor/syn/src/token.rs b/rustc_deps/vendor/syn/src/token.rs
index 9a8f3a8..6409c51 100644
--- a/rustc_deps/vendor/syn/src/token.rs
+++ b/rustc_deps/vendor/syn/src/token.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 //! Tokens representing Rust punctuation, keywords, and delimiters.
 //!
 //! The type names in this module can be difficult to keep straight, so we
@@ -56,8 +48,8 @@
 //! ```
 //! # extern crate syn;
 //! #
-//! use syn::Attribute;
-//! use syn::parse::{Parse, ParseStream, Result};
+//! use syn::{Attribute, Result};
+//! use syn::parse::{Parse, ParseStream};
 //! #
 //! # enum ItemStatic {}
 //!
@@ -272,7 +264,7 @@
             #[cfg(feature = "printing")]
             impl ToTokens for $name {
                 fn to_tokens(&self, tokens: &mut TokenStream) {
-                    printing::keyword($token, &self.span, tokens);
+                    printing::keyword($token, self.span, tokens);
                 }
             }
 
@@ -450,7 +442,7 @@
                 where
                     F: FnOnce(&mut TokenStream),
                 {
-                    printing::delim($token, &self.span, tokens, f);
+                    printing::delim($token, self.span, tokens, f);
                 }
             }
 
@@ -886,11 +878,11 @@
         tokens.append(op);
     }
 
-    pub fn keyword(s: &str, span: &Span, tokens: &mut TokenStream) {
-        tokens.append(Ident::new(s, *span));
+    pub fn keyword(s: &str, span: Span, tokens: &mut TokenStream) {
+        tokens.append(Ident::new(s, span));
     }
 
-    pub fn delim<F>(s: &str, span: &Span, tokens: &mut TokenStream, f: F)
+    pub fn delim<F>(s: &str, span: Span, tokens: &mut TokenStream, f: F)
     where
         F: FnOnce(&mut TokenStream),
     {
@@ -904,7 +896,7 @@
         let mut inner = TokenStream::new();
         f(&mut inner);
         let mut g = Group::new(delim, inner);
-        g.set_span(*span);
+        g.set_span(span);
         tokens.append(g);
     }
 }
diff --git a/rustc_deps/vendor/syn/src/tt.rs b/rustc_deps/vendor/syn/src/tt.rs
index 8a87762..72bc3c1 100644
--- a/rustc_deps/vendor/syn/src/tt.rs
+++ b/rustc_deps/vendor/syn/src/tt.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use std::hash::{Hash, Hasher};
 
 use proc_macro2::{Delimiter, TokenStream, TokenTree};
diff --git a/rustc_deps/vendor/syn/src/ty.rs b/rustc_deps/vendor/syn/src/ty.rs
index 548bfb0..f53449f 100644
--- a/rustc_deps/vendor/syn/src/ty.rs
+++ b/rustc_deps/vendor/syn/src/ty.rs
@@ -1,11 +1,3 @@
-// Copyright 2018 Syn Developers
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
 use super::*;
 use proc_macro2::TokenStream;
 use punctuated::Punctuated;