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