Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
41
third-party/vendor/zerocopy/tests/trybuild.rs
vendored
Normal file
41
third-party/vendor/zerocopy/tests/trybuild.rs
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
// Copyright 2019 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
use testutil::ToolchainVersion;
|
||||
|
||||
#[test]
|
||||
#[cfg_attr(miri, ignore)]
|
||||
fn ui() {
|
||||
let version = ToolchainVersion::extract_from_pwd().unwrap();
|
||||
// See the doc comment on this method for an explanation of what this does
|
||||
// and why we store source files in different directories.
|
||||
let source_files_dirname = version.get_ui_source_files_dirname_and_maybe_print_warning();
|
||||
|
||||
let t = trybuild::TestCases::new();
|
||||
t.compile_fail(format!("tests/{source_files_dirname}/*.rs"));
|
||||
}
|
||||
|
||||
// The file `invalid-impls.rs` directly includes `src/macros.rs` in order to
|
||||
// test the `impl_or_verify!` macro which is defined in that file. Specifically,
|
||||
// it tests the verification portion of that macro, which is enabled when
|
||||
// `cfg(any(feature = "derive", test))`. While `--cfg test` is of course passed
|
||||
// to the code in the file you're reading right now, `trybuild` does not pass
|
||||
// `--cfg test` when it invokes Cargo. As a result, this `trybuild` test only
|
||||
// tests the correct behavior when the "derive" feature is enabled.
|
||||
#[cfg(feature = "derive")]
|
||||
#[test]
|
||||
#[cfg_attr(miri, ignore)]
|
||||
fn ui_invalid_impls() {
|
||||
let version = ToolchainVersion::extract_from_pwd().unwrap();
|
||||
// See the doc comment on this method for an explanation of what this does
|
||||
// and why we store source files in different directories.
|
||||
let source_files_dirname = version.get_ui_source_files_dirname_and_maybe_print_warning();
|
||||
|
||||
let t = trybuild::TestCases::new();
|
||||
t.compile_fail(format!("tests/{source_files_dirname}/invalid-impls/*.rs"));
|
||||
}
|
||||
12
third-party/vendor/zerocopy/tests/ui-msrv/include_value_not_from_bytes.rs
vendored
Normal file
12
third-party/vendor/zerocopy/tests/ui-msrv/include_value_not_from_bytes.rs
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright 2022 The Fuchsia Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#[macro_use]
|
||||
extern crate zerocopy;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// Should fail because `UnsafeCell<u32>: !FromBytes`.
|
||||
const NOT_FROM_BYTES: core::cell::UnsafeCell<u32> =
|
||||
include_value!("../../testdata/include_value/data");
|
||||
12
third-party/vendor/zerocopy/tests/ui-msrv/include_value_not_from_bytes.stderr
vendored
Normal file
12
third-party/vendor/zerocopy/tests/ui-msrv/include_value_not_from_bytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0277]: the trait bound `UnsafeCell<u32>: FromBytes` is not satisfied
|
||||
--> tests/ui-msrv/include_value_not_from_bytes.rs:12:5
|
||||
|
|
||||
12 | include_value!("../../testdata/include_value/data");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `FromBytes` is not implemented for `UnsafeCell<u32>`
|
||||
|
|
||||
note: required by a bound in `AssertIsFromBytes`
|
||||
--> tests/ui-msrv/include_value_not_from_bytes.rs:12:5
|
||||
|
|
||||
12 | include_value!("../../testdata/include_value/data");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsFromBytes`
|
||||
= note: this error originates in the macro `$crate::transmute` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
11
third-party/vendor/zerocopy/tests/ui-msrv/include_value_wrong_size.rs
vendored
Normal file
11
third-party/vendor/zerocopy/tests/ui-msrv/include_value_wrong_size.rs
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
// Copyright 2022 The Fuchsia Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#[macro_use]
|
||||
extern crate zerocopy;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// Should fail because the file is 4 bytes long, not 8.
|
||||
const WRONG_SIZE: u64 = include_value!("../../testdata/include_value/data");
|
||||
9
third-party/vendor/zerocopy/tests/ui-msrv/include_value_wrong_size.stderr
vendored
Normal file
9
third-party/vendor/zerocopy/tests/ui-msrv/include_value_wrong_size.stderr
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/include_value_wrong_size.rs:11:25
|
||||
|
|
||||
11 | const WRONG_SIZE: u64 = include_value!("../../testdata/include_value/data");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `[u8; 4]` (32 bits)
|
||||
= note: target type: `u64` (64 bits)
|
||||
= note: this error originates in the macro `$crate::transmute` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
29
third-party/vendor/zerocopy/tests/ui-msrv/invalid-impls/invalid-impls.rs
vendored
Normal file
29
third-party/vendor/zerocopy/tests/ui-msrv/invalid-impls/invalid-impls.rs
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
// Copyright 2022 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
// Since some macros from `macros.rs` are unused.
|
||||
#![allow(unused)]
|
||||
|
||||
extern crate zerocopy;
|
||||
extern crate zerocopy_derive;
|
||||
|
||||
include!("../../../src/macros.rs");
|
||||
|
||||
use zerocopy::*;
|
||||
use zerocopy_derive::*;
|
||||
|
||||
fn main() {}
|
||||
|
||||
#[derive(FromZeroes, FromBytes, AsBytes, Unaligned)]
|
||||
#[repr(transparent)]
|
||||
struct Foo<T>(T);
|
||||
|
||||
impl_or_verify!(T => FromZeroes for Foo<T>);
|
||||
impl_or_verify!(T => FromBytes for Foo<T>);
|
||||
impl_or_verify!(T => AsBytes for Foo<T>);
|
||||
impl_or_verify!(T => Unaligned for Foo<T>);
|
||||
127
third-party/vendor/zerocopy/tests/ui-msrv/invalid-impls/invalid-impls.stderr
vendored
Normal file
127
third-party/vendor/zerocopy/tests/ui-msrv/invalid-impls/invalid-impls.stderr
vendored
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
error[E0277]: the trait bound `T: zerocopy::FromZeroes` is not satisfied
|
||||
--> tests/ui-msrv/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| impl<$($tyvar $(: $(? $optbound +)* $($bound +)*)?),*> Subtrait for $ty {}
|
||||
| ^^^^^^^^ the trait `zerocopy::FromZeroes` is not implemented for `T`
|
||||
|
|
||||
::: tests/ui-msrv/invalid-impls/invalid-impls.rs:26:1
|
||||
|
|
||||
26 | impl_or_verify!(T => FromZeroes for Foo<T>);
|
||||
| ------------------------------------------- in this macro invocation
|
||||
|
|
||||
note: required because of the requirements on the impl of `zerocopy::FromZeroes` for `Foo<T>`
|
||||
--> tests/ui-msrv/invalid-impls/invalid-impls.rs:22:10
|
||||
|
|
||||
22 | #[derive(FromZeroes, FromBytes, AsBytes, Unaligned)]
|
||||
| ^^^^^^^^^^
|
||||
note: required by a bound in `_::Subtrait`
|
||||
--> tests/ui-msrv/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| trait Subtrait: $trait {}
|
||||
| ^^^^^^ required by this bound in `_::Subtrait`
|
||||
|
|
||||
::: tests/ui-msrv/invalid-impls/invalid-impls.rs:26:1
|
||||
|
|
||||
26 | impl_or_verify!(T => FromZeroes for Foo<T>);
|
||||
| ------------------------------------------- in this macro invocation
|
||||
= note: this error originates in the macro `impl_or_verify` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
26 | impl_or_verify!(T: zerocopy::FromZeroes => FromZeroes for Foo<T>);
|
||||
| ++++++++++++++++++++++
|
||||
|
||||
error[E0277]: the trait bound `T: zerocopy::FromBytes` is not satisfied
|
||||
--> tests/ui-msrv/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| impl<$($tyvar $(: $(? $optbound +)* $($bound +)*)?),*> Subtrait for $ty {}
|
||||
| ^^^^^^^^ the trait `zerocopy::FromBytes` is not implemented for `T`
|
||||
|
|
||||
::: tests/ui-msrv/invalid-impls/invalid-impls.rs:27:1
|
||||
|
|
||||
27 | impl_or_verify!(T => FromBytes for Foo<T>);
|
||||
| ------------------------------------------ in this macro invocation
|
||||
|
|
||||
note: required because of the requirements on the impl of `zerocopy::FromBytes` for `Foo<T>`
|
||||
--> tests/ui-msrv/invalid-impls/invalid-impls.rs:22:22
|
||||
|
|
||||
22 | #[derive(FromZeroes, FromBytes, AsBytes, Unaligned)]
|
||||
| ^^^^^^^^^
|
||||
note: required by a bound in `_::Subtrait`
|
||||
--> tests/ui-msrv/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| trait Subtrait: $trait {}
|
||||
| ^^^^^^ required by this bound in `_::Subtrait`
|
||||
|
|
||||
::: tests/ui-msrv/invalid-impls/invalid-impls.rs:27:1
|
||||
|
|
||||
27 | impl_or_verify!(T => FromBytes for Foo<T>);
|
||||
| ------------------------------------------ in this macro invocation
|
||||
= note: this error originates in the macro `impl_or_verify` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
27 | impl_or_verify!(T: zerocopy::FromBytes => FromBytes for Foo<T>);
|
||||
| +++++++++++++++++++++
|
||||
|
||||
error[E0277]: the trait bound `T: zerocopy::AsBytes` is not satisfied
|
||||
--> tests/ui-msrv/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| impl<$($tyvar $(: $(? $optbound +)* $($bound +)*)?),*> Subtrait for $ty {}
|
||||
| ^^^^^^^^ the trait `zerocopy::AsBytes` is not implemented for `T`
|
||||
|
|
||||
::: tests/ui-msrv/invalid-impls/invalid-impls.rs:28:1
|
||||
|
|
||||
28 | impl_or_verify!(T => AsBytes for Foo<T>);
|
||||
| ---------------------------------------- in this macro invocation
|
||||
|
|
||||
note: required because of the requirements on the impl of `zerocopy::AsBytes` for `Foo<T>`
|
||||
--> tests/ui-msrv/invalid-impls/invalid-impls.rs:22:33
|
||||
|
|
||||
22 | #[derive(FromZeroes, FromBytes, AsBytes, Unaligned)]
|
||||
| ^^^^^^^
|
||||
note: required by a bound in `_::Subtrait`
|
||||
--> tests/ui-msrv/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| trait Subtrait: $trait {}
|
||||
| ^^^^^^ required by this bound in `_::Subtrait`
|
||||
|
|
||||
::: tests/ui-msrv/invalid-impls/invalid-impls.rs:28:1
|
||||
|
|
||||
28 | impl_or_verify!(T => AsBytes for Foo<T>);
|
||||
| ---------------------------------------- in this macro invocation
|
||||
= note: this error originates in the macro `impl_or_verify` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
28 | impl_or_verify!(T: zerocopy::AsBytes => AsBytes for Foo<T>);
|
||||
| +++++++++++++++++++
|
||||
|
||||
error[E0277]: the trait bound `T: zerocopy::Unaligned` is not satisfied
|
||||
--> tests/ui-msrv/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| impl<$($tyvar $(: $(? $optbound +)* $($bound +)*)?),*> Subtrait for $ty {}
|
||||
| ^^^^^^^^ the trait `zerocopy::Unaligned` is not implemented for `T`
|
||||
|
|
||||
::: tests/ui-msrv/invalid-impls/invalid-impls.rs:29:1
|
||||
|
|
||||
29 | impl_or_verify!(T => Unaligned for Foo<T>);
|
||||
| ------------------------------------------ in this macro invocation
|
||||
|
|
||||
note: required because of the requirements on the impl of `zerocopy::Unaligned` for `Foo<T>`
|
||||
--> tests/ui-msrv/invalid-impls/invalid-impls.rs:22:42
|
||||
|
|
||||
22 | #[derive(FromZeroes, FromBytes, AsBytes, Unaligned)]
|
||||
| ^^^^^^^^^
|
||||
note: required by a bound in `_::Subtrait`
|
||||
--> tests/ui-msrv/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| trait Subtrait: $trait {}
|
||||
| ^^^^^^ required by this bound in `_::Subtrait`
|
||||
|
|
||||
::: tests/ui-msrv/invalid-impls/invalid-impls.rs:29:1
|
||||
|
|
||||
29 | impl_or_verify!(T => Unaligned for Foo<T>);
|
||||
| ------------------------------------------ in this macro invocation
|
||||
= note: this error originates in the macro `impl_or_verify` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
29 | impl_or_verify!(T: zerocopy::Unaligned => Unaligned for Foo<T>);
|
||||
| +++++++++++++++++++++
|
||||
99
third-party/vendor/zerocopy/tests/ui-msrv/max-align.rs
vendored
Normal file
99
third-party/vendor/zerocopy/tests/ui-msrv/max-align.rs
vendored
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
#[repr(C, align(1))]
|
||||
struct Align1;
|
||||
|
||||
#[repr(C, align(2))]
|
||||
struct Align2;
|
||||
|
||||
#[repr(C, align(4))]
|
||||
struct Align4;
|
||||
|
||||
#[repr(C, align(8))]
|
||||
struct Align8;
|
||||
|
||||
#[repr(C, align(16))]
|
||||
struct Align16;
|
||||
|
||||
#[repr(C, align(32))]
|
||||
struct Align32;
|
||||
|
||||
#[repr(C, align(64))]
|
||||
struct Align64;
|
||||
|
||||
#[repr(C, align(128))]
|
||||
struct Align128;
|
||||
|
||||
#[repr(C, align(256))]
|
||||
struct Align256;
|
||||
|
||||
#[repr(C, align(512))]
|
||||
struct Align512;
|
||||
|
||||
#[repr(C, align(1024))]
|
||||
struct Align1024;
|
||||
|
||||
#[repr(C, align(2048))]
|
||||
struct Align2048;
|
||||
|
||||
#[repr(C, align(4096))]
|
||||
struct Align4096;
|
||||
|
||||
#[repr(C, align(8192))]
|
||||
struct Align8192;
|
||||
|
||||
#[repr(C, align(16384))]
|
||||
struct Align16384;
|
||||
|
||||
#[repr(C, align(32768))]
|
||||
struct Align32768;
|
||||
|
||||
#[repr(C, align(65536))]
|
||||
struct Align65536;
|
||||
|
||||
#[repr(C, align(131072))]
|
||||
struct Align131072;
|
||||
|
||||
#[repr(C, align(262144))]
|
||||
struct Align262144;
|
||||
|
||||
#[repr(C, align(524288))]
|
||||
struct Align524288;
|
||||
|
||||
#[repr(C, align(1048576))]
|
||||
struct Align1048576;
|
||||
|
||||
#[repr(C, align(2097152))]
|
||||
struct Align2097152;
|
||||
|
||||
#[repr(C, align(4194304))]
|
||||
struct Align4194304;
|
||||
|
||||
#[repr(C, align(8388608))]
|
||||
struct Align8388608;
|
||||
|
||||
#[repr(C, align(16777216))]
|
||||
struct Align16777216;
|
||||
|
||||
#[repr(C, align(33554432))]
|
||||
struct Align33554432;
|
||||
|
||||
#[repr(C, align(67108864))]
|
||||
struct Align67108864;
|
||||
|
||||
#[repr(C, align(134217728))]
|
||||
struct Align13421772;
|
||||
|
||||
#[repr(C, align(268435456))]
|
||||
struct Align26843545;
|
||||
|
||||
#[repr(C, align(1073741824))]
|
||||
struct Align1073741824;
|
||||
|
||||
fn main() {}
|
||||
5
third-party/vendor/zerocopy/tests/ui-msrv/max-align.stderr
vendored
Normal file
5
third-party/vendor/zerocopy/tests/ui-msrv/max-align.stderr
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
error[E0589]: invalid `repr(align)` attribute: larger than 2^29
|
||||
--> tests/ui-msrv/max-align.rs:96:11
|
||||
|
|
||||
96 | #[repr(C, align(1073741824))]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-dst-not-frombytes.rs
vendored
Normal file
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-dst-not-frombytes.rs
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2022 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute` requires that the destination type implements `FromBytes`
|
||||
const DST_NOT_FROM_BYTES: NotZerocopy = transmute!(AU16(0));
|
||||
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-dst-not-frombytes.stderr
vendored
Normal file
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-dst-not-frombytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0277]: the trait bound `NotZerocopy: FromBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-dst-not-frombytes.rs:18:41
|
||||
|
|
||||
18 | const DST_NOT_FROM_BYTES: NotZerocopy = transmute!(AU16(0));
|
||||
| ^^^^^^^^^^^^^^^^^^^ the trait `FromBytes` is not implemented for `NotZerocopy`
|
||||
|
|
||||
note: required by a bound in `AssertIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-dst-not-frombytes.rs:18:41
|
||||
|
|
||||
18 | const DST_NOT_FROM_BYTES: NotZerocopy = transmute!(AU16(0));
|
||||
| ^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsFromBytes`
|
||||
= note: this error originates in the macro `transmute` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-alignment-increase.rs
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-alignment-increase.rs
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_mut!` does not support transmuting from a type of smaller
|
||||
// alignment to one of larger alignment.
|
||||
const INCREASE_ALIGNMENT: &mut AU16 = transmute_mut!(&mut [0u8; 2]);
|
||||
36
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-alignment-increase.stderr
vendored
Normal file
36
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-alignment-increase.stderr
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-mut-alignment-increase.rs:19:39
|
||||
|
|
||||
19 | const INCREASE_ALIGNMENT: &mut AU16 = transmute_mut!(&mut [0u8; 2]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `AlignOf<[u8; 2]>` (8 bits)
|
||||
= note: target type: `MaxAlignsOf<[u8; 2], AU16>` (16 bits)
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0658]: mutable references are not allowed in constants
|
||||
--> tests/ui-msrv/transmute-mut-alignment-increase.rs:19:54
|
||||
|
|
||||
19 | const INCREASE_ALIGNMENT: &mut AU16 = transmute_mut!(&mut [0u8; 2]);
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
|
||||
|
||||
error[E0015]: cannot call non-const fn `transmute_mut::<[u8; 2], AU16>` in constants
|
||||
--> tests/ui-msrv/transmute-mut-alignment-increase.rs:19:39
|
||||
|
|
||||
19 | const INCREASE_ALIGNMENT: &mut AU16 = transmute_mut!(&mut [0u8; 2]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: calls in constants are limited to constant functions, tuple structs and tuple variants
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> tests/ui-msrv/transmute-mut-alignment-increase.rs:19:59
|
||||
|
|
||||
19 | const INCREASE_ALIGNMENT: &mut AU16 = transmute_mut!(&mut [0u8; 2]);
|
||||
| --------------------^^^^^^^^-
|
||||
| | |
|
||||
| | creates a temporary which is freed while still in use
|
||||
| temporary value is freed at the end of this statement
|
||||
| using this value as a constant requires that borrow lasts for `'static`
|
||||
20
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-const.rs
vendored
Normal file
20
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-const.rs
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
const ARRAY_OF_U8S: [u8; 2] = [0u8; 2];
|
||||
|
||||
// `transmute_mut!` cannot, generally speaking, be used in const contexts.
|
||||
const CONST_CONTEXT: &mut [u8; 2] = transmute_mut!(&mut ARRAY_OF_U8S);
|
||||
41
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-const.stderr
vendored
Normal file
41
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-const.stderr
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
warning: taking a mutable reference to a `const` item
|
||||
--> tests/ui-msrv/transmute-mut-const.rs:20:52
|
||||
|
|
||||
20 | const CONST_CONTEXT: &mut [u8; 2] = transmute_mut!(&mut ARRAY_OF_U8S);
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `#[warn(const_item_mutation)]` on by default
|
||||
= note: each usage of a `const` item creates a new temporary
|
||||
= note: the mutable reference will refer to this temporary, not the original `const` item
|
||||
note: `const` item defined here
|
||||
--> tests/ui-msrv/transmute-mut-const.rs:17:1
|
||||
|
|
||||
17 | const ARRAY_OF_U8S: [u8; 2] = [0u8; 2];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0658]: mutable references are not allowed in constants
|
||||
--> tests/ui-msrv/transmute-mut-const.rs:20:52
|
||||
|
|
||||
20 | const CONST_CONTEXT: &mut [u8; 2] = transmute_mut!(&mut ARRAY_OF_U8S);
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
|
||||
|
||||
error[E0015]: cannot call non-const fn `transmute_mut::<[u8; 2], [u8; 2]>` in constants
|
||||
--> tests/ui-msrv/transmute-mut-const.rs:20:37
|
||||
|
|
||||
20 | const CONST_CONTEXT: &mut [u8; 2] = transmute_mut!(&mut ARRAY_OF_U8S);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: calls in constants are limited to constant functions, tuple structs and tuple variants
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> tests/ui-msrv/transmute-mut-const.rs:20:57
|
||||
|
|
||||
20 | const CONST_CONTEXT: &mut [u8; 2] = transmute_mut!(&mut ARRAY_OF_U8S);
|
||||
| --------------------^^^^^^^^^^^^-
|
||||
| | |
|
||||
| | creates a temporary which is freed while still in use
|
||||
| temporary value is freed at the end of this statement
|
||||
| using this value as a constant requires that borrow lasts for `'static`
|
||||
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-generic.rs
vendored
Normal file
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-generic.rs
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::{transmute_mut, AsBytes, FromBytes};
|
||||
|
||||
fn main() {}
|
||||
|
||||
fn transmute_mut<T: AsBytes + FromBytes>(u: &mut u8) -> &mut T {
|
||||
// `transmute_mut!` requires the destination type to be concrete.
|
||||
transmute_mut!(u)
|
||||
}
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-generic.stderr
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-generic.stderr
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-mut-dst-generic.rs:17:5
|
||||
|
|
||||
17 | transmute_mut!(u)
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `u8` (8 bits)
|
||||
= note: target type: `T` (this type does not have a fixed size)
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-mut-dst-generic.rs:17:5
|
||||
|
|
||||
17 | transmute_mut!(u)
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `AlignOf<u8>` (8 bits)
|
||||
= note: target type: `MaxAlignsOf<u8, T>` (size can vary because of T)
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-a-reference.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-a-reference.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_mut!` does not support transmuting into a non-reference
|
||||
// destination type.
|
||||
const DST_NOT_A_REFERENCE: usize = transmute_mut!(&mut 0u8);
|
||||
39
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-a-reference.stderr
vendored
Normal file
39
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-a-reference.stderr
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-mut-dst-not-a-reference.rs:17:36
|
||||
|
|
||||
17 | const DST_NOT_A_REFERENCE: usize = transmute_mut!(&mut 0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `&mut _`
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found mutable reference `&mut _`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-mut-dst-not-a-reference.rs:17:36
|
||||
|
|
||||
17 | const DST_NOT_A_REFERENCE: usize = transmute_mut!(&mut 0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `&mut _`
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found mutable reference `&mut _`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-mut-dst-not-a-reference.rs:17:36
|
||||
|
|
||||
17 | const DST_NOT_A_REFERENCE: usize = transmute_mut!(&mut 0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `&mut _`
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found mutable reference `&mut _`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-mut-dst-not-a-reference.rs:17:36
|
||||
|
|
||||
17 | const DST_NOT_A_REFERENCE: usize = transmute_mut!(&mut 0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `&mut _`
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found mutable reference `&mut _`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
24
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-asbytes.rs
vendored
Normal file
24
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-asbytes.rs
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
#[derive(zerocopy::FromZeroes, zerocopy::FromBytes, zerocopy::AsBytes)]
|
||||
#[repr(C)]
|
||||
struct Src;
|
||||
|
||||
#[derive(zerocopy::FromZeroes, zerocopy::FromBytes)]
|
||||
#[repr(C)]
|
||||
struct Dst;
|
||||
|
||||
// `transmute_mut` requires that the destination type implements `AsBytes`
|
||||
const DST_NOT_AS_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-asbytes.stderr
vendored
Normal file
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-asbytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0277]: the trait bound `Dst: AsBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-mut-dst-not-asbytes.rs:24:36
|
||||
|
|
||||
24 | const DST_NOT_AS_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsBytes` is not implemented for `Dst`
|
||||
|
|
||||
note: required by a bound in `AssertDstIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-mut-dst-not-asbytes.rs:24:36
|
||||
|
|
||||
24 | const DST_NOT_AS_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertDstIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
24
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-frombytes.rs
vendored
Normal file
24
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-frombytes.rs
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
#[derive(zerocopy::FromZeroes, zerocopy::FromBytes, zerocopy::AsBytes)]
|
||||
#[repr(C)]
|
||||
struct Src;
|
||||
|
||||
#[derive(zerocopy::AsBytes)]
|
||||
#[repr(C)]
|
||||
struct Dst;
|
||||
|
||||
// `transmute_mut` requires that the destination type implements `FromBytes`
|
||||
const DST_NOT_FROM_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-frombytes.stderr
vendored
Normal file
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-frombytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0277]: the trait bound `Dst: FromBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-mut-dst-not-frombytes.rs:24:38
|
||||
|
|
||||
24 | const DST_NOT_FROM_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `FromBytes` is not implemented for `Dst`
|
||||
|
|
||||
note: required by a bound in `AssertDstIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-mut-dst-not-frombytes.rs:24:38
|
||||
|
|
||||
24 | const DST_NOT_FROM_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertDstIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-unsized.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-unsized.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_mut!` does not support transmuting into an unsized destination
|
||||
// type.
|
||||
const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
108
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-unsized.stderr
vendored
Normal file
108
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-unsized.stderr
vendored
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertDstIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-mut-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertDstIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertDstIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-mut-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertDstIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all local variables must have a statically known size
|
||||
= help: unsized locals are gated as an unstable feature
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute`
|
||||
--> $RUST/core/src/intrinsics.rs
|
||||
|
|
||||
| pub fn transmute<T, U>(e: T) -> U;
|
||||
| ^ required by this bound in `transmute`
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf::<T, U>::new`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| impl<T, U> MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf::<T, U>::new`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute_mut`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub unsafe fn transmute_mut<'dst, 'src: 'dst, Src: 'src, Dst: 'dst>(
|
||||
| ^^^ required by this bound in `transmute_mut`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
15
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-illegal-lifetime.rs
vendored
Normal file
15
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-illegal-lifetime.rs
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
fn main() {}
|
||||
|
||||
fn increase_lifetime() {
|
||||
let mut x = 0u64;
|
||||
// It is illegal to increase the lifetime scope.
|
||||
let _: &'static mut u64 = zerocopy::transmute_mut!(&mut x);
|
||||
}
|
||||
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-illegal-lifetime.stderr
vendored
Normal file
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-illegal-lifetime.stderr
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
error[E0597]: `x` does not live long enough
|
||||
--> tests/ui-msrv/transmute-mut-illegal-lifetime.rs:14:56
|
||||
|
|
||||
14 | let _: &'static mut u64 = zerocopy::transmute_mut!(&mut x);
|
||||
| ---------------- ^^^^^^ borrowed value does not live long enough
|
||||
| |
|
||||
| type annotation requires that `x` is borrowed for `'static`
|
||||
15 | }
|
||||
| - `x` dropped here while still borrowed
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-size-decrease.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-size-decrease.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// We require that the size of the destination type is not smaller than the size
|
||||
// of the source type.
|
||||
const DECREASE_SIZE: &mut u8 = transmute_mut!(&mut [0u8; 2]);
|
||||
36
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-size-decrease.stderr
vendored
Normal file
36
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-size-decrease.stderr
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-mut-size-decrease.rs:17:32
|
||||
|
|
||||
17 | const DECREASE_SIZE: &mut u8 = transmute_mut!(&mut [0u8; 2]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `[u8; 2]` (16 bits)
|
||||
= note: target type: `u8` (8 bits)
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0658]: mutable references are not allowed in constants
|
||||
--> tests/ui-msrv/transmute-mut-size-decrease.rs:17:47
|
||||
|
|
||||
17 | const DECREASE_SIZE: &mut u8 = transmute_mut!(&mut [0u8; 2]);
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
|
||||
|
||||
error[E0015]: cannot call non-const fn `transmute_mut::<[u8; 2], u8>` in constants
|
||||
--> tests/ui-msrv/transmute-mut-size-decrease.rs:17:32
|
||||
|
|
||||
17 | const DECREASE_SIZE: &mut u8 = transmute_mut!(&mut [0u8; 2]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: calls in constants are limited to constant functions, tuple structs and tuple variants
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> tests/ui-msrv/transmute-mut-size-decrease.rs:17:52
|
||||
|
|
||||
17 | const DECREASE_SIZE: &mut u8 = transmute_mut!(&mut [0u8; 2]);
|
||||
| --------------------^^^^^^^^-
|
||||
| | |
|
||||
| | creates a temporary which is freed while still in use
|
||||
| temporary value is freed at the end of this statement
|
||||
| using this value as a constant requires that borrow lasts for `'static`
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-size-increase.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-size-increase.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_mut!` does not support transmuting from a smaller type to a larger
|
||||
// one.
|
||||
const INCREASE_SIZE: &mut [u8; 2] = transmute_mut!(&mut 0u8);
|
||||
36
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-size-increase.stderr
vendored
Normal file
36
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-size-increase.stderr
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-mut-size-increase.rs:17:37
|
||||
|
|
||||
17 | const INCREASE_SIZE: &mut [u8; 2] = transmute_mut!(&mut 0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `u8` (8 bits)
|
||||
= note: target type: `[u8; 2]` (16 bits)
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0658]: mutable references are not allowed in constants
|
||||
--> tests/ui-msrv/transmute-mut-size-increase.rs:17:52
|
||||
|
|
||||
17 | const INCREASE_SIZE: &mut [u8; 2] = transmute_mut!(&mut 0u8);
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
|
||||
|
||||
error[E0015]: cannot call non-const fn `transmute_mut::<u8, [u8; 2]>` in constants
|
||||
--> tests/ui-msrv/transmute-mut-size-increase.rs:17:37
|
||||
|
|
||||
17 | const INCREASE_SIZE: &mut [u8; 2] = transmute_mut!(&mut 0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: calls in constants are limited to constant functions, tuple structs and tuple variants
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> tests/ui-msrv/transmute-mut-size-increase.rs:17:57
|
||||
|
|
||||
17 | const INCREASE_SIZE: &mut [u8; 2] = transmute_mut!(&mut 0u8);
|
||||
| --------------------^^^-
|
||||
| | |
|
||||
| | creates a temporary which is freed while still in use
|
||||
| temporary value is freed at the end of this statement
|
||||
| using this value as a constant requires that borrow lasts for `'static`
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-generic.rs
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-generic.rs
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::{transmute_mut, AsBytes, FromBytes};
|
||||
|
||||
fn main() {}
|
||||
|
||||
fn transmute_mut<T: AsBytes + FromBytes, U: AsBytes + FromBytes>(t: &mut T) -> &mut U {
|
||||
// `transmute_mut!` requires the source and destination types to be
|
||||
// concrete.
|
||||
transmute_mut!(t)
|
||||
}
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-generic.stderr
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-generic.stderr
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-generic.rs:18:5
|
||||
|
|
||||
18 | transmute_mut!(t)
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `T` (this type does not have a fixed size)
|
||||
= note: target type: `U` (this type does not have a fixed size)
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-generic.rs:18:5
|
||||
|
|
||||
18 | transmute_mut!(t)
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `AlignOf<T>` (size can vary because of T)
|
||||
= note: target type: `MaxAlignsOf<T, U>` (size can vary because of T)
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-not-references.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-not-references.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_mut!` does not support transmuting between non-reference source
|
||||
// and destination types.
|
||||
const SRC_DST_NOT_REFERENCES: &mut usize = transmute_mut!(0usize);
|
||||
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-not-references.stderr
vendored
Normal file
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-not-references.stderr
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-not-references.rs:17:59
|
||||
|
|
||||
17 | const SRC_DST_NOT_REFERENCES: &mut usize = transmute_mut!(0usize);
|
||||
| ---------------^^^^^^-
|
||||
| | |
|
||||
| | expected `&mut _`, found `usize`
|
||||
| | help: consider mutably borrowing here: `&mut 0usize`
|
||||
| expected due to this
|
||||
|
|
||||
= note: expected mutable reference `&mut _`
|
||||
found type `usize`
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-unsized.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-unsized.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_mut!` does not support transmuting between unsized source and
|
||||
// destination types.
|
||||
const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
237
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-unsized.stderr
vendored
Normal file
237
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-unsized.stderr
vendored
Normal file
|
|
@ -0,0 +1,237 @@
|
|||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertSrcIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertSrcIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertSrcIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertSrcIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertDstIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertDstIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertDstIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertDstIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all local variables must have a statically known size
|
||||
= help: unsized locals are gated as an unstable feature
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute`
|
||||
--> $RUST/core/src/intrinsics.rs
|
||||
|
|
||||
| pub fn transmute<T, U>(e: T) -> U;
|
||||
| ^ required by this bound in `transmute`
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf::<T>::into_t`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| impl<T> AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf::<T>::into_t`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: the left-hand-side of an assignment must have a statically known size
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub struct AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf::<T, U>::new`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| impl<T, U> MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf::<T, U>::new`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub struct AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all local variables must have a statically known size
|
||||
= help: unsized locals are gated as an unstable feature
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute_mut`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub unsafe fn transmute_mut<'dst, 'src: 'dst, Src: 'src, Dst: 'dst>(
|
||||
| ^^^ required by this bound in `transmute_mut`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-dst-unsized.rs:17:36
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &mut [u8] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all function arguments must have a statically known size
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-generic.rs
vendored
Normal file
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-generic.rs
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::{transmute_mut, AsBytes};
|
||||
|
||||
fn main() {}
|
||||
|
||||
fn transmute_mut<T: AsBytes + FromBytes>(t: &mut T) -> &mut u8 {
|
||||
// `transmute_mut!` requires the source type to be concrete.
|
||||
transmute_mut!(t)
|
||||
}
|
||||
10
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-generic.stderr
vendored
Normal file
10
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-generic.stderr
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
error[E0405]: cannot find trait `FromBytes` in this scope
|
||||
--> tests/ui-msrv/transmute-mut-src-generic.rs:15:31
|
||||
|
|
||||
15 | fn transmute_mut<T: AsBytes + FromBytes>(t: &mut T) -> &mut u8 {
|
||||
| ^^^^^^^^^ not found in this scope
|
||||
|
|
||||
help: consider importing this trait
|
||||
|
|
||||
11 | use zerocopy::FromBytes;
|
||||
|
|
||||
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-immutable.rs
vendored
Normal file
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-immutable.rs
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
fn ref_src_immutable() {
|
||||
// `transmute_mut!` requires that its source type be a mutable reference.
|
||||
let _: &mut u8 = transmute_mut!(&0u8);
|
||||
}
|
||||
11
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-immutable.stderr
vendored
Normal file
11
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-immutable.stderr
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-mut-src-immutable.rs:17:37
|
||||
|
|
||||
17 | let _: &mut u8 = transmute_mut!(&0u8);
|
||||
| ---------------^^^^-
|
||||
| | |
|
||||
| | types differ in mutability
|
||||
| expected due to this
|
||||
|
|
||||
= note: expected mutable reference `&mut _`
|
||||
found reference `&u8`
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-a-reference.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-a-reference.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_mut!` does not support transmuting from a non-reference source
|
||||
// type.
|
||||
const SRC_NOT_A_REFERENCE: &mut u8 = transmute_mut!(0usize);
|
||||
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-a-reference.stderr
vendored
Normal file
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-a-reference.stderr
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-mut-src-not-a-reference.rs:17:53
|
||||
|
|
||||
17 | const SRC_NOT_A_REFERENCE: &mut u8 = transmute_mut!(0usize);
|
||||
| ---------------^^^^^^-
|
||||
| | |
|
||||
| | expected `&mut _`, found `usize`
|
||||
| | help: consider mutably borrowing here: `&mut 0usize`
|
||||
| expected due to this
|
||||
|
|
||||
= note: expected mutable reference `&mut _`
|
||||
found type `usize`
|
||||
24
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-asbytes.rs
vendored
Normal file
24
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-asbytes.rs
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
#[derive(zerocopy::FromZeroes, zerocopy::FromBytes)]
|
||||
#[repr(C)]
|
||||
struct Src;
|
||||
|
||||
#[derive(zerocopy::FromZeroes, zerocopy::FromBytes, zerocopy::AsBytes)]
|
||||
#[repr(C)]
|
||||
struct Dst;
|
||||
|
||||
// `transmute_mut` requires that the source type implements `AsBytes`
|
||||
const SRC_NOT_AS_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
25
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-asbytes.stderr
vendored
Normal file
25
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-asbytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
error[E0277]: the trait bound `Src: AsBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-mut-src-not-asbytes.rs:24:36
|
||||
|
|
||||
24 | const SRC_NOT_AS_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsBytes` is not implemented for `Src`
|
||||
|
|
||||
note: required by a bound in `AssertSrcIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-not-asbytes.rs:24:36
|
||||
|
|
||||
24 | const SRC_NOT_AS_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the trait bound `Src: AsBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-mut-src-not-asbytes.rs:24:36
|
||||
|
|
||||
24 | const SRC_NOT_AS_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsBytes` is not implemented for `Src`
|
||||
|
|
||||
note: required by a bound in `AssertSrcIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-not-asbytes.rs:24:36
|
||||
|
|
||||
24 | const SRC_NOT_AS_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
24
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-frombytes.rs
vendored
Normal file
24
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-frombytes.rs
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
#[derive(zerocopy::AsBytes)]
|
||||
#[repr(C)]
|
||||
struct Src;
|
||||
|
||||
#[derive(zerocopy::FromZeroes, zerocopy::FromBytes, zerocopy::AsBytes)]
|
||||
#[repr(C)]
|
||||
struct Dst;
|
||||
|
||||
// `transmute_mut` requires that the source type implements `FromBytes`
|
||||
const SRC_NOT_FROM_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
25
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-frombytes.stderr
vendored
Normal file
25
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-frombytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
error[E0277]: the trait bound `Src: FromBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-mut-src-not-frombytes.rs:24:38
|
||||
|
|
||||
24 | const SRC_NOT_FROM_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `FromBytes` is not implemented for `Src`
|
||||
|
|
||||
note: required by a bound in `AssertSrcIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-not-frombytes.rs:24:38
|
||||
|
|
||||
24 | const SRC_NOT_FROM_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the trait bound `Src: FromBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-mut-src-not-frombytes.rs:24:38
|
||||
|
|
||||
24 | const SRC_NOT_FROM_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `FromBytes` is not implemented for `Src`
|
||||
|
|
||||
note: required by a bound in `AssertSrcIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-not-frombytes.rs:24:38
|
||||
|
|
||||
24 | const SRC_NOT_FROM_BYTES: &mut Dst = transmute_mut!(&mut Src);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
16
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-unsized.rs
vendored
Normal file
16
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-unsized.rs
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_mut!` does not support transmuting from an unsized source type.
|
||||
const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
198
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-unsized.stderr
vendored
Normal file
198
third-party/vendor/zerocopy/tests/ui-msrv/transmute-mut-src-unsized.stderr
vendored
Normal file
|
|
@ -0,0 +1,198 @@
|
|||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertSrcIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertSrcIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertSrcIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertSrcIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertSrcIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all local variables must have a statically known size
|
||||
= help: unsized locals are gated as an unstable feature
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute`
|
||||
--> $RUST/core/src/intrinsics.rs
|
||||
|
|
||||
| pub fn transmute<T, U>(e: T) -> U;
|
||||
| ^ required by this bound in `transmute`
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf::<T>::into_t`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| impl<T> AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf::<T>::into_t`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: the left-hand-side of an assignment must have a statically known size
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub struct AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf::<T, U>::new`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| impl<T, U> MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf::<T, U>::new`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub struct AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute_mut`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub unsafe fn transmute_mut<'dst, 'src: 'dst, Src: 'src, Dst: 'dst>(
|
||||
| ^^^ required by this bound in `transmute_mut`
|
||||
= note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-mut-src-unsized.rs:16:35
|
||||
|
|
||||
16 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all function arguments must have a statically known size
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
20
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ptr-to-usize.rs
vendored
Normal file
20
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ptr-to-usize.rs
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2022 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// It is unclear whether we can or should support this transmutation, especially
|
||||
// in a const context. This test ensures that even if such a transmutation
|
||||
// becomes valid due to the requisite implementations of `FromBytes` being
|
||||
// added, that we re-examine whether it should specifically be valid in a const
|
||||
// context.
|
||||
const POINTER_VALUE: usize = transmute!(&0usize as *const usize);
|
||||
37
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ptr-to-usize.stderr
vendored
Normal file
37
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ptr-to-usize.stderr
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
error[E0277]: the trait bound `*const usize: AsBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-ptr-to-usize.rs:20:30
|
||||
|
|
||||
20 | const POINTER_VALUE: usize = transmute!(&0usize as *const usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsBytes` is not implemented for `*const usize`
|
||||
|
|
||||
= help: the following implementations were found:
|
||||
<usize as AsBytes>
|
||||
<f32 as AsBytes>
|
||||
<f64 as AsBytes>
|
||||
<i128 as AsBytes>
|
||||
and $N others
|
||||
note: required by a bound in `AssertIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-ptr-to-usize.rs:20:30
|
||||
|
|
||||
20 | const POINTER_VALUE: usize = transmute!(&0usize as *const usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsAsBytes`
|
||||
= note: this error originates in the macro `transmute` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the trait bound `*const usize: AsBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-ptr-to-usize.rs:20:30
|
||||
|
|
||||
20 | const POINTER_VALUE: usize = transmute!(&0usize as *const usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsBytes` is not implemented for `*const usize`
|
||||
|
|
||||
= help: the following implementations were found:
|
||||
<usize as AsBytes>
|
||||
<f32 as AsBytes>
|
||||
<f64 as AsBytes>
|
||||
<i128 as AsBytes>
|
||||
and $N others
|
||||
note: required by a bound in `AssertIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-ptr-to-usize.rs:20:30
|
||||
|
|
||||
20 | const POINTER_VALUE: usize = transmute!(&0usize as *const usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsAsBytes`
|
||||
= note: this error originates in the macro `transmute` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-alignment-increase.rs
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-alignment-increase.rs
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_ref!` does not support transmuting from a type of smaller
|
||||
// alignment to one of larger alignment.
|
||||
const INCREASE_ALIGNMENT: &AU16 = transmute_ref!(&[0u8; 2]);
|
||||
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-alignment-increase.stderr
vendored
Normal file
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-alignment-increase.stderr
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-ref-alignment-increase.rs:19:35
|
||||
|
|
||||
19 | const INCREASE_ALIGNMENT: &AU16 = transmute_ref!(&[0u8; 2]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `AlignOf<[u8; 2]>` (8 bits)
|
||||
= note: target type: `MaxAlignsOf<[u8; 2], AU16>` (16 bits)
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-generic.rs
vendored
Normal file
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-generic.rs
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::{transmute_ref, FromBytes};
|
||||
|
||||
fn main() {}
|
||||
|
||||
fn transmute_ref<T: FromBytes>(u: &u8) -> &T {
|
||||
// `transmute_ref!` requires the destination type to be concrete.
|
||||
transmute_ref!(u)
|
||||
}
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-generic.stderr
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-generic.stderr
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-ref-dst-generic.rs:17:5
|
||||
|
|
||||
17 | transmute_ref!(u)
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `u8` (8 bits)
|
||||
= note: target type: `T` (this type does not have a fixed size)
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-ref-dst-generic.rs:17:5
|
||||
|
|
||||
17 | transmute_ref!(u)
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `AlignOf<u8>` (8 bits)
|
||||
= note: target type: `MaxAlignsOf<u8, T>` (size can vary because of T)
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-mutable.rs
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-mutable.rs
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
fn ref_dst_mutable() {
|
||||
// `transmute_ref!` requires that its destination type be an immutable
|
||||
// reference.
|
||||
let _: &mut u8 = transmute_ref!(&0u8);
|
||||
}
|
||||
29
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-mutable.stderr
vendored
Normal file
29
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-mutable.stderr
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-dst-mutable.rs:18:22
|
||||
|
|
||||
18 | let _: &mut u8 = transmute_ref!(&0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^ types differ in mutability
|
||||
|
|
||||
= note: expected mutable reference `&mut u8`
|
||||
found reference `&_`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-dst-mutable.rs:18:22
|
||||
|
|
||||
18 | let _: &mut u8 = transmute_ref!(&0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^ types differ in mutability
|
||||
|
|
||||
= note: expected mutable reference `&mut u8`
|
||||
found reference `&_`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-dst-mutable.rs:18:22
|
||||
|
|
||||
18 | let _: &mut u8 = transmute_ref!(&0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^ types differ in mutability
|
||||
|
|
||||
= note: expected mutable reference `&mut u8`
|
||||
found reference `&_`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-a-reference.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-a-reference.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_ref!` does not support transmuting into a non-reference
|
||||
// destination type.
|
||||
const DST_NOT_A_REFERENCE: usize = transmute_ref!(&0u8);
|
||||
29
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-a-reference.stderr
vendored
Normal file
29
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-a-reference.stderr
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-dst-not-a-reference.rs:17:36
|
||||
|
|
||||
17 | const DST_NOT_A_REFERENCE: usize = transmute_ref!(&0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^ expected `usize`, found reference
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found reference `&_`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-dst-not-a-reference.rs:17:36
|
||||
|
|
||||
17 | const DST_NOT_A_REFERENCE: usize = transmute_ref!(&0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^ expected `usize`, found reference
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found reference `&_`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-dst-not-a-reference.rs:17:36
|
||||
|
|
||||
17 | const DST_NOT_A_REFERENCE: usize = transmute_ref!(&0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^ expected `usize`, found reference
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found reference `&_`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-frombytes.rs
vendored
Normal file
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-frombytes.rs
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_ref` requires that the destination type implements `FromBytes`
|
||||
const DST_NOT_FROM_BYTES: &NotZerocopy = transmute_ref!(&AU16(0));
|
||||
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-frombytes.stderr
vendored
Normal file
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-frombytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0277]: the trait bound `NotZerocopy: FromBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-ref-dst-not-frombytes.rs:18:42
|
||||
|
|
||||
18 | const DST_NOT_FROM_BYTES: &NotZerocopy = transmute_ref!(&AU16(0));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `FromBytes` is not implemented for `NotZerocopy`
|
||||
|
|
||||
note: required by a bound in `AssertIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-ref-dst-not-frombytes.rs:18:42
|
||||
|
|
||||
18 | const DST_NOT_FROM_BYTES: &NotZerocopy = transmute_ref!(&AU16(0));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-unsized.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-unsized.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_ref!` does not support transmuting into an unsized destination
|
||||
// type.
|
||||
const DST_UNSIZED: &[u8] = transmute_ref!(&[0u8; 1]);
|
||||
94
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-unsized.stderr
vendored
Normal file
94
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-unsized.stderr
vendored
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-dst-unsized.rs:17:28
|
||||
|
|
||||
17 | const DST_UNSIZED: &[u8] = transmute_ref!(&[0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-ref-dst-unsized.rs:17:28
|
||||
|
|
||||
17 | const DST_UNSIZED: &[u8] = transmute_ref!(&[0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-dst-unsized.rs:17:28
|
||||
|
|
||||
17 | const DST_UNSIZED: &[u8] = transmute_ref!(&[0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all local variables must have a statically known size
|
||||
= help: unsized locals are gated as an unstable feature
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-dst-unsized.rs:17:28
|
||||
|
|
||||
17 | const DST_UNSIZED: &[u8] = transmute_ref!(&[0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-dst-unsized.rs:17:28
|
||||
|
|
||||
17 | const DST_UNSIZED: &[u8] = transmute_ref!(&[0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute`
|
||||
--> $RUST/core/src/intrinsics.rs
|
||||
|
|
||||
| pub fn transmute<T, U>(e: T) -> U;
|
||||
| ^ required by this bound in `transmute`
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-dst-unsized.rs:17:28
|
||||
|
|
||||
17 | const DST_UNSIZED: &[u8] = transmute_ref!(&[0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf::<T, U>::new`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| impl<T, U> MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf::<T, U>::new`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-dst-unsized.rs:17:28
|
||||
|
|
||||
17 | const DST_UNSIZED: &[u8] = transmute_ref!(&[0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-dst-unsized.rs:17:28
|
||||
|
|
||||
17 | const DST_UNSIZED: &[u8] = transmute_ref!(&[0u8; 1]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute_ref`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub const unsafe fn transmute_ref<'dst, 'src: 'dst, Src: 'src, Dst: 'dst>(
|
||||
| ^^^ required by this bound in `transmute_ref`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
15
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-illegal-lifetime.rs
vendored
Normal file
15
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-illegal-lifetime.rs
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
fn main() {}
|
||||
|
||||
fn increase_lifetime() {
|
||||
let x = 0u64;
|
||||
// It is illegal to increase the lifetime scope.
|
||||
let _: &'static u64 = zerocopy::transmute_ref!(&x);
|
||||
}
|
||||
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-illegal-lifetime.stderr
vendored
Normal file
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-illegal-lifetime.stderr
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
error[E0597]: `x` does not live long enough
|
||||
--> tests/ui-msrv/transmute-ref-illegal-lifetime.rs:14:52
|
||||
|
|
||||
14 | let _: &'static u64 = zerocopy::transmute_ref!(&x);
|
||||
| ------------ ^^ borrowed value does not live long enough
|
||||
| |
|
||||
| type annotation requires that `x` is borrowed for `'static`
|
||||
15 | }
|
||||
| - `x` dropped here while still borrowed
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-size-decrease.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-size-decrease.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// Although this is not a soundness requirement, we currently require that the
|
||||
// size of the destination type is not smaller than the size of the source type.
|
||||
const DECREASE_SIZE: &u8 = transmute_ref!(&[0u8; 2]);
|
||||
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-size-decrease.stderr
vendored
Normal file
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-size-decrease.stderr
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-ref-size-decrease.rs:17:28
|
||||
|
|
||||
17 | const DECREASE_SIZE: &u8 = transmute_ref!(&[0u8; 2]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `[u8; 2]` (16 bits)
|
||||
= note: target type: `u8` (8 bits)
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-size-increase.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-size-increase.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_ref!` does not support transmuting from a smaller type to a larger
|
||||
// one.
|
||||
const INCREASE_SIZE: &[u8; 2] = transmute_ref!(&0u8);
|
||||
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-size-increase.stderr
vendored
Normal file
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-size-increase.stderr
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-ref-size-increase.rs:17:33
|
||||
|
|
||||
17 | const INCREASE_SIZE: &[u8; 2] = transmute_ref!(&0u8);
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `u8` (8 bits)
|
||||
= note: target type: `[u8; 2]` (16 bits)
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-generic.rs
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-generic.rs
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::{transmute_ref, AsBytes, FromBytes};
|
||||
|
||||
fn main() {}
|
||||
|
||||
fn transmute_ref<T: AsBytes, U: FromBytes>(t: &T) -> &U {
|
||||
// `transmute_ref!` requires the source and destination types to be
|
||||
// concrete.
|
||||
transmute_ref!(t)
|
||||
}
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-generic.stderr
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-generic.stderr
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-generic.rs:18:5
|
||||
|
|
||||
18 | transmute_ref!(t)
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `T` (this type does not have a fixed size)
|
||||
= note: target type: `U` (this type does not have a fixed size)
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-generic.rs:18:5
|
||||
|
|
||||
18 | transmute_ref!(t)
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `AlignOf<T>` (size can vary because of T)
|
||||
= note: target type: `MaxAlignsOf<T, U>` (size can vary because of T)
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-not-references.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-not-references.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_ref!` does not support transmuting between non-reference source
|
||||
// and destination types.
|
||||
const SRC_DST_NOT_REFERENCES: usize = transmute_ref!(0usize);
|
||||
42
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-not-references.stderr
vendored
Normal file
42
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-not-references.stderr
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-not-references.rs:17:54
|
||||
|
|
||||
17 | const SRC_DST_NOT_REFERENCES: usize = transmute_ref!(0usize);
|
||||
| ---------------^^^^^^-
|
||||
| | |
|
||||
| | expected reference, found `usize`
|
||||
| | help: consider borrowing here: `&0usize`
|
||||
| expected due to this
|
||||
|
|
||||
= note: expected reference `&_`
|
||||
found type `usize`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-not-references.rs:17:39
|
||||
|
|
||||
17 | const SRC_DST_NOT_REFERENCES: usize = transmute_ref!(0usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found reference
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found reference `&_`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-not-references.rs:17:39
|
||||
|
|
||||
17 | const SRC_DST_NOT_REFERENCES: usize = transmute_ref!(0usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found reference
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found reference `&_`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-not-references.rs:17:39
|
||||
|
|
||||
17 | const SRC_DST_NOT_REFERENCES: usize = transmute_ref!(0usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found reference
|
||||
|
|
||||
= note: expected type `usize`
|
||||
found reference `&_`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-unsized.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-unsized.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_ref!` does not support transmuting between unsized source and
|
||||
// destination types.
|
||||
const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
195
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-unsized.stderr
vendored
Normal file
195
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-unsized.stderr
vendored
Normal file
|
|
@ -0,0 +1,195 @@
|
|||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertIsFromBytes`
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsFromBytes`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all local variables must have a statically known size
|
||||
= help: unsized locals are gated as an unstable feature
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute`
|
||||
--> $RUST/core/src/intrinsics.rs
|
||||
|
|
||||
| pub fn transmute<T, U>(e: T) -> U;
|
||||
| ^ required by this bound in `transmute`
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf::<T>::into_t`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| impl<T> AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf::<T>::into_t`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: the left-hand-side of an assignment must have a statically known size
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub struct AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf::<T, U>::new`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| impl<T, U> MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf::<T, U>::new`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub struct AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all local variables must have a statically known size
|
||||
= help: unsized locals are gated as an unstable feature
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute_ref`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub const unsafe fn transmute_ref<'dst, 'src: 'dst, Src: 'src, Dst: 'dst>(
|
||||
| ^^^ required by this bound in `transmute_ref`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-dst-unsized.rs:17:32
|
||||
|
|
||||
17 | const SRC_DST_UNSIZED: &[u8] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all function arguments must have a statically known size
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-generic.rs
vendored
Normal file
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-generic.rs
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::{transmute_ref, AsBytes};
|
||||
|
||||
fn main() {}
|
||||
|
||||
fn transmute_ref<T: AsBytes>(t: &T) -> &u8 {
|
||||
// `transmute_ref!` requires the source type to be concrete.
|
||||
transmute_ref!(t)
|
||||
}
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-generic.stderr
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-generic.stderr
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-ref-src-generic.rs:17:5
|
||||
|
|
||||
17 | transmute_ref!(t)
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `T` (this type does not have a fixed size)
|
||||
= note: target type: `u8` (8 bits)
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-ref-src-generic.rs:17:5
|
||||
|
|
||||
17 | transmute_ref!(t)
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `AlignOf<T>` (size can vary because of T)
|
||||
= note: target type: `MaxAlignsOf<T, u8>` (size can vary because of T)
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-a-reference.rs
vendored
Normal file
17
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-a-reference.rs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_ref!` does not support transmuting from a non-reference source
|
||||
// type.
|
||||
const SRC_NOT_A_REFERENCE: &u8 = transmute_ref!(0usize);
|
||||
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-a-reference.stderr
vendored
Normal file
12
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-a-reference.stderr
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0308]: mismatched types
|
||||
--> tests/ui-msrv/transmute-ref-src-not-a-reference.rs:17:49
|
||||
|
|
||||
17 | const SRC_NOT_A_REFERENCE: &u8 = transmute_ref!(0usize);
|
||||
| ---------------^^^^^^-
|
||||
| | |
|
||||
| | expected reference, found `usize`
|
||||
| | help: consider borrowing here: `&0usize`
|
||||
| expected due to this
|
||||
|
|
||||
= note: expected reference `&_`
|
||||
found type `usize`
|
||||
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-asbytes.rs
vendored
Normal file
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-asbytes.rs
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_ref` requires that the source type implements `AsBytes`
|
||||
const SRC_NOT_AS_BYTES: &AU16 = transmute_ref!(&NotZerocopy(AU16(0)));
|
||||
25
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-asbytes.stderr
vendored
Normal file
25
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-asbytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
error[E0277]: the trait bound `NotZerocopy<AU16>: AsBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-ref-src-not-asbytes.rs:18:33
|
||||
|
|
||||
18 | const SRC_NOT_AS_BYTES: &AU16 = transmute_ref!(&NotZerocopy(AU16(0)));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsBytes` is not implemented for `NotZerocopy<AU16>`
|
||||
|
|
||||
note: required by a bound in `AssertIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-ref-src-not-asbytes.rs:18:33
|
||||
|
|
||||
18 | const SRC_NOT_AS_BYTES: &AU16 = transmute_ref!(&NotZerocopy(AU16(0)));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the trait bound `NotZerocopy<AU16>: AsBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-ref-src-not-asbytes.rs:18:33
|
||||
|
|
||||
18 | const SRC_NOT_AS_BYTES: &AU16 = transmute_ref!(&NotZerocopy(AU16(0)));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsBytes` is not implemented for `NotZerocopy<AU16>`
|
||||
|
|
||||
note: required by a bound in `AssertIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-ref-src-not-asbytes.rs:18:33
|
||||
|
|
||||
18 | const SRC_NOT_AS_BYTES: &AU16 = transmute_ref!(&NotZerocopy(AU16(0)));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
16
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-unsized.rs
vendored
Normal file
16
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-unsized.rs
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_ref;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_ref!` does not support transmuting from an unsized source type.
|
||||
const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
170
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-unsized.stderr
vendored
Normal file
170
third-party/vendor/zerocopy/tests/ui-msrv/transmute-ref-src-unsized.stderr
vendored
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AssertIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsAsBytes`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all local variables must have a statically known size
|
||||
= help: unsized locals are gated as an unstable feature
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute`
|
||||
--> $RUST/core/src/intrinsics.rs
|
||||
|
|
||||
| pub fn transmute<T, U>(e: T) -> U;
|
||||
| ^ required by this bound in `transmute`
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf::<T>::into_t`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| impl<T> AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf::<T>::into_t`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: the left-hand-side of an assignment must have a statically known size
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub struct AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf::<T, U>::new`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| impl<T, U> MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf::<T, U>::new`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `MaxAlignsOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub union MaxAlignsOf<T, U> {
|
||||
| ^ required by this bound in `MaxAlignsOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `AlignOf`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub struct AlignOf<T> {
|
||||
| ^ required by this bound in `AlignOf`
|
||||
= note: this error originates in the macro `$crate::assert_align_gt_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `transmute_ref`
|
||||
--> src/macro_util.rs
|
||||
|
|
||||
| pub const unsafe fn transmute_ref<'dst, 'src: 'dst, Src: 'src, Dst: 'dst>(
|
||||
| ^^^ required by this bound in `transmute_ref`
|
||||
= note: this error originates in the macro `transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> tests/ui-msrv/transmute-ref-src-unsized.rs:16:31
|
||||
|
|
||||
16 | const SRC_UNSIZED: &[u8; 1] = transmute_ref!(&[0u8][..]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
= note: all function arguments must have a statically known size
|
||||
= note: this error originates in the macro `$crate::assert_size_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-size-decrease.rs
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-size-decrease.rs
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// Although this is not a soundness requirement, we currently require that the
|
||||
// size of the destination type is not smaller than the size of the source type.
|
||||
const DECREASE_SIZE: u8 = transmute!(AU16(0));
|
||||
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-size-decrease.stderr
vendored
Normal file
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-size-decrease.stderr
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-size-decrease.rs:19:27
|
||||
|
|
||||
19 | const DECREASE_SIZE: u8 = transmute!(AU16(0));
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `AU16` (16 bits)
|
||||
= note: target type: `u8` (8 bits)
|
||||
= note: this error originates in the macro `transmute` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-size-increase.rs
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-msrv/transmute-size-increase.rs
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute!` does not support transmuting from a smaller type to a larger
|
||||
// one.
|
||||
const INCREASE_SIZE: AU16 = transmute!(0u8);
|
||||
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-size-increase.stderr
vendored
Normal file
9
third-party/vendor/zerocopy/tests/ui-msrv/transmute-size-increase.stderr
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-msrv/transmute-size-increase.rs:19:29
|
||||
|
|
||||
19 | const INCREASE_SIZE: AU16 = transmute!(0u8);
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `u8` (8 bits)
|
||||
= note: target type: `AU16` (16 bits)
|
||||
= note: this error originates in the macro `transmute` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-src-not-asbytes.rs
vendored
Normal file
18
third-party/vendor/zerocopy/tests/ui-msrv/transmute-src-not-asbytes.rs
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute` requires that the source type implements `AsBytes`
|
||||
const SRC_NOT_AS_BYTES: AU16 = transmute!(NotZerocopy(AU16(0)));
|
||||
25
third-party/vendor/zerocopy/tests/ui-msrv/transmute-src-not-asbytes.stderr
vendored
Normal file
25
third-party/vendor/zerocopy/tests/ui-msrv/transmute-src-not-asbytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
error[E0277]: the trait bound `NotZerocopy<AU16>: AsBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-src-not-asbytes.rs:18:32
|
||||
|
|
||||
18 | const SRC_NOT_AS_BYTES: AU16 = transmute!(NotZerocopy(AU16(0)));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsBytes` is not implemented for `NotZerocopy<AU16>`
|
||||
|
|
||||
note: required by a bound in `AssertIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-src-not-asbytes.rs:18:32
|
||||
|
|
||||
18 | const SRC_NOT_AS_BYTES: AU16 = transmute!(NotZerocopy(AU16(0)));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsAsBytes`
|
||||
= note: this error originates in the macro `transmute` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the trait bound `NotZerocopy<AU16>: AsBytes` is not satisfied
|
||||
--> tests/ui-msrv/transmute-src-not-asbytes.rs:18:32
|
||||
|
|
||||
18 | const SRC_NOT_AS_BYTES: AU16 = transmute!(NotZerocopy(AU16(0)));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsBytes` is not implemented for `NotZerocopy<AU16>`
|
||||
|
|
||||
note: required by a bound in `AssertIsAsBytes`
|
||||
--> tests/ui-msrv/transmute-src-not-asbytes.rs:18:32
|
||||
|
|
||||
18 | const SRC_NOT_AS_BYTES: AU16 = transmute!(NotZerocopy(AU16(0)));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsAsBytes`
|
||||
= note: this error originates in the macro `transmute` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
12
third-party/vendor/zerocopy/tests/ui-nightly/include_value_not_from_bytes.rs
vendored
Normal file
12
third-party/vendor/zerocopy/tests/ui-nightly/include_value_not_from_bytes.rs
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright 2022 The Fuchsia Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#[macro_use]
|
||||
extern crate zerocopy;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// Should fail because `UnsafeCell<u32>: !FromBytes`.
|
||||
const NOT_FROM_BYTES: core::cell::UnsafeCell<u32> =
|
||||
include_value!("../../testdata/include_value/data");
|
||||
25
third-party/vendor/zerocopy/tests/ui-nightly/include_value_not_from_bytes.stderr
vendored
Normal file
25
third-party/vendor/zerocopy/tests/ui-nightly/include_value_not_from_bytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
error[E0277]: the trait bound `UnsafeCell<u32>: FromBytes` is not satisfied
|
||||
--> tests/ui-nightly/include_value_not_from_bytes.rs:12:5
|
||||
|
|
||||
12 | include_value!("../../testdata/include_value/data");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| the trait `FromBytes` is not implemented for `UnsafeCell<u32>`
|
||||
| required by a bound introduced by this call
|
||||
|
|
||||
= help: the following other types implement trait `FromBytes`:
|
||||
isize
|
||||
i8
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i128
|
||||
usize
|
||||
u8
|
||||
and $N others
|
||||
note: required by a bound in `AssertIsFromBytes`
|
||||
--> tests/ui-nightly/include_value_not_from_bytes.rs:12:5
|
||||
|
|
||||
12 | include_value!("../../testdata/include_value/data");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsFromBytes`
|
||||
= note: this error originates in the macro `$crate::transmute` which comes from the expansion of the macro `include_value` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
11
third-party/vendor/zerocopy/tests/ui-nightly/include_value_wrong_size.rs
vendored
Normal file
11
third-party/vendor/zerocopy/tests/ui-nightly/include_value_wrong_size.rs
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
// Copyright 2022 The Fuchsia Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#[macro_use]
|
||||
extern crate zerocopy;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// Should fail because the file is 4 bytes long, not 8.
|
||||
const WRONG_SIZE: u64 = include_value!("../../testdata/include_value/data");
|
||||
9
third-party/vendor/zerocopy/tests/ui-nightly/include_value_wrong_size.stderr
vendored
Normal file
9
third-party/vendor/zerocopy/tests/ui-nightly/include_value_wrong_size.stderr
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
|
||||
--> tests/ui-nightly/include_value_wrong_size.rs:11:25
|
||||
|
|
||||
11 | const WRONG_SIZE: u64 = include_value!("../../testdata/include_value/data");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: source type: `[u8; 4]` (32 bits)
|
||||
= note: target type: `u64` (64 bits)
|
||||
= note: this error originates in the macro `$crate::transmute` which comes from the expansion of the macro `include_value` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
29
third-party/vendor/zerocopy/tests/ui-nightly/invalid-impls/invalid-impls.rs
vendored
Normal file
29
third-party/vendor/zerocopy/tests/ui-nightly/invalid-impls/invalid-impls.rs
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
// Copyright 2022 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
// Since some macros from `macros.rs` are unused.
|
||||
#![allow(unused)]
|
||||
|
||||
extern crate zerocopy;
|
||||
extern crate zerocopy_derive;
|
||||
|
||||
include!("../../../src/macros.rs");
|
||||
|
||||
use zerocopy::*;
|
||||
use zerocopy_derive::*;
|
||||
|
||||
fn main() {}
|
||||
|
||||
#[derive(FromZeroes, FromBytes, AsBytes, Unaligned)]
|
||||
#[repr(transparent)]
|
||||
struct Foo<T>(T);
|
||||
|
||||
impl_or_verify!(T => FromZeroes for Foo<T>);
|
||||
impl_or_verify!(T => FromBytes for Foo<T>);
|
||||
impl_or_verify!(T => AsBytes for Foo<T>);
|
||||
impl_or_verify!(T => Unaligned for Foo<T>);
|
||||
107
third-party/vendor/zerocopy/tests/ui-nightly/invalid-impls/invalid-impls.stderr
vendored
Normal file
107
third-party/vendor/zerocopy/tests/ui-nightly/invalid-impls/invalid-impls.stderr
vendored
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
error[E0277]: the trait bound `T: zerocopy::FromZeroes` is not satisfied
|
||||
--> tests/ui-nightly/invalid-impls/invalid-impls.rs:26:37
|
||||
|
|
||||
26 | impl_or_verify!(T => FromZeroes for Foo<T>);
|
||||
| ^^^^^^ the trait `zerocopy::FromZeroes` is not implemented for `T`
|
||||
|
|
||||
note: required for `Foo<T>` to implement `zerocopy::FromZeroes`
|
||||
--> tests/ui-nightly/invalid-impls/invalid-impls.rs:22:10
|
||||
|
|
||||
22 | #[derive(FromZeroes, FromBytes, AsBytes, Unaligned)]
|
||||
| ^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
|
||||
note: required by a bound in `_::Subtrait`
|
||||
--> tests/ui-nightly/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| trait Subtrait: $trait {}
|
||||
| ^^^^^^ required by this bound in `Subtrait`
|
||||
|
|
||||
::: tests/ui-nightly/invalid-impls/invalid-impls.rs:26:1
|
||||
|
|
||||
26 | impl_or_verify!(T => FromZeroes for Foo<T>);
|
||||
| ------------------------------------------- in this macro invocation
|
||||
= note: this error originates in the derive macro `FromZeroes` which comes from the expansion of the macro `impl_or_verify` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
26 | impl_or_verify!(T: zerocopy::FromZeroes => FromZeroes for Foo<T>);
|
||||
| ++++++++++++++++++++++
|
||||
|
||||
error[E0277]: the trait bound `T: zerocopy::FromBytes` is not satisfied
|
||||
--> tests/ui-nightly/invalid-impls/invalid-impls.rs:27:36
|
||||
|
|
||||
27 | impl_or_verify!(T => FromBytes for Foo<T>);
|
||||
| ^^^^^^ the trait `zerocopy::FromBytes` is not implemented for `T`
|
||||
|
|
||||
note: required for `Foo<T>` to implement `zerocopy::FromBytes`
|
||||
--> tests/ui-nightly/invalid-impls/invalid-impls.rs:22:22
|
||||
|
|
||||
22 | #[derive(FromZeroes, FromBytes, AsBytes, Unaligned)]
|
||||
| ^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
|
||||
note: required by a bound in `_::Subtrait`
|
||||
--> tests/ui-nightly/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| trait Subtrait: $trait {}
|
||||
| ^^^^^^ required by this bound in `Subtrait`
|
||||
|
|
||||
::: tests/ui-nightly/invalid-impls/invalid-impls.rs:27:1
|
||||
|
|
||||
27 | impl_or_verify!(T => FromBytes for Foo<T>);
|
||||
| ------------------------------------------ in this macro invocation
|
||||
= note: this error originates in the derive macro `FromBytes` which comes from the expansion of the macro `impl_or_verify` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
27 | impl_or_verify!(T: zerocopy::FromBytes => FromBytes for Foo<T>);
|
||||
| +++++++++++++++++++++
|
||||
|
||||
error[E0277]: the trait bound `T: zerocopy::AsBytes` is not satisfied
|
||||
--> tests/ui-nightly/invalid-impls/invalid-impls.rs:28:34
|
||||
|
|
||||
28 | impl_or_verify!(T => AsBytes for Foo<T>);
|
||||
| ^^^^^^ the trait `zerocopy::AsBytes` is not implemented for `T`
|
||||
|
|
||||
note: required for `Foo<T>` to implement `zerocopy::AsBytes`
|
||||
--> tests/ui-nightly/invalid-impls/invalid-impls.rs:22:33
|
||||
|
|
||||
22 | #[derive(FromZeroes, FromBytes, AsBytes, Unaligned)]
|
||||
| ^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
|
||||
note: required by a bound in `_::Subtrait`
|
||||
--> tests/ui-nightly/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| trait Subtrait: $trait {}
|
||||
| ^^^^^^ required by this bound in `Subtrait`
|
||||
|
|
||||
::: tests/ui-nightly/invalid-impls/invalid-impls.rs:28:1
|
||||
|
|
||||
28 | impl_or_verify!(T => AsBytes for Foo<T>);
|
||||
| ---------------------------------------- in this macro invocation
|
||||
= note: this error originates in the derive macro `AsBytes` which comes from the expansion of the macro `impl_or_verify` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
28 | impl_or_verify!(T: zerocopy::AsBytes => AsBytes for Foo<T>);
|
||||
| +++++++++++++++++++
|
||||
|
||||
error[E0277]: the trait bound `T: zerocopy::Unaligned` is not satisfied
|
||||
--> tests/ui-nightly/invalid-impls/invalid-impls.rs:29:36
|
||||
|
|
||||
29 | impl_or_verify!(T => Unaligned for Foo<T>);
|
||||
| ^^^^^^ the trait `zerocopy::Unaligned` is not implemented for `T`
|
||||
|
|
||||
note: required for `Foo<T>` to implement `zerocopy::Unaligned`
|
||||
--> tests/ui-nightly/invalid-impls/invalid-impls.rs:22:42
|
||||
|
|
||||
22 | #[derive(FromZeroes, FromBytes, AsBytes, Unaligned)]
|
||||
| ^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
|
||||
note: required by a bound in `_::Subtrait`
|
||||
--> tests/ui-nightly/invalid-impls/../../../src/macros.rs
|
||||
|
|
||||
| trait Subtrait: $trait {}
|
||||
| ^^^^^^ required by this bound in `Subtrait`
|
||||
|
|
||||
::: tests/ui-nightly/invalid-impls/invalid-impls.rs:29:1
|
||||
|
|
||||
29 | impl_or_verify!(T => Unaligned for Foo<T>);
|
||||
| ------------------------------------------ in this macro invocation
|
||||
= note: this error originates in the derive macro `Unaligned` which comes from the expansion of the macro `impl_or_verify` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider restricting type parameter `T`
|
||||
|
|
||||
29 | impl_or_verify!(T: zerocopy::Unaligned => Unaligned for Foo<T>);
|
||||
| +++++++++++++++++++++
|
||||
99
third-party/vendor/zerocopy/tests/ui-nightly/max-align.rs
vendored
Normal file
99
third-party/vendor/zerocopy/tests/ui-nightly/max-align.rs
vendored
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
#[repr(C, align(1))]
|
||||
struct Align1;
|
||||
|
||||
#[repr(C, align(2))]
|
||||
struct Align2;
|
||||
|
||||
#[repr(C, align(4))]
|
||||
struct Align4;
|
||||
|
||||
#[repr(C, align(8))]
|
||||
struct Align8;
|
||||
|
||||
#[repr(C, align(16))]
|
||||
struct Align16;
|
||||
|
||||
#[repr(C, align(32))]
|
||||
struct Align32;
|
||||
|
||||
#[repr(C, align(64))]
|
||||
struct Align64;
|
||||
|
||||
#[repr(C, align(128))]
|
||||
struct Align128;
|
||||
|
||||
#[repr(C, align(256))]
|
||||
struct Align256;
|
||||
|
||||
#[repr(C, align(512))]
|
||||
struct Align512;
|
||||
|
||||
#[repr(C, align(1024))]
|
||||
struct Align1024;
|
||||
|
||||
#[repr(C, align(2048))]
|
||||
struct Align2048;
|
||||
|
||||
#[repr(C, align(4096))]
|
||||
struct Align4096;
|
||||
|
||||
#[repr(C, align(8192))]
|
||||
struct Align8192;
|
||||
|
||||
#[repr(C, align(16384))]
|
||||
struct Align16384;
|
||||
|
||||
#[repr(C, align(32768))]
|
||||
struct Align32768;
|
||||
|
||||
#[repr(C, align(65536))]
|
||||
struct Align65536;
|
||||
|
||||
#[repr(C, align(131072))]
|
||||
struct Align131072;
|
||||
|
||||
#[repr(C, align(262144))]
|
||||
struct Align262144;
|
||||
|
||||
#[repr(C, align(524288))]
|
||||
struct Align524288;
|
||||
|
||||
#[repr(C, align(1048576))]
|
||||
struct Align1048576;
|
||||
|
||||
#[repr(C, align(2097152))]
|
||||
struct Align2097152;
|
||||
|
||||
#[repr(C, align(4194304))]
|
||||
struct Align4194304;
|
||||
|
||||
#[repr(C, align(8388608))]
|
||||
struct Align8388608;
|
||||
|
||||
#[repr(C, align(16777216))]
|
||||
struct Align16777216;
|
||||
|
||||
#[repr(C, align(33554432))]
|
||||
struct Align33554432;
|
||||
|
||||
#[repr(C, align(67108864))]
|
||||
struct Align67108864;
|
||||
|
||||
#[repr(C, align(134217728))]
|
||||
struct Align13421772;
|
||||
|
||||
#[repr(C, align(268435456))]
|
||||
struct Align26843545;
|
||||
|
||||
#[repr(C, align(1073741824))]
|
||||
struct Align1073741824;
|
||||
|
||||
fn main() {}
|
||||
5
third-party/vendor/zerocopy/tests/ui-nightly/max-align.stderr
vendored
Normal file
5
third-party/vendor/zerocopy/tests/ui-nightly/max-align.stderr
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
error[E0589]: invalid `repr(align)` attribute: larger than 2^29
|
||||
--> tests/ui-nightly/max-align.rs:96:11
|
||||
|
|
||||
96 | #[repr(C, align(1073741824))]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
18
third-party/vendor/zerocopy/tests/ui-nightly/transmute-dst-not-frombytes.rs
vendored
Normal file
18
third-party/vendor/zerocopy/tests/ui-nightly/transmute-dst-not-frombytes.rs
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2022 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute` requires that the destination type implements `FromBytes`
|
||||
const DST_NOT_FROM_BYTES: NotZerocopy = transmute!(AU16(0));
|
||||
25
third-party/vendor/zerocopy/tests/ui-nightly/transmute-dst-not-frombytes.stderr
vendored
Normal file
25
third-party/vendor/zerocopy/tests/ui-nightly/transmute-dst-not-frombytes.stderr
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
error[E0277]: the trait bound `NotZerocopy: FromBytes` is not satisfied
|
||||
--> tests/ui-nightly/transmute-dst-not-frombytes.rs:18:41
|
||||
|
|
||||
18 | const DST_NOT_FROM_BYTES: NotZerocopy = transmute!(AU16(0));
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| the trait `FromBytes` is not implemented for `NotZerocopy`
|
||||
| required by a bound introduced by this call
|
||||
|
|
||||
= help: the following other types implement trait `FromBytes`:
|
||||
isize
|
||||
i8
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i128
|
||||
usize
|
||||
u8
|
||||
and $N others
|
||||
note: required by a bound in `AssertIsFromBytes`
|
||||
--> tests/ui-nightly/transmute-dst-not-frombytes.rs:18:41
|
||||
|
|
||||
18 | const DST_NOT_FROM_BYTES: NotZerocopy = transmute!(AU16(0));
|
||||
| ^^^^^^^^^^^^^^^^^^^ required by this bound in `AssertIsFromBytes`
|
||||
= note: this error originates in the macro `transmute` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
19
third-party/vendor/zerocopy/tests/ui-nightly/transmute-mut-alignment-increase.rs
vendored
Normal file
19
third-party/vendor/zerocopy/tests/ui-nightly/transmute-mut-alignment-increase.rs
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2023 The Fuchsia Authors
|
||||
//
|
||||
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
||||
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
||||
// This file may not be copied, modified, or distributed except according to
|
||||
// those terms.
|
||||
|
||||
include!("../../zerocopy-derive/tests/util.rs");
|
||||
|
||||
extern crate zerocopy;
|
||||
|
||||
use zerocopy::transmute_mut;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// `transmute_mut!` does not support transmuting from a type of smaller
|
||||
// alignment to one of larger alignment.
|
||||
const INCREASE_ALIGNMENT: &mut AU16 = transmute_mut!(&mut [0u8; 2]);
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue