diff options
Diffstat (limited to 'src/test/ui/associated-types/associated-types-bound-failure.rs')
-rw-r--r-- | src/test/ui/associated-types/associated-types-bound-failure.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/ui/associated-types/associated-types-bound-failure.rs b/src/test/ui/associated-types/associated-types-bound-failure.rs new file mode 100644 index 000000000..31e073cc7 --- /dev/null +++ b/src/test/ui/associated-types/associated-types-bound-failure.rs @@ -0,0 +1,29 @@ +// run-rustfix +// Test equality constraints on associated types in a where clause. +#![allow(dead_code)] + +pub trait ToInt { + fn to_int(&self) -> isize; +} + +pub trait GetToInt +{ + type R; + + fn get(&self) -> <Self as GetToInt>::R; +} + +fn foo<G>(g: G) -> isize + where G : GetToInt +{ + ToInt::to_int(&g.get()) //~ ERROR E0277 +} + +fn bar<G : GetToInt>(g: G) -> isize + where G::R : ToInt +{ + ToInt::to_int(&g.get()) // OK +} + +pub fn main() { +} |