Auto merge of #106934 - DrMeepster:offset_of, r=WaffleLapkin
Add offset_of! macro (RFC 3308) Implements https://github.com/rust-lang/rfcs/pull/3308 (tracking issue #106655) by adding the built in macro `core::mem::offset_of`. Two of the future possibilities are also implemented: * Nested field accesses (without array indexing) * DST support (for `Sized` fields) I wrote this a few months ago, before the RFC merged. Now that it's merged, I decided to rebase and finish it. cc `@thomcc` (RFC author)
This commit is contained in:
commit
80a2ec49a4
83 changed files with 1355 additions and 42 deletions
|
@ -256,6 +256,7 @@ fn recurse_build<'tcx>(
|
|||
ExprKind::VarRef { .. }
|
||||
| ExprKind::UpvarRef { .. }
|
||||
| ExprKind::StaticRef { .. }
|
||||
| ExprKind::OffsetOf { .. }
|
||||
| ExprKind::ThreadLocalRef(_) => {
|
||||
error(GenericConstantTooComplexSub::OperationNotSupported(node.span))?
|
||||
}
|
||||
|
@ -347,6 +348,7 @@ impl<'a, 'tcx> IsThirPolymorphic<'a, 'tcx> {
|
|||
| thir::ExprKind::ZstLiteral { .. }
|
||||
| thir::ExprKind::StaticRef { .. }
|
||||
| thir::ExprKind::InlineAsm(_)
|
||||
| thir::ExprKind::OffsetOf { .. }
|
||||
| thir::ExprKind::ThreadLocalRef(_)
|
||||
| thir::ExprKind::Yield { .. } => false,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue