summaryrefslogtreecommitdiffstats
path: root/tests/ui/where-clauses/where-clauses.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/where-clauses/where-clauses.rs')
-rw-r--r--tests/ui/where-clauses/where-clauses.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/ui/where-clauses/where-clauses.rs b/tests/ui/where-clauses/where-clauses.rs
new file mode 100644
index 000000000..905ef7c5e
--- /dev/null
+++ b/tests/ui/where-clauses/where-clauses.rs
@@ -0,0 +1,27 @@
+// run-pass
+trait Equal {
+ fn equal(&self, other: &Self) -> bool;
+ fn equals<T,U>(&self, this: &T, that: &T, x: &U, y: &U) -> bool
+ where T: Eq, U: Eq;
+}
+
+impl<T> Equal for T where T: Eq {
+ fn equal(&self, other: &T) -> bool {
+ self == other
+ }
+ fn equals<U,X>(&self, this: &U, other: &U, x: &X, y: &X) -> bool
+ where U: Eq, X: Eq {
+ this == other && x == y
+ }
+}
+
+fn equal<T>(x: &T, y: &T) -> bool where T: Eq {
+ x == y
+}
+
+fn main() {
+ println!("{}", equal(&1, &2));
+ println!("{}", equal(&1, &1));
+ println!("{}", "hello".equal(&"hello"));
+ println!("{}", "hello".equals::<isize,&str>(&1, &1, &"foo", &"bar"));
+}