如何找出 rustc::middle::ty::Ty 代表什么类型?
How to find out what type a rustc::middle::ty::Ty represents?
为了在 Rust 中编写另一个 lint,我需要确保 Expr 的类型实际上是 Option<_>
(或任何指向它的指针)。我已经走了任何 ptr
s 和 rptr
s 到他们的结论,并留下了 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 是否真的是一个 Option<_> 类型?
为了在 Rust 中编写另一个 lint,我需要确保 Expr 的类型实际上是 Option<_>
(或任何指向它的指针)。我已经走了任何 ptr
s 和 rptr
s 到他们的结论,并留下了 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 是否真的是一个 Option<_> 类型?