为了在Rust中编写另一个lint,我需要确保Expr的类型实际上是Option<_>
(或指向一个的任何指针)。我已经完成了任何ptr
和rptr
的结论,并留下rustc::middle::ty
,在我的测试用例中调试到(手动格式化以获得更好的可读性):
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
}
然而,现在我有点迷失了 - 我怎么知道TyS是否实际上是一个选项&lt; _&gt;类型?