File tree Expand file tree Collapse file tree 2 files changed +58
-0
lines changed Expand file tree Collapse file tree 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