Add AggregateKind::RawPtr
and enough support to compile
This commit is contained in:
parent
70df9d9a13
commit
e6b2b764ec
11 changed files with 84 additions and 3 deletions
|
@ -1351,6 +1351,21 @@ pub enum AggregateKind<'tcx> {
|
|||
Closure(DefId, GenericArgsRef<'tcx>),
|
||||
Coroutine(DefId, GenericArgsRef<'tcx>),
|
||||
CoroutineClosure(DefId, GenericArgsRef<'tcx>),
|
||||
|
||||
/// Construct a raw pointer from the data pointer and metadata.
|
||||
///
|
||||
/// The `Ty` here is the type of the *pointee*, not the pointer itself.
|
||||
/// The `Mutability` indicates whether this produces a `*const` or `*mut`.
|
||||
///
|
||||
/// The [`Rvalue::Aggregate`] operands for thus must be
|
||||
///
|
||||
/// 0. A raw pointer of matching mutability with any [`core::ptr::Thin`] pointee
|
||||
/// 1. A value of the appropriate [`core::ptr::Pointee::Metadata`] type
|
||||
///
|
||||
/// *Both* operands must always be included, even the unit value if this is
|
||||
/// creating a thin pointer. If you're just converting between thin pointers,
|
||||
/// you may want an [`Rvalue::Cast`] with [`CastKind::PtrToPtr`] instead.
|
||||
RawPtr(Ty<'tcx>, Mutability),
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq, Eq, TyEncodable, TyDecodable, Hash, HashStable)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue