2019-11-04 00:00:00 +00:00
|
|
|
// check-pass
|
2018-09-25 23:51:35 +02:00
|
|
|
#![allow(unused_variables)]
|
2015-01-01 11:16:44 -05:00
|
|
|
// Test that `<Type as Trait>::Output` and `Self::Output` are accepted as type annotations in let
|
|
|
|
// bindings
|
|
|
|
|
2015-03-22 13:13:15 -07:00
|
|
|
// pretty-expanded FIXME #23616
|
|
|
|
|
2015-01-01 11:16:44 -05:00
|
|
|
trait Int {
|
|
|
|
fn one() -> Self;
|
2015-03-25 17:06:52 -07:00
|
|
|
fn leading_zeros(self) -> usize;
|
2015-01-01 11:16:44 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
trait Foo {
|
|
|
|
type T : Int;
|
|
|
|
|
|
|
|
fn test(&self) {
|
|
|
|
let r: <Self as Foo>::T = Int::one();
|
|
|
|
let r: Self::T = Int::one();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|