Dati i seguenti:Impossibile digitare alias un enum generica specializzata
use std::fmt::Debug;
#[derive(Debug)]
enum A<T: Debug> {
X,
Y(T),
}
#[derive(Debug)]
struct B;
type C = A<B>;
// use A<B> as C; // Does not compile
posso usarlo come:
fn main() {
let val0 = A::X::<B>;
let val1 = A::Y::<B>(B);
println!("{:?}\t{:?}", val0, val1);
}
Ma poi per più di un parametro generico (o se A
, B
ecc erano nomi molto più lunghi quindi per alias ho provato il seguente ma non viene compilato:
fn main() {
let val0 = C::X;
let val1 = C::Y(B);
println!("{:?}\t{:?}", val0, val1);
}
con errori:
src/main.rs:656:16: 656:20 error: no associated item named `X` found for type `A<B>` in the current scope
src/main.rs:656 let val0 = C::X;
^~~~
src/main.rs:657:16: 657:20 error: no associated item named `Y` found for type `A<B>` in the current scope
src/main.rs:657 let val1 = C::Y(B);
come ricorda anche io sono in grado di utilizzare use
per risolvere il problema. C'è un modo per aggirarlo (perché scrivere tutto sembra essere ingombrante)?
rustc --version
rustc 1.9.0 (e4e8b6668 2016-05-18)
Suona come funzionalità mancanti ... –