summaryrefslogtreecommitdiffstats
path: root/vendor/quote/tests/ui
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/quote/tests/ui')
-rw-r--r--vendor/quote/tests/ui/does-not-have-iter-interpolated-dup.rs9
-rw-r--r--vendor/quote/tests/ui/does-not-have-iter-interpolated-dup.stderr10
-rw-r--r--vendor/quote/tests/ui/does-not-have-iter-interpolated.rs9
-rw-r--r--vendor/quote/tests/ui/does-not-have-iter-interpolated.stderr10
-rw-r--r--vendor/quote/tests/ui/does-not-have-iter-separated.rs5
-rw-r--r--vendor/quote/tests/ui/does-not-have-iter-separated.stderr10
-rw-r--r--vendor/quote/tests/ui/does-not-have-iter.rs5
-rw-r--r--vendor/quote/tests/ui/does-not-have-iter.stderr10
-rw-r--r--vendor/quote/tests/ui/not-quotable.rs7
-rw-r--r--vendor/quote/tests/ui/not-quotable.stderr17
-rw-r--r--vendor/quote/tests/ui/not-repeatable.rs8
-rw-r--r--vendor/quote/tests/ui/not-repeatable.stderr47
-rw-r--r--vendor/quote/tests/ui/wrong-type-span.rs7
-rw-r--r--vendor/quote/tests/ui/wrong-type-span.stderr8
14 files changed, 162 insertions, 0 deletions
diff --git a/vendor/quote/tests/ui/does-not-have-iter-interpolated-dup.rs b/vendor/quote/tests/ui/does-not-have-iter-interpolated-dup.rs
new file mode 100644
index 000000000..0a39f4150
--- /dev/null
+++ b/vendor/quote/tests/ui/does-not-have-iter-interpolated-dup.rs
@@ -0,0 +1,9 @@
+use quote::quote;
+
+fn main() {
+ let nonrep = "";
+
+ // Without some protection against repetitions with no iterator somewhere
+ // inside, this would loop infinitely.
+ quote!(#(#nonrep #nonrep)*);
+}
diff --git a/vendor/quote/tests/ui/does-not-have-iter-interpolated-dup.stderr b/vendor/quote/tests/ui/does-not-have-iter-interpolated-dup.stderr
new file mode 100644
index 000000000..bcd631db1
--- /dev/null
+++ b/vendor/quote/tests/ui/does-not-have-iter-interpolated-dup.stderr
@@ -0,0 +1,10 @@
+error[E0308]: mismatched types
+ --> tests/ui/does-not-have-iter-interpolated-dup.rs:8:5
+ |
+8 | quote!(#(#nonrep #nonrep)*);
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ | |
+ | expected struct `HasIterator`, found struct `ThereIsNoIteratorInRepetition`
+ | expected due to this
+ |
+ = note: this error originates in the macro `$crate::quote_token_with_context` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/vendor/quote/tests/ui/does-not-have-iter-interpolated.rs b/vendor/quote/tests/ui/does-not-have-iter-interpolated.rs
new file mode 100644
index 000000000..2c740cc08
--- /dev/null
+++ b/vendor/quote/tests/ui/does-not-have-iter-interpolated.rs
@@ -0,0 +1,9 @@
+use quote::quote;
+
+fn main() {
+ let nonrep = "";
+
+ // Without some protection against repetitions with no iterator somewhere
+ // inside, this would loop infinitely.
+ quote!(#(#nonrep)*);
+}
diff --git a/vendor/quote/tests/ui/does-not-have-iter-interpolated.stderr b/vendor/quote/tests/ui/does-not-have-iter-interpolated.stderr
new file mode 100644
index 000000000..799837bcd
--- /dev/null
+++ b/vendor/quote/tests/ui/does-not-have-iter-interpolated.stderr
@@ -0,0 +1,10 @@
+error[E0308]: mismatched types
+ --> tests/ui/does-not-have-iter-interpolated.rs:8:5
+ |
+8 | quote!(#(#nonrep)*);
+ | ^^^^^^^^^^^^^^^^^^^
+ | |
+ | expected struct `HasIterator`, found struct `ThereIsNoIteratorInRepetition`
+ | expected due to this
+ |
+ = note: this error originates in the macro `$crate::quote_token_with_context` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/vendor/quote/tests/ui/does-not-have-iter-separated.rs b/vendor/quote/tests/ui/does-not-have-iter-separated.rs
new file mode 100644
index 000000000..c027243dd
--- /dev/null
+++ b/vendor/quote/tests/ui/does-not-have-iter-separated.rs
@@ -0,0 +1,5 @@
+use quote::quote;
+
+fn main() {
+ quote!(#(a b),*);
+}
diff --git a/vendor/quote/tests/ui/does-not-have-iter-separated.stderr b/vendor/quote/tests/ui/does-not-have-iter-separated.stderr
new file mode 100644
index 000000000..aa2e6938f
--- /dev/null
+++ b/vendor/quote/tests/ui/does-not-have-iter-separated.stderr
@@ -0,0 +1,10 @@
+error[E0308]: mismatched types
+ --> tests/ui/does-not-have-iter-separated.rs:4:5
+ |
+4 | quote!(#(a b),*);
+ | ^^^^^^^^^^^^^^^^
+ | |
+ | expected struct `HasIterator`, found struct `ThereIsNoIteratorInRepetition`
+ | expected due to this
+ |
+ = note: this error originates in the macro `$crate::quote_token_with_context` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/vendor/quote/tests/ui/does-not-have-iter.rs b/vendor/quote/tests/ui/does-not-have-iter.rs
new file mode 100644
index 000000000..8908353b5
--- /dev/null
+++ b/vendor/quote/tests/ui/does-not-have-iter.rs
@@ -0,0 +1,5 @@
+use quote::quote;
+
+fn main() {
+ quote!(#(a b)*);
+}
diff --git a/vendor/quote/tests/ui/does-not-have-iter.stderr b/vendor/quote/tests/ui/does-not-have-iter.stderr
new file mode 100644
index 000000000..c2692fe5d
--- /dev/null
+++ b/vendor/quote/tests/ui/does-not-have-iter.stderr
@@ -0,0 +1,10 @@
+error[E0308]: mismatched types
+ --> tests/ui/does-not-have-iter.rs:4:5
+ |
+4 | quote!(#(a b)*);
+ | ^^^^^^^^^^^^^^^
+ | |
+ | expected struct `HasIterator`, found struct `ThereIsNoIteratorInRepetition`
+ | expected due to this
+ |
+ = note: this error originates in the macro `$crate::quote_token_with_context` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/vendor/quote/tests/ui/not-quotable.rs b/vendor/quote/tests/ui/not-quotable.rs
new file mode 100644
index 000000000..f991c1883
--- /dev/null
+++ b/vendor/quote/tests/ui/not-quotable.rs
@@ -0,0 +1,7 @@
+use quote::quote;
+use std::net::Ipv4Addr;
+
+fn main() {
+ let ip = Ipv4Addr::LOCALHOST;
+ let _ = quote! { #ip };
+}
diff --git a/vendor/quote/tests/ui/not-quotable.stderr b/vendor/quote/tests/ui/not-quotable.stderr
new file mode 100644
index 000000000..171cddd2b
--- /dev/null
+++ b/vendor/quote/tests/ui/not-quotable.stderr
@@ -0,0 +1,17 @@
+error[E0277]: the trait bound `Ipv4Addr: ToTokens` is not satisfied
+ --> tests/ui/not-quotable.rs:6:13
+ |
+6 | let _ = quote! { #ip };
+ | ^^^^^^^^^^^^^^ the trait `ToTokens` is not implemented for `Ipv4Addr`
+ |
+ = help: the following other types implement trait `ToTokens`:
+ &'a T
+ &'a mut T
+ Box<T>
+ Cow<'a, T>
+ Option<T>
+ Rc<T>
+ RepInterp<T>
+ String
+ and 23 others
+ = note: this error originates in the macro `quote` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/vendor/quote/tests/ui/not-repeatable.rs b/vendor/quote/tests/ui/not-repeatable.rs
new file mode 100644
index 000000000..a8f0fe773
--- /dev/null
+++ b/vendor/quote/tests/ui/not-repeatable.rs
@@ -0,0 +1,8 @@
+use quote::quote;
+
+struct Ipv4Addr;
+
+fn main() {
+ let ip = Ipv4Addr;
+ let _ = quote! { #(#ip)* };
+}
diff --git a/vendor/quote/tests/ui/not-repeatable.stderr b/vendor/quote/tests/ui/not-repeatable.stderr
new file mode 100644
index 000000000..cd5a1e4d1
--- /dev/null
+++ b/vendor/quote/tests/ui/not-repeatable.stderr
@@ -0,0 +1,47 @@
+error[E0599]: the method `quote_into_iter` exists for struct `Ipv4Addr`, but its trait bounds were not satisfied
+ --> tests/ui/not-repeatable.rs:7:13
+ |
+3 | struct Ipv4Addr;
+ | ----------------
+ | |
+ | method `quote_into_iter` not found for this
+ | doesn't satisfy `Ipv4Addr: Iterator`
+ | doesn't satisfy `Ipv4Addr: ToTokens`
+ | doesn't satisfy `Ipv4Addr: quote::__private::ext::RepIteratorExt`
+ | doesn't satisfy `Ipv4Addr: quote::__private::ext::RepToTokensExt`
+...
+7 | let _ = quote! { #(#ip)* };
+ | ^^^^^^^^^^^^^^^^^^ method cannot be called on `Ipv4Addr` due to unsatisfied trait bounds
+ |
+ = note: the following trait bounds were not satisfied:
+ `Ipv4Addr: Iterator`
+ which is required by `Ipv4Addr: quote::__private::ext::RepIteratorExt`
+ `&Ipv4Addr: Iterator`
+ which is required by `&Ipv4Addr: quote::__private::ext::RepIteratorExt`
+ `Ipv4Addr: ToTokens`
+ which is required by `Ipv4Addr: quote::__private::ext::RepToTokensExt`
+ `&mut Ipv4Addr: Iterator`
+ which is required by `&mut Ipv4Addr: quote::__private::ext::RepIteratorExt`
+note: the following traits must be implemented
+ --> $RUST/core/src/iter/traits/iterator.rs
+ |
+ | / pub trait Iterator {
+ | | /// The type of the elements being iterated over.
+ | | #[stable(feature = "rust1", since = "1.0.0")]
+ | | type Item;
+... |
+ | | }
+ | | }
+ | |__^
+ |
+ ::: src/to_tokens.rs
+ |
+ | / pub trait ToTokens {
+ | | /// Write `self` to the given `TokenStream`.
+ | | ///
+ | | /// The token append methods provided by the [`TokenStreamExt`] extension
+... |
+ | | }
+ | | }
+ | |_^
+ = note: this error originates in the macro `$crate::quote_bind_into_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/vendor/quote/tests/ui/wrong-type-span.rs b/vendor/quote/tests/ui/wrong-type-span.rs
new file mode 100644
index 000000000..d5601c8a0
--- /dev/null
+++ b/vendor/quote/tests/ui/wrong-type-span.rs
@@ -0,0 +1,7 @@
+use quote::quote_spanned;
+
+fn main() {
+ let span = "";
+ let x = 0i32;
+ quote_spanned!(span=> #x);
+}
diff --git a/vendor/quote/tests/ui/wrong-type-span.stderr b/vendor/quote/tests/ui/wrong-type-span.stderr
new file mode 100644
index 000000000..c774a4c3a
--- /dev/null
+++ b/vendor/quote/tests/ui/wrong-type-span.stderr
@@ -0,0 +1,8 @@
+error[E0308]: mismatched types
+ --> tests/ui/wrong-type-span.rs:6:20
+ |
+6 | quote_spanned!(span=> #x);
+ | ---------------^^^^------
+ | | |
+ | | expected struct `Span`, found `&str`
+ | expected due to this