about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-10-22 23:57:11 +0000
committerbors <bors@rust-lang.org>2014-10-22 23:57:11 +0000
commit96991e9335e260d2684785ee97dc1af9cbed5aad (patch)
treebddc8702ea27c7bfc1c90c344b108ce96d2eeefa /src/test
parent7d7e40983972d128c74eaea1f92be1adaf45d647 (diff)
parent7b021859a4ea33bb0f5512649a5c9792648e9ad6 (diff)
auto merge of #18224 : nikomatsakis/rust/issue-17594, r=alexcrichton
Add test for issue #17594

Fixes #17594 
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/multidispatch-conditional-impl-not-considered.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/test/run-pass/multidispatch-conditional-impl-not-considered.rs b/src/test/run-pass/multidispatch-conditional-impl-not-considered.rs
new file mode 100644
index 00000000000..5db5a6267bf
--- /dev/null
+++ b/src/test/run-pass/multidispatch-conditional-impl-not-considered.rs
@@ -0,0 +1,33 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// 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.
+
+// Test that we correctly ignore the blanket impl
+// because (in this case) `T` does not impl `Clone`.
+//
+// Issue #17594.
+
+use std::cell::RefCell;
+
+trait Foo {
+    fn foo(&self) {}
+}
+
+impl<T> Foo for T where T: Clone {}
+
+struct Bar;
+
+impl Bar {
+    fn foo(&self) {}
+}
+
+fn main() {
+    let b = RefCell::new(Bar);
+    b.borrow().foo()
+}