]> git.lizzy.rs Git - rust.git/blob - src/test/ui/trivial-bounds/trivial-bounds-leak.rs
Rollup merge of #53317 - estebank:abolish-ice, r=oli-obk
[rust.git] / src / test / ui / trivial-bounds / trivial-bounds-leak.rs
1 // Copyright 2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 // Check that false bounds don't leak
12 #![feature(trivial_bounds)]
13
14 pub trait Foo {
15     fn test(&self);
16 }
17
18 fn return_str() -> str where str: Sized {
19     *"Sized".to_string().into_boxed_str()
20 }
21
22 fn cant_return_str() -> str { //~ ERROR
23     *"Sized".to_string().into_boxed_str()
24 }
25
26 fn my_function() where i32: Foo
27 {
28     3i32.test();
29     Foo::test(&4i32);
30     generic_function(5i32);
31 }
32
33 fn foo() {
34     3i32.test(); //~ ERROR
35     Foo::test(&4i32); //~ ERROR
36     generic_function(5i32); //~ ERROR
37 }
38
39 fn generic_function<T: Foo>(t: T) {}
40
41 fn main() {}
42