diff options
author | Dylan DPC <99973273+Dylan-DPC@users.noreply.github.com> | 2023-05-17 11:13:58 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-17 11:13:58 +0530 |
commit | 072074383627a6e5eb43c72522ae09010eb218c0 (patch) | |
tree | 8e9787b2c247c16a69503c34c9b7953739d09aec | |
parent | 71fdb95272ba1155cb0eacd7053d0eec18f1dab1 (diff) | |
parent | 35cf5726e3a7a16d97243bc6c23ff8173e2119de (diff) | |
download | rust-072074383627a6e5eb43c72522ae09010eb218c0.tar.gz |
Rollup merge of #111661 - clubby789:offset-of-erase-regions, r=compiler-errors
Erase regions of type in `offset_of!`
Fixes #111657
-rw-r--r-- | compiler/rustc_mir_build/src/build/expr/as_rvalue.rs | 7 | ||||
-rw-r--r-- | tests/ui/offset-of/offset-of-arg-count.rs | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/compiler/rustc_mir_build/src/build/expr/as_rvalue.rs b/compiler/rustc_mir_build/src/build/expr/as_rvalue.rs index c385b00692f..0105a265ffb 100644 --- a/compiler/rustc_mir_build/src/build/expr/as_rvalue.rs +++ b/compiler/rustc_mir_build/src/build/expr/as_rvalue.rs @@ -481,9 +481,10 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { })))) } - ExprKind::OffsetOf { container, fields } => { - block.and(Rvalue::NullaryOp(NullOp::OffsetOf(fields), container)) - } + ExprKind::OffsetOf { container, fields } => block.and(Rvalue::NullaryOp( + NullOp::OffsetOf(fields), + this.tcx.erase_regions(container), + )), ExprKind::Literal { .. } | ExprKind::NamedConst { .. } diff --git a/tests/ui/offset-of/offset-of-arg-count.rs b/tests/ui/offset-of/offset-of-arg-count.rs index 5e66e33f8a2..92a205f14d9 100644 --- a/tests/ui/offset-of/offset-of-arg-count.rs +++ b/tests/ui/offset-of/offset-of-arg-count.rs @@ -12,6 +12,11 @@ fn main() { offset_of!(S, f.,); //~ ERROR expected identifier offset_of!(S, f..); //~ ERROR no rules expected the token offset_of!(S, f..,); //~ ERROR no rules expected the token + offset_of!(Lt<'static>, bar); // issue #111657 + } struct S { f: u8, } +struct Lt<'a> { + bar: &'a (), +} |