2019-11-03 18:00:00 -06:00
|
|
|
// check-pass
|
2018-09-25 16:51:35 -05:00
|
|
|
#![allow(unused_variables)]
|
2015-01-01 10:16:44 -06:00
|
|
|
// Test that `<Type as Trait>::Output` and `Self::Output` are accepted as type annotations in let
|
|
|
|
// bindings
|
|
|
|
|
2015-03-22 15:13:15 -05:00
|
|
|
// pretty-expanded FIXME #23616
|
|
|
|
|
2015-01-01 10:16:44 -06:00
|
|
|
trait Int {
|
|
|
|
fn one() -> Self;
|
2015-03-25 19:06:52 -05:00
|
|
|
fn leading_zeros(self) -> usize;
|
2015-01-01 10:16:44 -06: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() {}
|