Auto merge of #28957 - GuillaumeGomez:patch-5, r=Manishearth
cc @nagisa
This commit is contained in:
commit
beeaea4a70
7 changed files with 12 additions and 12 deletions
|
@ -82,7 +82,7 @@ unsafe {
|
||||||
with:
|
with:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
error: transmute called on types with different sizes: [u8; 4] (32 bits) to u64
|
error: transmute called with differently sized types: [u8; 4] (32 bits) to u64
|
||||||
(64 bits)
|
(64 bits)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -135,7 +135,7 @@ pub fn check_intrinsics(ccx: &CrateContext) {
|
||||||
|
|
||||||
if transmute_restriction.original_from != transmute_restriction.substituted_from {
|
if transmute_restriction.original_from != transmute_restriction.substituted_from {
|
||||||
span_transmute_size_error(ccx.sess(), transmute_restriction.span,
|
span_transmute_size_error(ccx.sess(), transmute_restriction.span,
|
||||||
&format!("transmute called on types with potentially different sizes: \
|
&format!("transmute called with differently sized types: \
|
||||||
{} (could be {} bit{}) to {} (could be {} bit{})",
|
{} (could be {} bit{}) to {} (could be {} bit{})",
|
||||||
transmute_restriction.original_from,
|
transmute_restriction.original_from,
|
||||||
from_type_size as usize,
|
from_type_size as usize,
|
||||||
|
@ -145,7 +145,7 @@ pub fn check_intrinsics(ccx: &CrateContext) {
|
||||||
if to_type_size == 1 {""} else {"s"}));
|
if to_type_size == 1 {""} else {"s"}));
|
||||||
} else {
|
} else {
|
||||||
span_transmute_size_error(ccx.sess(), transmute_restriction.span,
|
span_transmute_size_error(ccx.sess(), transmute_restriction.span,
|
||||||
&format!("transmute called on types with different sizes: \
|
&format!("transmute called with differently sized types: \
|
||||||
{} ({} bit{}) to {} ({} bit{})",
|
{} ({} bit{}) to {} ({} bit{})",
|
||||||
transmute_restriction.original_from,
|
transmute_restriction.original_from,
|
||||||
from_type_size as usize,
|
from_type_size as usize,
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// the error points to the start of the file, not the line with the
|
// the error points to the start of the file, not the line with the
|
||||||
// transmute
|
// transmute
|
||||||
|
|
||||||
// error-pattern: transmute called on types with different size
|
// error-pattern: transmute called with differently sized types
|
||||||
|
|
||||||
use std::mem;
|
use std::mem;
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// the error points to the start of the file, not the line with the
|
// the error points to the start of the file, not the line with the
|
||||||
// transmute
|
// transmute
|
||||||
|
|
||||||
// error-pattern: transmute called on types with different size
|
// error-pattern: transmute called with differently sized types
|
||||||
|
|
||||||
use std::mem;
|
use std::mem;
|
||||||
|
|
||||||
|
|
|
@ -16,12 +16,12 @@ use std::mem::transmute;
|
||||||
|
|
||||||
unsafe fn f() {
|
unsafe fn f() {
|
||||||
let _: i8 = transmute(16i16);
|
let _: i8 = transmute(16i16);
|
||||||
//~^ ERROR transmute called on types with different sizes
|
//~^ ERROR transmute called with differently sized types
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe fn g<T>(x: &T) {
|
unsafe fn g<T>(x: &T) {
|
||||||
let _: i8 = transmute(x);
|
let _: i8 = transmute(x);
|
||||||
//~^ ERROR transmute called on types with potentially different sizes
|
//~^ ERROR transmute called with differently sized types
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|
|
@ -15,11 +15,11 @@
|
||||||
use std::mem::transmute;
|
use std::mem::transmute;
|
||||||
|
|
||||||
fn a<T, U: ?Sized>(x: &[T]) -> &U {
|
fn a<T, U: ?Sized>(x: &[T]) -> &U {
|
||||||
unsafe { transmute(x) } //~ ERROR transmute called on types with potentially different sizes
|
unsafe { transmute(x) } //~ ERROR transmute called with differently sized types
|
||||||
}
|
}
|
||||||
|
|
||||||
fn b<T: ?Sized, U: ?Sized>(x: &T) -> &U {
|
fn b<T: ?Sized, U: ?Sized>(x: &T) -> &U {
|
||||||
unsafe { transmute(x) } //~ ERROR transmute called on types with potentially different sizes
|
unsafe { transmute(x) } //~ ERROR transmute called with differently sized types
|
||||||
}
|
}
|
||||||
|
|
||||||
fn c<T, U>(x: &T) -> &U {
|
fn c<T, U>(x: &T) -> &U {
|
||||||
|
@ -31,11 +31,11 @@ fn d<T, U>(x: &[T]) -> &[U] {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn e<T: ?Sized, U>(x: &T) -> &U {
|
fn e<T: ?Sized, U>(x: &T) -> &U {
|
||||||
unsafe { transmute(x) } //~ ERROR transmute called on types with potentially different sizes
|
unsafe { transmute(x) } //~ ERROR transmute called with differently sized types
|
||||||
}
|
}
|
||||||
|
|
||||||
fn f<T, U: ?Sized>(x: &T) -> &U {
|
fn f<T, U: ?Sized>(x: &T) -> &U {
|
||||||
unsafe { transmute(x) } //~ ERROR transmute called on types with potentially different sizes
|
unsafe { transmute(x) } //~ ERROR transmute called with differently sized types
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() { }
|
fn main() { }
|
||||||
|
|
|
@ -26,7 +26,7 @@ impl<T: ?Sized> Foo<T> {
|
||||||
|
|
||||||
fn n(x: &T) -> &isize {
|
fn n(x: &T) -> &isize {
|
||||||
// Not OK here, because T : Sized is not in scope.
|
// Not OK here, because T : Sized is not in scope.
|
||||||
unsafe { transmute(x) } //~ ERROR transmute called on types with potentially different sizes
|
unsafe { transmute(x) } //~ ERROR transmute called with differently sized types
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue