Skip to content

Commit dac4916

Browse files
committed
rustc: Resolve bounds of trait type parameters
1 parent 18da7fe commit dac4916

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

src/rustc/middle/resolve3.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2920,6 +2920,8 @@ class Resolver {
29202920
NormalRibKind))
29212921
|| {
29222922

2923+
self.resolve_type_parameters(type_parameters, visitor);
2924+
29232925
for methods.each |method| {
29242926
// Create a new rib for the method-specific type
29252927
// parameters.

src/test/run-pass/trait-bounds.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
trait connection {
2+
fn read() -> int;
3+
}
4+
5+
trait connection_factory<C: connection> {
6+
fn create() -> C;
7+
}
8+
9+
type my_connection = ();
10+
type my_connection_factory = ();
11+
12+
impl of connection for () {
13+
fn read() -> int { 43 }
14+
}
15+
16+
impl of connection_factory<my_connection> for my_connection_factory {
17+
fn create() -> my_connection { () }
18+
}
19+
20+
fn main() {
21+
let factory = ();
22+
let connection = factory.create();
23+
let result = connection.read();
24+
assert result == 43;
25+
}

0 commit comments

Comments
 (0)