mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-17 09:23:05 +00:00
Do not check transmute if has non region infer
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
This commit is contained in:
parent
a28f3c88e5
commit
a60e267200
@ -3,7 +3,7 @@ use rustc_errors::struct_span_err;
|
||||
use rustc_hir as hir;
|
||||
use rustc_index::vec::Idx;
|
||||
use rustc_middle::ty::layout::{LayoutError, SizeSkeleton};
|
||||
use rustc_middle::ty::{self, Ty, TyCtxt};
|
||||
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitable};
|
||||
use rustc_target::abi::{Pointer, VariantIdx};
|
||||
|
||||
use super::FnCtxt;
|
||||
@ -46,7 +46,10 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
let from = normalize(from);
|
||||
let to = normalize(to);
|
||||
trace!(?from, ?to);
|
||||
|
||||
if from.has_non_region_infer() || to.has_non_region_infer() {
|
||||
// We can't check anything if there are inference variables.
|
||||
return;
|
||||
}
|
||||
// Transmutes that are only changing lifetimes are always ok.
|
||||
if from == to {
|
||||
return;
|
||||
|
10
src/test/ui/consts/issue-104609.rs
Normal file
10
src/test/ui/consts/issue-104609.rs
Normal file
@ -0,0 +1,10 @@
|
||||
fn foo() {
|
||||
oops;
|
||||
//~^ ERROR: cannot find value `oops` in this scope
|
||||
}
|
||||
|
||||
unsafe fn bar() {
|
||||
std::mem::transmute::<_, *mut _>(1_u8);
|
||||
}
|
||||
|
||||
fn main() {}
|
9
src/test/ui/consts/issue-104609.stderr
Normal file
9
src/test/ui/consts/issue-104609.stderr
Normal file
@ -0,0 +1,9 @@
|
||||
error[E0425]: cannot find value `oops` in this scope
|
||||
--> $DIR/issue-104609.rs:2:5
|
||||
|
|
||||
LL | oops;
|
||||
| ^^^^ not found in this scope
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0425`.
|
Loading…
Reference in New Issue
Block a user