about summary refs log tree commit diff
path: root/src/test/ui/traits/inductive-overflow/simultaneous.rs
diff options
context:
space:
mode:
authorBram van den Heuvel <bram@vandenheuvel.online>2021-02-08 23:15:45 +0100
committerBram van den Heuvel <bram@vandenheuvel.online>2021-02-09 14:19:35 +0100
commit0d96a79fb875a38df6d8f7216f094959c4de3761 (patch)
tree738a5dada0e1322599f272abf31a371ae414a126 /src/test/ui/traits/inductive-overflow/simultaneous.rs
parent921ec4b3fca17cc777766c240038d7d50ba98e0d (diff)
downloadrust-0d96a79fb875a38df6d8f7216f094959c4de3761.tar.gz
rust-0d96a79fb875a38df6d8f7216f094959c4de3761.zip
Organize trait test files
Diffstat (limited to 'src/test/ui/traits/inductive-overflow/simultaneous.rs')
-rw-r--r--src/test/ui/traits/inductive-overflow/simultaneous.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/ui/traits/inductive-overflow/simultaneous.rs b/src/test/ui/traits/inductive-overflow/simultaneous.rs
new file mode 100644
index 00000000000..40ac9214674
--- /dev/null
+++ b/src/test/ui/traits/inductive-overflow/simultaneous.rs
@@ -0,0 +1,20 @@
+// Regression test for #33344, initial version. This example allowed
+// arbitrary trait bounds to be synthesized.
+
+trait Tweedledum: IntoIterator {}
+trait Tweedledee: IntoIterator {}
+
+impl<T: Tweedledum> Tweedledee for T {}
+impl<T: Tweedledee> Tweedledum for T {}
+
+trait Combo: IntoIterator {}
+impl<T: Tweedledee + Tweedledum> Combo for T {}
+
+fn is_ee<T: Combo>(t: T) {
+    t.into_iter();
+}
+
+fn main() {
+    is_ee(4);
+    //~^ ERROR overflow evaluating the requirement `{integer}: Tweedle
+}