Use released quote-1.0.2 at crates.io
am: 87b35cf18a

Change-Id: Ib256b0a04730d3c59034f37ef78862be3af86c8e
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
new file mode 100644
index 0000000..c5b6105
--- /dev/null
+++ b/.cargo_vcs_info.json
@@ -0,0 +1,5 @@
+{
+  "git": {
+    "sha1": "727436c6c137b20f0f34dde5d8fda2679b9747ad"
+  }
+}
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 4fffb2f..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/target
-/Cargo.lock
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 7182d9b..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-sudo: false
-
-language: rust
-
-rust:
-  - stable
-  - 1.31.0
-  - beta
-
-script:
-  - cargo test
-
-matrix:
-  include:
-    - rust: nightly
-      script:
-        - cargo test
-        - cargo update -Z minimal-versions && cargo build
diff --git a/Android.bp b/Android.bp
index f0f6261..63ec66d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,9 +1,16 @@
+// This file is generated by cargo2android.py.
+
 rust_library_rlib {
     name: "libquote",
     host_supported: true,
     crate_name: "quote",
     srcs: ["src/lib.rs"],
-    rlibs: ["libproc_macro2"],
-    features: ["proc-macro"],
     edition: "2018",
+    features: [
+        "default",
+        "proc-macro",
+    ],
+    rlibs: [
+        "libproc_macro2",
+    ],
 }
diff --git a/Cargo.toml b/Cargo.toml
index c052022..a7a956d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,32 +1,42 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies
+#
+# If you believe there's an error in this file please file an
+# issue against the rust-lang/cargo repository. If you're
+# editing this file be aware that the upstream Cargo.toml
+# will likely look very different (and much more reasonable)
+
 [package]
+edition = "2018"
 name = "quote"
-version = "1.0.2" # don't forget to update html_root_url, version in readme for breaking changes
+version = "1.0.2"
 authors = ["David Tolnay <dtolnay@gmail.com>"]
-license = "MIT OR Apache-2.0"
+include = ["Cargo.toml", "src/**/*.rs", "tests/**/*.rs", "README.md", "LICENSE-APACHE", "LICENSE-MIT"]
 description = "Quasi-quoting macro quote!(...)"
-repository = "https://github.com/dtolnay/quote"
 documentation = "https://docs.rs/quote/"
+readme = "README.md"
 keywords = ["syn"]
 categories = ["development-tools::procedural-macro-helpers"]
-readme = "README.md"
-include = ["Cargo.toml", "src/**/*.rs", "tests/**/*.rs", "README.md", "LICENSE-APACHE", "LICENSE-MIT"]
-edition = "2018"
+license = "MIT OR Apache-2.0"
+repository = "https://github.com/dtolnay/quote"
 
 [lib]
 name = "quote"
+[dependencies.proc-macro2]
+version = "1.0"
+default-features = false
+[dev-dependencies.rustversion]
+version = "0.1"
 
-[dependencies]
-proc-macro2 = { version = "1.0", default-features = false }
-
-[dev-dependencies]
-rustversion = "0.1"
-trybuild = "1.0"
+[dev-dependencies.trybuild]
+version = "1.0"
 
 [features]
 default = ["proc-macro"]
-# Disabling the proc-macro feature removes the dynamic library dependency on
-# libproc_macro in the rustc compiler.
 proc-macro = ["proc-macro2/proc-macro"]
-
-[badges]
-travis-ci = { repository = "dtolnay/quote" }
+[badges.travis-ci]
+repository = "dtolnay/quote"
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
new file mode 100644
index 0000000..c052022
--- /dev/null
+++ b/Cargo.toml.orig
@@ -0,0 +1,32 @@
+[package]
+name = "quote"
+version = "1.0.2" # don't forget to update html_root_url, version in readme for breaking changes
+authors = ["David Tolnay <dtolnay@gmail.com>"]
+license = "MIT OR Apache-2.0"
+description = "Quasi-quoting macro quote!(...)"
+repository = "https://github.com/dtolnay/quote"
+documentation = "https://docs.rs/quote/"
+keywords = ["syn"]
+categories = ["development-tools::procedural-macro-helpers"]
+readme = "README.md"
+include = ["Cargo.toml", "src/**/*.rs", "tests/**/*.rs", "README.md", "LICENSE-APACHE", "LICENSE-MIT"]
+edition = "2018"
+
+[lib]
+name = "quote"
+
+[dependencies]
+proc-macro2 = { version = "1.0", default-features = false }
+
+[dev-dependencies]
+rustversion = "0.1"
+trybuild = "1.0"
+
+[features]
+default = ["proc-macro"]
+# Disabling the proc-macro feature removes the dynamic library dependency on
+# libproc_macro in the rustc compiler.
+proc-macro = ["proc-macro2/proc-macro"]
+
+[badges]
+travis-ci = { repository = "dtolnay/quote" }
diff --git a/benches/bench.rs b/benches/bench.rs
deleted file mode 100644
index c76a638..0000000
--- a/benches/bench.rs
+++ /dev/null
@@ -1,193 +0,0 @@
-#![feature(test)]
-#![recursion_limit = "512"]
-
-extern crate test;
-
-use quote::quote;
-use test::Bencher;
-
-#[bench]
-fn bench_impl(b: &mut Bencher) {
-    b.iter(|| {
-        quote! {
-            impl<'de> _serde::Deserialize<'de> for Response {
-                fn deserialize<__D>(__deserializer: __D) -> _serde::export::Result<Self, __D::Error>
-                where
-                    __D: _serde::Deserializer<'de>,
-                {
-                    #[allow(non_camel_case_types)]
-                    enum __Field {
-                        __field0,
-                        __field1,
-                        __ignore,
-                    }
-                    struct __FieldVisitor;
-                    impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
-                        type Value = __Field;
-                        fn expecting(
-                            &self,
-                            __formatter: &mut _serde::export::Formatter,
-                        ) -> _serde::export::fmt::Result {
-                            _serde::export::Formatter::write_str(__formatter, "field identifier")
-                        }
-                        fn visit_u64<__E>(self, __value: u64) -> _serde::export::Result<Self::Value, __E>
-                        where
-                            __E: _serde::de::Error,
-                        {
-                            match __value {
-                                0u64 => _serde::export::Ok(__Field::__field0),
-                                1u64 => _serde::export::Ok(__Field::__field1),
-                                _ => _serde::export::Err(_serde::de::Error::invalid_value(
-                                    _serde::de::Unexpected::Unsigned(__value),
-                                    &"field index 0 <= i < 2",
-                                )),
-                            }
-                        }
-                        fn visit_str<__E>(self, __value: &str) -> _serde::export::Result<Self::Value, __E>
-                        where
-                            __E: _serde::de::Error,
-                        {
-                            match __value {
-                                "id" => _serde::export::Ok(__Field::__field0),
-                                "s" => _serde::export::Ok(__Field::__field1),
-                                _ => _serde::export::Ok(__Field::__ignore),
-                            }
-                        }
-                        fn visit_bytes<__E>(
-                            self,
-                            __value: &[u8],
-                        ) -> _serde::export::Result<Self::Value, __E>
-                        where
-                            __E: _serde::de::Error,
-                        {
-                            match __value {
-                                b"id" => _serde::export::Ok(__Field::__field0),
-                                b"s" => _serde::export::Ok(__Field::__field1),
-                                _ => _serde::export::Ok(__Field::__ignore),
-                            }
-                        }
-                    }
-                    impl<'de> _serde::Deserialize<'de> for __Field {
-                        #[inline]
-                        fn deserialize<__D>(__deserializer: __D) -> _serde::export::Result<Self, __D::Error>
-                        where
-                            __D: _serde::Deserializer<'de>,
-                        {
-                            _serde::Deserializer::deserialize_identifier(__deserializer, __FieldVisitor)
-                        }
-                    }
-                    struct __Visitor<'de> {
-                        marker: _serde::export::PhantomData<Response>,
-                        lifetime: _serde::export::PhantomData<&'de ()>,
-                    }
-                    impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
-                        type Value = Response;
-                        fn expecting(
-                            &self,
-                            __formatter: &mut _serde::export::Formatter,
-                        ) -> _serde::export::fmt::Result {
-                            _serde::export::Formatter::write_str(__formatter, "struct Response")
-                        }
-                        #[inline]
-                        fn visit_seq<__A>(
-                            self,
-                            mut __seq: __A,
-                        ) -> _serde::export::Result<Self::Value, __A::Error>
-                        where
-                            __A: _serde::de::SeqAccess<'de>,
-                        {
-                            let __field0 =
-                                match try!(_serde::de::SeqAccess::next_element::<u64>(&mut __seq)) {
-                                    _serde::export::Some(__value) => __value,
-                                    _serde::export::None => {
-                                        return _serde::export::Err(_serde::de::Error::invalid_length(
-                                            0usize,
-                                            &"struct Response with 2 elements",
-                                        ));
-                                    }
-                                };
-                            let __field1 =
-                                match try!(_serde::de::SeqAccess::next_element::<String>(&mut __seq)) {
-                                    _serde::export::Some(__value) => __value,
-                                    _serde::export::None => {
-                                        return _serde::export::Err(_serde::de::Error::invalid_length(
-                                            1usize,
-                                            &"struct Response with 2 elements",
-                                        ));
-                                    }
-                                };
-                            _serde::export::Ok(Response {
-                                id: __field0,
-                                s: __field1,
-                            })
-                        }
-                        #[inline]
-                        fn visit_map<__A>(
-                            self,
-                            mut __map: __A,
-                        ) -> _serde::export::Result<Self::Value, __A::Error>
-                        where
-                            __A: _serde::de::MapAccess<'de>,
-                        {
-                            let mut __field0: _serde::export::Option<u64> = _serde::export::None;
-                            let mut __field1: _serde::export::Option<String> = _serde::export::None;
-                            while let _serde::export::Some(__key) =
-                                try!(_serde::de::MapAccess::next_key::<__Field>(&mut __map))
-                            {
-                                match __key {
-                                    __Field::__field0 => {
-                                        if _serde::export::Option::is_some(&__field0) {
-                                            return _serde::export::Err(
-                                                <__A::Error as _serde::de::Error>::duplicate_field("id"),
-                                            );
-                                        }
-                                        __field0 = _serde::export::Some(
-                                            try!(_serde::de::MapAccess::next_value::<u64>(&mut __map)),
-                                        );
-                                    }
-                                    __Field::__field1 => {
-                                        if _serde::export::Option::is_some(&__field1) {
-                                            return _serde::export::Err(
-                                                <__A::Error as _serde::de::Error>::duplicate_field("s"),
-                                            );
-                                        }
-                                        __field1 = _serde::export::Some(
-                                            try!(_serde::de::MapAccess::next_value::<String>(&mut __map)),
-                                        );
-                                    }
-                                    _ => {
-                                        let _ = try!(_serde::de::MapAccess::next_value::<
-                                            _serde::de::IgnoredAny,
-                                        >(&mut __map));
-                                    }
-                                }
-                            }
-                            let __field0 = match __field0 {
-                                _serde::export::Some(__field0) => __field0,
-                                _serde::export::None => try!(_serde::private::de::missing_field("id")),
-                            };
-                            let __field1 = match __field1 {
-                                _serde::export::Some(__field1) => __field1,
-                                _serde::export::None => try!(_serde::private::de::missing_field("s")),
-                            };
-                            _serde::export::Ok(Response {
-                                id: __field0,
-                                s: __field1,
-                            })
-                        }
-                    }
-                    const FIELDS: &'static [&'static str] = &["id", "s"];
-                    _serde::Deserializer::deserialize_struct(
-                        __deserializer,
-                        "Response",
-                        FIELDS,
-                        __Visitor {
-                            marker: _serde::export::PhantomData::<Response>,
-                            lifetime: _serde::export::PhantomData,
-                        },
-                    )
-                }
-            }
-        }
-    });
-}
diff --git a/tests/ui/does-not-have-iter-interpolated-dup.stderr b/tests/ui/does-not-have-iter-interpolated-dup.stderr
deleted file mode 100644
index 6ee6fdf..0000000
--- a/tests/ui/does-not-have-iter-interpolated-dup.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0308]: mismatched types
- --> $DIR/does-not-have-iter-interpolated-dup.rs:8:5
-  |
-8 |     quote!(#(#nonrep #nonrep)*);
-  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `quote::__rt::HasIterator`, found struct `quote::__rt::ThereIsNoIteratorInRepetition`
-  |
-  = note: expected type `quote::__rt::HasIterator`
-             found type `quote::__rt::ThereIsNoIteratorInRepetition`
-  = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/does-not-have-iter-interpolated.stderr b/tests/ui/does-not-have-iter-interpolated.stderr
deleted file mode 100644
index 8d6c990..0000000
--- a/tests/ui/does-not-have-iter-interpolated.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0308]: mismatched types
- --> $DIR/does-not-have-iter-interpolated.rs:8:5
-  |
-8 |     quote!(#(#nonrep)*);
-  |     ^^^^^^^^^^^^^^^^^^^^ expected struct `quote::__rt::HasIterator`, found struct `quote::__rt::ThereIsNoIteratorInRepetition`
-  |
-  = note: expected type `quote::__rt::HasIterator`
-             found type `quote::__rt::ThereIsNoIteratorInRepetition`
-  = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/does-not-have-iter-separated.stderr b/tests/ui/does-not-have-iter-separated.stderr
deleted file mode 100644
index c1fd0ad..0000000
--- a/tests/ui/does-not-have-iter-separated.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0308]: mismatched types
- --> $DIR/does-not-have-iter-separated.rs:4:5
-  |
-4 |     quote!(#(a b),*);
-  |     ^^^^^^^^^^^^^^^^^ expected struct `quote::__rt::HasIterator`, found struct `quote::__rt::ThereIsNoIteratorInRepetition`
-  |
-  = note: expected type `quote::__rt::HasIterator`
-             found type `quote::__rt::ThereIsNoIteratorInRepetition`
-  = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/does-not-have-iter.stderr b/tests/ui/does-not-have-iter.stderr
deleted file mode 100644
index 3b87705..0000000
--- a/tests/ui/does-not-have-iter.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0308]: mismatched types
- --> $DIR/does-not-have-iter.rs:4:5
-  |
-4 |     quote!(#(a b)*);
-  |     ^^^^^^^^^^^^^^^^ expected struct `quote::__rt::HasIterator`, found struct `quote::__rt::ThereIsNoIteratorInRepetition`
-  |
-  = note: expected type `quote::__rt::HasIterator`
-             found type `quote::__rt::ThereIsNoIteratorInRepetition`
-  = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/not-quotable.stderr b/tests/ui/not-quotable.stderr
deleted file mode 100644
index f51f85f..0000000
--- a/tests/ui/not-quotable.stderr
+++ /dev/null
@@ -1,10 +0,0 @@
-error[E0277]: the trait bound `std::net::Ipv4Addr: quote::to_tokens::ToTokens` is not satisfied
- --> $DIR/not-quotable.rs:6:13
-  |
-6 |     let _ = quote! { #ip };
-  |             ^^^^^^^^^^^^^^ the trait `quote::to_tokens::ToTokens` is not implemented for `std::net::Ipv4Addr`
-  |
-  = note: required by `quote::to_tokens::ToTokens::to_tokens`
-  = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/not-repeatable.stderr b/tests/ui/not-repeatable.stderr
deleted file mode 100644
index ddcac05..0000000
--- a/tests/ui/not-repeatable.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-error[E0599]: no method named `quote_into_iter` found for type `std::net::Ipv4Addr` in the current scope
- --> $DIR/not-repeatable.rs:6:13
-  |
-6 |     let _ = quote! { #(#ip)* };
-  |             ^^^^^^^^^^^^^^^^^^
-  |
-  = note: the method `quote_into_iter` exists but the following trait bounds were not satisfied:
-          `&mut std::net::Ipv4Addr : quote::__rt::ext::RepIteratorExt`
-          `&std::net::Ipv4Addr : quote::__rt::ext::RepIteratorExt`
-          `std::net::Ipv4Addr : quote::__rt::ext::RepIteratorExt`
-          `std::net::Ipv4Addr : quote::__rt::ext::RepToTokensExt`
-  = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
-
-For more information about this error, try `rustc --explain E0599`.
diff --git a/tests/ui/wrong-type-span.stderr b/tests/ui/wrong-type-span.stderr
deleted file mode 100644
index a6ae8ef..0000000
--- a/tests/ui/wrong-type-span.stderr
+++ /dev/null
@@ -1,10 +0,0 @@
-error[E0308]: mismatched types
- --> $DIR/wrong-type-span.rs:6:20
-  |
-6 |     quote_spanned!(span=> #x);
-  |                    ^^^^ expected struct `proc_macro2::Span`, found &str
-  |
-  = note: expected type `proc_macro2::Span`
-             found type `&str`
-
-For more information about this error, try `rustc --explain E0308`.