mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
Auto merge of #129691 - matthiaskrgr:rollup-owlcr3m, r=matthiaskrgr
Rollup of 11 pull requests Successful merges: - #129421 (add repr to the allowlist for naked functions) - #129480 (docs: correct panic conditions for rem_euclid and similar functions) - #129551 (ub_checks intrinsics: fall back to cfg(ub_checks)) - #129608 (const-eval: do not make UbChecks behavior depend on current crate's flags) - #129613 (interpret: do not make const-eval query result depend on tcx.sess) - #129641 (rustdoc: fix missing resource suffix on `crates.js`) - #129657 (Rename `BikeshedIntrinsicFrom` to `TransmuteFrom`) - #129666 (interpret: add missing alignment check in raw_eq) - #129667 (Rustc driver cleanup) - #129668 (Fix Pin::set bounds regression) - #129686 (coverage: Rename `CodeRegion` to `SourceRegion`) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
100fde5246
@ -1,5 +1,5 @@
|
|||||||
use rustc_middle::mir::coverage::{
|
use rustc_middle::mir::coverage::{
|
||||||
CodeRegion, ConditionInfo, CounterId, CovTerm, DecisionInfo, ExpressionId, MappingKind,
|
ConditionInfo, CounterId, CovTerm, DecisionInfo, ExpressionId, MappingKind, SourceRegion,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Must match the layout of `LLVMRustCounterKind`.
|
/// Must match the layout of `LLVMRustCounterKind`.
|
||||||
@ -236,9 +236,10 @@ impl CounterMappingRegion {
|
|||||||
pub(crate) fn from_mapping(
|
pub(crate) fn from_mapping(
|
||||||
mapping_kind: &MappingKind,
|
mapping_kind: &MappingKind,
|
||||||
local_file_id: u32,
|
local_file_id: u32,
|
||||||
code_region: &CodeRegion,
|
source_region: &SourceRegion,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let &CodeRegion { file_name: _, start_line, start_col, end_line, end_col } = code_region;
|
let &SourceRegion { file_name: _, start_line, start_col, end_line, end_col } =
|
||||||
|
source_region;
|
||||||
match *mapping_kind {
|
match *mapping_kind {
|
||||||
MappingKind::Code(term) => Self::code_region(
|
MappingKind::Code(term) => Self::code_region(
|
||||||
Counter::from_term(term),
|
Counter::from_term(term),
|
||||||
|
@ -2,8 +2,8 @@ use rustc_data_structures::captures::Captures;
|
|||||||
use rustc_data_structures::fx::FxIndexSet;
|
use rustc_data_structures::fx::FxIndexSet;
|
||||||
use rustc_index::bit_set::BitSet;
|
use rustc_index::bit_set::BitSet;
|
||||||
use rustc_middle::mir::coverage::{
|
use rustc_middle::mir::coverage::{
|
||||||
CodeRegion, CounterId, CovTerm, Expression, ExpressionId, FunctionCoverageInfo, Mapping,
|
CounterId, CovTerm, Expression, ExpressionId, FunctionCoverageInfo, Mapping, MappingKind, Op,
|
||||||
MappingKind, Op,
|
SourceRegion,
|
||||||
};
|
};
|
||||||
use rustc_middle::ty::Instance;
|
use rustc_middle::ty::Instance;
|
||||||
use rustc_span::Symbol;
|
use rustc_span::Symbol;
|
||||||
@ -201,7 +201,7 @@ impl<'tcx> FunctionCoverage<'tcx> {
|
|||||||
|
|
||||||
/// Returns an iterator over all filenames used by this function's mappings.
|
/// Returns an iterator over all filenames used by this function's mappings.
|
||||||
pub(crate) fn all_file_names(&self) -> impl Iterator<Item = Symbol> + Captures<'_> {
|
pub(crate) fn all_file_names(&self) -> impl Iterator<Item = Symbol> + Captures<'_> {
|
||||||
self.function_coverage_info.mappings.iter().map(|mapping| mapping.code_region.file_name)
|
self.function_coverage_info.mappings.iter().map(|mapping| mapping.source_region.file_name)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Convert this function's coverage expression data into a form that can be
|
/// Convert this function's coverage expression data into a form that can be
|
||||||
@ -230,12 +230,12 @@ impl<'tcx> FunctionCoverage<'tcx> {
|
|||||||
/// that will be used by `mapgen` when preparing for FFI.
|
/// that will be used by `mapgen` when preparing for FFI.
|
||||||
pub(crate) fn counter_regions(
|
pub(crate) fn counter_regions(
|
||||||
&self,
|
&self,
|
||||||
) -> impl Iterator<Item = (MappingKind, &CodeRegion)> + ExactSizeIterator {
|
) -> impl Iterator<Item = (MappingKind, &SourceRegion)> + ExactSizeIterator {
|
||||||
self.function_coverage_info.mappings.iter().map(move |mapping| {
|
self.function_coverage_info.mappings.iter().map(move |mapping| {
|
||||||
let Mapping { kind, code_region } = mapping;
|
let Mapping { kind, source_region } = mapping;
|
||||||
let kind =
|
let kind =
|
||||||
kind.map_terms(|term| if self.is_zero_term(term) { CovTerm::Zero } else { term });
|
kind.map_terms(|term| if self.is_zero_term(term) { CovTerm::Zero } else { term });
|
||||||
(kind, code_region)
|
(kind, source_region)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -402,9 +402,6 @@ const_eval_unallowed_mutable_refs =
|
|||||||
const_eval_unallowed_op_in_const_context =
|
const_eval_unallowed_op_in_const_context =
|
||||||
{$msg}
|
{$msg}
|
||||||
|
|
||||||
const_eval_unavailable_target_features_for_fn =
|
|
||||||
calling a function that requires unavailable target features: {$unavailable_feats}
|
|
||||||
|
|
||||||
const_eval_uninhabited_enum_variant_read =
|
const_eval_uninhabited_enum_variant_read =
|
||||||
read discriminant of an uninhabited enum variant
|
read discriminant of an uninhabited enum variant
|
||||||
const_eval_uninhabited_enum_variant_written =
|
const_eval_uninhabited_enum_variant_written =
|
||||||
|
@ -311,34 +311,6 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn check_fn_target_features(&self, instance: ty::Instance<'tcx>) -> InterpResult<'tcx, ()> {
|
|
||||||
// Calling functions with `#[target_feature]` is not unsafe on WASM, see #84988
|
|
||||||
let attrs = self.tcx.codegen_fn_attrs(instance.def_id());
|
|
||||||
if !self.tcx.sess.target.is_like_wasm
|
|
||||||
&& attrs
|
|
||||||
.target_features
|
|
||||||
.iter()
|
|
||||||
.any(|feature| !self.tcx.sess.target_features.contains(&feature.name))
|
|
||||||
{
|
|
||||||
throw_ub_custom!(
|
|
||||||
fluent::const_eval_unavailable_target_features_for_fn,
|
|
||||||
unavailable_feats = attrs
|
|
||||||
.target_features
|
|
||||||
.iter()
|
|
||||||
.filter(|&feature| !feature.implied
|
|
||||||
&& !self.tcx.sess.target_features.contains(&feature.name))
|
|
||||||
.fold(String::new(), |mut s, feature| {
|
|
||||||
if !s.is_empty() {
|
|
||||||
s.push_str(", ");
|
|
||||||
}
|
|
||||||
s.push_str(feature.name.as_str());
|
|
||||||
s
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// The main entry point for creating a new stack frame: performs ABI checks and initializes
|
/// The main entry point for creating a new stack frame: performs ABI checks and initializes
|
||||||
/// arguments.
|
/// arguments.
|
||||||
#[instrument(skip(self), level = "trace")]
|
#[instrument(skip(self), level = "trace")]
|
||||||
@ -360,20 +332,18 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
|
|||||||
throw_unsup_format!("calling a c-variadic function is not supported");
|
throw_unsup_format!("calling a c-variadic function is not supported");
|
||||||
}
|
}
|
||||||
|
|
||||||
if M::enforce_abi(self) {
|
if caller_fn_abi.conv != callee_fn_abi.conv {
|
||||||
if caller_fn_abi.conv != callee_fn_abi.conv {
|
throw_ub_custom!(
|
||||||
throw_ub_custom!(
|
fluent::const_eval_incompatible_calling_conventions,
|
||||||
fluent::const_eval_incompatible_calling_conventions,
|
callee_conv = format!("{:?}", callee_fn_abi.conv),
|
||||||
callee_conv = format!("{:?}", callee_fn_abi.conv),
|
caller_conv = format!("{:?}", caller_fn_abi.conv),
|
||||||
caller_conv = format!("{:?}", caller_fn_abi.conv),
|
)
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check that all target features required by the callee (i.e., from
|
// Check that all target features required by the callee (i.e., from
|
||||||
// the attribute `#[target_feature(enable = ...)]`) are enabled at
|
// the attribute `#[target_feature(enable = ...)]`) are enabled at
|
||||||
// compile time.
|
// compile time.
|
||||||
self.check_fn_target_features(instance)?;
|
M::check_fn_target_features(self, instance)?;
|
||||||
|
|
||||||
if !callee_fn_abi.can_unwind {
|
if !callee_fn_abi.can_unwind {
|
||||||
// The callee cannot unwind, so force the `Unreachable` unwind handling.
|
// The callee cannot unwind, so force the `Unreachable` unwind handling.
|
||||||
|
@ -684,19 +684,19 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
|
|||||||
assert!(layout.is_sized());
|
assert!(layout.is_sized());
|
||||||
|
|
||||||
let get_bytes = |this: &InterpCx<'tcx, M>,
|
let get_bytes = |this: &InterpCx<'tcx, M>,
|
||||||
op: &OpTy<'tcx, <M as Machine<'tcx>>::Provenance>,
|
op: &OpTy<'tcx, <M as Machine<'tcx>>::Provenance>|
|
||||||
size|
|
|
||||||
-> InterpResult<'tcx, &[u8]> {
|
-> InterpResult<'tcx, &[u8]> {
|
||||||
let ptr = this.read_pointer(op)?;
|
let ptr = this.read_pointer(op)?;
|
||||||
let Some(alloc_ref) = self.get_ptr_alloc(ptr, size)? else {
|
this.check_ptr_align(ptr, layout.align.abi)?;
|
||||||
|
let Some(alloc_ref) = self.get_ptr_alloc(ptr, layout.size)? else {
|
||||||
// zero-sized access
|
// zero-sized access
|
||||||
return Ok(&[]);
|
return Ok(&[]);
|
||||||
};
|
};
|
||||||
alloc_ref.get_bytes_strip_provenance()
|
alloc_ref.get_bytes_strip_provenance()
|
||||||
};
|
};
|
||||||
|
|
||||||
let lhs_bytes = get_bytes(self, lhs, layout.size)?;
|
let lhs_bytes = get_bytes(self, lhs)?;
|
||||||
let rhs_bytes = get_bytes(self, rhs, layout.size)?;
|
let rhs_bytes = get_bytes(self, rhs)?;
|
||||||
Ok(Scalar::from_bool(lhs_bytes == rhs_bytes))
|
Ok(Scalar::from_bool(lhs_bytes == rhs_bytes))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -173,11 +173,6 @@ pub trait Machine<'tcx>: Sized {
|
|||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Whether function calls should be [ABI](CallAbi)-checked.
|
|
||||||
fn enforce_abi(_ecx: &InterpCx<'tcx, Self>) -> bool {
|
|
||||||
true
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Whether Assert(OverflowNeg) and Assert(Overflow) MIR terminators should actually
|
/// Whether Assert(OverflowNeg) and Assert(Overflow) MIR terminators should actually
|
||||||
/// check for overflow.
|
/// check for overflow.
|
||||||
fn ignore_optional_overflow_checks(_ecx: &InterpCx<'tcx, Self>) -> bool;
|
fn ignore_optional_overflow_checks(_ecx: &InterpCx<'tcx, Self>) -> bool;
|
||||||
@ -238,6 +233,13 @@ pub trait Machine<'tcx>: Sized {
|
|||||||
unwind: mir::UnwindAction,
|
unwind: mir::UnwindAction,
|
||||||
) -> InterpResult<'tcx, Option<ty::Instance<'tcx>>>;
|
) -> InterpResult<'tcx, Option<ty::Instance<'tcx>>>;
|
||||||
|
|
||||||
|
/// Check whether the given function may be executed on the current machine, in terms of the
|
||||||
|
/// target features is requires.
|
||||||
|
fn check_fn_target_features(
|
||||||
|
_ecx: &InterpCx<'tcx, Self>,
|
||||||
|
_instance: ty::Instance<'tcx>,
|
||||||
|
) -> InterpResult<'tcx>;
|
||||||
|
|
||||||
/// Called to evaluate `Assert` MIR terminators that trigger a panic.
|
/// Called to evaluate `Assert` MIR terminators that trigger a panic.
|
||||||
fn assert_panic(
|
fn assert_panic(
|
||||||
ecx: &mut InterpCx<'tcx, Self>,
|
ecx: &mut InterpCx<'tcx, Self>,
|
||||||
@ -280,6 +282,9 @@ pub trait Machine<'tcx>: Sized {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Determines the result of a `NullaryOp::UbChecks` invocation.
|
||||||
|
fn ub_checks(_ecx: &InterpCx<'tcx, Self>) -> InterpResult<'tcx, bool>;
|
||||||
|
|
||||||
/// Called when the interpreter encounters a `StatementKind::ConstEvalCounter` instruction.
|
/// Called when the interpreter encounters a `StatementKind::ConstEvalCounter` instruction.
|
||||||
/// You can use this to detect long or endlessly running programs.
|
/// You can use this to detect long or endlessly running programs.
|
||||||
#[inline]
|
#[inline]
|
||||||
@ -614,6 +619,16 @@ pub macro compile_time_machine(<$tcx: lifetime>) {
|
|||||||
unreachable!("unwinding cannot happen during compile-time evaluation")
|
unreachable!("unwinding cannot happen during compile-time evaluation")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline(always)]
|
||||||
|
fn check_fn_target_features(
|
||||||
|
_ecx: &InterpCx<$tcx, Self>,
|
||||||
|
_instance: ty::Instance<$tcx>,
|
||||||
|
) -> InterpResult<$tcx> {
|
||||||
|
// For now we don't do any checking here. We can't use `tcx.sess` because that can differ
|
||||||
|
// between crates, and we need to ensure that const-eval always behaves the same.
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
fn call_extra_fn(
|
fn call_extra_fn(
|
||||||
_ecx: &mut InterpCx<$tcx, Self>,
|
_ecx: &mut InterpCx<$tcx, Self>,
|
||||||
@ -627,6 +642,13 @@ pub macro compile_time_machine(<$tcx: lifetime>) {
|
|||||||
match fn_val {}
|
match fn_val {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline(always)]
|
||||||
|
fn ub_checks(_ecx: &InterpCx<$tcx, Self>) -> InterpResult<$tcx, bool> {
|
||||||
|
// We can't look at `tcx.sess` here as that can differ across crates, which can lead to
|
||||||
|
// unsound differences in evaluating the same constant at different instantiation sites.
|
||||||
|
Ok(true)
|
||||||
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
fn adjust_global_allocation<'b>(
|
fn adjust_global_allocation<'b>(
|
||||||
_ecx: &InterpCx<$tcx, Self>,
|
_ecx: &InterpCx<$tcx, Self>,
|
||||||
|
@ -512,7 +512,7 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
|
|||||||
self.tcx.offset_of_subfield(self.param_env, layout, fields.iter()).bytes();
|
self.tcx.offset_of_subfield(self.param_env, layout, fields.iter()).bytes();
|
||||||
ImmTy::from_uint(val, usize_layout())
|
ImmTy::from_uint(val, usize_layout())
|
||||||
}
|
}
|
||||||
UbChecks => ImmTy::from_bool(self.tcx.sess.ub_checks(), *self.tcx),
|
UbChecks => ImmTy::from_bool(M::ub_checks(self)?, *self.tcx),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -393,13 +393,17 @@ fn run_compiler(
|
|||||||
|
|
||||||
let linker = compiler.enter(|queries| {
|
let linker = compiler.enter(|queries| {
|
||||||
let early_exit = || early_exit().map(|_| None);
|
let early_exit = || early_exit().map(|_| None);
|
||||||
|
|
||||||
|
// Parse the crate root source code (doesn't parse submodules yet)
|
||||||
|
// Everything else is parsed during macro expansion.
|
||||||
queries.parse()?;
|
queries.parse()?;
|
||||||
|
|
||||||
if let Some(ppm) = &sess.opts.pretty {
|
// If pretty printing is requested: Figure out the representation, print it and exit
|
||||||
if ppm.needs_ast_map() {
|
if let Some(pp_mode) = sess.opts.pretty {
|
||||||
|
if pp_mode.needs_ast_map() {
|
||||||
queries.global_ctxt()?.enter(|tcx| {
|
queries.global_ctxt()?.enter(|tcx| {
|
||||||
tcx.ensure().early_lint_checks(());
|
tcx.ensure().early_lint_checks(());
|
||||||
pretty::print(sess, *ppm, pretty::PrintExtra::NeedsAstMap { tcx });
|
pretty::print(sess, pp_mode, pretty::PrintExtra::NeedsAstMap { tcx });
|
||||||
Ok(())
|
Ok(())
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
@ -410,7 +414,7 @@ fn run_compiler(
|
|||||||
let krate = queries.parse()?;
|
let krate = queries.parse()?;
|
||||||
pretty::print(
|
pretty::print(
|
||||||
sess,
|
sess,
|
||||||
*ppm,
|
pp_mode,
|
||||||
pretty::PrintExtra::AfterParsing { krate: &*krate.borrow() },
|
pretty::PrintExtra::AfterParsing { krate: &*krate.borrow() },
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -465,12 +469,8 @@ fn run_compiler(
|
|||||||
linker.link(sess, codegen_backend)?
|
linker.link(sess, codegen_backend)?
|
||||||
}
|
}
|
||||||
|
|
||||||
if sess.opts.unstable_opts.print_fuel.is_some() {
|
if let Some(fuel) = sess.opts.unstable_opts.print_fuel.as_deref() {
|
||||||
eprintln!(
|
eprintln!("Fuel used by {}: {}", fuel, sess.print_fuel.load(Ordering::SeqCst));
|
||||||
"Fuel used by {}: {}",
|
|
||||||
sess.opts.unstable_opts.print_fuel.as_ref().unwrap(),
|
|
||||||
sess.print_fuel.load(Ordering::SeqCst)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
@ -487,36 +487,43 @@ fn make_output(matches: &getopts::Matches) -> (Option<PathBuf>, Option<OutFileNa
|
|||||||
(odir, ofile)
|
(odir, ofile)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extract input (string or file and optional path) from matches.
|
/// Extract input (string or file and optional path) from matches.
|
||||||
|
/// This handles reading from stdin if `-` is provided.
|
||||||
fn make_input(
|
fn make_input(
|
||||||
early_dcx: &EarlyDiagCtxt,
|
early_dcx: &EarlyDiagCtxt,
|
||||||
free_matches: &[String],
|
free_matches: &[String],
|
||||||
) -> Result<Option<Input>, ErrorGuaranteed> {
|
) -> Result<Option<Input>, ErrorGuaranteed> {
|
||||||
let [ifile] = free_matches else { return Ok(None) };
|
let [input_file] = free_matches else { return Ok(None) };
|
||||||
if ifile == "-" {
|
|
||||||
let mut src = String::new();
|
if input_file != "-" {
|
||||||
if io::stdin().read_to_string(&mut src).is_err() {
|
// Normal `Input::File`
|
||||||
// Immediately stop compilation if there was an issue reading
|
return Ok(Some(Input::File(PathBuf::from(input_file))));
|
||||||
// the input (for example if the input stream is not UTF-8).
|
}
|
||||||
let reported =
|
|
||||||
early_dcx.early_err("couldn't read from stdin, as it did not contain valid UTF-8");
|
// read from stdin as `Input::Str`
|
||||||
return Err(reported);
|
let mut input = String::new();
|
||||||
}
|
if io::stdin().read_to_string(&mut input).is_err() {
|
||||||
if let Ok(path) = env::var("UNSTABLE_RUSTDOC_TEST_PATH") {
|
// Immediately stop compilation if there was an issue reading
|
||||||
|
// the input (for example if the input stream is not UTF-8).
|
||||||
|
let reported =
|
||||||
|
early_dcx.early_err("couldn't read from stdin, as it did not contain valid UTF-8");
|
||||||
|
return Err(reported);
|
||||||
|
}
|
||||||
|
|
||||||
|
let name = match env::var("UNSTABLE_RUSTDOC_TEST_PATH") {
|
||||||
|
Ok(path) => {
|
||||||
let line = env::var("UNSTABLE_RUSTDOC_TEST_LINE").expect(
|
let line = env::var("UNSTABLE_RUSTDOC_TEST_LINE").expect(
|
||||||
"when UNSTABLE_RUSTDOC_TEST_PATH is set \
|
"when UNSTABLE_RUSTDOC_TEST_PATH is set \
|
||||||
UNSTABLE_RUSTDOC_TEST_LINE also needs to be set",
|
UNSTABLE_RUSTDOC_TEST_LINE also needs to be set",
|
||||||
);
|
);
|
||||||
let line = isize::from_str_radix(&line, 10)
|
let line = isize::from_str_radix(&line, 10)
|
||||||
.expect("UNSTABLE_RUSTDOC_TEST_LINE needs to be an number");
|
.expect("UNSTABLE_RUSTDOC_TEST_LINE needs to be an number");
|
||||||
let file_name = FileName::doc_test_source_code(PathBuf::from(path), line);
|
FileName::doc_test_source_code(PathBuf::from(path), line)
|
||||||
Ok(Some(Input::Str { name: file_name, input: src }))
|
|
||||||
} else {
|
|
||||||
Ok(Some(Input::Str { name: FileName::anon_source_code(&src), input: src }))
|
|
||||||
}
|
}
|
||||||
} else {
|
Err(_) => FileName::anon_source_code(&input),
|
||||||
Ok(Some(Input::File(PathBuf::from(ifile))))
|
};
|
||||||
}
|
|
||||||
|
Ok(Some(Input::Str { name, input }))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Whether to stop or continue compilation.
|
/// Whether to stop or continue compilation.
|
||||||
|
@ -35,7 +35,6 @@ macro_rules! arena_types {
|
|||||||
)>,
|
)>,
|
||||||
[] crate_for_resolver: rustc_data_structures::steal::Steal<(rustc_ast::Crate, rustc_ast::AttrVec)>,
|
[] crate_for_resolver: rustc_data_structures::steal::Steal<(rustc_ast::Crate, rustc_ast::AttrVec)>,
|
||||||
[] resolutions: rustc_middle::ty::ResolverGlobalCtxt,
|
[] resolutions: rustc_middle::ty::ResolverGlobalCtxt,
|
||||||
[decode] code_region: rustc_middle::mir::coverage::CodeRegion,
|
|
||||||
[] const_allocs: rustc_middle::mir::interpret::Allocation,
|
[] const_allocs: rustc_middle::mir::interpret::Allocation,
|
||||||
[] region_scope_tree: rustc_middle::middle::region::ScopeTree,
|
[] region_scope_tree: rustc_middle::middle::region::ScopeTree,
|
||||||
// Required for the incremental on-disk cache
|
// Required for the incremental on-disk cache
|
||||||
|
@ -163,7 +163,7 @@ impl Debug for CoverageKind {
|
|||||||
|
|
||||||
#[derive(Clone, TyEncodable, TyDecodable, Hash, HashStable, PartialEq, Eq, PartialOrd, Ord)]
|
#[derive(Clone, TyEncodable, TyDecodable, Hash, HashStable, PartialEq, Eq, PartialOrd, Ord)]
|
||||||
#[derive(TypeFoldable, TypeVisitable)]
|
#[derive(TypeFoldable, TypeVisitable)]
|
||||||
pub struct CodeRegion {
|
pub struct SourceRegion {
|
||||||
pub file_name: Symbol,
|
pub file_name: Symbol,
|
||||||
pub start_line: u32,
|
pub start_line: u32,
|
||||||
pub start_col: u32,
|
pub start_col: u32,
|
||||||
@ -171,7 +171,7 @@ pub struct CodeRegion {
|
|||||||
pub end_col: u32,
|
pub end_col: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Debug for CodeRegion {
|
impl Debug for SourceRegion {
|
||||||
fn fmt(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
|
fn fmt(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
|
||||||
write!(
|
write!(
|
||||||
fmt,
|
fmt,
|
||||||
@ -242,7 +242,7 @@ impl MappingKind {
|
|||||||
#[derive(TyEncodable, TyDecodable, Hash, HashStable, TypeFoldable, TypeVisitable)]
|
#[derive(TyEncodable, TyDecodable, Hash, HashStable, TypeFoldable, TypeVisitable)]
|
||||||
pub struct Mapping {
|
pub struct Mapping {
|
||||||
pub kind: MappingKind,
|
pub kind: MappingKind,
|
||||||
pub code_region: CodeRegion,
|
pub source_region: SourceRegion,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Stores per-function coverage information attached to a `mir::Body`,
|
/// Stores per-function coverage information attached to a `mir::Body`,
|
||||||
|
@ -547,8 +547,8 @@ fn write_function_coverage_info(
|
|||||||
for (id, expression) in expressions.iter_enumerated() {
|
for (id, expression) in expressions.iter_enumerated() {
|
||||||
writeln!(w, "{INDENT}coverage {id:?} => {expression:?};")?;
|
writeln!(w, "{INDENT}coverage {id:?} => {expression:?};")?;
|
||||||
}
|
}
|
||||||
for coverage::Mapping { kind, code_region } in mappings {
|
for coverage::Mapping { kind, source_region } in mappings {
|
||||||
writeln!(w, "{INDENT}coverage {kind:?} => {code_region:?};")?;
|
writeln!(w, "{INDENT}coverage {kind:?} => {source_region:?};")?;
|
||||||
}
|
}
|
||||||
writeln!(w)?;
|
writeln!(w)?;
|
||||||
|
|
||||||
|
@ -462,7 +462,6 @@ impl_decodable_via_ref! {
|
|||||||
&'tcx traits::ImplSource<'tcx, ()>,
|
&'tcx traits::ImplSource<'tcx, ()>,
|
||||||
&'tcx mir::Body<'tcx>,
|
&'tcx mir::Body<'tcx>,
|
||||||
&'tcx mir::BorrowCheckResult<'tcx>,
|
&'tcx mir::BorrowCheckResult<'tcx>,
|
||||||
&'tcx mir::coverage::CodeRegion,
|
|
||||||
&'tcx ty::List<ty::BoundVariableKind>,
|
&'tcx ty::List<ty::BoundVariableKind>,
|
||||||
&'tcx ty::ListWithCachedTypeInfo<ty::Clause<'tcx>>,
|
&'tcx ty::ListWithCachedTypeInfo<ty::Clause<'tcx>>,
|
||||||
&'tcx ty::List<FieldIdx>,
|
&'tcx ty::List<FieldIdx>,
|
||||||
|
@ -13,7 +13,7 @@ use rustc_hir::intravisit::{walk_expr, Visitor};
|
|||||||
use rustc_middle::hir::map::Map;
|
use rustc_middle::hir::map::Map;
|
||||||
use rustc_middle::hir::nested_filter;
|
use rustc_middle::hir::nested_filter;
|
||||||
use rustc_middle::mir::coverage::{
|
use rustc_middle::mir::coverage::{
|
||||||
CodeRegion, CoverageKind, DecisionInfo, FunctionCoverageInfo, Mapping, MappingKind,
|
CoverageKind, DecisionInfo, FunctionCoverageInfo, Mapping, MappingKind, SourceRegion,
|
||||||
};
|
};
|
||||||
use rustc_middle::mir::{
|
use rustc_middle::mir::{
|
||||||
self, BasicBlock, BasicBlockData, SourceInfo, Statement, StatementKind, Terminator,
|
self, BasicBlock, BasicBlockData, SourceInfo, Statement, StatementKind, Terminator,
|
||||||
@ -159,7 +159,7 @@ fn create_mappings<'tcx>(
|
|||||||
.expect("all BCBs with spans were given counters")
|
.expect("all BCBs with spans were given counters")
|
||||||
.as_term()
|
.as_term()
|
||||||
};
|
};
|
||||||
let region_for_span = |span: Span| make_code_region(source_map, file_name, span, body_span);
|
let region_for_span = |span: Span| make_source_region(source_map, file_name, span, body_span);
|
||||||
|
|
||||||
// Fully destructure the mappings struct to make sure we don't miss any kinds.
|
// Fully destructure the mappings struct to make sure we don't miss any kinds.
|
||||||
let ExtractedMappings {
|
let ExtractedMappings {
|
||||||
@ -175,9 +175,9 @@ fn create_mappings<'tcx>(
|
|||||||
mappings.extend(code_mappings.iter().filter_map(
|
mappings.extend(code_mappings.iter().filter_map(
|
||||||
// Ordinary code mappings are the simplest kind.
|
// Ordinary code mappings are the simplest kind.
|
||||||
|&mappings::CodeMapping { span, bcb }| {
|
|&mappings::CodeMapping { span, bcb }| {
|
||||||
let code_region = region_for_span(span)?;
|
let source_region = region_for_span(span)?;
|
||||||
let kind = MappingKind::Code(term_for_bcb(bcb));
|
let kind = MappingKind::Code(term_for_bcb(bcb));
|
||||||
Some(Mapping { kind, code_region })
|
Some(Mapping { kind, source_region })
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
|
|
||||||
@ -186,29 +186,29 @@ fn create_mappings<'tcx>(
|
|||||||
let true_term = term_for_bcb(true_bcb);
|
let true_term = term_for_bcb(true_bcb);
|
||||||
let false_term = term_for_bcb(false_bcb);
|
let false_term = term_for_bcb(false_bcb);
|
||||||
let kind = MappingKind::Branch { true_term, false_term };
|
let kind = MappingKind::Branch { true_term, false_term };
|
||||||
let code_region = region_for_span(span)?;
|
let source_region = region_for_span(span)?;
|
||||||
Some(Mapping { kind, code_region })
|
Some(Mapping { kind, source_region })
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
|
|
||||||
mappings.extend(mcdc_branches.iter().filter_map(
|
mappings.extend(mcdc_branches.iter().filter_map(
|
||||||
|&mappings::MCDCBranch { span, true_bcb, false_bcb, condition_info, decision_depth: _ }| {
|
|&mappings::MCDCBranch { span, true_bcb, false_bcb, condition_info, decision_depth: _ }| {
|
||||||
let code_region = region_for_span(span)?;
|
let source_region = region_for_span(span)?;
|
||||||
let true_term = term_for_bcb(true_bcb);
|
let true_term = term_for_bcb(true_bcb);
|
||||||
let false_term = term_for_bcb(false_bcb);
|
let false_term = term_for_bcb(false_bcb);
|
||||||
let kind = match condition_info {
|
let kind = match condition_info {
|
||||||
Some(mcdc_params) => MappingKind::MCDCBranch { true_term, false_term, mcdc_params },
|
Some(mcdc_params) => MappingKind::MCDCBranch { true_term, false_term, mcdc_params },
|
||||||
None => MappingKind::Branch { true_term, false_term },
|
None => MappingKind::Branch { true_term, false_term },
|
||||||
};
|
};
|
||||||
Some(Mapping { kind, code_region })
|
Some(Mapping { kind, source_region })
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
|
|
||||||
mappings.extend(mcdc_decisions.iter().filter_map(
|
mappings.extend(mcdc_decisions.iter().filter_map(
|
||||||
|&mappings::MCDCDecision { span, bitmap_idx, num_conditions, .. }| {
|
|&mappings::MCDCDecision { span, bitmap_idx, num_conditions, .. }| {
|
||||||
let code_region = region_for_span(span)?;
|
let source_region = region_for_span(span)?;
|
||||||
let kind = MappingKind::MCDCDecision(DecisionInfo { bitmap_idx, num_conditions });
|
let kind = MappingKind::MCDCDecision(DecisionInfo { bitmap_idx, num_conditions });
|
||||||
Some(Mapping { kind, code_region })
|
Some(Mapping { kind, source_region })
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
|
|
||||||
@ -362,19 +362,13 @@ fn inject_statement(mir_body: &mut mir::Body<'_>, counter_kind: CoverageKind, bb
|
|||||||
/// but it's hard to rule out entirely (especially in the presence of complex macros
|
/// but it's hard to rule out entirely (especially in the presence of complex macros
|
||||||
/// or other expansions), and if it does happen then skipping a span or function is
|
/// or other expansions), and if it does happen then skipping a span or function is
|
||||||
/// better than an ICE or `llvm-cov` failure that the user might have no way to avoid.
|
/// better than an ICE or `llvm-cov` failure that the user might have no way to avoid.
|
||||||
fn make_code_region(
|
#[instrument(level = "debug", skip(source_map))]
|
||||||
|
fn make_source_region(
|
||||||
source_map: &SourceMap,
|
source_map: &SourceMap,
|
||||||
file_name: Symbol,
|
file_name: Symbol,
|
||||||
span: Span,
|
span: Span,
|
||||||
body_span: Span,
|
body_span: Span,
|
||||||
) -> Option<CodeRegion> {
|
) -> Option<SourceRegion> {
|
||||||
debug!(
|
|
||||||
"Called make_code_region(file_name={}, span={}, body_span={})",
|
|
||||||
file_name,
|
|
||||||
source_map.span_to_diagnostic_string(span),
|
|
||||||
source_map.span_to_diagnostic_string(body_span)
|
|
||||||
);
|
|
||||||
|
|
||||||
let lo = span.lo();
|
let lo = span.lo();
|
||||||
let hi = span.hi();
|
let hi = span.hi();
|
||||||
|
|
||||||
@ -424,7 +418,7 @@ fn make_code_region(
|
|||||||
start_line = source_map.doctest_offset_line(&file.name, start_line);
|
start_line = source_map.doctest_offset_line(&file.name, start_line);
|
||||||
end_line = source_map.doctest_offset_line(&file.name, end_line);
|
end_line = source_map.doctest_offset_line(&file.name, end_line);
|
||||||
|
|
||||||
check_code_region(CodeRegion {
|
check_source_region(SourceRegion {
|
||||||
file_name,
|
file_name,
|
||||||
start_line: start_line as u32,
|
start_line: start_line as u32,
|
||||||
start_col: start_col as u32,
|
start_col: start_col as u32,
|
||||||
@ -433,12 +427,12 @@ fn make_code_region(
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/// If `llvm-cov` sees a code region that is improperly ordered (end < start),
|
/// If `llvm-cov` sees a source region that is improperly ordered (end < start),
|
||||||
/// it will immediately exit with a fatal error. To prevent that from happening,
|
/// it will immediately exit with a fatal error. To prevent that from happening,
|
||||||
/// discard regions that are improperly ordered, or might be interpreted in a
|
/// discard regions that are improperly ordered, or might be interpreted in a
|
||||||
/// way that makes them improperly ordered.
|
/// way that makes them improperly ordered.
|
||||||
fn check_code_region(code_region: CodeRegion) -> Option<CodeRegion> {
|
fn check_source_region(source_region: SourceRegion) -> Option<SourceRegion> {
|
||||||
let CodeRegion { file_name: _, start_line, start_col, end_line, end_col } = code_region;
|
let SourceRegion { file_name: _, start_line, start_col, end_line, end_col } = source_region;
|
||||||
|
|
||||||
// Line/column coordinates are supposed to be 1-based. If we ever emit
|
// Line/column coordinates are supposed to be 1-based. If we ever emit
|
||||||
// coordinates of 0, `llvm-cov` might misinterpret them.
|
// coordinates of 0, `llvm-cov` might misinterpret them.
|
||||||
@ -451,17 +445,17 @@ fn check_code_region(code_region: CodeRegion) -> Option<CodeRegion> {
|
|||||||
let is_ordered = (start_line, start_col) <= (end_line, end_col);
|
let is_ordered = (start_line, start_col) <= (end_line, end_col);
|
||||||
|
|
||||||
if all_nonzero && end_col_has_high_bit_unset && is_ordered {
|
if all_nonzero && end_col_has_high_bit_unset && is_ordered {
|
||||||
Some(code_region)
|
Some(source_region)
|
||||||
} else {
|
} else {
|
||||||
debug!(
|
debug!(
|
||||||
?code_region,
|
?source_region,
|
||||||
?all_nonzero,
|
?all_nonzero,
|
||||||
?end_col_has_high_bit_unset,
|
?end_col_has_high_bit_unset,
|
||||||
?is_ordered,
|
?is_ordered,
|
||||||
"Skipping code region that would be misinterpreted or rejected by LLVM"
|
"Skipping source region that would be misinterpreted or rejected by LLVM"
|
||||||
);
|
);
|
||||||
// If this happens in a debug build, ICE to make it easier to notice.
|
// If this happens in a debug build, ICE to make it easier to notice.
|
||||||
debug_assert!(false, "Improper code region: {code_region:?}");
|
debug_assert!(false, "Improper source region: {source_region:?}");
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -862,7 +862,7 @@ where
|
|||||||
_ecx: &mut EvalCtxt<'_, D>,
|
_ecx: &mut EvalCtxt<'_, D>,
|
||||||
goal: Goal<I, Self>,
|
goal: Goal<I, Self>,
|
||||||
) -> Result<Candidate<I>, NoSolution> {
|
) -> Result<Candidate<I>, NoSolution> {
|
||||||
panic!("`BikeshedIntrinsicFrom` does not have an associated type: {:?}", goal)
|
panic!("`TransmuteFrom` does not have an associated type: {:?}", goal)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn consider_builtin_effects_intersection_candidate(
|
fn consider_builtin_effects_intersection_candidate(
|
||||||
|
@ -51,7 +51,9 @@ impl<'a> Parser<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Parses the contents of a module (inner attributes followed by module items).
|
/// Parses the contents of a module (inner attributes followed by module items).
|
||||||
/// We exit once we hit `term`
|
/// We exit once we hit `term` which can be either
|
||||||
|
/// - EOF (for files)
|
||||||
|
/// - `}` for mod items
|
||||||
pub fn parse_mod(
|
pub fn parse_mod(
|
||||||
&mut self,
|
&mut self,
|
||||||
term: &TokenKind,
|
term: &TokenKind,
|
||||||
|
@ -517,6 +517,7 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
|
|||||||
sym::no_mangle,
|
sym::no_mangle,
|
||||||
sym::naked,
|
sym::naked,
|
||||||
sym::instruction_set,
|
sym::instruction_set,
|
||||||
|
sym::repr,
|
||||||
// code generation
|
// code generation
|
||||||
sym::cold,
|
sym::cold,
|
||||||
sym::target_feature,
|
sym::target_feature,
|
||||||
|
@ -2893,6 +2893,7 @@ pub enum PpHirMode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone, PartialEq, Debug)]
|
#[derive(Copy, Clone, PartialEq, Debug)]
|
||||||
|
/// Pretty print mode
|
||||||
pub enum PpMode {
|
pub enum PpMode {
|
||||||
/// Options that print the source code, i.e.
|
/// Options that print the source code, i.e.
|
||||||
/// `-Zunpretty=normal` and `-Zunpretty=expanded`
|
/// `-Zunpretty=normal` and `-Zunpretty=expanded`
|
||||||
|
@ -2949,7 +2949,7 @@ pub const unsafe fn typed_swap<T>(x: *mut T, y: *mut T) {
|
|||||||
/// sysroot which is built without ub_checks but with `#[rustc_preserve_ub_checks]`.
|
/// sysroot which is built without ub_checks but with `#[rustc_preserve_ub_checks]`.
|
||||||
/// For code that gets monomorphized in the user crate (i.e., generic functions and functions with
|
/// For code that gets monomorphized in the user crate (i.e., generic functions and functions with
|
||||||
/// `#[inline]`), gating assertions on `ub_checks()` rather than `cfg!(ub_checks)` means that
|
/// `#[inline]`), gating assertions on `ub_checks()` rather than `cfg!(ub_checks)` means that
|
||||||
/// assertions are enabled whenever the *user crate* has UB checks enabled. However if the
|
/// assertions are enabled whenever the *user crate* has UB checks enabled. However, if the
|
||||||
/// user has UB checks disabled, the checks will still get optimized out. This intrinsic is
|
/// user has UB checks disabled, the checks will still get optimized out. This intrinsic is
|
||||||
/// primarily used by [`ub_checks::assert_unsafe_precondition`].
|
/// primarily used by [`ub_checks::assert_unsafe_precondition`].
|
||||||
#[rustc_const_unstable(feature = "const_ub_checks", issue = "none")]
|
#[rustc_const_unstable(feature = "const_ub_checks", issue = "none")]
|
||||||
@ -2957,7 +2957,7 @@ pub const unsafe fn typed_swap<T>(x: *mut T, y: *mut T) {
|
|||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
#[rustc_intrinsic]
|
#[rustc_intrinsic]
|
||||||
pub const fn ub_checks() -> bool {
|
pub const fn ub_checks() -> bool {
|
||||||
cfg!(debug_assertions)
|
cfg!(ub_checks)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Allocates a block of memory at compile time.
|
/// Allocates a block of memory at compile time.
|
||||||
|
@ -203,6 +203,7 @@
|
|||||||
#![feature(cfg_sanitize)]
|
#![feature(cfg_sanitize)]
|
||||||
#![feature(cfg_target_has_atomic)]
|
#![feature(cfg_target_has_atomic)]
|
||||||
#![feature(cfg_target_has_atomic_equal_alignment)]
|
#![feature(cfg_target_has_atomic_equal_alignment)]
|
||||||
|
#![feature(cfg_ub_checks)]
|
||||||
#![feature(const_for)]
|
#![feature(const_for)]
|
||||||
#![feature(const_mut_refs)]
|
#![feature(const_mut_refs)]
|
||||||
#![feature(const_precise_live_drops)]
|
#![feature(const_precise_live_drops)]
|
||||||
|
@ -19,7 +19,7 @@ pub use maybe_uninit::MaybeUninit;
|
|||||||
|
|
||||||
mod transmutability;
|
mod transmutability;
|
||||||
#[unstable(feature = "transmutability", issue = "99571")]
|
#[unstable(feature = "transmutability", issue = "99571")]
|
||||||
pub use transmutability::{Assume, BikeshedIntrinsicFrom};
|
pub use transmutability::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[doc(inline)]
|
#[doc(inline)]
|
||||||
|
@ -11,10 +11,10 @@ use crate::marker::{ConstParamTy_, UnsizedConstParamTy};
|
|||||||
///
|
///
|
||||||
/// # Safety
|
/// # Safety
|
||||||
///
|
///
|
||||||
/// If `Dst: BikeshedIntrinsicFrom<Src, ASSUMPTIONS>`, the compiler guarantees
|
/// If `Dst: TransmuteFrom<Src, ASSUMPTIONS>`, the compiler guarantees that
|
||||||
/// that `Src` is soundly *union-transmutable* into a value of type `Dst`,
|
/// `Src` is soundly *union-transmutable* into a value of type `Dst`, provided
|
||||||
/// provided that the programmer has guaranteed that the given
|
/// that the programmer has guaranteed that the given [`ASSUMPTIONS`](Assume)
|
||||||
/// [`ASSUMPTIONS`](Assume) are satisfied.
|
/// are satisfied.
|
||||||
///
|
///
|
||||||
/// A union-transmute is any bit-reinterpretation conversion in the form of:
|
/// A union-transmute is any bit-reinterpretation conversion in the form of:
|
||||||
///
|
///
|
||||||
@ -47,7 +47,7 @@ use crate::marker::{ConstParamTy_, UnsizedConstParamTy};
|
|||||||
#[cfg_attr(not(bootstrap), doc = "```rust")]
|
#[cfg_attr(not(bootstrap), doc = "```rust")]
|
||||||
/// #![feature(transmutability)]
|
/// #![feature(transmutability)]
|
||||||
///
|
///
|
||||||
/// use core::mem::{Assume, BikeshedIntrinsicFrom};
|
/// use core::mem::{Assume, TransmuteFrom};
|
||||||
///
|
///
|
||||||
/// let src = 42u8; // size = 1
|
/// let src = 42u8; // size = 1
|
||||||
///
|
///
|
||||||
@ -55,7 +55,7 @@ use crate::marker::{ConstParamTy_, UnsizedConstParamTy};
|
|||||||
/// struct Dst(u8); // size = 2
|
/// struct Dst(u8); // size = 2
|
||||||
//
|
//
|
||||||
/// let _ = unsafe {
|
/// let _ = unsafe {
|
||||||
/// <Dst as BikeshedIntrinsicFrom<u8, { Assume::SAFETY }>>::transmute(src)
|
/// <Dst as TransmuteFrom<u8, { Assume::SAFETY }>>::transmute(src)
|
||||||
/// };
|
/// };
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
@ -87,7 +87,7 @@ use crate::marker::{ConstParamTy_, UnsizedConstParamTy};
|
|||||||
#[lang = "transmute_trait"]
|
#[lang = "transmute_trait"]
|
||||||
#[rustc_deny_explicit_impl(implement_via_object = false)]
|
#[rustc_deny_explicit_impl(implement_via_object = false)]
|
||||||
#[rustc_coinductive]
|
#[rustc_coinductive]
|
||||||
pub unsafe trait BikeshedIntrinsicFrom<Src, const ASSUME: Assume = { Assume::NOTHING }>
|
pub unsafe trait TransmuteFrom<Src, const ASSUME: Assume = { Assume::NOTHING }>
|
||||||
where
|
where
|
||||||
Src: ?Sized,
|
Src: ?Sized,
|
||||||
{
|
{
|
||||||
@ -140,23 +140,21 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Configurable proof assumptions of [`BikeshedIntrinsicFrom`].
|
/// Configurable proof assumptions of [`TransmuteFrom`].
|
||||||
///
|
///
|
||||||
/// When `false`, the respective proof obligation belongs to the compiler. When
|
/// When `false`, the respective proof obligation belongs to the compiler. When
|
||||||
/// `true`, the onus of the safety proof belongs to the programmer.
|
/// `true`, the onus of the safety proof belongs to the programmer.
|
||||||
/// [`BikeshedIntrinsicFrom`].
|
|
||||||
#[unstable(feature = "transmutability", issue = "99571")]
|
#[unstable(feature = "transmutability", issue = "99571")]
|
||||||
#[lang = "transmute_opts"]
|
#[lang = "transmute_opts"]
|
||||||
#[derive(PartialEq, Eq, Clone, Copy, Debug)]
|
#[derive(PartialEq, Eq, Clone, Copy, Debug)]
|
||||||
pub struct Assume {
|
pub struct Assume {
|
||||||
/// When `false`, [`BikeshedIntrinsicFrom`] is not implemented for
|
/// When `false`, [`TransmuteFrom`] is not implemented for transmutations
|
||||||
/// transmutations that might violate the the alignment requirements of
|
/// that might violate the the alignment requirements of references; e.g.:
|
||||||
/// references; e.g.:
|
|
||||||
///
|
///
|
||||||
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
||||||
#[cfg_attr(not(bootstrap), doc = "```compile_fail,E0277")]
|
#[cfg_attr(not(bootstrap), doc = "```compile_fail,E0277")]
|
||||||
/// #![feature(transmutability)]
|
/// #![feature(transmutability)]
|
||||||
/// use core::mem::{align_of, BikeshedIntrinsicFrom};
|
/// use core::mem::{align_of, TransmuteFrom};
|
||||||
///
|
///
|
||||||
/// assert_eq!(align_of::<[u8; 2]>(), 1);
|
/// assert_eq!(align_of::<[u8; 2]>(), 1);
|
||||||
/// assert_eq!(align_of::<u16>(), 2);
|
/// assert_eq!(align_of::<u16>(), 2);
|
||||||
@ -165,18 +163,18 @@ pub struct Assume {
|
|||||||
///
|
///
|
||||||
/// // SAFETY: No safety obligations.
|
/// // SAFETY: No safety obligations.
|
||||||
/// let dst: &u16 = unsafe {
|
/// let dst: &u16 = unsafe {
|
||||||
/// <_ as BikeshedIntrinsicFrom<_>>::transmute(src)
|
/// <_ as TransmuteFrom<_>>::transmute(src)
|
||||||
/// };
|
/// };
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// When `true`, [`BikeshedIntrinsicFrom`] assumes that *you* have ensured
|
/// When `true`, [`TransmuteFrom`] assumes that *you* have ensured
|
||||||
/// that references in the transmuted value satisfy the alignment
|
/// that references in the transmuted value satisfy the alignment
|
||||||
/// requirements of their referent types; e.g.:
|
/// requirements of their referent types; e.g.:
|
||||||
///
|
///
|
||||||
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
||||||
#[cfg_attr(not(bootstrap), doc = "```rust")]
|
#[cfg_attr(not(bootstrap), doc = "```rust")]
|
||||||
/// #![feature(pointer_is_aligned_to, transmutability)]
|
/// #![feature(pointer_is_aligned_to, transmutability)]
|
||||||
/// use core::mem::{align_of, Assume, BikeshedIntrinsicFrom};
|
/// use core::mem::{align_of, Assume, TransmuteFrom};
|
||||||
///
|
///
|
||||||
/// let src: &[u8; 2] = &[0xFF, 0xFF];
|
/// let src: &[u8; 2] = &[0xFF, 0xFF];
|
||||||
///
|
///
|
||||||
@ -184,7 +182,7 @@ pub struct Assume {
|
|||||||
/// // SAFETY: We have checked above that the address of `src` satisfies the
|
/// // SAFETY: We have checked above that the address of `src` satisfies the
|
||||||
/// // alignment requirements of `u16`.
|
/// // alignment requirements of `u16`.
|
||||||
/// Some(unsafe {
|
/// Some(unsafe {
|
||||||
/// <_ as BikeshedIntrinsicFrom<_, { Assume::ALIGNMENT }>>::transmute(src)
|
/// <_ as TransmuteFrom<_, { Assume::ALIGNMENT }>>::transmute(src)
|
||||||
/// })
|
/// })
|
||||||
/// } else {
|
/// } else {
|
||||||
/// None
|
/// None
|
||||||
@ -194,21 +192,21 @@ pub struct Assume {
|
|||||||
/// ```
|
/// ```
|
||||||
pub alignment: bool,
|
pub alignment: bool,
|
||||||
|
|
||||||
/// When `false`, [`BikeshedIntrinsicFrom`] is not implemented for
|
/// When `false`, [`TransmuteFrom`] is not implemented for transmutations
|
||||||
/// transmutations that extend the lifetimes of references.
|
/// that extend the lifetimes of references.
|
||||||
///
|
///
|
||||||
/// When `true`, [`BikeshedIntrinsicFrom`] assumes that *you* have ensured
|
/// When `true`, [`TransmuteFrom`] assumes that *you* have ensured that
|
||||||
/// that references in the transmuted value do not outlive their referents.
|
/// references in the transmuted value do not outlive their referents.
|
||||||
pub lifetimes: bool,
|
pub lifetimes: bool,
|
||||||
|
|
||||||
/// When `false`, [`BikeshedIntrinsicFrom`] is not implemented for
|
/// When `false`, [`TransmuteFrom`] is not implemented for transmutations
|
||||||
/// transmutations that might violate the library safety invariants of the
|
/// that might violate the library safety invariants of the destination
|
||||||
/// destination type; e.g.:
|
/// type; e.g.:
|
||||||
///
|
///
|
||||||
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
||||||
#[cfg_attr(not(bootstrap), doc = "```compile_fail,E0277")]
|
#[cfg_attr(not(bootstrap), doc = "```compile_fail,E0277")]
|
||||||
/// #![feature(transmutability)]
|
/// #![feature(transmutability)]
|
||||||
/// use core::mem::BikeshedIntrinsicFrom;
|
/// use core::mem::TransmuteFrom;
|
||||||
///
|
///
|
||||||
/// let src: u8 = 3;
|
/// let src: u8 = 3;
|
||||||
///
|
///
|
||||||
@ -219,18 +217,18 @@ pub struct Assume {
|
|||||||
///
|
///
|
||||||
/// // SAFETY: No safety obligations.
|
/// // SAFETY: No safety obligations.
|
||||||
/// let dst: EvenU8 = unsafe {
|
/// let dst: EvenU8 = unsafe {
|
||||||
/// <_ as BikeshedIntrinsicFrom<_>>::transmute(src)
|
/// <_ as TransmuteFrom<_>>::transmute(src)
|
||||||
/// };
|
/// };
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// When `true`, [`BikeshedIntrinsicFrom`] assumes that *you* have ensured
|
/// When `true`, [`TransmuteFrom`] assumes that *you* have ensured
|
||||||
/// that undefined behavior does not arise from using the transmuted value;
|
/// that undefined behavior does not arise from using the transmuted value;
|
||||||
/// e.g.:
|
/// e.g.:
|
||||||
///
|
///
|
||||||
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
||||||
#[cfg_attr(not(bootstrap), doc = "```rust")]
|
#[cfg_attr(not(bootstrap), doc = "```rust")]
|
||||||
/// #![feature(transmutability)]
|
/// #![feature(transmutability)]
|
||||||
/// use core::mem::{Assume, BikeshedIntrinsicFrom};
|
/// use core::mem::{Assume, TransmuteFrom};
|
||||||
///
|
///
|
||||||
/// let src: u8 = 42;
|
/// let src: u8 = 42;
|
||||||
///
|
///
|
||||||
@ -242,7 +240,7 @@ pub struct Assume {
|
|||||||
/// let maybe_dst: Option<EvenU8> = if src % 2 == 0 {
|
/// let maybe_dst: Option<EvenU8> = if src % 2 == 0 {
|
||||||
/// // SAFETY: We have checked above that the value of `src` is even.
|
/// // SAFETY: We have checked above that the value of `src` is even.
|
||||||
/// Some(unsafe {
|
/// Some(unsafe {
|
||||||
/// <_ as BikeshedIntrinsicFrom<_, { Assume::SAFETY }>>::transmute(src)
|
/// <_ as TransmuteFrom<_, { Assume::SAFETY }>>::transmute(src)
|
||||||
/// })
|
/// })
|
||||||
/// } else {
|
/// } else {
|
||||||
/// None
|
/// None
|
||||||
@ -252,31 +250,31 @@ pub struct Assume {
|
|||||||
/// ```
|
/// ```
|
||||||
pub safety: bool,
|
pub safety: bool,
|
||||||
|
|
||||||
/// When `false`, [`BikeshedIntrinsicFrom`] is not implemented for
|
/// When `false`, [`TransmuteFrom`] is not implemented for transmutations
|
||||||
/// transmutations that might violate the language-level bit-validity
|
/// that might violate the language-level bit-validity invariant of the
|
||||||
/// invariant of the destination type; e.g.:
|
/// destination type; e.g.:
|
||||||
///
|
///
|
||||||
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
||||||
#[cfg_attr(not(bootstrap), doc = "```compile_fail,E0277")]
|
#[cfg_attr(not(bootstrap), doc = "```compile_fail,E0277")]
|
||||||
/// #![feature(transmutability)]
|
/// #![feature(transmutability)]
|
||||||
/// use core::mem::BikeshedIntrinsicFrom;
|
/// use core::mem::TransmuteFrom;
|
||||||
///
|
///
|
||||||
/// let src: u8 = 3;
|
/// let src: u8 = 3;
|
||||||
///
|
///
|
||||||
/// // SAFETY: No safety obligations.
|
/// // SAFETY: No safety obligations.
|
||||||
/// let dst: bool = unsafe {
|
/// let dst: bool = unsafe {
|
||||||
/// <_ as BikeshedIntrinsicFrom<_>>::transmute(src)
|
/// <_ as TransmuteFrom<_>>::transmute(src)
|
||||||
/// };
|
/// };
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// When `true`, [`BikeshedIntrinsicFrom`] assumes that *you* have ensured
|
/// When `true`, [`TransmuteFrom`] assumes that *you* have ensured
|
||||||
/// that the value being transmuted is a bit-valid instance of the
|
/// that the value being transmuted is a bit-valid instance of the
|
||||||
/// transmuted value; e.g.:
|
/// transmuted value; e.g.:
|
||||||
///
|
///
|
||||||
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
#[cfg_attr(bootstrap, doc = "```rust,ignore not runnable on bootstrap")]
|
||||||
#[cfg_attr(not(bootstrap), doc = "```rust")]
|
#[cfg_attr(not(bootstrap), doc = "```rust")]
|
||||||
/// #![feature(transmutability)]
|
/// #![feature(transmutability)]
|
||||||
/// use core::mem::{Assume, BikeshedIntrinsicFrom};
|
/// use core::mem::{Assume, TransmuteFrom};
|
||||||
///
|
///
|
||||||
/// let src: u8 = 1;
|
/// let src: u8 = 1;
|
||||||
///
|
///
|
||||||
@ -284,7 +282,7 @@ pub struct Assume {
|
|||||||
/// // SAFETY: We have checked above that the value of `src` is a bit-valid
|
/// // SAFETY: We have checked above that the value of `src` is a bit-valid
|
||||||
/// // instance of `bool`.
|
/// // instance of `bool`.
|
||||||
/// Some(unsafe {
|
/// Some(unsafe {
|
||||||
/// <_ as BikeshedIntrinsicFrom<_, { Assume::VALIDITY }>>::transmute(src)
|
/// <_ as TransmuteFrom<_, { Assume::VALIDITY }>>::transmute(src)
|
||||||
/// })
|
/// })
|
||||||
/// } else {
|
/// } else {
|
||||||
/// None
|
/// None
|
||||||
@ -301,35 +299,34 @@ impl ConstParamTy_ for Assume {}
|
|||||||
impl UnsizedConstParamTy for Assume {}
|
impl UnsizedConstParamTy for Assume {}
|
||||||
|
|
||||||
impl Assume {
|
impl Assume {
|
||||||
/// With this, [`BikeshedIntrinsicFrom`] does not assume you have ensured
|
/// With this, [`TransmuteFrom`] does not assume you have ensured any safety
|
||||||
/// any safety obligations are met, and relies only upon its own analysis to
|
/// obligations are met, and relies only upon its own analysis to (dis)prove
|
||||||
/// (dis)prove transmutability.
|
/// transmutability.
|
||||||
#[unstable(feature = "transmutability", issue = "99571")]
|
#[unstable(feature = "transmutability", issue = "99571")]
|
||||||
pub const NOTHING: Self =
|
pub const NOTHING: Self =
|
||||||
Self { alignment: false, lifetimes: false, safety: false, validity: false };
|
Self { alignment: false, lifetimes: false, safety: false, validity: false };
|
||||||
|
|
||||||
/// With this, [`BikeshedIntrinsicFrom`] assumes only that you have ensured
|
/// With this, [`TransmuteFrom`] assumes only that you have ensured that
|
||||||
/// that references in the transmuted value satisfy the alignment
|
/// references in the transmuted value satisfy the alignment requirements of
|
||||||
/// requirements of their referent types. See [`Assume::alignment`] for
|
/// their referent types. See [`Assume::alignment`] for examples.
|
||||||
/// examples.
|
|
||||||
#[unstable(feature = "transmutability", issue = "99571")]
|
#[unstable(feature = "transmutability", issue = "99571")]
|
||||||
pub const ALIGNMENT: Self = Self { alignment: true, ..Self::NOTHING };
|
pub const ALIGNMENT: Self = Self { alignment: true, ..Self::NOTHING };
|
||||||
|
|
||||||
/// With this, [`BikeshedIntrinsicFrom`] assumes only that you have ensured
|
/// With this, [`TransmuteFrom`] assumes only that you have ensured that
|
||||||
/// that references in the transmuted value do not outlive their referents.
|
/// references in the transmuted value do not outlive their referents. See
|
||||||
/// See [`Assume::lifetimes`] for examples.
|
/// [`Assume::lifetimes`] for examples.
|
||||||
#[unstable(feature = "transmutability", issue = "99571")]
|
#[unstable(feature = "transmutability", issue = "99571")]
|
||||||
pub const LIFETIMES: Self = Self { lifetimes: true, ..Self::NOTHING };
|
pub const LIFETIMES: Self = Self { lifetimes: true, ..Self::NOTHING };
|
||||||
|
|
||||||
/// With this, [`BikeshedIntrinsicFrom`] assumes only that you have ensured
|
/// With this, [`TransmuteFrom`] assumes only that you have ensured that
|
||||||
/// that undefined behavior does not arise from using the transmuted value.
|
/// undefined behavior does not arise from using the transmuted value. See
|
||||||
/// See [`Assume::safety`] for examples.
|
/// [`Assume::safety`] for examples.
|
||||||
#[unstable(feature = "transmutability", issue = "99571")]
|
#[unstable(feature = "transmutability", issue = "99571")]
|
||||||
pub const SAFETY: Self = Self { safety: true, ..Self::NOTHING };
|
pub const SAFETY: Self = Self { safety: true, ..Self::NOTHING };
|
||||||
|
|
||||||
/// With this, [`BikeshedIntrinsicFrom`] assumes only that you have ensured
|
/// With this, [`TransmuteFrom`] assumes only that you have ensured that the
|
||||||
/// that the value being transmuted is a bit-valid instance of the
|
/// value being transmuted is a bit-valid instance of the transmuted value.
|
||||||
/// transmuted value. See [`Assume::validity`] for examples.
|
/// See [`Assume::validity`] for examples.
|
||||||
#[unstable(feature = "transmutability", issue = "99571")]
|
#[unstable(feature = "transmutability", issue = "99571")]
|
||||||
pub const VALIDITY: Self = Self { validity: true, ..Self::NOTHING };
|
pub const VALIDITY: Self = Self { validity: true, ..Self::NOTHING };
|
||||||
|
|
||||||
@ -348,7 +345,7 @@ impl Assume {
|
|||||||
/// transmutability,
|
/// transmutability,
|
||||||
/// )]
|
/// )]
|
||||||
/// #![allow(incomplete_features)]
|
/// #![allow(incomplete_features)]
|
||||||
/// use core::mem::{align_of, Assume, BikeshedIntrinsicFrom};
|
/// use core::mem::{align_of, Assume, TransmuteFrom};
|
||||||
///
|
///
|
||||||
/// /// Attempts to transmute `src` to `&Dst`.
|
/// /// Attempts to transmute `src` to `&Dst`.
|
||||||
/// ///
|
/// ///
|
||||||
@ -360,7 +357,7 @@ impl Assume {
|
|||||||
/// /// alignment, are satisfied.
|
/// /// alignment, are satisfied.
|
||||||
/// unsafe fn try_transmute_ref<'a, Src, Dst, const ASSUME: Assume>(src: &'a Src) -> Option<&'a Dst>
|
/// unsafe fn try_transmute_ref<'a, Src, Dst, const ASSUME: Assume>(src: &'a Src) -> Option<&'a Dst>
|
||||||
/// where
|
/// where
|
||||||
/// &'a Dst: BikeshedIntrinsicFrom<&'a Src, { ASSUME.and(Assume::ALIGNMENT) }>,
|
/// &'a Dst: TransmuteFrom<&'a Src, { ASSUME.and(Assume::ALIGNMENT) }>,
|
||||||
/// {
|
/// {
|
||||||
/// if <*const _>::is_aligned_to(src, align_of::<Dst>()) {
|
/// if <*const _>::is_aligned_to(src, align_of::<Dst>()) {
|
||||||
/// // SAFETY: By the above dynamic check, we have ensured that the address
|
/// // SAFETY: By the above dynamic check, we have ensured that the address
|
||||||
@ -368,7 +365,7 @@ impl Assume {
|
|||||||
/// // on the caller, the safety obligations required by `ASSUME` have also
|
/// // on the caller, the safety obligations required by `ASSUME` have also
|
||||||
/// // been satisfied.
|
/// // been satisfied.
|
||||||
/// Some(unsafe {
|
/// Some(unsafe {
|
||||||
/// <_ as BikeshedIntrinsicFrom<_, { ASSUME.and(Assume::ALIGNMENT) }>>::transmute(src)
|
/// <_ as TransmuteFrom<_, { ASSUME.and(Assume::ALIGNMENT) }>>::transmute(src)
|
||||||
/// })
|
/// })
|
||||||
/// } else {
|
/// } else {
|
||||||
/// None
|
/// None
|
||||||
|
@ -2888,8 +2888,8 @@ macro_rules! int_impl {
|
|||||||
///
|
///
|
||||||
/// # Panics
|
/// # Panics
|
||||||
///
|
///
|
||||||
/// This function will panic if `rhs` is 0 or if `self` is -1 and `rhs` is
|
/// This function will panic if `rhs` is 0 or if `self` is `Self::MIN`
|
||||||
/// `Self::MIN`. This behavior is not affected by the `overflow-checks` flag.
|
/// and `rhs` is -1. This behavior is not affected by the `overflow-checks` flag.
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
@ -2927,8 +2927,8 @@ macro_rules! int_impl {
|
|||||||
///
|
///
|
||||||
/// # Panics
|
/// # Panics
|
||||||
///
|
///
|
||||||
/// This function will panic if `rhs` is 0 or if `self` is -1 and `rhs` is
|
/// This function will panic if `rhs` is 0 or if `self` is `Self::MIN` and
|
||||||
/// `Self::MIN`. This behavior is not affected by the `overflow-checks` flag.
|
/// `rhs` is -1. This behavior is not affected by the `overflow-checks` flag.
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
@ -2943,6 +2943,11 @@ macro_rules! int_impl {
|
|||||||
/// assert_eq!(a.rem_euclid(-b), 3);
|
/// assert_eq!(a.rem_euclid(-b), 3);
|
||||||
/// assert_eq!((-a).rem_euclid(-b), 1);
|
/// assert_eq!((-a).rem_euclid(-b), 1);
|
||||||
/// ```
|
/// ```
|
||||||
|
///
|
||||||
|
/// This will panic:
|
||||||
|
/// ```should_panic
|
||||||
|
#[doc = concat!("let _ = ", stringify!($SelfT), "::MIN.rem_euclid(-1);")]
|
||||||
|
/// ```
|
||||||
#[doc(alias = "modulo", alias = "mod")]
|
#[doc(alias = "modulo", alias = "mod")]
|
||||||
#[stable(feature = "euclidean_division", since = "1.38.0")]
|
#[stable(feature = "euclidean_division", since = "1.38.0")]
|
||||||
#[rustc_const_stable(feature = "const_euclidean_int_methods", since = "1.52.0")]
|
#[rustc_const_stable(feature = "const_euclidean_int_methods", since = "1.52.0")]
|
||||||
@ -2971,8 +2976,8 @@ macro_rules! int_impl {
|
|||||||
///
|
///
|
||||||
/// # Panics
|
/// # Panics
|
||||||
///
|
///
|
||||||
/// This function will panic if `rhs` is 0 or if `self` is -1 and `rhs` is
|
/// This function will panic if `rhs` is 0 or if `self` is `Self::MIN`
|
||||||
/// `Self::MIN`. This behavior is not affected by the `overflow-checks` flag.
|
/// and `rhs` is -1. This behavior is not affected by the `overflow-checks` flag.
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
@ -3007,8 +3012,8 @@ macro_rules! int_impl {
|
|||||||
///
|
///
|
||||||
/// # Panics
|
/// # Panics
|
||||||
///
|
///
|
||||||
/// This function will panic if `rhs` is 0 or if `self` is -1 and `rhs` is
|
/// This function will panic if `rhs` is 0 or if `self` is `Self::MIN`
|
||||||
/// `Self::MIN`. This behavior is not affected by the `overflow-checks` flag.
|
/// and `rhs` is -1. This behavior is not affected by the `overflow-checks` flag.
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
|
@ -1370,7 +1370,15 @@ impl<Ptr: Deref> Pin<Ptr> {
|
|||||||
// SAFETY: see documentation on this function
|
// SAFETY: see documentation on this function
|
||||||
unsafe { Pin::new_unchecked(&*self.__pointer) }
|
unsafe { Pin::new_unchecked(&*self.__pointer) }
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// These methods being in a `Ptr: DerefMut` impl block concerns semver stability.
|
||||||
|
// Currently, calling e.g. `.set()` on a `Pin<&T>` sees that `Ptr: DerefMut`
|
||||||
|
// doesn't hold, and goes to check for a `.set()` method on `T`. But, if the
|
||||||
|
// `where Ptr: DerefMut` bound is moved to the method, rustc sees the impl block
|
||||||
|
// as a valid candidate, and doesn't go on to check other candidates when it
|
||||||
|
// sees that the bound on the method.
|
||||||
|
impl<Ptr: DerefMut> Pin<Ptr> {
|
||||||
/// Gets a mutable reference to the pinned value this `Pin<Ptr>` points to.
|
/// Gets a mutable reference to the pinned value this `Pin<Ptr>` points to.
|
||||||
///
|
///
|
||||||
/// This is a generic method to go from `&mut Pin<Pointer<T>>` to `Pin<&mut T>`.
|
/// This is a generic method to go from `&mut Pin<Pointer<T>>` to `Pin<&mut T>`.
|
||||||
@ -1402,10 +1410,7 @@ impl<Ptr: Deref> Pin<Ptr> {
|
|||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "pin", since = "1.33.0")]
|
#[stable(feature = "pin", since = "1.33.0")]
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn as_mut(&mut self) -> Pin<&mut Ptr::Target>
|
pub fn as_mut(&mut self) -> Pin<&mut Ptr::Target> {
|
||||||
where
|
|
||||||
Ptr: DerefMut,
|
|
||||||
{
|
|
||||||
// SAFETY: see documentation on this function
|
// SAFETY: see documentation on this function
|
||||||
unsafe { Pin::new_unchecked(&mut *self.__pointer) }
|
unsafe { Pin::new_unchecked(&mut *self.__pointer) }
|
||||||
}
|
}
|
||||||
@ -1420,10 +1425,7 @@ impl<Ptr: Deref> Pin<Ptr> {
|
|||||||
#[unstable(feature = "pin_deref_mut", issue = "86918")]
|
#[unstable(feature = "pin_deref_mut", issue = "86918")]
|
||||||
#[must_use = "`self` will be dropped if the result is not used"]
|
#[must_use = "`self` will be dropped if the result is not used"]
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn as_deref_mut(self: Pin<&mut Pin<Ptr>>) -> Pin<&mut Ptr::Target>
|
pub fn as_deref_mut(self: Pin<&mut Pin<Ptr>>) -> Pin<&mut Ptr::Target> {
|
||||||
where
|
|
||||||
Ptr: DerefMut,
|
|
||||||
{
|
|
||||||
// SAFETY: What we're asserting here is that going from
|
// SAFETY: What we're asserting here is that going from
|
||||||
//
|
//
|
||||||
// Pin<&mut Pin<Ptr>>
|
// Pin<&mut Pin<Ptr>>
|
||||||
@ -1475,12 +1477,13 @@ impl<Ptr: Deref> Pin<Ptr> {
|
|||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn set(&mut self, value: Ptr::Target)
|
pub fn set(&mut self, value: Ptr::Target)
|
||||||
where
|
where
|
||||||
Ptr: DerefMut,
|
|
||||||
Ptr::Target: Sized,
|
Ptr::Target: Sized,
|
||||||
{
|
{
|
||||||
*(self.__pointer) = value;
|
*(self.__pointer) = value;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<Ptr: Deref> Pin<Ptr> {
|
||||||
/// Unwraps this `Pin<Ptr>`, returning the underlying `Ptr`.
|
/// Unwraps this `Pin<Ptr>`, returning the underlying `Ptr`.
|
||||||
///
|
///
|
||||||
/// # Safety
|
/// # Safety
|
||||||
|
@ -75,11 +75,11 @@ pub(crate) fn write_shared(
|
|||||||
let crate_name = krate.name(cx.tcx());
|
let crate_name = krate.name(cx.tcx());
|
||||||
let crate_name = crate_name.as_str(); // rand
|
let crate_name = crate_name.as_str(); // rand
|
||||||
let crate_name_json = OrderedJson::serialize(crate_name).unwrap(); // "rand"
|
let crate_name_json = OrderedJson::serialize(crate_name).unwrap(); // "rand"
|
||||||
let external_crates = hack_get_external_crate_names(&cx.dst)?;
|
let external_crates = hack_get_external_crate_names(&cx.dst, &cx.shared.resource_suffix)?;
|
||||||
let info = CrateInfo {
|
let info = CrateInfo {
|
||||||
src_files_js: SourcesPart::get(cx, &crate_name_json)?,
|
src_files_js: SourcesPart::get(cx, &crate_name_json)?,
|
||||||
search_index_js: SearchIndexPart::get(index, &cx.shared.resource_suffix)?,
|
search_index_js: SearchIndexPart::get(index, &cx.shared.resource_suffix)?,
|
||||||
all_crates: AllCratesPart::get(crate_name_json.clone())?,
|
all_crates: AllCratesPart::get(crate_name_json.clone(), &cx.shared.resource_suffix)?,
|
||||||
crates_index: CratesIndexPart::get(&crate_name, &external_crates)?,
|
crates_index: CratesIndexPart::get(&crate_name, &external_crates)?,
|
||||||
trait_impl: TraitAliasPart::get(cx, &crate_name_json)?,
|
trait_impl: TraitAliasPart::get(cx, &crate_name_json)?,
|
||||||
type_impl: TypeAliasPart::get(cx, krate, &crate_name_json)?,
|
type_impl: TypeAliasPart::get(cx, krate, &crate_name_json)?,
|
||||||
@ -291,10 +291,13 @@ impl AllCratesPart {
|
|||||||
SortedTemplate::from_before_after("window.ALL_CRATES = [", "];")
|
SortedTemplate::from_before_after("window.ALL_CRATES = [", "];")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get(crate_name_json: OrderedJson) -> Result<PartsAndLocations<Self>, Error> {
|
fn get(
|
||||||
|
crate_name_json: OrderedJson,
|
||||||
|
resource_suffix: &str,
|
||||||
|
) -> Result<PartsAndLocations<Self>, Error> {
|
||||||
// external hack_get_external_crate_names not needed here, because
|
// external hack_get_external_crate_names not needed here, because
|
||||||
// there's no way that we write the search index but not crates.js
|
// there's no way that we write the search index but not crates.js
|
||||||
let path = PathBuf::from("crates.js");
|
let path = suffix_path("crates.js", resource_suffix);
|
||||||
Ok(PartsAndLocations::with(path, crate_name_json))
|
Ok(PartsAndLocations::with(path, crate_name_json))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -305,8 +308,11 @@ impl AllCratesPart {
|
|||||||
///
|
///
|
||||||
/// This is to match the current behavior of rustdoc, which allows you to get all crates
|
/// This is to match the current behavior of rustdoc, which allows you to get all crates
|
||||||
/// on the index page, even if --enable-index-page is only passed to the last crate.
|
/// on the index page, even if --enable-index-page is only passed to the last crate.
|
||||||
fn hack_get_external_crate_names(doc_root: &Path) -> Result<Vec<String>, Error> {
|
fn hack_get_external_crate_names(
|
||||||
let path = doc_root.join("crates.js");
|
doc_root: &Path,
|
||||||
|
resource_suffix: &str,
|
||||||
|
) -> Result<Vec<String>, Error> {
|
||||||
|
let path = doc_root.join(suffix_path("crates.js", resource_suffix));
|
||||||
let Ok(content) = fs::read_to_string(&path) else {
|
let Ok(content) = fs::read_to_string(&path) else {
|
||||||
// they didn't emit invocation specific, so we just say there were no crates
|
// they didn't emit invocation specific, so we just say there were no crates
|
||||||
return Ok(Vec::default());
|
return Ok(Vec::default());
|
||||||
|
@ -6,10 +6,10 @@ use crate::html::render::write_shared::*;
|
|||||||
fn hack_external_crate_names() {
|
fn hack_external_crate_names() {
|
||||||
let path = tempfile::TempDir::new().unwrap();
|
let path = tempfile::TempDir::new().unwrap();
|
||||||
let path = path.path();
|
let path = path.path();
|
||||||
let crates = hack_get_external_crate_names(&path).unwrap();
|
let crates = hack_get_external_crate_names(&path, "").unwrap();
|
||||||
assert!(crates.is_empty());
|
assert!(crates.is_empty());
|
||||||
fs::write(path.join("crates.js"), r#"window.ALL_CRATES = ["a","b","c"];"#).unwrap();
|
fs::write(path.join("crates.js"), r#"window.ALL_CRATES = ["a","b","c"];"#).unwrap();
|
||||||
let crates = hack_get_external_crate_names(&path).unwrap();
|
let crates = hack_get_external_crate_names(&path, "").unwrap();
|
||||||
assert_eq!(crates, ["a".to_string(), "b".to_string(), "c".to_string()]);
|
assert_eq!(crates, ["a".to_string(), "b".to_string(), "c".to_string()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ fn all_crates_template() {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn all_crates_parts() {
|
fn all_crates_parts() {
|
||||||
let parts = AllCratesPart::get(OrderedJson::serialize("crate").unwrap()).unwrap();
|
let parts = AllCratesPart::get(OrderedJson::serialize("crate").unwrap(), "").unwrap();
|
||||||
assert_eq!(&parts.parts[0].0, Path::new("crates.js"));
|
assert_eq!(&parts.parts[0].0, Path::new("crates.js"));
|
||||||
assert_eq!(&parts.parts[0].1.to_string(), r#""crate""#);
|
assert_eq!(&parts.parts[0].1.to_string(), r#""crate""#);
|
||||||
}
|
}
|
||||||
|
@ -946,16 +946,48 @@ impl<'tcx> Machine<'tcx> for MiriMachine<'tcx> {
|
|||||||
ecx.machine.validation == ValidationMode::Deep
|
ecx.machine.validation == ValidationMode::Deep
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
|
||||||
fn enforce_abi(_ecx: &MiriInterpCx<'tcx>) -> bool {
|
|
||||||
true
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
fn ignore_optional_overflow_checks(ecx: &MiriInterpCx<'tcx>) -> bool {
|
fn ignore_optional_overflow_checks(ecx: &MiriInterpCx<'tcx>) -> bool {
|
||||||
!ecx.tcx.sess.overflow_checks()
|
!ecx.tcx.sess.overflow_checks()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn check_fn_target_features(
|
||||||
|
ecx: &MiriInterpCx<'tcx>,
|
||||||
|
instance: ty::Instance<'tcx>,
|
||||||
|
) -> InterpResult<'tcx> {
|
||||||
|
let attrs = ecx.tcx.codegen_fn_attrs(instance.def_id());
|
||||||
|
if attrs
|
||||||
|
.target_features
|
||||||
|
.iter()
|
||||||
|
.any(|feature| !ecx.tcx.sess.target_features.contains(&feature.name))
|
||||||
|
{
|
||||||
|
let unavailable = attrs
|
||||||
|
.target_features
|
||||||
|
.iter()
|
||||||
|
.filter(|&feature| {
|
||||||
|
!feature.implied && !ecx.tcx.sess.target_features.contains(&feature.name)
|
||||||
|
})
|
||||||
|
.fold(String::new(), |mut s, feature| {
|
||||||
|
if !s.is_empty() {
|
||||||
|
s.push_str(", ");
|
||||||
|
}
|
||||||
|
s.push_str(feature.name.as_str());
|
||||||
|
s
|
||||||
|
});
|
||||||
|
let msg = format!(
|
||||||
|
"calling a function that requires unavailable target features: {unavailable}"
|
||||||
|
);
|
||||||
|
// On WASM, this is not UB, but instead gets rejected during validation of the module
|
||||||
|
// (see #84988).
|
||||||
|
if ecx.tcx.sess.target.is_like_wasm {
|
||||||
|
throw_machine_stop!(TerminationInfo::Abort(msg));
|
||||||
|
} else {
|
||||||
|
throw_ub_format!("{msg}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
fn find_mir_or_eval_fn(
|
fn find_mir_or_eval_fn(
|
||||||
ecx: &mut MiriInterpCx<'tcx>,
|
ecx: &mut MiriInterpCx<'tcx>,
|
||||||
@ -1060,6 +1092,10 @@ impl<'tcx> Machine<'tcx> for MiriMachine<'tcx> {
|
|||||||
ecx.generate_nan(inputs)
|
ecx.generate_nan(inputs)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn ub_checks(ecx: &InterpCx<'tcx, Self>) -> InterpResult<'tcx, bool> {
|
||||||
|
Ok(ecx.tcx.sess.ub_checks())
|
||||||
|
}
|
||||||
|
|
||||||
fn thread_local_static_pointer(
|
fn thread_local_static_pointer(
|
||||||
ecx: &mut MiriInterpCx<'tcx>,
|
ecx: &mut MiriInterpCx<'tcx>,
|
||||||
def_id: DefId,
|
def_id: DefId,
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
//@compile-flags: -C target-feature=-simd128
|
//@compile-flags: -C target-feature=-simd128
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
// Calling functions with `#[target_feature]` is not unsound on WASM, see #84988
|
// Calling functions with `#[target_feature]` is not unsound on WASM, see #84988.
|
||||||
|
// But if the compiler actually uses the target feature, it will lead to an error when the module is loaded.
|
||||||
|
// We emulate this with an "unsupported" error.
|
||||||
assert!(!cfg!(target_feature = "simd128"));
|
assert!(!cfg!(target_feature = "simd128"));
|
||||||
simd128_fn();
|
simd128_fn();
|
||||||
}
|
}
|
20
tests/codegen/naked-fn/aligned.rs
Normal file
20
tests/codegen/naked-fn/aligned.rs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
//@ compile-flags: -C no-prepopulate-passes -Copt-level=0
|
||||||
|
//@ needs-asm-support
|
||||||
|
//@ ignore-arm no "ret" mnemonic
|
||||||
|
|
||||||
|
#![crate_type = "lib"]
|
||||||
|
#![feature(naked_functions, fn_align)]
|
||||||
|
use std::arch::asm;
|
||||||
|
|
||||||
|
// CHECK: Function Attrs: naked
|
||||||
|
// CHECK-NEXT: define{{.*}}void @naked_empty()
|
||||||
|
// CHECK: align 16
|
||||||
|
#[repr(align(16))]
|
||||||
|
#[no_mangle]
|
||||||
|
#[naked]
|
||||||
|
pub unsafe extern "C" fn naked_empty() {
|
||||||
|
// CHECK-NEXT: start:
|
||||||
|
// CHECK-NEXT: call void asm
|
||||||
|
// CHECK-NEXT: unreachable
|
||||||
|
asm!("ret", options(noreturn));
|
||||||
|
}
|
@ -3,11 +3,11 @@
|
|||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, { Assume::NOTHING }>,
|
Dst: TransmuteFrom<Src, { Assume::NOTHING }>,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,6 @@
|
|||||||
trait OpaqueTrait {}
|
trait OpaqueTrait {}
|
||||||
type OpaqueType = impl OpaqueTrait;
|
type OpaqueType = impl OpaqueTrait;
|
||||||
trait AnotherTrait {}
|
trait AnotherTrait {}
|
||||||
impl<T: std::mem::BikeshedIntrinsicFrom<(), ()>> AnotherTrait for T {}
|
impl<T: std::mem::TransmuteFrom<(), ()>> AnotherTrait for T {}
|
||||||
impl AnotherTrait for OpaqueType {}
|
impl AnotherTrait for OpaqueType {}
|
||||||
pub fn main() {}
|
pub fn main() {}
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
#![feature(unboxed_closures,effects)]
|
#![feature(unboxed_closures,effects)]
|
||||||
|
|
||||||
const fn test() -> impl std::mem::BikeshedIntrinsicFrom() {
|
const fn test() -> impl std::mem::TransmuteFrom() {
|
||||||
|| {}
|
|| {}
|
||||||
}
|
}
|
||||||
|
@ -14,11 +14,11 @@ pub enum Error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src>, // safety is NOT assumed
|
Dst: TransmuteFrom<Src>, // safety is NOT assumed
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#![feature(generic_const_exprs)]
|
#![feature(generic_const_exprs)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<
|
pub fn is_transmutable<
|
||||||
Src,
|
Src,
|
||||||
@ -15,7 +15,7 @@ mod assert {
|
|||||||
const ASSUME_VALIDITY: bool,
|
const ASSUME_VALIDITY: bool,
|
||||||
>()
|
>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<
|
Dst: TransmuteFrom<
|
||||||
Src,
|
Src,
|
||||||
{ }
|
{ }
|
||||||
>,
|
>,
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
//@ known-bug: rust-lang/rust#126966
|
//@ known-bug: rust-lang/rust#126966
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src>,
|
Dst: TransmuteFrom<Src>,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ fn main() {
|
|||||||
.input("x.rs")
|
.input("x.rs")
|
||||||
.run();
|
.run();
|
||||||
assert!(Path::new("invocation-only/search-index-xxx.js").exists());
|
assert!(Path::new("invocation-only/search-index-xxx.js").exists());
|
||||||
|
assert!(Path::new("invocation-only/crates-xxx.js").exists());
|
||||||
assert!(Path::new("invocation-only/settings.html").exists());
|
assert!(Path::new("invocation-only/settings.html").exists());
|
||||||
assert!(Path::new("invocation-only/x/all.html").exists());
|
assert!(Path::new("invocation-only/x/all.html").exists());
|
||||||
assert!(Path::new("invocation-only/x/index.html").exists());
|
assert!(Path::new("invocation-only/x/index.html").exists());
|
||||||
|
48
tests/ui/asm/naked-with-invalid-repr-attr.rs
Normal file
48
tests/ui/asm/naked-with-invalid-repr-attr.rs
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
//@ needs-asm-support
|
||||||
|
#![feature(naked_functions)]
|
||||||
|
#![feature(fn_align)]
|
||||||
|
#![crate_type = "lib"]
|
||||||
|
use std::arch::asm;
|
||||||
|
|
||||||
|
#[repr(C)]
|
||||||
|
//~^ ERROR attribute should be applied to a struct, enum, or union [E0517]
|
||||||
|
#[naked]
|
||||||
|
extern "C" fn example1() {
|
||||||
|
//~^ NOTE not a struct, enum, or union
|
||||||
|
unsafe { asm!("", options(noreturn)) }
|
||||||
|
}
|
||||||
|
|
||||||
|
#[repr(transparent)]
|
||||||
|
//~^ ERROR attribute should be applied to a struct, enum, or union [E0517]
|
||||||
|
#[naked]
|
||||||
|
extern "C" fn example2() {
|
||||||
|
//~^ NOTE not a struct, enum, or union
|
||||||
|
unsafe { asm!("", options(noreturn)) }
|
||||||
|
}
|
||||||
|
|
||||||
|
#[repr(align(16), C)]
|
||||||
|
//~^ ERROR attribute should be applied to a struct, enum, or union [E0517]
|
||||||
|
#[naked]
|
||||||
|
extern "C" fn example3() {
|
||||||
|
//~^ NOTE not a struct, enum, or union
|
||||||
|
unsafe { asm!("", options(noreturn)) }
|
||||||
|
}
|
||||||
|
|
||||||
|
// note: two errors because of packed and C
|
||||||
|
#[repr(C, packed)]
|
||||||
|
//~^ ERROR attribute should be applied to a struct or union [E0517]
|
||||||
|
//~| ERROR attribute should be applied to a struct, enum, or union [E0517]
|
||||||
|
#[naked]
|
||||||
|
extern "C" fn example4() {
|
||||||
|
//~^ NOTE not a struct, enum, or union
|
||||||
|
//~| NOTE not a struct or union
|
||||||
|
unsafe { asm!("", options(noreturn)) }
|
||||||
|
}
|
||||||
|
|
||||||
|
#[repr(u8)]
|
||||||
|
//~^ ERROR attribute should be applied to an enum [E0517]
|
||||||
|
#[naked]
|
||||||
|
extern "C" fn example5() {
|
||||||
|
//~^ NOTE not an enum
|
||||||
|
unsafe { asm!("", options(noreturn)) }
|
||||||
|
}
|
77
tests/ui/asm/naked-with-invalid-repr-attr.stderr
Normal file
77
tests/ui/asm/naked-with-invalid-repr-attr.stderr
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
error[E0517]: attribute should be applied to a struct, enum, or union
|
||||||
|
--> $DIR/naked-with-invalid-repr-attr.rs:7:8
|
||||||
|
|
|
||||||
|
LL | #[repr(C)]
|
||||||
|
| ^
|
||||||
|
...
|
||||||
|
LL | / extern "C" fn example1() {
|
||||||
|
LL | |
|
||||||
|
LL | | unsafe { asm!("", options(noreturn)) }
|
||||||
|
LL | | }
|
||||||
|
| |_- not a struct, enum, or union
|
||||||
|
|
||||||
|
error[E0517]: attribute should be applied to a struct, enum, or union
|
||||||
|
--> $DIR/naked-with-invalid-repr-attr.rs:15:8
|
||||||
|
|
|
||||||
|
LL | #[repr(transparent)]
|
||||||
|
| ^^^^^^^^^^^
|
||||||
|
...
|
||||||
|
LL | / extern "C" fn example2() {
|
||||||
|
LL | |
|
||||||
|
LL | | unsafe { asm!("", options(noreturn)) }
|
||||||
|
LL | | }
|
||||||
|
| |_- not a struct, enum, or union
|
||||||
|
|
||||||
|
error[E0517]: attribute should be applied to a struct, enum, or union
|
||||||
|
--> $DIR/naked-with-invalid-repr-attr.rs:23:19
|
||||||
|
|
|
||||||
|
LL | #[repr(align(16), C)]
|
||||||
|
| ^
|
||||||
|
...
|
||||||
|
LL | / extern "C" fn example3() {
|
||||||
|
LL | |
|
||||||
|
LL | | unsafe { asm!("", options(noreturn)) }
|
||||||
|
LL | | }
|
||||||
|
| |_- not a struct, enum, or union
|
||||||
|
|
||||||
|
error[E0517]: attribute should be applied to a struct, enum, or union
|
||||||
|
--> $DIR/naked-with-invalid-repr-attr.rs:32:8
|
||||||
|
|
|
||||||
|
LL | #[repr(C, packed)]
|
||||||
|
| ^
|
||||||
|
...
|
||||||
|
LL | / extern "C" fn example4() {
|
||||||
|
LL | |
|
||||||
|
LL | |
|
||||||
|
LL | | unsafe { asm!("", options(noreturn)) }
|
||||||
|
LL | | }
|
||||||
|
| |_- not a struct, enum, or union
|
||||||
|
|
||||||
|
error[E0517]: attribute should be applied to a struct or union
|
||||||
|
--> $DIR/naked-with-invalid-repr-attr.rs:32:11
|
||||||
|
|
|
||||||
|
LL | #[repr(C, packed)]
|
||||||
|
| ^^^^^^
|
||||||
|
...
|
||||||
|
LL | / extern "C" fn example4() {
|
||||||
|
LL | |
|
||||||
|
LL | |
|
||||||
|
LL | | unsafe { asm!("", options(noreturn)) }
|
||||||
|
LL | | }
|
||||||
|
| |_- not a struct or union
|
||||||
|
|
||||||
|
error[E0517]: attribute should be applied to an enum
|
||||||
|
--> $DIR/naked-with-invalid-repr-attr.rs:42:8
|
||||||
|
|
|
||||||
|
LL | #[repr(u8)]
|
||||||
|
| ^^
|
||||||
|
...
|
||||||
|
LL | / extern "C" fn example5() {
|
||||||
|
LL | |
|
||||||
|
LL | | unsafe { asm!("", options(noreturn)) }
|
||||||
|
LL | | }
|
||||||
|
| |_- not an enum
|
||||||
|
|
||||||
|
error: aborting due to 6 previous errors
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0517`.
|
@ -4,11 +4,11 @@
|
|||||||
#![allow(incomplete_features, unstable_features)]
|
#![allow(incomplete_features, unstable_features)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst, Context, const ASSUME: std::mem::Assume>()
|
pub fn is_transmutable<Src, Dst, Context, const ASSUME: std::mem::Assume>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, Context, ASSUME>,
|
Dst: TransmuteFrom<Src, Context, ASSUME>,
|
||||||
//~^ ERROR trait takes at most 2 generic arguments but 3 generic arguments were supplied
|
//~^ ERROR trait takes at most 2 generic arguments but 3 generic arguments were supplied
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
error[E0107]: trait takes at most 2 generic arguments but 3 generic arguments were supplied
|
error[E0107]: trait takes at most 2 generic arguments but 3 generic arguments were supplied
|
||||||
--> $DIR/transmutable-ice-110969.rs:11:14
|
--> $DIR/transmutable-ice-110969.rs:11:14
|
||||||
|
|
|
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, Context, ASSUME>,
|
LL | Dst: TransmuteFrom<Src, Context, ASSUME>,
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^ -------- help: remove the unnecessary generic argument
|
| ^^^^^^^^^^^^^ -------- help: remove the unnecessary generic argument
|
||||||
| |
|
| |
|
||||||
| expected at most 2 generic arguments
|
| expected at most 2 generic arguments
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
//@ only-x86_64
|
//@ only-x86_64
|
||||||
// Set the base cpu explicitly, in case the default has been changed.
|
// Set the base cpu explicitly, in case the default has been changed.
|
||||||
//@ compile-flags: -C target-cpu=x86-64 -C target-feature=+ssse3
|
//@ compile-flags: -C target-cpu=x86-64 -C target-feature=+ssse3
|
||||||
|
//@ check-pass
|
||||||
|
|
||||||
#![crate_type = "lib"]
|
#![crate_type = "lib"]
|
||||||
|
|
||||||
@ -9,7 +10,8 @@ const A: () = unsafe { ssse3_fn() };
|
|||||||
|
|
||||||
// error (avx2 not enabled at compile time)
|
// error (avx2 not enabled at compile time)
|
||||||
const B: () = unsafe { avx2_fn() };
|
const B: () = unsafe { avx2_fn() };
|
||||||
//~^ ERROR evaluation of constant value failed
|
// FIXME: currently we do not detect this UB, since we don't want the result of const-eval
|
||||||
|
// to depend on `tcx.sess` which can differ between crates in a crate graph.
|
||||||
|
|
||||||
#[target_feature(enable = "ssse3")]
|
#[target_feature(enable = "ssse3")]
|
||||||
const unsafe fn ssse3_fn() {}
|
const unsafe fn ssse3_fn() {}
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
error[E0080]: evaluation of constant value failed
|
|
||||||
--> $DIR/const_fn_target_feature.rs:11:24
|
|
||||||
|
|
|
||||||
LL | const B: () = unsafe { avx2_fn() };
|
|
||||||
| ^^^^^^^^^ calling a function that requires unavailable target features: avx2
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
|
||||||
|
|
||||||
For more information about this error, try `rustc --explain E0080`.
|
|
@ -7,7 +7,9 @@
|
|||||||
#[cfg(target_feature = "simd128")]
|
#[cfg(target_feature = "simd128")]
|
||||||
compile_error!("simd128 target feature should be disabled");
|
compile_error!("simd128 target feature should be disabled");
|
||||||
|
|
||||||
// Calling functions with `#[target_feature]` is not unsound on WASM, see #84988
|
// Calling functions with `#[target_feature]` is not unsound on WASM, see #84988.
|
||||||
|
// (It can still lead to a runtime error though so we'd be in our right to abort execution,
|
||||||
|
// just not to declare it UB.)
|
||||||
const A: () = simd128_fn();
|
const A: () = simd128_fn();
|
||||||
|
|
||||||
#[target_feature(enable = "simd128")]
|
#[target_feature(enable = "simd128")]
|
||||||
|
@ -13,5 +13,13 @@ const RAW_EQ_PTR: bool = unsafe {
|
|||||||
//~| unable to turn pointer into integer
|
//~| unable to turn pointer into integer
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const RAW_EQ_NOT_ALIGNED: bool = unsafe {
|
||||||
|
let arr = [0u8; 4];
|
||||||
|
let aref = &*arr.as_ptr().cast::<i32>();
|
||||||
|
std::intrinsics::raw_eq(aref, aref)
|
||||||
|
//~^ ERROR evaluation of constant value failed
|
||||||
|
//~| alignment
|
||||||
|
};
|
||||||
|
|
||||||
pub fn main() {
|
pub fn main() {
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,12 @@ LL | std::intrinsics::raw_eq(&(&0), &(&1))
|
|||||||
= help: this code performed an operation that depends on the underlying bytes representing a pointer
|
= help: this code performed an operation that depends on the underlying bytes representing a pointer
|
||||||
= help: the absolute address of a pointer is not known at compile-time, so such operations are not supported
|
= help: the absolute address of a pointer is not known at compile-time, so such operations are not supported
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error[E0080]: evaluation of constant value failed
|
||||||
|
--> $DIR/intrinsic-raw_eq-const-bad.rs:19:5
|
||||||
|
|
|
||||||
|
LL | std::intrinsics::raw_eq(aref, aref)
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ accessing memory with alignment 1, but alignment 4 is required
|
||||||
|
|
||||||
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
For more information about this error, try `rustc --explain E0080`.
|
For more information about this error, try `rustc --explain E0080`.
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_transmutable<
|
pub fn is_transmutable<
|
||||||
Src,
|
Src,
|
||||||
@ -16,7 +16,7 @@ mod assert {
|
|||||||
const ASSUME: std::mem::Assume,
|
const ASSUME: std::mem::Assume,
|
||||||
>()
|
>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<
|
Dst: TransmuteFrom<
|
||||||
Src,
|
Src,
|
||||||
ASSUME,
|
ASSUME,
|
||||||
>,
|
>,
|
||||||
|
@ -6,12 +6,12 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn array_like<T, E, const N: usize>()
|
pub fn array_like<T, E, const N: usize>()
|
||||||
where
|
where
|
||||||
T: BikeshedIntrinsicFrom<[E; N], { Assume::SAFETY }>,
|
T: TransmuteFrom<[E; N], { Assume::SAFETY }>,
|
||||||
[E; N]: BikeshedIntrinsicFrom<T, { Assume::SAFETY }>
|
[E; N]: TransmuteFrom<T, { Assume::SAFETY }>
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume {
|
Assume {
|
||||||
alignment: false,
|
alignment: false,
|
||||||
lifetimes: true,
|
lifetimes: true,
|
||||||
|
@ -10,7 +10,7 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: false,
|
LL | | alignment: false,
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume {
|
Assume {
|
||||||
alignment: false,
|
alignment: false,
|
||||||
lifetimes: false,
|
lifetimes: false,
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
#![crate_type = "lib"]
|
#![crate_type = "lib"]
|
||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src>,
|
Dst: TransmuteFrom<Src>,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,8 +10,8 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>,
|
LL | Dst: TransmuteFrom<Src>,
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_maybe_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_maybe_transmutable`
|
||||||
|
|
||||||
error[E0277]: `ExplicitlyPadded` cannot be safely transmuted into `()`
|
error[E0277]: `ExplicitlyPadded` cannot be safely transmuted into `()`
|
||||||
--> $DIR/huge-len.rs:24:55
|
--> $DIR/huge-len.rs:24:55
|
||||||
@ -25,8 +25,8 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>,
|
LL | Dst: TransmuteFrom<Src>,
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_maybe_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_maybe_transmutable`
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<
|
Dst: TransmuteFrom<
|
||||||
Src,
|
Src,
|
||||||
{ Assume { alignment: true, lifetimes: true, safety: true, validity: true } },
|
{ Assume { alignment: true, lifetimes: true, safety: true, validity: true } },
|
||||||
>,
|
>,
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY.and(Assume::VALIDITY) }>
|
Dst: TransmuteFrom<Src, { Assume::SAFETY.and(Assume::VALIDITY) }>
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume::ALIGNMENT
|
Assume::ALIGNMENT
|
||||||
.and(Assume::LIFETIMES)
|
.and(Assume::LIFETIMES)
|
||||||
.and(Assume::SAFETY)
|
.and(Assume::SAFETY)
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume::ALIGNMENT
|
Assume::ALIGNMENT
|
||||||
.and(Assume::LIFETIMES)
|
.and(Assume::LIFETIMES)
|
||||||
.and(Assume::SAFETY)
|
.and(Assume::SAFETY)
|
||||||
|
@ -10,7 +10,7 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume::ALIGNMENT
|
LL | | Assume::ALIGNMENT
|
||||||
LL | | .and(Assume::LIFETIMES)
|
LL | | .and(Assume::LIFETIMES)
|
||||||
@ -31,7 +31,7 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume::ALIGNMENT
|
LL | | Assume::ALIGNMENT
|
||||||
LL | | .and(Assume::LIFETIMES)
|
LL | | .and(Assume::LIFETIMES)
|
||||||
@ -52,7 +52,7 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume::ALIGNMENT
|
LL | | Assume::ALIGNMENT
|
||||||
LL | | .and(Assume::LIFETIMES)
|
LL | | .and(Assume::LIFETIMES)
|
||||||
@ -73,7 +73,7 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume::ALIGNMENT
|
LL | | Assume::ALIGNMENT
|
||||||
LL | | .and(Assume::LIFETIMES)
|
LL | | .and(Assume::LIFETIMES)
|
||||||
@ -94,7 +94,7 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume::ALIGNMENT
|
LL | | Assume::ALIGNMENT
|
||||||
LL | | .and(Assume::LIFETIMES)
|
LL | | .and(Assume::LIFETIMES)
|
||||||
@ -115,7 +115,7 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume::ALIGNMENT
|
LL | | Assume::ALIGNMENT
|
||||||
LL | | .and(Assume::LIFETIMES)
|
LL | | .and(Assume::LIFETIMES)
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume {
|
Assume {
|
||||||
alignment: false,
|
alignment: false,
|
||||||
lifetimes: false,
|
lifetimes: false,
|
||||||
@ -21,7 +21,7 @@ mod assert {
|
|||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume {
|
Assume {
|
||||||
alignment: false,
|
alignment: false,
|
||||||
lifetimes: false,
|
lifetimes: false,
|
||||||
|
@ -7,11 +7,11 @@
|
|||||||
use std::mem::MaybeUninit;
|
use std::mem::MaybeUninit;
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume {
|
Assume {
|
||||||
alignment: false,
|
alignment: false,
|
||||||
lifetimes: false,
|
lifetimes: false,
|
||||||
@ -23,7 +23,7 @@ mod assert {
|
|||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume {
|
Assume {
|
||||||
alignment: false,
|
alignment: false,
|
||||||
lifetimes: false,
|
lifetimes: false,
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume {
|
Assume {
|
||||||
alignment: true,
|
alignment: true,
|
||||||
lifetimes: true,
|
lifetimes: true,
|
||||||
|
@ -10,7 +10,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -32,7 +32,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -54,7 +54,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -76,7 +76,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -98,7 +98,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -120,7 +120,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -142,7 +142,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -164,7 +164,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -186,7 +186,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -208,7 +208,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -230,7 +230,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -252,7 +252,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -274,7 +274,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -296,7 +296,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -318,7 +318,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -340,7 +340,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -362,7 +362,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -384,7 +384,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -406,7 +406,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
@ -428,7 +428,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume {
|
Assume {
|
||||||
alignment: true,
|
alignment: true,
|
||||||
lifetimes: true,
|
lifetimes: true,
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume::ALIGNMENT
|
Assume::ALIGNMENT
|
||||||
.and(Assume::LIFETIMES)
|
.and(Assume::LIFETIMES)
|
||||||
.and(Assume::SAFETY)
|
.and(Assume::SAFETY)
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume::ALIGNMENT
|
Assume::ALIGNMENT
|
||||||
.and(Assume::LIFETIMES)
|
.and(Assume::LIFETIMES)
|
||||||
.and(Assume::SAFETY)
|
.and(Assume::SAFETY)
|
||||||
|
@ -10,7 +10,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume::ALIGNMENT
|
LL | | Assume::ALIGNMENT
|
||||||
LL | | .and(Assume::LIFETIMES)
|
LL | | .and(Assume::LIFETIMES)
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume::ALIGNMENT
|
Assume::ALIGNMENT
|
||||||
.and(Assume::LIFETIMES)
|
.and(Assume::LIFETIMES)
|
||||||
.and(Assume::SAFETY)
|
.and(Assume::SAFETY)
|
||||||
|
@ -10,7 +10,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume::ALIGNMENT
|
LL | | Assume::ALIGNMENT
|
||||||
LL | | .and(Assume::LIFETIMES)
|
LL | | .and(Assume::LIFETIMES)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
fn assert_transmutable<T>()
|
fn assert_transmutable<T>()
|
||||||
where
|
where
|
||||||
(): std::mem::BikeshedIntrinsicFrom<T>
|
(): std::mem::TransmuteFrom<T>
|
||||||
{}
|
{}
|
||||||
|
|
||||||
enum Uninhabited {}
|
enum Uninhabited {}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_transmutable<Src, const ASSUME_ALIGNMENT: bool>()
|
pub fn is_transmutable<Src, const ASSUME_ALIGNMENT: bool>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, ASSUME_ALIGNMENT>, //~ ERROR cannot find type `Dst` in this scope
|
Dst: TransmuteFrom<Src, ASSUME_ALIGNMENT>, //~ ERROR cannot find type `Dst` in this scope
|
||||||
//~| the constant `ASSUME_ALIGNMENT` is not of type `Assume`
|
//~| the constant `ASSUME_ALIGNMENT` is not of type `Assume`
|
||||||
//~| ERROR: mismatched types
|
//~| ERROR: mismatched types
|
||||||
{
|
{
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
error[E0412]: cannot find type `Dst` in this scope
|
error[E0412]: cannot find type `Dst` in this scope
|
||||||
--> $DIR/issue-101739-1.rs:8:9
|
--> $DIR/issue-101739-1.rs:8:9
|
||||||
|
|
|
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, ASSUME_ALIGNMENT>,
|
LL | Dst: TransmuteFrom<Src, ASSUME_ALIGNMENT>,
|
||||||
| ^^^ not found in this scope
|
| ^^^ not found in this scope
|
||||||
|
|
||||||
error: the constant `ASSUME_ALIGNMENT` is not of type `Assume`
|
error: the constant `ASSUME_ALIGNMENT` is not of type `Assume`
|
||||||
--> $DIR/issue-101739-1.rs:8:14
|
--> $DIR/issue-101739-1.rs:8:14
|
||||||
|
|
|
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, ASSUME_ALIGNMENT>,
|
LL | Dst: TransmuteFrom<Src, ASSUME_ALIGNMENT>,
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Assume`, found `bool`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Assume`, found `bool`
|
||||||
|
|
|
|
||||||
note: required by a const generic parameter in `BikeshedIntrinsicFrom`
|
note: required by a const generic parameter in `TransmuteFrom`
|
||||||
--> $SRC_DIR/core/src/mem/transmutability.rs:LL:COL
|
--> $SRC_DIR/core/src/mem/transmutability.rs:LL:COL
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/issue-101739-1.rs:8:41
|
--> $DIR/issue-101739-1.rs:8:33
|
||||||
|
|
|
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, ASSUME_ALIGNMENT>,
|
LL | Dst: TransmuteFrom<Src, ASSUME_ALIGNMENT>,
|
||||||
| ^^^^^^^^^^^^^^^^ expected `Assume`, found `bool`
|
| ^^^^^^^^^^^^^^^^ expected `Assume`, found `bool`
|
||||||
|
|
||||||
error: aborting due to 3 previous errors
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_transmutable<
|
pub fn is_transmutable<
|
||||||
Src,
|
Src,
|
||||||
@ -14,7 +14,7 @@ mod assert {
|
|||||||
const ASSUME_VISIBILITY: bool,
|
const ASSUME_VISIBILITY: bool,
|
||||||
>()
|
>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<
|
Dst: TransmuteFrom<
|
||||||
//~^ ERROR trait takes at most 2 generic arguments but 5 generic arguments were supplied
|
//~^ ERROR trait takes at most 2 generic arguments but 5 generic arguments were supplied
|
||||||
Src,
|
Src,
|
||||||
ASSUME_ALIGNMENT, //~ ERROR: mismatched types
|
ASSUME_ALIGNMENT, //~ ERROR: mismatched types
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
error[E0107]: trait takes at most 2 generic arguments but 5 generic arguments were supplied
|
error[E0107]: trait takes at most 2 generic arguments but 5 generic arguments were supplied
|
||||||
--> $DIR/issue-101739-2.rs:17:14
|
--> $DIR/issue-101739-2.rs:17:14
|
||||||
|
|
|
|
||||||
LL | Dst: BikeshedIntrinsicFrom<
|
LL | Dst: TransmuteFrom<
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^ expected at most 2 generic arguments
|
| ^^^^^^^^^^^^^ expected at most 2 generic arguments
|
||||||
...
|
...
|
||||||
LL | ASSUME_ALIGNMENT,
|
LL | ASSUME_ALIGNMENT,
|
||||||
| _________________________________-
|
| _________________________________-
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
//@ check-pass
|
//@ check-pass
|
||||||
#![crate_type = "lib"]
|
#![crate_type = "lib"]
|
||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src>,
|
Dst: TransmuteFrom<Src>,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#![allow(incomplete_features)]
|
#![allow(incomplete_features)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<
|
pub fn is_transmutable<
|
||||||
Src,
|
Src,
|
||||||
@ -14,7 +14,7 @@ mod assert {
|
|||||||
const ASSUME_VALIDITY: bool,
|
const ASSUME_VALIDITY: bool,
|
||||||
>()
|
>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<
|
Dst: TransmuteFrom<
|
||||||
Src,
|
Src,
|
||||||
{ from_options(ASSUME_ALIGNMENT, ASSUME_LIFETIMES, ASSUME_SAFETY, ASSUME_VALIDITY) }
|
{ from_options(ASSUME_ALIGNMENT, ASSUME_LIFETIMES, ASSUME_SAFETY, ASSUME_VALIDITY) }
|
||||||
>,
|
>,
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#![crate_type = "lib"]
|
#![crate_type = "lib"]
|
||||||
|
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
//~^ ERROR use of unstable library feature 'transmutability' [E0658]
|
//~^ ERROR use of unstable library feature 'transmutability' [E0658]
|
||||||
|
|
||||||
use std::mem::Assume;
|
use std::mem::Assume;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
error[E0658]: use of unstable library feature 'transmutability'
|
error[E0658]: use of unstable library feature 'transmutability'
|
||||||
--> $DIR/feature-missing.rs:5:5
|
--> $DIR/feature-missing.rs:5:5
|
||||||
|
|
|
|
||||||
LL | use std::mem::BikeshedIntrinsicFrom;
|
LL | use std::mem::TransmuteFrom;
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
|
||||||
= note: see issue #99571 <https://github.com/rust-lang/rust/issues/99571> for more information
|
= note: see issue #99571 <https://github.com/rust-lang/rust/issues/99571> for more information
|
||||||
= help: add `#![feature(transmutability)]` to the crate attributes to enable
|
= help: add `#![feature(transmutability)]` to the crate attributes to enable
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src>
|
Dst: TransmuteFrom<Src>
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
#![allow(incomplete_features)]
|
#![allow(incomplete_features)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src>
|
Dst: TransmuteFrom<Src>
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,8 +22,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `should_gracefully_handle_unknown_dst_ref_field::Src` cannot be safely transmuted into `should_gracefully_handle_unknown_dst_ref_field::Dst`
|
error[E0277]: `should_gracefully_handle_unknown_dst_ref_field::Src` cannot be safely transmuted into `should_gracefully_handle_unknown_dst_ref_field::Dst`
|
||||||
--> $DIR/unknown_dst_field.rs:25:36
|
--> $DIR/unknown_dst_field.rs:25:36
|
||||||
@ -37,8 +37,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error: aborting due to 4 previous errors
|
error: aborting due to 4 previous errors
|
||||||
|
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src>
|
Dst: TransmuteFrom<Src>
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src>
|
Dst: TransmuteFrom<Src>
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,8 +22,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `should_gracefully_handle_unknown_src_ref_field::Src` cannot be safely transmuted into `should_gracefully_handle_unknown_src_ref_field::Dst`
|
error[E0277]: `should_gracefully_handle_unknown_src_ref_field::Src` cannot be safely transmuted into `should_gracefully_handle_unknown_src_ref_field::Dst`
|
||||||
--> $DIR/unknown_src_field.rs:25:36
|
--> $DIR/unknown_src_field.rs:25:36
|
||||||
@ -37,8 +37,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error: aborting due to 4 previous errors
|
error: aborting due to 4 previous errors
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
#![allow(dead_code, incomplete_features, non_camel_case_types)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<
|
pub fn is_transmutable<
|
||||||
Src,
|
Src,
|
||||||
@ -19,7 +19,7 @@ mod assert {
|
|||||||
const ASSUME_VALIDITY: bool,
|
const ASSUME_VALIDITY: bool,
|
||||||
>()
|
>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<
|
Dst: TransmuteFrom<
|
||||||
Src,
|
Src,
|
||||||
{ from_options(ASSUME_ALIGNMENT, ASSUME_LIFETIMES, ASSUME_SAFETY, ASSUME_VALIDITY) }
|
{ from_options(ASSUME_ALIGNMENT, ASSUME_LIFETIMES, ASSUME_SAFETY, ASSUME_VALIDITY) }
|
||||||
>,
|
>,
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
use std::mem::MaybeUninit;
|
use std::mem::MaybeUninit;
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY }>
|
Dst: TransmuteFrom<Src, { Assume::SAFETY }>
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY }>
|
LL | Dst: TransmuteFrom<Src, { Assume::SAFETY }>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_maybe_transmutable`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_maybe_transmutable`
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY }>
|
Dst: TransmuteFrom<Src, { Assume::SAFETY }>
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY }>
|
LL | Dst: TransmuteFrom<Src, { Assume::SAFETY }>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY }>
|
LL | Dst: TransmuteFrom<Src, { Assume::SAFETY }>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY }>
|
LL | Dst: TransmuteFrom<Src, { Assume::SAFETY }>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,16 +4,16 @@
|
|||||||
|
|
||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY }>
|
Dst: TransmuteFrom<Src, { Assume::SAFETY }>
|
||||||
{}
|
{}
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY.and(Assume::VALIDITY) }>
|
Dst: TransmuteFrom<Src, { Assume::SAFETY.and(Assume::VALIDITY) }>
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `u16`
|
error[E0277]: `i8` cannot be safely transmuted into `u16`
|
||||||
--> $DIR/numbers.rs:65:40
|
--> $DIR/numbers.rs:65:40
|
||||||
@ -25,8 +25,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `i32`
|
error[E0277]: `i8` cannot be safely transmuted into `i32`
|
||||||
--> $DIR/numbers.rs:66:40
|
--> $DIR/numbers.rs:66:40
|
||||||
@ -40,8 +40,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `f32`
|
error[E0277]: `i8` cannot be safely transmuted into `f32`
|
||||||
--> $DIR/numbers.rs:67:40
|
--> $DIR/numbers.rs:67:40
|
||||||
@ -55,8 +55,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `u32`
|
error[E0277]: `i8` cannot be safely transmuted into `u32`
|
||||||
--> $DIR/numbers.rs:68:40
|
--> $DIR/numbers.rs:68:40
|
||||||
@ -70,8 +70,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `u64`
|
error[E0277]: `i8` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:69:40
|
--> $DIR/numbers.rs:69:40
|
||||||
@ -85,8 +85,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `i64`
|
error[E0277]: `i8` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:70:40
|
--> $DIR/numbers.rs:70:40
|
||||||
@ -100,8 +100,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `f64`
|
error[E0277]: `i8` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:71:40
|
--> $DIR/numbers.rs:71:40
|
||||||
@ -115,8 +115,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `u128`
|
error[E0277]: `i8` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:72:39
|
--> $DIR/numbers.rs:72:39
|
||||||
@ -130,8 +130,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `i128`
|
error[E0277]: `i8` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:73:39
|
--> $DIR/numbers.rs:73:39
|
||||||
@ -145,8 +145,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `i16`
|
error[E0277]: `u8` cannot be safely transmuted into `i16`
|
||||||
--> $DIR/numbers.rs:75:40
|
--> $DIR/numbers.rs:75:40
|
||||||
@ -160,8 +160,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `u16`
|
error[E0277]: `u8` cannot be safely transmuted into `u16`
|
||||||
--> $DIR/numbers.rs:76:40
|
--> $DIR/numbers.rs:76:40
|
||||||
@ -175,8 +175,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `i32`
|
error[E0277]: `u8` cannot be safely transmuted into `i32`
|
||||||
--> $DIR/numbers.rs:77:40
|
--> $DIR/numbers.rs:77:40
|
||||||
@ -190,8 +190,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `f32`
|
error[E0277]: `u8` cannot be safely transmuted into `f32`
|
||||||
--> $DIR/numbers.rs:78:40
|
--> $DIR/numbers.rs:78:40
|
||||||
@ -205,8 +205,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `u32`
|
error[E0277]: `u8` cannot be safely transmuted into `u32`
|
||||||
--> $DIR/numbers.rs:79:40
|
--> $DIR/numbers.rs:79:40
|
||||||
@ -220,8 +220,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `u64`
|
error[E0277]: `u8` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:80:40
|
--> $DIR/numbers.rs:80:40
|
||||||
@ -235,8 +235,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `i64`
|
error[E0277]: `u8` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:81:40
|
--> $DIR/numbers.rs:81:40
|
||||||
@ -250,8 +250,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `f64`
|
error[E0277]: `u8` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:82:40
|
--> $DIR/numbers.rs:82:40
|
||||||
@ -265,8 +265,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `u128`
|
error[E0277]: `u8` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:83:39
|
--> $DIR/numbers.rs:83:39
|
||||||
@ -280,8 +280,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `i128`
|
error[E0277]: `u8` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:84:39
|
--> $DIR/numbers.rs:84:39
|
||||||
@ -295,8 +295,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `i32`
|
error[E0277]: `i16` cannot be safely transmuted into `i32`
|
||||||
--> $DIR/numbers.rs:86:40
|
--> $DIR/numbers.rs:86:40
|
||||||
@ -310,8 +310,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `f32`
|
error[E0277]: `i16` cannot be safely transmuted into `f32`
|
||||||
--> $DIR/numbers.rs:87:40
|
--> $DIR/numbers.rs:87:40
|
||||||
@ -325,8 +325,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `u32`
|
error[E0277]: `i16` cannot be safely transmuted into `u32`
|
||||||
--> $DIR/numbers.rs:88:40
|
--> $DIR/numbers.rs:88:40
|
||||||
@ -340,8 +340,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `u64`
|
error[E0277]: `i16` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:89:40
|
--> $DIR/numbers.rs:89:40
|
||||||
@ -355,8 +355,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `i64`
|
error[E0277]: `i16` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:90:40
|
--> $DIR/numbers.rs:90:40
|
||||||
@ -370,8 +370,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `f64`
|
error[E0277]: `i16` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:91:40
|
--> $DIR/numbers.rs:91:40
|
||||||
@ -385,8 +385,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `u128`
|
error[E0277]: `i16` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:92:39
|
--> $DIR/numbers.rs:92:39
|
||||||
@ -400,8 +400,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `i128`
|
error[E0277]: `i16` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:93:39
|
--> $DIR/numbers.rs:93:39
|
||||||
@ -415,8 +415,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `i32`
|
error[E0277]: `u16` cannot be safely transmuted into `i32`
|
||||||
--> $DIR/numbers.rs:95:40
|
--> $DIR/numbers.rs:95:40
|
||||||
@ -430,8 +430,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `f32`
|
error[E0277]: `u16` cannot be safely transmuted into `f32`
|
||||||
--> $DIR/numbers.rs:96:40
|
--> $DIR/numbers.rs:96:40
|
||||||
@ -445,8 +445,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `u32`
|
error[E0277]: `u16` cannot be safely transmuted into `u32`
|
||||||
--> $DIR/numbers.rs:97:40
|
--> $DIR/numbers.rs:97:40
|
||||||
@ -460,8 +460,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `u64`
|
error[E0277]: `u16` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:98:40
|
--> $DIR/numbers.rs:98:40
|
||||||
@ -475,8 +475,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `i64`
|
error[E0277]: `u16` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:99:40
|
--> $DIR/numbers.rs:99:40
|
||||||
@ -490,8 +490,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `f64`
|
error[E0277]: `u16` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:100:40
|
--> $DIR/numbers.rs:100:40
|
||||||
@ -505,8 +505,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `u128`
|
error[E0277]: `u16` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:101:39
|
--> $DIR/numbers.rs:101:39
|
||||||
@ -520,8 +520,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `i128`
|
error[E0277]: `u16` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:102:39
|
--> $DIR/numbers.rs:102:39
|
||||||
@ -535,8 +535,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i32` cannot be safely transmuted into `u64`
|
error[E0277]: `i32` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:104:40
|
--> $DIR/numbers.rs:104:40
|
||||||
@ -550,8 +550,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i32` cannot be safely transmuted into `i64`
|
error[E0277]: `i32` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:105:40
|
--> $DIR/numbers.rs:105:40
|
||||||
@ -565,8 +565,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i32` cannot be safely transmuted into `f64`
|
error[E0277]: `i32` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:106:40
|
--> $DIR/numbers.rs:106:40
|
||||||
@ -580,8 +580,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i32` cannot be safely transmuted into `u128`
|
error[E0277]: `i32` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:107:39
|
--> $DIR/numbers.rs:107:39
|
||||||
@ -595,8 +595,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i32` cannot be safely transmuted into `i128`
|
error[E0277]: `i32` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:108:39
|
--> $DIR/numbers.rs:108:39
|
||||||
@ -610,8 +610,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f32` cannot be safely transmuted into `u64`
|
error[E0277]: `f32` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:110:40
|
--> $DIR/numbers.rs:110:40
|
||||||
@ -625,8 +625,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f32` cannot be safely transmuted into `i64`
|
error[E0277]: `f32` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:111:40
|
--> $DIR/numbers.rs:111:40
|
||||||
@ -640,8 +640,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f32` cannot be safely transmuted into `f64`
|
error[E0277]: `f32` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:112:40
|
--> $DIR/numbers.rs:112:40
|
||||||
@ -655,8 +655,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f32` cannot be safely transmuted into `u128`
|
error[E0277]: `f32` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:113:39
|
--> $DIR/numbers.rs:113:39
|
||||||
@ -670,8 +670,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f32` cannot be safely transmuted into `i128`
|
error[E0277]: `f32` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:114:39
|
--> $DIR/numbers.rs:114:39
|
||||||
@ -685,8 +685,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u32` cannot be safely transmuted into `u64`
|
error[E0277]: `u32` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:116:40
|
--> $DIR/numbers.rs:116:40
|
||||||
@ -700,8 +700,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u32` cannot be safely transmuted into `i64`
|
error[E0277]: `u32` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:117:40
|
--> $DIR/numbers.rs:117:40
|
||||||
@ -715,8 +715,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u32` cannot be safely transmuted into `f64`
|
error[E0277]: `u32` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:118:40
|
--> $DIR/numbers.rs:118:40
|
||||||
@ -730,8 +730,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u32` cannot be safely transmuted into `u128`
|
error[E0277]: `u32` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:119:39
|
--> $DIR/numbers.rs:119:39
|
||||||
@ -745,8 +745,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u32` cannot be safely transmuted into `i128`
|
error[E0277]: `u32` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:120:39
|
--> $DIR/numbers.rs:120:39
|
||||||
@ -760,8 +760,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u64` cannot be safely transmuted into `u128`
|
error[E0277]: `u64` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:122:39
|
--> $DIR/numbers.rs:122:39
|
||||||
@ -775,8 +775,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u64` cannot be safely transmuted into `i128`
|
error[E0277]: `u64` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:123:39
|
--> $DIR/numbers.rs:123:39
|
||||||
@ -790,8 +790,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i64` cannot be safely transmuted into `u128`
|
error[E0277]: `i64` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:125:39
|
--> $DIR/numbers.rs:125:39
|
||||||
@ -805,8 +805,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i64` cannot be safely transmuted into `i128`
|
error[E0277]: `i64` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:126:39
|
--> $DIR/numbers.rs:126:39
|
||||||
@ -820,8 +820,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f64` cannot be safely transmuted into `u128`
|
error[E0277]: `f64` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:128:39
|
--> $DIR/numbers.rs:128:39
|
||||||
@ -835,8 +835,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f64` cannot be safely transmuted into `i128`
|
error[E0277]: `f64` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:129:39
|
--> $DIR/numbers.rs:129:39
|
||||||
@ -850,8 +850,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error: aborting due to 57 previous errors
|
error: aborting due to 57 previous errors
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `u16`
|
error[E0277]: `i8` cannot be safely transmuted into `u16`
|
||||||
--> $DIR/numbers.rs:65:40
|
--> $DIR/numbers.rs:65:40
|
||||||
@ -25,8 +25,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `i32`
|
error[E0277]: `i8` cannot be safely transmuted into `i32`
|
||||||
--> $DIR/numbers.rs:66:40
|
--> $DIR/numbers.rs:66:40
|
||||||
@ -40,8 +40,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `f32`
|
error[E0277]: `i8` cannot be safely transmuted into `f32`
|
||||||
--> $DIR/numbers.rs:67:40
|
--> $DIR/numbers.rs:67:40
|
||||||
@ -55,8 +55,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `u32`
|
error[E0277]: `i8` cannot be safely transmuted into `u32`
|
||||||
--> $DIR/numbers.rs:68:40
|
--> $DIR/numbers.rs:68:40
|
||||||
@ -70,8 +70,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `u64`
|
error[E0277]: `i8` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:69:40
|
--> $DIR/numbers.rs:69:40
|
||||||
@ -85,8 +85,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `i64`
|
error[E0277]: `i8` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:70:40
|
--> $DIR/numbers.rs:70:40
|
||||||
@ -100,8 +100,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `f64`
|
error[E0277]: `i8` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:71:40
|
--> $DIR/numbers.rs:71:40
|
||||||
@ -115,8 +115,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `u128`
|
error[E0277]: `i8` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:72:39
|
--> $DIR/numbers.rs:72:39
|
||||||
@ -130,8 +130,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i8` cannot be safely transmuted into `i128`
|
error[E0277]: `i8` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:73:39
|
--> $DIR/numbers.rs:73:39
|
||||||
@ -145,8 +145,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `i16`
|
error[E0277]: `u8` cannot be safely transmuted into `i16`
|
||||||
--> $DIR/numbers.rs:75:40
|
--> $DIR/numbers.rs:75:40
|
||||||
@ -160,8 +160,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `u16`
|
error[E0277]: `u8` cannot be safely transmuted into `u16`
|
||||||
--> $DIR/numbers.rs:76:40
|
--> $DIR/numbers.rs:76:40
|
||||||
@ -175,8 +175,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `i32`
|
error[E0277]: `u8` cannot be safely transmuted into `i32`
|
||||||
--> $DIR/numbers.rs:77:40
|
--> $DIR/numbers.rs:77:40
|
||||||
@ -190,8 +190,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `f32`
|
error[E0277]: `u8` cannot be safely transmuted into `f32`
|
||||||
--> $DIR/numbers.rs:78:40
|
--> $DIR/numbers.rs:78:40
|
||||||
@ -205,8 +205,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `u32`
|
error[E0277]: `u8` cannot be safely transmuted into `u32`
|
||||||
--> $DIR/numbers.rs:79:40
|
--> $DIR/numbers.rs:79:40
|
||||||
@ -220,8 +220,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `u64`
|
error[E0277]: `u8` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:80:40
|
--> $DIR/numbers.rs:80:40
|
||||||
@ -235,8 +235,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `i64`
|
error[E0277]: `u8` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:81:40
|
--> $DIR/numbers.rs:81:40
|
||||||
@ -250,8 +250,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `f64`
|
error[E0277]: `u8` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:82:40
|
--> $DIR/numbers.rs:82:40
|
||||||
@ -265,8 +265,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `u128`
|
error[E0277]: `u8` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:83:39
|
--> $DIR/numbers.rs:83:39
|
||||||
@ -280,8 +280,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u8` cannot be safely transmuted into `i128`
|
error[E0277]: `u8` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:84:39
|
--> $DIR/numbers.rs:84:39
|
||||||
@ -295,8 +295,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `i32`
|
error[E0277]: `i16` cannot be safely transmuted into `i32`
|
||||||
--> $DIR/numbers.rs:86:40
|
--> $DIR/numbers.rs:86:40
|
||||||
@ -310,8 +310,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `f32`
|
error[E0277]: `i16` cannot be safely transmuted into `f32`
|
||||||
--> $DIR/numbers.rs:87:40
|
--> $DIR/numbers.rs:87:40
|
||||||
@ -325,8 +325,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `u32`
|
error[E0277]: `i16` cannot be safely transmuted into `u32`
|
||||||
--> $DIR/numbers.rs:88:40
|
--> $DIR/numbers.rs:88:40
|
||||||
@ -340,8 +340,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `u64`
|
error[E0277]: `i16` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:89:40
|
--> $DIR/numbers.rs:89:40
|
||||||
@ -355,8 +355,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `i64`
|
error[E0277]: `i16` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:90:40
|
--> $DIR/numbers.rs:90:40
|
||||||
@ -370,8 +370,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `f64`
|
error[E0277]: `i16` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:91:40
|
--> $DIR/numbers.rs:91:40
|
||||||
@ -385,8 +385,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `u128`
|
error[E0277]: `i16` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:92:39
|
--> $DIR/numbers.rs:92:39
|
||||||
@ -400,8 +400,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i16` cannot be safely transmuted into `i128`
|
error[E0277]: `i16` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:93:39
|
--> $DIR/numbers.rs:93:39
|
||||||
@ -415,8 +415,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `i32`
|
error[E0277]: `u16` cannot be safely transmuted into `i32`
|
||||||
--> $DIR/numbers.rs:95:40
|
--> $DIR/numbers.rs:95:40
|
||||||
@ -430,8 +430,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `f32`
|
error[E0277]: `u16` cannot be safely transmuted into `f32`
|
||||||
--> $DIR/numbers.rs:96:40
|
--> $DIR/numbers.rs:96:40
|
||||||
@ -445,8 +445,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `u32`
|
error[E0277]: `u16` cannot be safely transmuted into `u32`
|
||||||
--> $DIR/numbers.rs:97:40
|
--> $DIR/numbers.rs:97:40
|
||||||
@ -460,8 +460,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `u64`
|
error[E0277]: `u16` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:98:40
|
--> $DIR/numbers.rs:98:40
|
||||||
@ -475,8 +475,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `i64`
|
error[E0277]: `u16` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:99:40
|
--> $DIR/numbers.rs:99:40
|
||||||
@ -490,8 +490,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `f64`
|
error[E0277]: `u16` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:100:40
|
--> $DIR/numbers.rs:100:40
|
||||||
@ -505,8 +505,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `u128`
|
error[E0277]: `u16` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:101:39
|
--> $DIR/numbers.rs:101:39
|
||||||
@ -520,8 +520,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u16` cannot be safely transmuted into `i128`
|
error[E0277]: `u16` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:102:39
|
--> $DIR/numbers.rs:102:39
|
||||||
@ -535,8 +535,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i32` cannot be safely transmuted into `u64`
|
error[E0277]: `i32` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:104:40
|
--> $DIR/numbers.rs:104:40
|
||||||
@ -550,8 +550,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i32` cannot be safely transmuted into `i64`
|
error[E0277]: `i32` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:105:40
|
--> $DIR/numbers.rs:105:40
|
||||||
@ -565,8 +565,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i32` cannot be safely transmuted into `f64`
|
error[E0277]: `i32` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:106:40
|
--> $DIR/numbers.rs:106:40
|
||||||
@ -580,8 +580,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i32` cannot be safely transmuted into `u128`
|
error[E0277]: `i32` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:107:39
|
--> $DIR/numbers.rs:107:39
|
||||||
@ -595,8 +595,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i32` cannot be safely transmuted into `i128`
|
error[E0277]: `i32` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:108:39
|
--> $DIR/numbers.rs:108:39
|
||||||
@ -610,8 +610,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f32` cannot be safely transmuted into `u64`
|
error[E0277]: `f32` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:110:40
|
--> $DIR/numbers.rs:110:40
|
||||||
@ -625,8 +625,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f32` cannot be safely transmuted into `i64`
|
error[E0277]: `f32` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:111:40
|
--> $DIR/numbers.rs:111:40
|
||||||
@ -640,8 +640,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f32` cannot be safely transmuted into `f64`
|
error[E0277]: `f32` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:112:40
|
--> $DIR/numbers.rs:112:40
|
||||||
@ -655,8 +655,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f32` cannot be safely transmuted into `u128`
|
error[E0277]: `f32` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:113:39
|
--> $DIR/numbers.rs:113:39
|
||||||
@ -670,8 +670,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f32` cannot be safely transmuted into `i128`
|
error[E0277]: `f32` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:114:39
|
--> $DIR/numbers.rs:114:39
|
||||||
@ -685,8 +685,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u32` cannot be safely transmuted into `u64`
|
error[E0277]: `u32` cannot be safely transmuted into `u64`
|
||||||
--> $DIR/numbers.rs:116:40
|
--> $DIR/numbers.rs:116:40
|
||||||
@ -700,8 +700,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u32` cannot be safely transmuted into `i64`
|
error[E0277]: `u32` cannot be safely transmuted into `i64`
|
||||||
--> $DIR/numbers.rs:117:40
|
--> $DIR/numbers.rs:117:40
|
||||||
@ -715,8 +715,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u32` cannot be safely transmuted into `f64`
|
error[E0277]: `u32` cannot be safely transmuted into `f64`
|
||||||
--> $DIR/numbers.rs:118:40
|
--> $DIR/numbers.rs:118:40
|
||||||
@ -730,8 +730,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u32` cannot be safely transmuted into `u128`
|
error[E0277]: `u32` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:119:39
|
--> $DIR/numbers.rs:119:39
|
||||||
@ -745,8 +745,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u32` cannot be safely transmuted into `i128`
|
error[E0277]: `u32` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:120:39
|
--> $DIR/numbers.rs:120:39
|
||||||
@ -760,8 +760,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u64` cannot be safely transmuted into `u128`
|
error[E0277]: `u64` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:122:39
|
--> $DIR/numbers.rs:122:39
|
||||||
@ -775,8 +775,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `u64` cannot be safely transmuted into `i128`
|
error[E0277]: `u64` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:123:39
|
--> $DIR/numbers.rs:123:39
|
||||||
@ -790,8 +790,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i64` cannot be safely transmuted into `u128`
|
error[E0277]: `i64` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:125:39
|
--> $DIR/numbers.rs:125:39
|
||||||
@ -805,8 +805,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `i64` cannot be safely transmuted into `i128`
|
error[E0277]: `i64` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:126:39
|
--> $DIR/numbers.rs:126:39
|
||||||
@ -820,8 +820,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f64` cannot be safely transmuted into `u128`
|
error[E0277]: `f64` cannot be safely transmuted into `u128`
|
||||||
--> $DIR/numbers.rs:128:39
|
--> $DIR/numbers.rs:128:39
|
||||||
@ -835,8 +835,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error[E0277]: `f64` cannot be safely transmuted into `i128`
|
error[E0277]: `f64` cannot be safely transmuted into `i128`
|
||||||
--> $DIR/numbers.rs:129:39
|
--> $DIR/numbers.rs:129:39
|
||||||
@ -850,8 +850,8 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src>
|
LL | Dst: TransmuteFrom<Src>
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
| ^^^^^^^^^^^^^^^^^^ required by this bound in `is_transmutable`
|
||||||
|
|
||||||
error: aborting due to 57 previous errors
|
error: aborting due to 57 previous errors
|
||||||
|
|
||||||
|
@ -7,11 +7,11 @@
|
|||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::BikeshedIntrinsicFrom;
|
use std::mem::TransmuteFrom;
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src>
|
Dst: TransmuteFrom<Src>
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume::ALIGNMENT
|
LL | | Assume::ALIGNMENT
|
||||||
LL | | .and(Assume::LIFETIMES)
|
LL | | .and(Assume::LIFETIMES)
|
||||||
|
@ -10,7 +10,7 @@ note: required by a bound in `is_transmutable`
|
|||||||
LL | pub fn is_transmutable<Src, Dst>()
|
LL | pub fn is_transmutable<Src, Dst>()
|
||||||
| --------------- required by a bound in this function
|
| --------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume::ALIGNMENT
|
LL | | Assume::ALIGNMENT
|
||||||
LL | | .and(Assume::LIFETIMES)
|
LL | | .and(Assume::LIFETIMES)
|
||||||
|
@ -9,11 +9,11 @@
|
|||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_transmutable<Src, Dst>()
|
pub fn is_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume::ALIGNMENT
|
Assume::ALIGNMENT
|
||||||
.and(Assume::LIFETIMES)
|
.and(Assume::LIFETIMES)
|
||||||
.and(Assume::SAFETY)
|
.and(Assume::SAFETY)
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
|
|
||||||
#![feature(transmutability, core_intrinsics)]
|
#![feature(transmutability, core_intrinsics)]
|
||||||
|
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
unsafe fn transmute<Src, Dst>(src: Src) -> Dst
|
unsafe fn transmute<Src, Dst>(src: Src) -> Dst
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY.and(Assume::LIFETIMES) }>,
|
Dst: TransmuteFrom<Src, { Assume::SAFETY.and(Assume::LIFETIMES) }>,
|
||||||
{
|
{
|
||||||
core::intrinsics::transmute_unchecked(src)
|
core::intrinsics::transmute_unchecked(src)
|
||||||
}
|
}
|
||||||
@ -82,7 +82,7 @@ mod hrtb {
|
|||||||
|
|
||||||
unsafe fn extend_hrtb<'a>(src: &'a u8) -> &'static u8
|
unsafe fn extend_hrtb<'a>(src: &'a u8) -> &'static u8
|
||||||
where
|
where
|
||||||
for<'b> &'b u8: BikeshedIntrinsicFrom<&'a u8, { Assume::LIFETIMES }>,
|
for<'b> &'b u8: TransmuteFrom<&'a u8, { Assume::LIFETIMES }>,
|
||||||
{
|
{
|
||||||
core::intrinsics::transmute_unchecked(src)
|
core::intrinsics::transmute_unchecked(src)
|
||||||
}
|
}
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
|
|
||||||
#![feature(transmutability, core_intrinsics)]
|
#![feature(transmutability, core_intrinsics)]
|
||||||
|
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
unsafe fn transmute<Src, Dst>(src: Src) -> Dst
|
unsafe fn transmute<Src, Dst>(src: Src) -> Dst
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, { Assume::SAFETY }>,
|
Dst: TransmuteFrom<Src, { Assume::SAFETY }>,
|
||||||
{
|
{
|
||||||
core::intrinsics::transmute_unchecked(src)
|
core::intrinsics::transmute_unchecked(src)
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume {
|
Assume {
|
||||||
alignment: true,
|
alignment: true,
|
||||||
lifetimes: false,
|
lifetimes: false,
|
||||||
|
@ -10,7 +10,7 @@ note: required by a bound in `is_maybe_transmutable`
|
|||||||
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
LL | pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
| --------------------- required by a bound in this function
|
| --------------------- required by a bound in this function
|
||||||
LL | where
|
LL | where
|
||||||
LL | Dst: BikeshedIntrinsicFrom<Src, {
|
LL | Dst: TransmuteFrom<Src, {
|
||||||
| ______________^
|
| ______________^
|
||||||
LL | | Assume {
|
LL | | Assume {
|
||||||
LL | | alignment: true,
|
LL | | alignment: true,
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
#![feature(transmutability)]
|
#![feature(transmutability)]
|
||||||
|
|
||||||
mod assert {
|
mod assert {
|
||||||
use std::mem::{Assume, BikeshedIntrinsicFrom};
|
use std::mem::{Assume, TransmuteFrom};
|
||||||
|
|
||||||
pub fn is_maybe_transmutable<Src, Dst>()
|
pub fn is_maybe_transmutable<Src, Dst>()
|
||||||
where
|
where
|
||||||
Dst: BikeshedIntrinsicFrom<Src, {
|
Dst: TransmuteFrom<Src, {
|
||||||
Assume {
|
Assume {
|
||||||
alignment: true,
|
alignment: true,
|
||||||
lifetimes: false,
|
lifetimes: false,
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user