1
Fork 0

intern offsetof fields

This commit is contained in:
DrMeepster 2023-03-11 16:01:25 -08:00
parent 511e457c4b
commit 61f23e0003
8 changed files with 33 additions and 11 deletions

View file

@ -481,8 +481,8 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
}))))
}
ExprKind::OffsetOf { container, ref fields } => {
block.and(Rvalue::NullaryOp(NullOp::OffsetOf(fields.clone()), container))
ExprKind::OffsetOf { container, fields } => {
block.and(Rvalue::NullaryOp(NullOp::OffsetOf(fields), container))
}
ExprKind::Literal { .. }

View file

@ -667,7 +667,7 @@ impl<'tcx> Cx<'tcx> {
hir::ExprKind::OffsetOf(_, _) => {
let data = self.typeck_results.offset_of_data();
let &(container, ref indices) = data.get(expr.hir_id).unwrap();
let fields = indices.iter().copied().collect();
let fields = tcx.mk_fields_from_iter(indices.iter().copied());
ExprKind::OffsetOf { container, fields }
}