-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
Closed
Labels
A-associated-itemsArea: Associated items (types, constants & functions)Area: Associated items (types, constants & functions)
Description
If I have an associated type that impls some trait or is some other known type, I can't treat it as so. Example (playpen link):
trait DoNothing {
type Output;
}
struct Bob;
impl Bob {
fn print() { println!("I AM BOB!"); }
}
impl DoNothing for Bob {
type Output = Bob;
}
type BobAlso = <Bob as DoNothing>::Output;
fn main() {
// works fine:
Bob::print();
// compiler error:
BobAlso::print();
}The type BobAlso is (or should be) just an alias for Bob, however when I try to call its print() function, the compiler complains that there is no print for <Bob as DoNothing>::Output without figuring out that that it is Bob.
jonysy and matthieu-m
Metadata
Metadata
Assignees
Labels
A-associated-itemsArea: Associated items (types, constants & functions)Area: Associated items (types, constants & functions)