Per scrivere un altro lint in Rust, devo assicurarmi che il tipo di un Expr sia in realtà un Option<_>
(o qualsiasi puntatore a uno). Ho già camminato eventuali ptr
s e rptr
s alla loro conclusione e sono rimasto con un rustc::middle::ty
che nel mio caso di test esegue il debug di (formattato manualmente per una migliore leggibilità):Come scoprire che tipo rugc :: middle :: ty :: Ty rappresenta?
TyS {
sty: ty_enum(
DefId {
krate: 2,
node: 117199
},
Substs {
types: VecPerParamSpace {
TypeSpace: [
TyS {
sty: ty_int(i32),
flags: 0,
region_depth: 0
}
],
SelfSpace: [],
FnSpace: [],
},
regions: NonerasedRegions(
VecPerParamSpace {
TypeSpace: [],
SelfSpace: [],
FnSpace: [],
}
)
}
),
flags: 0,
region_depth: 0
}
Tuttavia, ora sto un po 'perso - Come faccio a sapere se il TyS è in realtà un tipo _ < _>?
Freddo. Ero persino in grado di '.zip' l'' iter' di 'Name's con una porzione di' & str's e confrontarli senza prima creare un Vec. – llogiq