这给了我一个错误:
mod foo {
pub enum T {
Foo,
}
}
mod bar {
pub type T = ::foo::T;
}
fn main() {
let _ = bar::T::Foo; // error: no associated item named `Foo` found for type `foo::T` in the current scope
}
这样做的正确方法是什么?
答案 0 :(得分:5)
这是一个已知问题,#26264。
您应该pub use foo::T;
。 type
纯粹是一个别名,其意图是类型的组合和填充泛型(例如type Foo = Bar<Baz>;
),因此对于公共再出口,它无论如何都不会做你想要的。