File tree 2 files changed +58
-0
lines changed
2 files changed +58
-0
lines changed Original file line number Diff line number Diff line change
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
+ pub trait Foo {
12
+ type Associated ;
13
+ }
14
+
15
+ pub struct X ;
16
+ pub struct Y ;
17
+
18
+
19
+ impl Foo for X {
20
+ type Associated = ( ) ;
21
+ }
22
+
23
+ impl Foo for Y {
24
+ type Associated = ( ) ;
25
+ }
26
+
27
+ impl X {
28
+ pub fn returns_sized < ' a > ( & ' a self ) -> impl Foo < Associated =( ) > + ' a {
29
+ X
30
+ }
31
+ }
32
+
33
+ impl Y {
34
+ pub fn returns_unsized < ' a > ( & ' a self ) -> Box < impl ?Sized + Foo < Associated =( ) > + ' a > {
35
+ Box :: new ( X )
36
+ }
37
+ }
Original file line number Diff line number Diff line change
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
+ // aux-build:extern-impl-trait.rs
12
+
13
+ #![ crate_name = "foo" ]
14
+
15
+ extern crate extern_impl_trait;
16
+
17
+ // @has 'foo/struct.X.html' '//code' "impl Foo<Associated = ()> + 'a"
18
+ pub use extern_impl_trait:: X ;
19
+
20
+ // @has 'foo/struct.Y.html' '//code' "impl ?Sized + Foo<Associated = ()> + 'a"
21
+ pub use extern_impl_trait:: Y ;
You can’t perform that action at this time.
0 commit comments