summaryrefslogtreecommitdiffstats
path: root/src/test/ui/trivial-bounds/trivial-bounds-leak.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/trivial-bounds/trivial-bounds-leak.rs')
-rw-r--r--src/test/ui/trivial-bounds/trivial-bounds-leak.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/trivial-bounds/trivial-bounds-leak.rs b/src/test/ui/trivial-bounds/trivial-bounds-leak.rs
new file mode 100644
index 000000000..249051d80
--- /dev/null
+++ b/src/test/ui/trivial-bounds/trivial-bounds-leak.rs
@@ -0,0 +1,31 @@
+// Check that false bounds don't leak
+#![feature(trivial_bounds)]
+
+pub trait Foo {
+ fn test(&self);
+}
+
+fn return_str() -> str where str: Sized {
+ *"Sized".to_string().into_boxed_str()
+}
+
+fn cant_return_str() -> str { //~ ERROR
+ *"Sized".to_string().into_boxed_str()
+}
+
+fn my_function() where i32: Foo
+{
+ 3i32.test();
+ Foo::test(&4i32);
+ generic_function(5i32);
+}
+
+fn foo() {
+ 3i32.test(); //~ ERROR
+ Foo::test(&4i32); //~ ERROR
+ generic_function(5i32); //~ ERROR
+}
+
+fn generic_function<T: Foo>(t: T) {}
+
+fn main() {}