File tree Expand file tree Collapse file tree 2 files changed +53
-0
lines changed
Expand file tree Collapse file tree 2 files changed +53
-0
lines changed Original file line number Diff line number Diff line change 1+ // Copyright 2015 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+ trait Foo { type T ; }
12+ trait Bar {
13+ type Foo : Foo ;
14+ type FooT = <<Self as Bar >:: Foo >:: T ; //~ ERROR ambiguous associated type
15+ }
16+
17+ fn main ( ) { }
Original file line number Diff line number Diff line change 1+ // Copyright 2015 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+ use std:: marker:: PhantomData ;
12+
13+ pub trait Routing < I > {
14+ type Output ;
15+ fn resolve ( & self , input : I ) ;
16+ }
17+
18+ pub trait ToRouting {
19+ type Input ;
20+ type Routing : ?Sized = Routing < Self :: Input , Output =( ) > ;
21+ fn to_routing ( self ) -> Self :: Routing ;
22+ }
23+
24+ pub struct Mount < I , R : Routing < I > > {
25+ action : R ,
26+ _marker : PhantomData < I >
27+ }
28+
29+ impl < I , R : Routing < I > > Mount < I , R > {
30+ pub fn create < T : ToRouting < Routing =R > > ( mount : & str , input : T ) {
31+ input. to_routing ( ) ;
32+ }
33+ }
34+
35+ fn main ( ) {
36+ }
You can’t perform that action at this time.
0 commit comments