Skip to content

Commit f4aaedb

Browse files
committed
Fallout in tests -- break test into a run-pass and compile-fail component
1 parent 532fcb2 commit f4aaedb

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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+
// Check that we get an error when you use `<Self as Get>::Value` in
12+
// the trait definition even if there is no default method.
13+
14+
trait Get {
15+
type Value;
16+
}
17+
18+
trait Other {
19+
fn okay<U:Get>(&self, foo: U, bar: <Self as Get>::Value);
20+
//~^ ERROR E0277
21+
}
22+
23+
impl Get for () {
24+
type Value = f32;
25+
}
26+
27+
impl Get for f64 {
28+
type Value = u32;
29+
}
30+
31+
impl Other for () {
32+
fn okay<U:Get>(&self, _foo: U, _bar: <Self as Get>::Value) { }
33+
}
34+
35+
impl Other for f64 {
36+
fn okay<U:Get>(&self, _foo: U, _bar: <Self as Get>::Value) { }
37+
}
38+
39+
fn main() { }

src/test/run-pass/associated-types-projection-to-unrelated-trait.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ trait Get {
2121
}
2222

2323
trait Other {
24-
fn okay<U:Get>(&self, foo: U, bar: <Self as Get>::Value);
24+
fn okay<U:Get>(&self, foo: U, bar: <Self as Get>::Value)
25+
where Self: Get;
2526
}
2627

2728
impl Get for () {

0 commit comments

Comments
 (0)