mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
Rollup merge of #105500 - oli-obk:unhide_unknown_spans, r=estebank
Make some diagnostics not depend on the source of what they reference being available r? `@estebank` follow up to https://github.com/rust-lang/rust/pull/104449
This commit is contained in:
commit
15b9e20640
@ -1059,17 +1059,12 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
|
||||
);
|
||||
if self.fn_self_span_reported.insert(fn_span) {
|
||||
err.span_note(
|
||||
// Check whether the source is accessible
|
||||
if self.infcx.tcx.sess.source_map().is_span_accessible(self_arg.span) {
|
||||
self_arg.span
|
||||
} else {
|
||||
fn_call_span
|
||||
},
|
||||
self_arg.span,
|
||||
"calling this operator moves the left-hand side",
|
||||
);
|
||||
}
|
||||
}
|
||||
CallKind::Normal { self_arg, desugaring, is_option_or_result } => {
|
||||
CallKind::Normal { self_arg, desugaring, method_did } => {
|
||||
let self_arg = self_arg.unwrap();
|
||||
if let Some((CallDesugaringKind::ForLoopIntoIter, _)) = desugaring {
|
||||
let ty = moved_place.ty(self.body, self.infcx.tcx).ty;
|
||||
@ -1139,14 +1134,27 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
|
||||
),
|
||||
);
|
||||
}
|
||||
let tcx = self.infcx.tcx;
|
||||
// Avoid pointing to the same function in multiple different
|
||||
// error messages.
|
||||
if span != DUMMY_SP && self.fn_self_span_reported.insert(self_arg.span) {
|
||||
let func = tcx.def_path_str(method_did);
|
||||
err.span_note(
|
||||
self_arg.span,
|
||||
&format!("this function takes ownership of the receiver `self`, which moves {}", place_name)
|
||||
&format!("`{func}` takes ownership of the receiver `self`, which moves {place_name}")
|
||||
);
|
||||
}
|
||||
let parent_did = tcx.parent(method_did);
|
||||
let parent_self_ty = (tcx.def_kind(parent_did)
|
||||
== rustc_hir::def::DefKind::Impl)
|
||||
.then_some(parent_did)
|
||||
.and_then(|did| match tcx.type_of(did).kind() {
|
||||
ty::Adt(def, ..) => Some(def.did()),
|
||||
_ => None,
|
||||
});
|
||||
let is_option_or_result = parent_self_ty.map_or(false, |def_id| {
|
||||
matches!(tcx.get_diagnostic_name(def_id), Some(sym::Option | sym::Result))
|
||||
});
|
||||
if is_option_or_result && maybe_reinitialized_locations_is_empty {
|
||||
err.span_label(
|
||||
var_span,
|
||||
|
@ -5,7 +5,7 @@
|
||||
use rustc_hir::def_id::DefId;
|
||||
use rustc_hir::{lang_items, LangItem};
|
||||
use rustc_middle::ty::subst::SubstsRef;
|
||||
use rustc_middle::ty::{self, AssocItemContainer, DefIdTree, Instance, ParamEnv, Ty, TyCtxt};
|
||||
use rustc_middle::ty::{AssocItemContainer, Instance, ParamEnv, Ty, TyCtxt};
|
||||
use rustc_span::symbol::Ident;
|
||||
use rustc_span::{sym, DesugaringKind, Span};
|
||||
|
||||
@ -39,9 +39,7 @@ pub enum CallKind<'tcx> {
|
||||
Normal {
|
||||
self_arg: Option<Ident>,
|
||||
desugaring: Option<(CallDesugaringKind, Ty<'tcx>)>,
|
||||
/// Whether the self type of the method call has an `.as_ref()` method.
|
||||
/// Used for better diagnostics.
|
||||
is_option_or_result: bool,
|
||||
method_did: DefId,
|
||||
},
|
||||
/// A call to `Fn(..)::call(..)`, desugared from `my_closure(a, b, c)`
|
||||
FnCall { fn_trait_id: DefId, self_ty: Ty<'tcx> },
|
||||
@ -133,16 +131,6 @@ pub fn call_kind<'tcx>(
|
||||
} else {
|
||||
None
|
||||
};
|
||||
let parent_did = tcx.parent(method_did);
|
||||
let parent_self_ty = (tcx.def_kind(parent_did) == rustc_hir::def::DefKind::Impl)
|
||||
.then_some(parent_did)
|
||||
.and_then(|did| match tcx.type_of(did).kind() {
|
||||
ty::Adt(def, ..) => Some(def.did()),
|
||||
_ => None,
|
||||
});
|
||||
let is_option_or_result = parent_self_ty.map_or(false, |def_id| {
|
||||
matches!(tcx.get_diagnostic_name(def_id), Some(sym::Option | sym::Result))
|
||||
});
|
||||
CallKind::Normal { self_arg, desugaring, is_option_or_result }
|
||||
CallKind::Normal { self_arg, desugaring, method_did }
|
||||
})
|
||||
}
|
||||
|
@ -1408,49 +1408,58 @@ impl EmitterWriter {
|
||||
if !sm.ensure_source_file_source_present(annotated_file.file.clone()) {
|
||||
if !self.short_message {
|
||||
// We'll just print an unannotated message.
|
||||
for (annotation_id, line) in annotated_file.lines.into_iter().enumerate() {
|
||||
for (annotation_id, line) in annotated_file.lines.iter().enumerate() {
|
||||
let mut annotations = line.annotations.clone();
|
||||
annotations.sort_by_key(|a| Reverse(a.start_col));
|
||||
let mut line_idx = buffer.num_lines();
|
||||
buffer.append(
|
||||
line_idx,
|
||||
&format!(
|
||||
"{}:{}:{}",
|
||||
sm.filename_for_diagnostics(&annotated_file.file.name),
|
||||
sm.doctest_offset_line(&annotated_file.file.name, line.line_index),
|
||||
annotations[0].start_col + 1,
|
||||
),
|
||||
Style::LineAndColumn,
|
||||
);
|
||||
if annotation_id == 0 {
|
||||
buffer.prepend(line_idx, "--> ", Style::LineNumber);
|
||||
|
||||
let labels: Vec<_> = annotations
|
||||
.iter()
|
||||
.filter_map(|a| Some((a.label.as_ref()?, a.is_primary)))
|
||||
.filter(|(l, _)| !l.is_empty())
|
||||
.collect();
|
||||
|
||||
if annotation_id == 0 || !labels.is_empty() {
|
||||
buffer.append(
|
||||
line_idx,
|
||||
&format!(
|
||||
"{}:{}:{}",
|
||||
sm.filename_for_diagnostics(&annotated_file.file.name),
|
||||
sm.doctest_offset_line(
|
||||
&annotated_file.file.name,
|
||||
line.line_index
|
||||
),
|
||||
annotations[0].start_col + 1,
|
||||
),
|
||||
Style::LineAndColumn,
|
||||
);
|
||||
if annotation_id == 0 {
|
||||
buffer.prepend(line_idx, "--> ", Style::LineNumber);
|
||||
} else {
|
||||
buffer.prepend(line_idx, "::: ", Style::LineNumber);
|
||||
}
|
||||
for _ in 0..max_line_num_len {
|
||||
buffer.prepend(line_idx, " ", Style::NoStyle);
|
||||
}
|
||||
line_idx += 1;
|
||||
};
|
||||
for (i, annotation) in annotations.into_iter().enumerate() {
|
||||
if let Some(label) = &annotation.label {
|
||||
let style = if annotation.is_primary {
|
||||
Style::LabelPrimary
|
||||
} else {
|
||||
Style::LabelSecondary
|
||||
};
|
||||
if annotation_id == 0 {
|
||||
buffer.prepend(line_idx, " |", Style::LineNumber);
|
||||
for _ in 0..max_line_num_len {
|
||||
buffer.prepend(line_idx, " ", Style::NoStyle);
|
||||
}
|
||||
line_idx += 1;
|
||||
buffer.append(line_idx + i, " = note: ", style);
|
||||
for _ in 0..max_line_num_len {
|
||||
buffer.prepend(line_idx, " ", Style::NoStyle);
|
||||
}
|
||||
} else {
|
||||
buffer.append(line_idx + i, ": ", style);
|
||||
}
|
||||
buffer.append(line_idx + i, label, style);
|
||||
}
|
||||
for (label, is_primary) in labels.into_iter() {
|
||||
let style = if is_primary {
|
||||
Style::LabelPrimary
|
||||
} else {
|
||||
Style::LabelSecondary
|
||||
};
|
||||
buffer.prepend(line_idx, " |", Style::LineNumber);
|
||||
for _ in 0..max_line_num_len {
|
||||
buffer.prepend(line_idx, " ", Style::NoStyle);
|
||||
}
|
||||
line_idx += 1;
|
||||
buffer.append(line_idx, " = note: ", style);
|
||||
for _ in 0..max_line_num_len {
|
||||
buffer.prepend(line_idx, " ", Style::NoStyle);
|
||||
}
|
||||
buffer.append(line_idx, label, style);
|
||||
line_idx += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1853,7 +1853,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
)],
|
||||
) {
|
||||
let mut derives = Vec::<(String, Span, Symbol)>::new();
|
||||
let mut traits = Vec::<Span>::new();
|
||||
let mut traits = Vec::new();
|
||||
for (pred, _, _) in unsatisfied_predicates {
|
||||
let ty::PredicateKind::Clause(ty::Clause::Trait(trait_pred)) = pred.kind().skip_binder() else { continue };
|
||||
let adt = match trait_pred.self_ty().ty_adt_def() {
|
||||
@ -1892,10 +1892,10 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
}
|
||||
derives.push((self_name, self_span, diagnostic_name));
|
||||
} else {
|
||||
traits.push(self.tcx.def_span(trait_pred.def_id()));
|
||||
traits.push(trait_pred.def_id());
|
||||
}
|
||||
} else {
|
||||
traits.push(self.tcx.def_span(trait_pred.def_id()));
|
||||
traits.push(trait_pred.def_id());
|
||||
}
|
||||
}
|
||||
traits.sort();
|
||||
@ -1918,10 +1918,23 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
|
||||
let len = traits.len();
|
||||
if len > 0 {
|
||||
let span: MultiSpan = traits.into();
|
||||
let span =
|
||||
MultiSpan::from_spans(traits.iter().map(|&did| self.tcx.def_span(did)).collect());
|
||||
let mut names = format!("`{}`", self.tcx.def_path_str(traits[0]));
|
||||
for (i, &did) in traits.iter().enumerate().skip(1) {
|
||||
if len > 2 {
|
||||
names.push_str(", ");
|
||||
}
|
||||
if i == len - 1 {
|
||||
names.push_str(" and ");
|
||||
}
|
||||
names.push('`');
|
||||
names.push_str(&self.tcx.def_path_str(did));
|
||||
names.push('`');
|
||||
}
|
||||
err.span_note(
|
||||
span,
|
||||
&format!("the following trait{} must be implemented", pluralize!(len),),
|
||||
&format!("the trait{} {} must be implemented", pluralize!(len), names),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -1527,13 +1527,15 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
|
||||
if let Some(virtual_dir) = &sess.opts.unstable_opts.simulate_remapped_rust_src_base
|
||||
{
|
||||
if let Some(real_dir) = &sess.opts.real_rust_source_base_dir {
|
||||
if let rustc_span::FileName::Real(ref mut old_name) = name {
|
||||
if let rustc_span::RealFileName::LocalPath(local) = old_name {
|
||||
if let Ok(rest) = local.strip_prefix(real_dir) {
|
||||
*old_name = rustc_span::RealFileName::Remapped {
|
||||
local_path: None,
|
||||
virtual_name: virtual_dir.join(rest),
|
||||
};
|
||||
for subdir in ["library", "compiler"] {
|
||||
if let rustc_span::FileName::Real(ref mut old_name) = name {
|
||||
if let rustc_span::RealFileName::LocalPath(local) = old_name {
|
||||
if let Ok(rest) = local.strip_prefix(real_dir.join(subdir)) {
|
||||
*old_name = rustc_span::RealFileName::Remapped {
|
||||
local_path: None,
|
||||
virtual_name: virtual_dir.join(subdir).join(rest),
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1308,15 +1308,15 @@ impl<'tcx> Visitor<'tcx> for TypePrivacyVisitor<'tcx> {
|
||||
let is_local_static =
|
||||
if let DefKind::Static(_) = kind { def_id.is_local() } else { false };
|
||||
if !self.item_is_accessible(def_id) && !is_local_static {
|
||||
let sess = self.tcx.sess;
|
||||
let sm = sess.source_map();
|
||||
let name = match qpath {
|
||||
hir::QPath::Resolved(..) | hir::QPath::LangItem(..) => {
|
||||
sm.span_to_snippet(qpath.span()).ok()
|
||||
let name = match *qpath {
|
||||
hir::QPath::LangItem(it, ..) => {
|
||||
self.tcx.lang_items().get(it).map(|did| self.tcx.def_path_str(did))
|
||||
}
|
||||
hir::QPath::Resolved(_, path) => Some(self.tcx.def_path_str(path.res.def_id())),
|
||||
hir::QPath::TypeRelative(_, segment) => Some(segment.ident.to_string()),
|
||||
};
|
||||
let kind = kind.descr(def_id);
|
||||
let sess = self.tcx.sess;
|
||||
let _ = match name {
|
||||
Some(name) => {
|
||||
sess.emit_err(ItemIsPrivate { span, kind, descr: (&name).into() })
|
||||
|
@ -2179,15 +2179,15 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
||||
format!("does not implement `{}`", trait_pred.print_modifiers_and_trait_path())
|
||||
};
|
||||
|
||||
let mut explain_yield = |interior_span: Span,
|
||||
yield_span: Span,
|
||||
scope_span: Option<Span>| {
|
||||
let mut span = MultiSpan::from_span(yield_span);
|
||||
if let Ok(snippet) = source_map.span_to_snippet(interior_span) {
|
||||
// #70935: If snippet contains newlines, display "the value" instead
|
||||
// so that we do not emit complex diagnostics.
|
||||
let snippet = &format!("`{}`", snippet);
|
||||
let snippet = if snippet.contains('\n') { "the value" } else { snippet };
|
||||
let mut explain_yield =
|
||||
|interior_span: Span, yield_span: Span, scope_span: Option<Span>| {
|
||||
let mut span = MultiSpan::from_span(yield_span);
|
||||
let snippet = match source_map.span_to_snippet(interior_span) {
|
||||
// #70935: If snippet contains newlines, display "the value" instead
|
||||
// so that we do not emit complex diagnostics.
|
||||
Ok(snippet) if !snippet.contains('\n') => format!("`{}`", snippet),
|
||||
_ => "the value".to_string(),
|
||||
};
|
||||
// note: future is not `Send` as this value is used across an await
|
||||
// --> $DIR/issue-70935-complex-spans.rs:13:9
|
||||
// |
|
||||
@ -2212,17 +2212,11 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
||||
interior_span,
|
||||
format!("has type `{}` which {}", target_ty, trait_explanation),
|
||||
);
|
||||
// If available, use the scope span to annotate the drop location.
|
||||
let mut scope_note = None;
|
||||
if let Some(scope_span) = scope_span {
|
||||
let scope_span = source_map.end_point(scope_span);
|
||||
|
||||
let msg = format!("{} is later dropped here", snippet);
|
||||
if source_map.is_multiline(yield_span.between(scope_span)) {
|
||||
span.push_span_label(scope_span, msg);
|
||||
} else {
|
||||
scope_note = Some((scope_span, msg));
|
||||
}
|
||||
span.push_span_label(scope_span, msg);
|
||||
}
|
||||
err.span_note(
|
||||
span,
|
||||
@ -2231,11 +2225,7 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
||||
future_or_generator, trait_explanation, an_await_or_yield
|
||||
),
|
||||
);
|
||||
if let Some((span, msg)) = scope_note {
|
||||
err.span_note(span, &msg);
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
match interior_or_upvar_span {
|
||||
GeneratorInteriorOrUpvar::Interior(interior_span, interior_extra_info) => {
|
||||
if let Some((scope_span, yield_span, expr, from_awaited_ty)) = interior_extra_info {
|
||||
|
@ -660,10 +660,7 @@ LL | #[derive(Diagnostic)]
|
||||
= help: normalized in stderr
|
||||
note: required by a bound in `DiagnosticBuilder::<'a, G>::set_arg`
|
||||
--> $COMPILER_DIR/rustc_errors/src/diagnostic_builder.rs:LL:CC
|
||||
|
|
||||
LL | arg: impl IntoDiagnosticArg,
|
||||
| ^^^^^^^^^^^^^^^^^ required by this bound in `DiagnosticBuilder::<'a, G>::set_arg`
|
||||
= note: this error originates in the derive macro `Diagnostic` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
= note: this error originates in the derive macro `Diagnostic` which comes from the expansion of the macro `forward` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 83 previous errors
|
||||
|
||||
|
@ -17,9 +17,6 @@ LL | | }
|
||||
= note: struct `core::alloc::Layout` and struct `Layout` have similar names, but are actually distinct types
|
||||
note: struct `core::alloc::Layout` is defined in crate `core`
|
||||
--> $SRC_DIR/core/src/alloc/layout.rs:LL:COL
|
||||
|
|
||||
LL | pub struct Layout {
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
note: struct `Layout` is defined in the current crate
|
||||
--> $DIR/alloc-error-handler-bad-signature-2.rs:7:1
|
||||
|
|
||||
|
@ -15,9 +15,6 @@ LL | fn get_iter(vec: &[i32]) -> impl Iterator<Item = {}> + '_ {
|
||||
|
|
||||
note: associated type defined here
|
||||
--> $SRC_DIR/core/src/iter/traits/iterator.rs:LL:COL
|
||||
|
|
||||
LL | type Item;
|
||||
| ^^^^^^^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -7,9 +7,6 @@ LL | type Ty = Vec<[u8]>;
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `Vec`
|
||||
--> $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
|
||||
| ^ required by this bound in `Vec`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -6,9 +6,6 @@ LL | trait ArithmeticOps: Add<Output=Self> + Sub<Output=Self> + Mul<Output=Self>
|
||||
|
|
||||
note: required by a bound in `Add`
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Add<Rhs = Self> {
|
||||
| ^^^^^^^^^^ required by this bound in `Add`
|
||||
help: consider further restricting `Self`
|
||||
|
|
||||
LL | trait ArithmeticOps: Add<Output=Self> + Sub<Output=Self> + Mul<Output=Self> + Div<Output=Self> + Sized {}
|
||||
|
@ -68,14 +68,10 @@ note: future is not `Send` as this value is used across an await
|
||||
--> $DIR/async-await-let-else.rs:33:28
|
||||
|
|
||||
LL | (Rc::new(()), bar().await);
|
||||
| ----------- ^^^^^^ await occurs here, with `Rc::new(())` maybe used later
|
||||
| |
|
||||
| ----------- ^^^^^^ - `Rc::new(())` is later dropped here
|
||||
| | |
|
||||
| | await occurs here, with `Rc::new(())` maybe used later
|
||||
| has type `Rc<()>` which is not `Send`
|
||||
note: `Rc::new(())` is later dropped here
|
||||
--> $DIR/async-await-let-else.rs:33:35
|
||||
|
|
||||
LL | (Rc::new(()), bar().await);
|
||||
| ^
|
||||
note: required by a bound in `is_send`
|
||||
--> $DIR/async-await-let-else.rs:19:15
|
||||
|
|
||||
|
@ -53,14 +53,10 @@ note: future is not `Send` as this value is used across an await
|
||||
--> $DIR/async-await-let-else.rs:33:28
|
||||
|
|
||||
LL | (Rc::new(()), bar().await);
|
||||
| ----------- ^^^^^^ await occurs here, with `Rc::new(())` maybe used later
|
||||
| |
|
||||
| ----------- ^^^^^^ - `Rc::new(())` is later dropped here
|
||||
| | |
|
||||
| | await occurs here, with `Rc::new(())` maybe used later
|
||||
| has type `Rc<()>` which is not `Send`
|
||||
note: `Rc::new(())` is later dropped here
|
||||
--> $DIR/async-await-let-else.rs:33:35
|
||||
|
|
||||
LL | (Rc::new(()), bar().await);
|
||||
| ^
|
||||
note: required by a bound in `is_send`
|
||||
--> $DIR/async-await-let-else.rs:19:15
|
||||
|
|
||||
|
@ -12,9 +12,6 @@ LL | fun(async {}, async {});
|
||||
found `async` block `[async block@$DIR/generator-desc.rs:10:19: 10:27]`
|
||||
note: function defined here
|
||||
--> $SRC_DIR/core/src/future/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub const fn identity_future<O, Fut: Future<Output = O>>(f: Fut) -> Fut {
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/generator-desc.rs:12:16
|
||||
|
@ -12,14 +12,10 @@ LL | baz(|| async{
|
||||
| _____________-
|
||||
LL | | foo(tx.clone());
|
||||
LL | | }).await;
|
||||
| | - ^^^^^^ await occurs here, with the value maybe used later
|
||||
| |_________|
|
||||
| | - ^^^^^^- the value is later dropped here
|
||||
| | | |
|
||||
| |_________| await occurs here, with the value maybe used later
|
||||
| has type `[closure@$DIR/issue-70935-complex-spans.rs:17:13: 17:15]` which is not `Send`
|
||||
note: the value is later dropped here
|
||||
--> $DIR/issue-70935-complex-spans.rs:19:17
|
||||
|
|
||||
LL | }).await;
|
||||
| ^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -8,9 +8,6 @@ LL | let mut f = File::open(path.to_str())?;
|
||||
|
|
||||
note: required by a bound in `File::open`
|
||||
--> $SRC_DIR/std/src/fs.rs:LL:COL
|
||||
|
|
||||
LL | pub fn open<P: AsRef<Path>>(path: P) -> io::Result<File> {
|
||||
| ^^^^^^^^^^^ required by this bound in `File::open`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -6,11 +6,6 @@ LL | async fn copy() -> Result<()>
|
||||
| |
|
||||
| expected 2 generic arguments
|
||||
|
|
||||
note: enum defined here, with 2 generic parameters: `T`, `E`
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Result<T, E> {
|
||||
| ^^^^^^ - -
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | async fn copy() -> Result<(), E>
|
||||
|
@ -13,14 +13,10 @@ note: future is not `Send` as this value is used across an await
|
||||
--> $DIR/issue-65436-raw-ptr-not-send.rs:18:35
|
||||
|
|
||||
LL | bar(Foo(std::ptr::null())).await;
|
||||
| ---------------- ^^^^^^ await occurs here, with `std::ptr::null()` maybe used later
|
||||
| |
|
||||
| ---------------- ^^^^^^- `std::ptr::null()` is later dropped here
|
||||
| | |
|
||||
| | await occurs here, with `std::ptr::null()` maybe used later
|
||||
| has type `*const u8` which is not `Send`
|
||||
note: `std::ptr::null()` is later dropped here
|
||||
--> $DIR/issue-65436-raw-ptr-not-send.rs:18:41
|
||||
|
|
||||
LL | bar(Foo(std::ptr::null())).await;
|
||||
| ^
|
||||
help: consider moving this into a `let` binding to create a shorter lived borrow
|
||||
--> $DIR/issue-65436-raw-ptr-not-send.rs:18:13
|
||||
|
|
||||
|
@ -9,14 +9,10 @@ note: future is not `Send` as this value is used across an await
|
||||
--> $DIR/auxiliary/issue_67893.rs:9:26
|
||||
|
|
||||
LL | f(*x.lock().unwrap()).await;
|
||||
| ----------------- ^^^^^^ await occurs here, with `x.lock().unwrap()` maybe used later
|
||||
| |
|
||||
| ----------------- ^^^^^^- `x.lock().unwrap()` is later dropped here
|
||||
| | |
|
||||
| | await occurs here, with `x.lock().unwrap()` maybe used later
|
||||
| has type `MutexGuard<'_, ()>` which is not `Send`
|
||||
note: `x.lock().unwrap()` is later dropped here
|
||||
--> $DIR/auxiliary/issue_67893.rs:9:32
|
||||
|
|
||||
LL | f(*x.lock().unwrap()).await;
|
||||
| ^
|
||||
note: required by a bound in `g`
|
||||
--> $DIR/issue-67893.rs:6:14
|
||||
|
|
||||
|
@ -14,9 +14,6 @@ LL | struct Sleep(std::marker::PhantomPinned);
|
||||
| ^^^^^
|
||||
note: required by a bound in `Pin::<P>::new`
|
||||
--> $SRC_DIR/core/src/pin.rs:LL:COL
|
||||
|
|
||||
LL | impl<P: Deref<Target: Unpin>> Pin<P> {
|
||||
| ^^^^^ required by this bound in `Pin::<P>::new`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -6,11 +6,9 @@ LL | struct Sleep;
|
||||
...
|
||||
LL | self.sleep.poll(cx)
|
||||
| ^^^^ method not found in `Sleep`
|
||||
--> $SRC_DIR/core/src/future/future.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/core/src/future/future.rs:LL:COL
|
||||
|
|
||||
LL | fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>;
|
||||
| ---- the method is available for `Pin<&mut Sleep>` here
|
||||
= note: the method is available for `Pin<&mut Sleep>` here
|
||||
|
|
||||
help: consider wrapping the receiver expression with the appropriate type
|
||||
|
|
||||
|
@ -10,9 +10,6 @@ LL | drop(lhs);
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | fn add(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn add<A: Add<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
|
||||
@ -46,9 +43,6 @@ LL | drop(lhs);
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | fn sub(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn sub<A: Sub<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
|
||||
@ -82,9 +76,6 @@ LL | drop(lhs);
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | fn mul(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn mul<A: Mul<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
|
||||
@ -118,9 +109,6 @@ LL | drop(lhs);
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | fn div(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn div<A: Div<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
|
||||
@ -154,9 +142,6 @@ LL | drop(lhs);
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | fn rem(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn rem<A: Rem<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
|
||||
@ -190,9 +175,6 @@ LL | drop(lhs);
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | fn bitand(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn bitand<A: BitAnd<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
|
||||
@ -226,9 +208,6 @@ LL | drop(lhs);
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | fn bitor(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn bitor<A: BitOr<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
|
||||
@ -262,9 +241,6 @@ LL | drop(lhs);
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | fn bitxor(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn bitxor<A: BitXor<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
|
||||
@ -298,9 +274,6 @@ LL | drop(lhs);
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | fn shl(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn shl<A: Shl<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
|
||||
@ -334,9 +307,6 @@ LL | drop(lhs);
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | fn shr(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn shr<A: Shr<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
|
||||
|
@ -13,9 +13,6 @@ LL | | x;
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | fn add(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
help: consider further restricting this bound
|
||||
|
|
||||
LL | fn double_move<T: Add<Output=()> + Copy>(x: T) {
|
||||
@ -78,9 +75,6 @@ LL | | *n;
|
||||
|
|
||||
note: calling this operator moves the left-hand side
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | fn add(self, rhs: Rhs) -> Self::Output;
|
||||
| ^^^^
|
||||
|
||||
error[E0507]: cannot move out of `*n` which is behind a shared reference
|
||||
--> $DIR/binop-move-semantics.rs:32:5
|
||||
|
@ -11,11 +11,8 @@ note: an implementation of `Add<_>` might be missing for `A`
|
||||
|
|
||||
LL | struct A;
|
||||
| ^^^^^^^^ must implement `Add<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Add` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Add<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0369]: cannot subtract `A` from `A`
|
||||
--> $DIR/issue-28837.rs:8:7
|
||||
@ -30,11 +27,8 @@ note: an implementation of `Sub<_>` might be missing for `A`
|
||||
|
|
||||
LL | struct A;
|
||||
| ^^^^^^^^ must implement `Sub<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Sub` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Sub<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0369]: cannot multiply `A` by `A`
|
||||
--> $DIR/issue-28837.rs:10:7
|
||||
@ -49,11 +43,8 @@ note: an implementation of `Mul<_>` might be missing for `A`
|
||||
|
|
||||
LL | struct A;
|
||||
| ^^^^^^^^ must implement `Mul<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Mul` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Mul<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0369]: cannot divide `A` by `A`
|
||||
--> $DIR/issue-28837.rs:12:7
|
||||
@ -68,11 +59,8 @@ note: an implementation of `Div<_>` might be missing for `A`
|
||||
|
|
||||
LL | struct A;
|
||||
| ^^^^^^^^ must implement `Div<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Div` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Div<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0369]: cannot mod `A` by `A`
|
||||
--> $DIR/issue-28837.rs:14:7
|
||||
@ -87,11 +75,8 @@ note: an implementation of `Rem<_>` might be missing for `A`
|
||||
|
|
||||
LL | struct A;
|
||||
| ^^^^^^^^ must implement `Rem<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Rem` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Rem<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0369]: no implementation for `A & A`
|
||||
--> $DIR/issue-28837.rs:16:7
|
||||
@ -106,11 +91,8 @@ note: an implementation of `BitAnd<_>` might be missing for `A`
|
||||
|
|
||||
LL | struct A;
|
||||
| ^^^^^^^^ must implement `BitAnd<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `BitAnd` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | pub trait BitAnd<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0369]: no implementation for `A | A`
|
||||
--> $DIR/issue-28837.rs:18:7
|
||||
@ -125,11 +107,8 @@ note: an implementation of `BitOr<_>` might be missing for `A`
|
||||
|
|
||||
LL | struct A;
|
||||
| ^^^^^^^^ must implement `BitOr<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `BitOr` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | pub trait BitOr<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0369]: no implementation for `A << A`
|
||||
--> $DIR/issue-28837.rs:20:7
|
||||
@ -144,11 +123,8 @@ note: an implementation of `Shl<_>` might be missing for `A`
|
||||
|
|
||||
LL | struct A;
|
||||
| ^^^^^^^^ must implement `Shl<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Shl` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Shl<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0369]: no implementation for `A >> A`
|
||||
--> $DIR/issue-28837.rs:22:7
|
||||
@ -163,11 +139,8 @@ note: an implementation of `Shr<_>` might be missing for `A`
|
||||
|
|
||||
LL | struct A;
|
||||
| ^^^^^^^^ must implement `Shr<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Shr` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Shr<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0369]: binary operation `==` cannot be applied to type `A`
|
||||
--> $DIR/issue-28837.rs:24:7
|
||||
|
@ -11,11 +11,8 @@ note: an implementation of `Mul<_>` might be missing for `Thing`
|
||||
|
|
||||
LL | struct Thing {
|
||||
| ^^^^^^^^^^^^ must implement `Mul<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Mul` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Mul<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -7,11 +7,8 @@ LL | let _x = Rc::new(vec![1, 2]).into_iter();
|
||||
| | value moved due to this method call
|
||||
| move occurs because value has type `Vec<i32>`, which does not implement the `Copy` trait
|
||||
|
|
||||
note: this function takes ownership of the receiver `self`, which moves value
|
||||
note: `into_iter` takes ownership of the receiver `self`, which moves value
|
||||
--> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
|
||||
|
|
||||
LL | fn into_iter(self) -> Self::IntoIter;
|
||||
| ^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -27,11 +27,8 @@ LL | foo = Some(Struct);
|
||||
LL | let _y = foo;
|
||||
| ^^^ value used here after move
|
||||
|
|
||||
note: this function takes ownership of the receiver `self`, which moves `foo`
|
||||
note: `Option::<T>::unwrap` takes ownership of the receiver `self`, which moves `foo`
|
||||
--> $SRC_DIR/core/src/option.rs:LL:COL
|
||||
|
|
||||
LL | pub const fn unwrap(self) -> T {
|
||||
| ^^^^
|
||||
|
||||
error[E0382]: use of moved value: `foo`
|
||||
--> $DIR/issue-83760.rs:37:14
|
||||
@ -55,11 +52,8 @@ LL | foo = Some(Struct);
|
||||
LL | } else if true {
|
||||
LL | foo = Some(Struct);
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
note: this function takes ownership of the receiver `self`, which moves `foo`
|
||||
note: `Option::<T>::unwrap` takes ownership of the receiver `self`, which moves `foo`
|
||||
--> $SRC_DIR/core/src/option.rs:LL:COL
|
||||
|
|
||||
LL | pub const fn unwrap(self) -> T {
|
||||
| ^^^^
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
@ -9,11 +9,8 @@ LL |
|
||||
LL | fill_segment(state);
|
||||
| ^^^^^ value borrowed here after move
|
||||
|
|
||||
note: this function takes ownership of the receiver `self`, which moves `state`
|
||||
note: `into_iter` takes ownership of the receiver `self`, which moves `state`
|
||||
--> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
|
||||
|
|
||||
LL | fn into_iter(self) -> Self::IntoIter;
|
||||
| ^^^^
|
||||
help: consider creating a fresh reborrow of `state` here
|
||||
|
|
||||
LL | for _ in &mut *state {}
|
||||
|
@ -8,11 +8,8 @@ LL | cb.map(|cb| cb());
|
||||
| help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents
|
||||
| move occurs because `*cb` has type `Option<&mut dyn FnMut()>`, which does not implement the `Copy` trait
|
||||
|
|
||||
note: this function takes ownership of the receiver `self`, which moves `*cb`
|
||||
note: `Option::<T>::map` takes ownership of the receiver `self`, which moves `*cb`
|
||||
--> $SRC_DIR/core/src/option.rs:LL:COL
|
||||
|
|
||||
LL | pub const fn map<U, F>(self, f: F) -> Option<U>
|
||||
| ^^^^
|
||||
|
||||
error[E0596]: cannot borrow `*cb` as mutable, as it is behind a `&` reference
|
||||
--> $DIR/suggest-as-ref-on-mut-closure.rs:12:26
|
||||
|
@ -10,11 +10,8 @@ LL | y.into_iter();
|
||||
| |
|
||||
| move occurs because `y` has type `Vec<String>`, which does not implement the `Copy` trait
|
||||
|
|
||||
note: this function takes ownership of the receiver `self`, which moves `y`
|
||||
note: `into_iter` takes ownership of the receiver `self`, which moves `y`
|
||||
--> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
|
||||
|
|
||||
LL | fn into_iter(self) -> Self::IntoIter;
|
||||
| ^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -9,9 +9,6 @@ LL | let _ = Box::into_boxed_slice(boxed_slice);
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `Box::<T, A>::into_boxed_slice`
|
||||
--> $SRC_DIR/alloc/src/boxed.rs:LL:COL
|
||||
|
|
||||
LL | impl<T, A: Allocator> Box<T, A> {
|
||||
| ^ required by this bound in `Box::<T, A>::into_boxed_slice`
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> $DIR/into-boxed-slice-fail.rs:7:13
|
||||
@ -33,9 +30,6 @@ LL | let _ = Box::into_boxed_slice(boxed_trait);
|
||||
= help: the trait `Sized` is not implemented for `dyn Debug`
|
||||
note: required by a bound in `Box::<T, A>::into_boxed_slice`
|
||||
--> $SRC_DIR/alloc/src/boxed.rs:LL:COL
|
||||
|
|
||||
LL | impl<T, A: Allocator> Box<T, A> {
|
||||
| ^ required by this bound in `Box::<T, A>::into_boxed_slice`
|
||||
|
||||
error[E0277]: the size for values of type `dyn Debug` cannot be known at compilation time
|
||||
--> $DIR/into-boxed-slice-fail.rs:11:13
|
||||
|
@ -63,11 +63,9 @@ error[E0412]: cannot find type `F` in this scope
|
||||
|
|
||||
LL | self , ... , self , self , ... ) where F : FnOnce ( & 'a & 'b usize ) {
|
||||
| ^
|
||||
--> $SRC_DIR/core/src/ops/function.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/core/src/ops/function.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Fn<Args: Tuple>: FnMut<Args> {
|
||||
| -------------------------------------- similarly named trait `Fn` defined here
|
||||
= note: similarly named trait `Fn` defined here
|
||||
|
|
||||
help: a trait with a similar name exists
|
||||
|
|
||||
|
@ -14,9 +14,6 @@ LL | | }
|
||||
= note: [async fn body@$DIR/async.rs:7:29: 9:2] must be a future or must implement `IntoFuture` to be awaited
|
||||
note: required by a bound in `identity_future`
|
||||
--> $SRC_DIR/core/src/future/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub const fn identity_future<O, Fut: Future<Output = O>>(f: Fut) -> Fut {
|
||||
| ^^^^^^^^^^^^^^^^^^ required by this bound in `identity_future`
|
||||
|
||||
error[E0277]: the size for values of type `<[async fn body@$DIR/async.rs:7:29: 9:2] as Future>::Output` cannot be known at compilation time
|
||||
--> $DIR/async.rs:7:29
|
||||
@ -30,9 +27,6 @@ LL | | }
|
||||
= help: the trait `Sized` is not implemented for `<[async fn body@$DIR/async.rs:7:29: 9:2] as Future>::Output`
|
||||
note: required by a bound in `identity_future`
|
||||
--> $SRC_DIR/core/src/future/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub const fn identity_future<O, Fut: Future<Output = O>>(f: Fut) -> Fut {
|
||||
| ^ required by this bound in `identity_future`
|
||||
|
||||
error[E0277]: `[async fn body@$DIR/async.rs:7:29: 9:2]` is not a future
|
||||
--> $DIR/async.rs:7:25
|
||||
|
@ -10,9 +10,6 @@ LL | let y = x.or_else(4);
|
||||
= note: wrap the `{integer}` in a closure with no arguments: `|| { /* code */ }`
|
||||
note: required by a bound in `Option::<T>::or_else`
|
||||
--> $SRC_DIR/core/src/option.rs:LL:COL
|
||||
|
|
||||
LL | F: ~const FnOnce() -> Option<T>,
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Option::<T>::or_else`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -19,9 +19,6 @@ LL | let t = thread::spawn(|| {
|
||||
| ^^
|
||||
note: required by a bound in `spawn`
|
||||
--> $SRC_DIR/std/src/thread/mod.rs:LL:COL
|
||||
|
|
||||
LL | F: Send + 'static,
|
||||
| ^^^^ required by this bound in `spawn`
|
||||
|
||||
error[E0277]: `Sender<()>` cannot be shared between threads safely
|
||||
--> $DIR/closure-move-sync.rs:18:19
|
||||
@ -40,9 +37,6 @@ LL | thread::spawn(|| tx.send(()).unwrap());
|
||||
| ^^
|
||||
note: required by a bound in `spawn`
|
||||
--> $SRC_DIR/std/src/thread/mod.rs:LL:COL
|
||||
|
|
||||
LL | F: Send + 'static,
|
||||
| ^^^^ required by this bound in `spawn`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -10,9 +10,6 @@ LL | let x: Option<&[u8]> = Some("foo").map(std::mem::transmute);
|
||||
= note: unsafe function cannot be called generically without an unsafe block
|
||||
note: required by a bound in `Option::<T>::map`
|
||||
--> $SRC_DIR/core/src/option.rs:LL:COL
|
||||
|
|
||||
LL | F: ~const FnOnce(T) -> U,
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Option::<T>::map`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -9,11 +9,9 @@ error[E0412]: cannot find type `F` in this scope
|
||||
|
|
||||
LL | _func: F,
|
||||
| ^
|
||||
--> $SRC_DIR/core/src/ops/function.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/core/src/ops/function.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Fn<Args: Tuple>: FnMut<Args> {
|
||||
| -------------------------------------- similarly named trait `Fn` defined here
|
||||
= note: similarly named trait `Fn` defined here
|
||||
|
|
||||
help: a trait with a similar name exists
|
||||
|
|
||||
|
@ -8,9 +8,6 @@ LL | Ok(())
|
||||
|
|
||||
note: tuple variant defined here
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | Ok(#[stable(feature = "rust1", since = "1.0.0")] T),
|
||||
| ^^
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-87461.rs:17:8
|
||||
@ -22,9 +19,6 @@ LL | Ok(())
|
||||
|
|
||||
note: tuple variant defined here
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | Ok(#[stable(feature = "rust1", since = "1.0.0")] T),
|
||||
| ^^
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-87461.rs:26:12
|
||||
@ -36,9 +30,6 @@ LL | Ok(())
|
||||
|
|
||||
note: tuple variant defined here
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | Ok(#[stable(feature = "rust1", since = "1.0.0")] T),
|
||||
| ^^
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
@ -3,11 +3,9 @@ error[E0412]: cannot find type `n` in this scope
|
||||
|
|
||||
LL | type_ascribe!(2, n([u8; || 1]))
|
||||
| ^ help: a trait with a similar name exists: `Fn`
|
||||
--> $SRC_DIR/core/src/ops/function.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/core/src/ops/function.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Fn<Args: Tuple>: FnMut<Args> {
|
||||
| -------------------------------------- similarly named trait `Fn` defined here
|
||||
= note: similarly named trait `Fn` defined here
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-90871.rs:4:29
|
||||
|
@ -9,11 +9,8 @@ LL | {
|
||||
LL | println!("{:?}", some_vec);
|
||||
| ^^^^^^^^ value borrowed here after move
|
||||
|
|
||||
note: this function takes ownership of the receiver `self`, which moves `some_vec`
|
||||
note: `into_iter` takes ownership of the receiver `self`, which moves `some_vec`
|
||||
--> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
|
||||
|
|
||||
LL | fn into_iter(self) -> Self::IntoIter;
|
||||
| ^^^^
|
||||
= note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider cloning the value if the performance cost is acceptable
|
||||
|
|
||||
|
@ -7,9 +7,6 @@ LL | let y = Mask::<_, _>::splat(false);
|
||||
= note: cannot satisfy `_: MaskElement`
|
||||
note: required by a bound in `Mask::<T, LANES>::splat`
|
||||
--> $SRC_DIR/core/src/../../portable-simd/crates/core_simd/src/masks.rs:LL:COL
|
||||
|
|
||||
LL | T: MaskElement,
|
||||
| ^^^^^^^^^^^ required by this bound in `Mask::<T, LANES>::splat`
|
||||
help: consider giving `y` an explicit type, where the type for type parameter `T` is specified
|
||||
|
|
||||
LL | let y: Mask<_, LANES> = Mask::<_, _>::splat(false);
|
||||
|
@ -1,14 +1,10 @@
|
||||
error[E0080]: evaluation of `Inline::<dyn std::fmt::Debug>::{constant#0}` failed
|
||||
--> $SRC_DIR/core/src/mem/mod.rs:LL:COL
|
||||
|
|
||||
LL | intrinsics::size_of::<T>()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ size_of called on unsized type `dyn Debug`
|
||||
= note: size_of called on unsized type `dyn Debug`
|
||||
|
|
||||
note: inside `std::mem::size_of::<dyn Debug>`
|
||||
--> $SRC_DIR/core/src/mem/mod.rs:LL:COL
|
||||
|
|
||||
LL | intrinsics::size_of::<T>()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `Inline::<dyn Debug>::{constant#0}`
|
||||
--> $DIR/issue-80742.rs:22:10
|
||||
|
|
||||
@ -23,11 +19,9 @@ LL | struct Inline<T>
|
||||
...
|
||||
LL | let dst = Inline::<dyn Debug>::new(0);
|
||||
| ^^^ function or associated item cannot be called on `Inline<dyn Debug>` due to unsatisfied trait bounds
|
||||
--> $SRC_DIR/core/src/fmt/mod.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Debug {
|
||||
| --------------- doesn't satisfy `dyn Debug: Sized`
|
||||
= note: doesn't satisfy `dyn Debug: Sized`
|
||||
|
|
||||
= note: the following trait bounds were not satisfied:
|
||||
`dyn Debug: Sized`
|
||||
@ -35,14 +29,10 @@ LL | pub trait Debug {
|
||||
error[E0080]: evaluation of `Inline::<dyn std::fmt::Debug>::{constant#0}` failed
|
||||
--> $SRC_DIR/core/src/mem/mod.rs:LL:COL
|
||||
|
|
||||
LL | intrinsics::size_of::<T>()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ size_of called on unsized type `dyn Debug`
|
||||
= note: size_of called on unsized type `dyn Debug`
|
||||
|
|
||||
note: inside `std::mem::size_of::<dyn Debug>`
|
||||
--> $SRC_DIR/core/src/mem/mod.rs:LL:COL
|
||||
|
|
||||
LL | intrinsics::size_of::<T>()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `Inline::<dyn Debug>::{constant#0}`
|
||||
--> $DIR/issue-80742.rs:14:10
|
||||
|
|
||||
|
@ -4,11 +4,6 @@ error[E0107]: this associated function takes 0 generic arguments but 1 generic a
|
||||
LL | let _: u32 = 5i32.try_into::<32>().unwrap();
|
||||
| ^^^^^^^^ expected 0 generic arguments
|
||||
|
|
||||
note: associated function defined here, with 0 generic parameters
|
||||
--> $SRC_DIR/core/src/convert/mod.rs:LL:COL
|
||||
|
|
||||
LL | fn try_into(self) -> Result<T, Self::Error>;
|
||||
| ^^^^^^^^
|
||||
help: consider moving this generic argument to the `TryInto` trait, which takes up to 1 argument
|
||||
|
|
||||
LL | let _: u32 = TryInto::<32>::try_into(5i32).unwrap();
|
||||
|
@ -5,12 +5,6 @@ LL | let _: Cell<&str, "a"> = Cell::new("");
|
||||
| ^^^^ --- help: remove this generic argument
|
||||
| |
|
||||
| expected 1 generic argument
|
||||
|
|
||||
note: struct defined here, with 1 generic parameter: `T`
|
||||
--> $SRC_DIR/core/src/cell.rs:LL:COL
|
||||
|
|
||||
LL | pub struct Cell<T: ?Sized> {
|
||||
| ^^^^ -
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -1,14 +1,10 @@
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereferencing pointer failed: null pointer is a dangling pointer (it has no provenance)
|
||||
= note: dereferencing pointer failed: null pointer is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `std::slice::from_raw_parts::<'_, u32>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `S0`
|
||||
--> $DIR/forbidden_slices.rs:18:34
|
||||
|
|
||||
@ -18,14 +14,10 @@ LL | pub static S0: &[u32] = unsafe { from_raw_parts(ptr::null(), 0) };
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereferencing pointer failed: null pointer is a dangling pointer (it has no provenance)
|
||||
= note: dereferencing pointer failed: null pointer is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `std::slice::from_raw_parts::<'_, ()>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `S1`
|
||||
--> $DIR/forbidden_slices.rs:19:33
|
||||
|
|
||||
@ -35,14 +27,10 @@ LL | pub static S1: &[()] = unsafe { from_raw_parts(ptr::null(), 0) };
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereferencing pointer failed: ALLOC_ID has size 4, so pointer to 8 bytes starting at offset 0 is out-of-bounds
|
||||
= note: dereferencing pointer failed: ALLOC_ID has size 4, so pointer to 8 bytes starting at offset 0 is out-of-bounds
|
||||
|
|
||||
note: inside `std::slice::from_raw_parts::<'_, u32>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `S2`
|
||||
--> $DIR/forbidden_slices.rs:22:34
|
||||
|
|
||||
@ -97,14 +85,10 @@ LL | pub static S7: &[u16] = unsafe {
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereferencing pointer failed: ALLOC_ID has size 8, so pointer to 8 bytes starting at offset 1 is out-of-bounds
|
||||
= note: dereferencing pointer failed: ALLOC_ID has size 8, so pointer to 8 bytes starting at offset 1 is out-of-bounds
|
||||
|
|
||||
note: inside `std::slice::from_raw_parts::<'_, u64>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `S8`
|
||||
--> $DIR/forbidden_slices.rs:43:5
|
||||
|
|
||||
@ -114,19 +98,12 @@ LL | from_raw_parts(ptr, 1)
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds offset_from: null pointer is a dangling pointer (it has no provenance)
|
||||
= note: out-of-bounds offset_from: null pointer is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::sub_ptr`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `from_ptr_range::<'_, u32>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { from_raw_parts(range.start, range.end.sub_ptr(range.start)) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R0`
|
||||
--> $DIR/forbidden_slices.rs:46:34
|
||||
|
|
||||
@ -136,19 +113,12 @@ LL | pub static R0: &[u32] = unsafe { from_ptr_range(ptr::null()..ptr::null()) }
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | assert!(0 < pointee_size && pointee_size <= isize::MAX as usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'assertion failed: 0 < pointee_size && pointee_size <= isize::MAX as usize', $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
= note: the evaluated program panicked at 'assertion failed: 0 < pointee_size && pointee_size <= isize::MAX as usize', $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const ()>::sub_ptr`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | assert!(0 < pointee_size && pointee_size <= isize::MAX as usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `from_ptr_range::<'_, ()>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { from_raw_parts(range.start, range.end.sub_ptr(range.start)) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R1`
|
||||
--> $DIR/forbidden_slices.rs:47:33
|
||||
|
|
||||
@ -159,19 +129,12 @@ LL | pub static R1: &[()] = unsafe { from_ptr_range(ptr::null()..ptr::null()) };
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: ALLOC_ID has size 4, so pointer to 8 bytes starting at offset 0 is out-of-bounds
|
||||
= note: out-of-bounds pointer arithmetic: ALLOC_ID has size 4, so pointer to 8 bytes starting at offset 0 is out-of-bounds
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::add`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { self.offset(count as isize) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R2`
|
||||
--> $DIR/forbidden_slices.rs:50:25
|
||||
|
|
||||
@ -226,19 +189,12 @@ LL | pub static R7: &[u16] = unsafe {
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: ALLOC_ID has size 8, so pointer to 8 bytes starting at offset 1 is out-of-bounds
|
||||
= note: out-of-bounds pointer arithmetic: ALLOC_ID has size 8, so pointer to 8 bytes starting at offset 1 is out-of-bounds
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u64>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `ptr::const_ptr::<impl *const u64>::add`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { self.offset(count as isize) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R8`
|
||||
--> $DIR/forbidden_slices.rs:74:25
|
||||
|
|
||||
@ -248,19 +204,12 @@ LL | from_ptr_range(ptr..ptr.add(1))
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ptr_offset_from_unsigned` called on pointers into different allocations
|
||||
= note: `ptr_offset_from_unsigned` called on pointers into different allocations
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::sub_ptr`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `from_ptr_range::<'_, u32>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { from_raw_parts(range.start, range.end.sub_ptr(range.start)) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R9`
|
||||
--> $DIR/forbidden_slices.rs:79:34
|
||||
|
|
||||
@ -270,19 +219,12 @@ LL | pub static R9: &[u32] = unsafe { from_ptr_range(&D0..(&D0 as *const u32).ad
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ptr_offset_from_unsigned` called on pointers into different allocations
|
||||
= note: `ptr_offset_from_unsigned` called on pointers into different allocations
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::sub_ptr`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `from_ptr_range::<'_, u32>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { from_raw_parts(range.start, range.end.sub_ptr(range.start)) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R10`
|
||||
--> $DIR/forbidden_slices.rs:80:35
|
||||
|
|
||||
|
@ -1,14 +1,10 @@
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereferencing pointer failed: null pointer is a dangling pointer (it has no provenance)
|
||||
= note: dereferencing pointer failed: null pointer is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `std::slice::from_raw_parts::<'_, u32>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `S0`
|
||||
--> $DIR/forbidden_slices.rs:18:34
|
||||
|
|
||||
@ -18,14 +14,10 @@ LL | pub static S0: &[u32] = unsafe { from_raw_parts(ptr::null(), 0) };
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereferencing pointer failed: null pointer is a dangling pointer (it has no provenance)
|
||||
= note: dereferencing pointer failed: null pointer is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `std::slice::from_raw_parts::<'_, ()>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `S1`
|
||||
--> $DIR/forbidden_slices.rs:19:33
|
||||
|
|
||||
@ -35,14 +27,10 @@ LL | pub static S1: &[()] = unsafe { from_raw_parts(ptr::null(), 0) };
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereferencing pointer failed: ALLOC_ID has size 4, so pointer to 8 bytes starting at offset 0 is out-of-bounds
|
||||
= note: dereferencing pointer failed: ALLOC_ID has size 4, so pointer to 8 bytes starting at offset 0 is out-of-bounds
|
||||
|
|
||||
note: inside `std::slice::from_raw_parts::<'_, u32>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `S2`
|
||||
--> $DIR/forbidden_slices.rs:22:34
|
||||
|
|
||||
@ -97,14 +85,10 @@ LL | pub static S7: &[u16] = unsafe {
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereferencing pointer failed: ALLOC_ID has size 8, so pointer to 8 bytes starting at offset 1 is out-of-bounds
|
||||
= note: dereferencing pointer failed: ALLOC_ID has size 8, so pointer to 8 bytes starting at offset 1 is out-of-bounds
|
||||
|
|
||||
note: inside `std::slice::from_raw_parts::<'_, u64>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | &*ptr::slice_from_raw_parts(data, len)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `S8`
|
||||
--> $DIR/forbidden_slices.rs:43:5
|
||||
|
|
||||
@ -114,19 +98,12 @@ LL | from_raw_parts(ptr, 1)
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds offset_from: null pointer is a dangling pointer (it has no provenance)
|
||||
= note: out-of-bounds offset_from: null pointer is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::sub_ptr`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `from_ptr_range::<'_, u32>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { from_raw_parts(range.start, range.end.sub_ptr(range.start)) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R0`
|
||||
--> $DIR/forbidden_slices.rs:46:34
|
||||
|
|
||||
@ -136,19 +113,12 @@ LL | pub static R0: &[u32] = unsafe { from_ptr_range(ptr::null()..ptr::null()) }
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | assert!(0 < pointee_size && pointee_size <= isize::MAX as usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'assertion failed: 0 < pointee_size && pointee_size <= isize::MAX as usize', $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
= note: the evaluated program panicked at 'assertion failed: 0 < pointee_size && pointee_size <= isize::MAX as usize', $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const ()>::sub_ptr`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | assert!(0 < pointee_size && pointee_size <= isize::MAX as usize);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `from_ptr_range::<'_, ()>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { from_raw_parts(range.start, range.end.sub_ptr(range.start)) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R1`
|
||||
--> $DIR/forbidden_slices.rs:47:33
|
||||
|
|
||||
@ -159,19 +129,12 @@ LL | pub static R1: &[()] = unsafe { from_ptr_range(ptr::null()..ptr::null()) };
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: ALLOC_ID has size 4, so pointer to 8 bytes starting at offset 0 is out-of-bounds
|
||||
= note: out-of-bounds pointer arithmetic: ALLOC_ID has size 4, so pointer to 8 bytes starting at offset 0 is out-of-bounds
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::add`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { self.offset(count as isize) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R2`
|
||||
--> $DIR/forbidden_slices.rs:50:25
|
||||
|
|
||||
@ -226,19 +189,12 @@ LL | pub static R7: &[u16] = unsafe {
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: ALLOC_ID has size 8, so pointer to 8 bytes starting at offset 1 is out-of-bounds
|
||||
= note: out-of-bounds pointer arithmetic: ALLOC_ID has size 8, so pointer to 8 bytes starting at offset 1 is out-of-bounds
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u64>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `ptr::const_ptr::<impl *const u64>::add`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { self.offset(count as isize) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R8`
|
||||
--> $DIR/forbidden_slices.rs:74:25
|
||||
|
|
||||
@ -248,19 +204,12 @@ LL | from_ptr_range(ptr..ptr.add(1))
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ptr_offset_from_unsigned` called on pointers into different allocations
|
||||
= note: `ptr_offset_from_unsigned` called on pointers into different allocations
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::sub_ptr`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `from_ptr_range::<'_, u32>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { from_raw_parts(range.start, range.end.sub_ptr(range.start)) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R9`
|
||||
--> $DIR/forbidden_slices.rs:79:34
|
||||
|
|
||||
@ -270,19 +219,12 @@ LL | pub static R9: &[u32] = unsafe { from_ptr_range(&D0..(&D0 as *const u32).ad
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ptr_offset_from_unsigned` called on pointers into different allocations
|
||||
= note: `ptr_offset_from_unsigned` called on pointers into different allocations
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::sub_ptr`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `from_ptr_range::<'_, u32>`
|
||||
--> $SRC_DIR/core/src/slice/raw.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { from_raw_parts(range.start, range.end.sub_ptr(range.start)) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `R10`
|
||||
--> $DIR/forbidden_slices.rs:80:35
|
||||
|
|
||||
|
@ -1,14 +1,10 @@
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ memory access failed: alloc5 has size 4, so pointer to 4 bytes starting at offset 4 is out-of-bounds
|
||||
= note: memory access failed: alloc5 has size 4, so pointer to 4 bytes starting at offset 4 is out-of-bounds
|
||||
|
|
||||
note: inside `std::ptr::read::<u32>`
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `_READ`
|
||||
--> $DIR/out_of_bounds_read.rs:12:33
|
||||
|
|
||||
@ -18,19 +14,12 @@ LL | const _READ: u32 = unsafe { ptr::read(PAST_END_PTR) };
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ memory access failed: alloc5 has size 4, so pointer to 4 bytes starting at offset 4 is out-of-bounds
|
||||
= note: memory access failed: alloc5 has size 4, so pointer to 4 bytes starting at offset 4 is out-of-bounds
|
||||
|
|
||||
note: inside `std::ptr::read::<u32>`
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::read`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { read(self) }
|
||||
| ^^^^^^^^^^
|
||||
note: inside `_CONST_READ`
|
||||
--> $DIR/out_of_bounds_read.rs:13:39
|
||||
|
|
||||
@ -40,19 +29,12 @@ LL | const _CONST_READ: u32 = unsafe { PAST_END_PTR.read() };
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ memory access failed: alloc5 has size 4, so pointer to 4 bytes starting at offset 4 is out-of-bounds
|
||||
= note: memory access failed: alloc5 has size 4, so pointer to 4 bytes starting at offset 4 is out-of-bounds
|
||||
|
|
||||
note: inside `std::ptr::read::<u32>`
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `ptr::mut_ptr::<impl *mut u32>::read`
|
||||
--> $SRC_DIR/core/src/ptr/mut_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { read(self) }
|
||||
| ^^^^^^^^^^
|
||||
note: inside `_MUT_READ`
|
||||
--> $DIR/out_of_bounds_read.rs:14:37
|
||||
|
|
||||
|
@ -1,19 +1,12 @@
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/num/f32.rs:LL:COL
|
||||
|
|
||||
LL | panic!("const-eval error: cannot use f32::to_bits on a NaN")
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'const-eval error: cannot use f32::to_bits on a NaN', $SRC_DIR/core/src/num/f32.rs:LL:COL
|
||||
= note: the evaluated program panicked at 'const-eval error: cannot use f32::to_bits on a NaN', $SRC_DIR/core/src/num/f32.rs:LL:COL
|
||||
|
|
||||
note: inside `core::f32::<impl f32>::to_bits::ct_f32_to_u32`
|
||||
--> $SRC_DIR/core/src/num/f32.rs:LL:COL
|
||||
|
|
||||
LL | panic!("const-eval error: cannot use f32::to_bits on a NaN")
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `core::f32::<impl f32>::to_bits`
|
||||
--> $SRC_DIR/core/src/num/f32.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::const_eval_select((self,), ct_f32_to_u32, rt_f32_to_u32) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `f32::MASKED_NAN1`
|
||||
--> $DIR/const-float-bits-reject-conv.rs:28:30
|
||||
|
|
||||
@ -24,19 +17,12 @@ LL | const MASKED_NAN1: u32 = f32::NAN.to_bits() ^ 0x002A_AAAA;
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/num/f32.rs:LL:COL
|
||||
|
|
||||
LL | panic!("const-eval error: cannot use f32::to_bits on a NaN")
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'const-eval error: cannot use f32::to_bits on a NaN', $SRC_DIR/core/src/num/f32.rs:LL:COL
|
||||
= note: the evaluated program panicked at 'const-eval error: cannot use f32::to_bits on a NaN', $SRC_DIR/core/src/num/f32.rs:LL:COL
|
||||
|
|
||||
note: inside `core::f32::<impl f32>::to_bits::ct_f32_to_u32`
|
||||
--> $SRC_DIR/core/src/num/f32.rs:LL:COL
|
||||
|
|
||||
LL | panic!("const-eval error: cannot use f32::to_bits on a NaN")
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `core::f32::<impl f32>::to_bits`
|
||||
--> $SRC_DIR/core/src/num/f32.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::const_eval_select((self,), ct_f32_to_u32, rt_f32_to_u32) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `f32::MASKED_NAN2`
|
||||
--> $DIR/const-float-bits-reject-conv.rs:30:30
|
||||
|
|
||||
@ -71,19 +57,12 @@ LL | const_assert!(f32::from_bits(MASKED_NAN2).to_bits(), MASKED_NAN2);
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/num/f64.rs:LL:COL
|
||||
|
|
||||
LL | panic!("const-eval error: cannot use f64::to_bits on a NaN")
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'const-eval error: cannot use f64::to_bits on a NaN', $SRC_DIR/core/src/num/f64.rs:LL:COL
|
||||
= note: the evaluated program panicked at 'const-eval error: cannot use f64::to_bits on a NaN', $SRC_DIR/core/src/num/f64.rs:LL:COL
|
||||
|
|
||||
note: inside `core::f64::<impl f64>::to_bits::ct_f64_to_u64`
|
||||
--> $SRC_DIR/core/src/num/f64.rs:LL:COL
|
||||
|
|
||||
LL | panic!("const-eval error: cannot use f64::to_bits on a NaN")
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `core::f64::<impl f64>::to_bits`
|
||||
--> $SRC_DIR/core/src/num/f64.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::const_eval_select((self,), ct_f64_to_u64, rt_f64_to_u64) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `f64::MASKED_NAN1`
|
||||
--> $DIR/const-float-bits-reject-conv.rs:50:30
|
||||
|
|
||||
@ -94,19 +73,12 @@ LL | const MASKED_NAN1: u64 = f64::NAN.to_bits() ^ 0x000A_AAAA_AAAA_AAAA;
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/num/f64.rs:LL:COL
|
||||
|
|
||||
LL | panic!("const-eval error: cannot use f64::to_bits on a NaN")
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'const-eval error: cannot use f64::to_bits on a NaN', $SRC_DIR/core/src/num/f64.rs:LL:COL
|
||||
= note: the evaluated program panicked at 'const-eval error: cannot use f64::to_bits on a NaN', $SRC_DIR/core/src/num/f64.rs:LL:COL
|
||||
|
|
||||
note: inside `core::f64::<impl f64>::to_bits::ct_f64_to_u64`
|
||||
--> $SRC_DIR/core/src/num/f64.rs:LL:COL
|
||||
|
|
||||
LL | panic!("const-eval error: cannot use f64::to_bits on a NaN")
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `core::f64::<impl f64>::to_bits`
|
||||
--> $SRC_DIR/core/src/num/f64.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::const_eval_select((self,), ct_f64_to_u64, rt_f64_to_u64) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `f64::MASKED_NAN2`
|
||||
--> $DIR/const-float-bits-reject-conv.rs:52:30
|
||||
|
|
||||
|
@ -21,9 +21,6 @@ LL | for i in 0..x {
|
||||
|
|
||||
note: impl defined here, but it is not `const`
|
||||
--> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
|
||||
|
|
||||
LL | impl<I: Iterator> const IntoIterator for I {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
|
||||
|
||||
error[E0658]: mutable references are not allowed in constant functions
|
||||
|
@ -6,9 +6,6 @@ LL | for _ in 0..5 {}
|
||||
|
|
||||
note: impl defined here, but it is not `const`
|
||||
--> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
|
||||
|
|
||||
LL | impl<I: Iterator> const IntoIterator for I {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: calls in constants are limited to constant functions, tuple structs and tuple variants
|
||||
|
||||
error[E0015]: cannot call non-const fn `<std::ops::Range<i32> as Iterator>::next` in constants
|
||||
|
@ -1,14 +1,10 @@
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/hint.rs:LL:COL
|
||||
|
|
||||
LL | intrinsics::unreachable()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ entering unreachable code
|
||||
= note: entering unreachable code
|
||||
|
|
||||
note: inside `unreachable_unchecked`
|
||||
--> $SRC_DIR/core/src/hint.rs:LL:COL
|
||||
|
|
||||
LL | intrinsics::unreachable()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `foo`
|
||||
--> $DIR/const_unsafe_unreachable_ub.rs:6:18
|
||||
|
|
||||
|
@ -31,19 +31,12 @@ LL | let _x: &u32 = transmute(&[0u8; 4]);
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ accessing memory with alignment 1, but alignment 4 is required
|
||||
= note: accessing memory with alignment 1, but alignment 4 is required
|
||||
|
|
||||
note: inside `std::ptr::read::<u32>`
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `ptr::const_ptr::<impl *const u32>::read`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { read(self) }
|
||||
| ^^^^^^^^^^
|
||||
note: inside `INNER`
|
||||
--> $DIR/detect-extra-ub.rs:38:9
|
||||
|
|
||||
|
@ -1,21 +1,14 @@
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unable to copy parts of a pointer from memory at ALLOC
|
||||
= note: unable to copy parts of a pointer from memory at ALLOC
|
||||
|
|
||||
= 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
|
||||
note: inside `std::ptr::read::<u8>`
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | copy_nonoverlapping(src, tmp.as_mut_ptr(), 1);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::read`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { read(self) }
|
||||
| ^^^^^^^^^^
|
||||
note: inside `C`
|
||||
--> $DIR/issue-miri-1910.rs:8:5
|
||||
|
|
||||
|
@ -1,19 +1,12 @@
|
||||
error[E0080]: evaluation of `<std::string::String as Bar<std::vec::Vec<u32>, std::string::String>>::F` failed
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ calling non-const function `<Vec<u32> as Drop>::drop`
|
||||
= note: calling non-const function `<Vec<u32> as Drop>::drop`
|
||||
|
|
||||
note: inside `std::ptr::drop_in_place::<Vec<u32>> - shim(Some(Vec<u32>))`
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `std::ptr::drop_in_place::<(Vec<u32>, u32)> - shim(Some((Vec<u32>, u32)))`
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `<String as Bar<Vec<u32>, String>>::F`
|
||||
--> $DIR/assoc_const.rs:12:31
|
||||
|
|
||||
|
@ -1,14 +1,10 @@
|
||||
error[E0080]: could not evaluate static initializer
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ calling non-const function `<Vec<i32> as Drop>::drop`
|
||||
= note: calling non-const function `<Vec<i32> as Drop>::drop`
|
||||
|
|
||||
note: inside `std::ptr::drop_in_place::<Vec<i32>> - shim(Some(Vec<i32>))`
|
||||
--> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `TEST_BAD`
|
||||
--> $DIR/drop.rs:17:1
|
||||
|
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ui-testing=no
|
||||
// compile-flags: -Z ui-testing=no
|
||||
// normalize-stderr-test "alloc[0-9]+" -> "ALLOC_ID"
|
||||
|
||||
#![feature(const_swap)]
|
||||
|
@ -7,14 +7,10 @@ LL | let offset = unsafe { ptr_offset_from(field_ptr, base_ptr) };
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ptr_offset_from` called on pointers into different allocations
|
||||
= note: `ptr_offset_from` called on pointers into different allocations
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset_from`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `NOT_PTR`
|
||||
--> $DIR/offset_from_ub.rs:24:14
|
||||
|
|
||||
@ -90,14 +86,10 @@ LL | unsafe { ptr_offset_from_unsigned(ptr2, ptr1) }
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds offset_from: null pointer is a dangling pointer (it has no provenance)
|
||||
= note: out-of-bounds offset_from: null pointer is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset_from`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `OFFSET_VERY_FAR1`
|
||||
--> $DIR/offset_from_ub.rs:115:14
|
||||
|
|
||||
@ -107,14 +99,10 @@ LL | unsafe { ptr2.offset_from(ptr1) }
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds offset_from: null pointer is a dangling pointer (it has no provenance)
|
||||
= note: out-of-bounds offset_from: null pointer is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset_from`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::ptr_offset_from(self, origin) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `OFFSET_VERY_FAR2`
|
||||
--> $DIR/offset_from_ub.rs:121:14
|
||||
|
|
||||
|
@ -1,14 +1,10 @@
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ overflowing in-bounds pointer arithmetic
|
||||
= note: overflowing in-bounds pointer arithmetic
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `BEFORE_START`
|
||||
--> $DIR/offset_ub.rs:7:46
|
||||
|
|
||||
@ -18,14 +14,10 @@ LL | pub const BEFORE_START: *const u8 = unsafe { (&0u8 as *const u8).offset(-1)
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: allocN has size 1, so pointer to 2 bytes starting at offset 0 is out-of-bounds
|
||||
= note: out-of-bounds pointer arithmetic: allocN has size 1, so pointer to 2 bytes starting at offset 0 is out-of-bounds
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `AFTER_END`
|
||||
--> $DIR/offset_ub.rs:8:43
|
||||
|
|
||||
@ -35,14 +27,10 @@ LL | pub const AFTER_END: *const u8 = unsafe { (&0u8 as *const u8).offset(2) };
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: allocN has size 100, so pointer to 101 bytes starting at offset 0 is out-of-bounds
|
||||
= note: out-of-bounds pointer arithmetic: allocN has size 100, so pointer to 101 bytes starting at offset 0 is out-of-bounds
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `AFTER_ARRAY`
|
||||
--> $DIR/offset_ub.rs:9:45
|
||||
|
|
||||
@ -52,14 +40,10 @@ LL | pub const AFTER_ARRAY: *const u8 = unsafe { [0u8; 100].as_ptr().offset(101)
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ overflowing in-bounds pointer arithmetic
|
||||
= note: overflowing in-bounds pointer arithmetic
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u16>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `OVERFLOW`
|
||||
--> $DIR/offset_ub.rs:11:43
|
||||
|
|
||||
@ -69,14 +53,10 @@ LL | pub const OVERFLOW: *const u16 = unsafe { [0u16; 1].as_ptr().offset(isize::
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ overflowing in-bounds pointer arithmetic
|
||||
= note: overflowing in-bounds pointer arithmetic
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u16>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `UNDERFLOW`
|
||||
--> $DIR/offset_ub.rs:12:44
|
||||
|
|
||||
@ -86,14 +66,10 @@ LL | pub const UNDERFLOW: *const u16 = unsafe { [0u16; 1].as_ptr().offset(isize:
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ overflowing in-bounds pointer arithmetic
|
||||
= note: overflowing in-bounds pointer arithmetic
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `OVERFLOW_ADDRESS_SPACE`
|
||||
--> $DIR/offset_ub.rs:13:56
|
||||
|
|
||||
@ -103,14 +79,10 @@ LL | pub const OVERFLOW_ADDRESS_SPACE: *const u8 = unsafe { (usize::MAX as *cons
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ overflowing in-bounds pointer arithmetic
|
||||
= note: overflowing in-bounds pointer arithmetic
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `UNDERFLOW_ADDRESS_SPACE`
|
||||
--> $DIR/offset_ub.rs:14:57
|
||||
|
|
||||
@ -120,14 +92,10 @@ LL | pub const UNDERFLOW_ADDRESS_SPACE: *const u8 = unsafe { (1 as *const u8).of
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: allocN has size 1, so pointer to 2 bytes starting at offset -4 is out-of-bounds
|
||||
= note: out-of-bounds pointer arithmetic: allocN has size 1, so pointer to 2 bytes starting at offset -4 is out-of-bounds
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `NEGATIVE_OFFSET`
|
||||
--> $DIR/offset_ub.rs:15:49
|
||||
|
|
||||
@ -137,14 +105,10 @@ LL | pub const NEGATIVE_OFFSET: *const u8 = unsafe { [0u8; 1].as_ptr().wrapping_
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: allocN has size 0, so pointer to 1 byte starting at offset 0 is out-of-bounds
|
||||
= note: out-of-bounds pointer arithmetic: allocN has size 0, so pointer to 1 byte starting at offset 0 is out-of-bounds
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `ZERO_SIZED_ALLOC`
|
||||
--> $DIR/offset_ub.rs:17:50
|
||||
|
|
||||
@ -154,14 +118,10 @@ LL | pub const ZERO_SIZED_ALLOC: *const u8 = unsafe { [0u8; 0].as_ptr().offset(1
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/mut_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) as *mut T }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: 0x1[noalloc] is a dangling pointer (it has no provenance)
|
||||
= note: out-of-bounds pointer arithmetic: 0x1[noalloc] is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `ptr::mut_ptr::<impl *mut u8>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/mut_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) as *mut T }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `DANGLING`
|
||||
--> $DIR/offset_ub.rs:18:42
|
||||
|
|
||||
@ -171,14 +131,10 @@ LL | pub const DANGLING: *const u8 = unsafe { ptr::NonNull::<u8>::dangling().as_
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: null pointer is a dangling pointer (it has no provenance)
|
||||
= note: out-of-bounds pointer arithmetic: null pointer is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `NULL_OFFSET_ZERO`
|
||||
--> $DIR/offset_ub.rs:21:50
|
||||
|
|
||||
@ -188,14 +144,10 @@ LL | pub const NULL_OFFSET_ZERO: *const u8 = unsafe { ptr::null::<u8>().offset(0
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: 0x7f..f[noalloc] is a dangling pointer (it has no provenance)
|
||||
= note: out-of-bounds pointer arithmetic: 0x7f..f[noalloc] is a dangling pointer (it has no provenance)
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const u8>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `UNDERFLOW_ABS`
|
||||
--> $DIR/offset_ub.rs:24:47
|
||||
|
|
||||
|
@ -1,14 +1,10 @@
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ out-of-bounds pointer arithmetic: alloc3 has size $WORD, so pointer to $TWO_WORDS bytes starting at offset 0 is out-of-bounds
|
||||
= note: out-of-bounds pointer arithmetic: alloc3 has size $WORD, so pointer to $TWO_WORDS bytes starting at offset 0 is out-of-bounds
|
||||
|
|
||||
note: inside `ptr::const_ptr::<impl *const usize>::offset`
|
||||
--> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
|
||||
|
|
||||
LL | unsafe { intrinsics::offset(self, count) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: inside `_`
|
||||
--> $DIR/ptr_comparisons.rs:50:34
|
||||
|
|
||||
|
@ -9,9 +9,6 @@ LL | x: Error
|
||||
|
|
||||
note: required by a bound in `AssertParamIsEq`
|
||||
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||
|
|
||||
LL | pub struct AssertParamIsEq<T: Eq + ?Sized> {
|
||||
| ^^ required by this bound in `AssertParamIsEq`
|
||||
= note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider annotating `Error` with `#[derive(Eq)]`
|
||||
|
|
||||
|
@ -9,9 +9,6 @@ LL | Error
|
||||
|
|
||||
note: required by a bound in `AssertParamIsEq`
|
||||
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||
|
|
||||
LL | pub struct AssertParamIsEq<T: Eq + ?Sized> {
|
||||
| ^^ required by this bound in `AssertParamIsEq`
|
||||
= note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider annotating `Error` with `#[derive(Eq)]`
|
||||
|
|
||||
|
@ -9,9 +9,6 @@ LL | x: Error
|
||||
|
|
||||
note: required by a bound in `AssertParamIsEq`
|
||||
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||
|
|
||||
LL | pub struct AssertParamIsEq<T: Eq + ?Sized> {
|
||||
| ^^ required by this bound in `AssertParamIsEq`
|
||||
= note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider annotating `Error` with `#[derive(Eq)]`
|
||||
|
|
||||
|
@ -9,9 +9,6 @@ LL | Error
|
||||
|
|
||||
note: required by a bound in `AssertParamIsEq`
|
||||
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||
|
|
||||
LL | pub struct AssertParamIsEq<T: Eq + ?Sized> {
|
||||
| ^^ required by this bound in `AssertParamIsEq`
|
||||
= note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider annotating `Error` with `#[derive(Eq)]`
|
||||
|
|
||||
|
@ -3,22 +3,18 @@ error: cannot find derive macro `Eqr` in this scope
|
||||
|
|
||||
LL | #[derive(Eqr)]
|
||||
| ^^^ help: a derive macro with a similar name exists: `Eq`
|
||||
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||
|
|
||||
LL | pub macro Eq($item:item) {
|
||||
| ------------ similarly named derive macro `Eq` defined here
|
||||
= note: similarly named derive macro `Eq` defined here
|
||||
|
||||
error: cannot find derive macro `Eqr` in this scope
|
||||
--> $DIR/deriving-meta-unknown-trait.rs:1:10
|
||||
|
|
||||
LL | #[derive(Eqr)]
|
||||
| ^^^ help: a derive macro with a similar name exists: `Eq`
|
||||
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||
|
|
||||
LL | pub macro Eq($item:item) {
|
||||
| ------------ similarly named derive macro `Eq` defined here
|
||||
= note: similarly named derive macro `Eq` defined here
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -20,9 +20,6 @@ LL | Float(Option<f64>),
|
||||
= note: required for `Option<f64>` to implement `Eq`
|
||||
note: required by a bound in `AssertParamIsEq`
|
||||
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||
|
|
||||
LL | pub struct AssertParamIsEq<T: Eq + ?Sized> {
|
||||
| ^^ required by this bound in `AssertParamIsEq`
|
||||
= note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
@ -49,11 +49,8 @@ note: an implementation of `AddAssign<_>` might be missing for `S`
|
||||
|
|
||||
LL | struct S { x: u8, y: u8 }
|
||||
| ^^^^^^^^ must implement `AddAssign<_>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `AddAssign` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
|
||||
|
|
||||
LL | pub trait AddAssign<Rhs = Self> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0067]: invalid left-hand side of assignment
|
||||
--> $DIR/note-unsupported.rs:17:22
|
||||
|
@ -9,9 +9,6 @@ LL | let _x: Box<str> = Box::new(*"hello world");
|
||||
= help: the trait `Sized` is not implemented for `str`
|
||||
note: required by a bound in `Box::<T>::new`
|
||||
--> $SRC_DIR/alloc/src/boxed.rs:LL:COL
|
||||
|
|
||||
LL | impl<T> Box<T> {
|
||||
| ^ required by this bound in `Box::<T>::new`
|
||||
|
||||
error[E0277]: the size for values of type `[isize]` cannot be known at compilation time
|
||||
--> $DIR/dst-rvalue.rs:8:37
|
||||
@ -24,9 +21,6 @@ LL | let _x: Box<[isize]> = Box::new(*array);
|
||||
= help: the trait `Sized` is not implemented for `[isize]`
|
||||
note: required by a bound in `Box::<T>::new`
|
||||
--> $SRC_DIR/alloc/src/boxed.rs:LL:COL
|
||||
|
|
||||
LL | impl<T> Box<T> {
|
||||
| ^ required by this bound in `Box::<T>::new`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -6,15 +6,12 @@ LL | match x { }
|
||||
|
|
||||
note: `Option<i32>` defined here
|
||||
--> $SRC_DIR/core/src/option.rs:LL:COL
|
||||
::: $SRC_DIR/core/src/option.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Option<T> {
|
||||
| ------------------
|
||||
...
|
||||
LL | None,
|
||||
| ^^^^ not covered
|
||||
...
|
||||
LL | Some(#[stable(feature = "rust1", since = "1.0.0")] T),
|
||||
| ^^^^ not covered
|
||||
= note: not covered
|
||||
::: $SRC_DIR/core/src/option.rs:LL:COL
|
||||
|
|
||||
= note: not covered
|
||||
= note: the matched value is of type `Option<i32>`
|
||||
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
|
||||
|
|
||||
|
@ -8,12 +8,9 @@ LL | let Some(y) = x;
|
||||
= note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
|
||||
note: `Option<i32>` defined here
|
||||
--> $SRC_DIR/core/src/option.rs:LL:COL
|
||||
::: $SRC_DIR/core/src/option.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Option<T> {
|
||||
| ------------------
|
||||
...
|
||||
LL | None,
|
||||
| ^^^^ not covered
|
||||
= note: not covered
|
||||
= note: the matched value is of type `Option<i32>`
|
||||
help: you might want to use `if let` to ignore the variant that isn't matched
|
||||
|
|
||||
|
@ -6,9 +6,6 @@ LL | fn foo<F: Fn<i32>>(f: F) -> F::Output { f(3) }
|
||||
|
|
||||
note: required by a bound in `Fn`
|
||||
--> $SRC_DIR/core/src/ops/function.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Fn<Args: Tuple>: FnMut<Args> {
|
||||
| ^^^^^ required by this bound in `Fn`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -6,12 +6,9 @@ LL | for Some(x) in xs {}
|
||||
|
|
||||
note: `Option<i32>` defined here
|
||||
--> $SRC_DIR/core/src/option.rs:LL:COL
|
||||
::: $SRC_DIR/core/src/option.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Option<T> {
|
||||
| ------------------
|
||||
...
|
||||
LL | None,
|
||||
| ^^^^ not covered
|
||||
= note: not covered
|
||||
= note: the matched value is of type `Option<i32>`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
@ -7,7 +7,7 @@ LL | x.borrow().nothing_is_true();
|
||||
| | value moved due to this method call
|
||||
| move occurs because value has type `TheDarkKnight`, which does not implement the `Copy` trait
|
||||
|
|
||||
note: this function takes ownership of the receiver `self`, which moves value
|
||||
note: `TheDarkKnight::nothing_is_true` takes ownership of the receiver `self`, which moves value
|
||||
--> $DIR/E0507.rs:6:24
|
||||
|
|
||||
LL | fn nothing_is_true(self) {}
|
||||
|
@ -41,11 +41,8 @@ note: an implementation of `Not` might be missing for `Question`
|
||||
|
|
||||
LL | enum Question {
|
||||
| ^^^^^^^^^^^^^ must implement `Not`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Not` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Not {
|
||||
| ^^^^^^^^^^^^^
|
||||
|
||||
error[E0604]: only `u8` can be cast as `char`, not `u32`
|
||||
--> $DIR/error-festival.rs:25:5
|
||||
|
@ -22,9 +22,6 @@ LL | | });
|
||||
= help: the trait `FnOnce<({integer},)>` is not implemented for `Option<_>`
|
||||
note: required by a bound in `Option::<T>::and_then`
|
||||
--> $SRC_DIR/core/src/option.rs:LL:COL
|
||||
|
|
||||
LL | F: ~const FnOnce(T) -> Option<U>,
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Option::<T>::and_then`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -8,12 +8,9 @@ LL | let Ok(_x) = foo();
|
||||
= note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
|
||||
note: `Result<u32, !>` defined here
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
::: $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Result<T, E> {
|
||||
| ---------------------
|
||||
...
|
||||
LL | Err(#[stable(feature = "rust1", since = "1.0.0")] E),
|
||||
| ^^^ not covered
|
||||
= note: not covered
|
||||
= note: the matched value is of type `Result<u32, !>`
|
||||
help: you might want to use `if let` to ignore the variant that isn't matched
|
||||
|
|
||||
|
@ -309,9 +309,6 @@ LL | println!("{} {:.*} {}", 1, 3.2, 4);
|
||||
found reference `&{float}`
|
||||
note: associated function defined here
|
||||
--> $SRC_DIR/core/src/fmt/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub fn from_usize(x: &usize) -> ArgumentV1<'_> {
|
||||
| ^^^^^^^^^^
|
||||
= note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0308]: mismatched types
|
||||
@ -327,9 +324,6 @@ LL | println!("{} {:07$.*} {}", 1, 3.2, 4);
|
||||
found reference `&{float}`
|
||||
note: associated function defined here
|
||||
--> $SRC_DIR/core/src/fmt/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub fn from_usize(x: &usize) -> ArgumentV1<'_> {
|
||||
| ^^^^^^^^^^
|
||||
= note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 38 previous errors
|
||||
|
@ -17,9 +17,6 @@ LL | format!("{:X}", "3");
|
||||
= note: required for `&str` to implement `UpperHex`
|
||||
note: required by a bound in `ArgumentV1::<'a>::new_upper_hex`
|
||||
--> $SRC_DIR/core/src/fmt/mod.rs:LL:COL
|
||||
|
|
||||
LL | arg_new!(new_upper_hex, UpperHex);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `ArgumentV1::<'a>::new_upper_hex`
|
||||
= note: this error originates in the macro `$crate::__export::format_args` which comes from the expansion of the macro `arg_new` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
@ -6,9 +6,6 @@ LL | Pin::new(&mut b).resume();
|
||||
|
|
||||
note: associated function defined here
|
||||
--> $SRC_DIR/core/src/ops/generator.rs:LL:COL
|
||||
|
|
||||
LL | fn resume(self: Pin<&mut Self>, arg: R) -> GeneratorState<Self::Yield, Self::Return>;
|
||||
| ^^^^^^
|
||||
help: provide the argument
|
||||
|
|
||||
LL | Pin::new(&mut b).resume(());
|
||||
|
@ -20,9 +20,6 @@ LL | Pin::new(&mut gen).resume(());
|
||||
= help: the trait `Sized` is not implemented for `str`
|
||||
note: required by a bound in `GeneratorState`
|
||||
--> $SRC_DIR/core/src/ops/generator.rs:LL:COL
|
||||
|
|
||||
LL | pub enum GeneratorState<Y, R> {
|
||||
| ^ required by this bound in `GeneratorState`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -889,11 +889,6 @@ error[E0107]: missing generics for struct `HashMap`
|
||||
LL | type A = HashMap;
|
||||
| ^^^^^^^ expected at least 2 generic arguments
|
||||
|
|
||||
note: struct defined here, with at least 2 generic parameters: `K`, `V`
|
||||
--> $SRC_DIR/std/src/collections/hash/map.rs:LL:COL
|
||||
|
|
||||
LL | pub struct HashMap<K, V, S = RandomState> {
|
||||
| ^^^^^^^ - -
|
||||
help: add missing generic arguments
|
||||
|
|
||||
LL | type A = HashMap<K, V>;
|
||||
@ -907,11 +902,6 @@ LL | type B = HashMap<String>;
|
||||
| |
|
||||
| expected at least 2 generic arguments
|
||||
|
|
||||
note: struct defined here, with at least 2 generic parameters: `K`, `V`
|
||||
--> $SRC_DIR/std/src/collections/hash/map.rs:LL:COL
|
||||
|
|
||||
LL | pub struct HashMap<K, V, S = RandomState> {
|
||||
| ^^^^^^^ - -
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | type B = HashMap<String, V>;
|
||||
@ -924,12 +914,6 @@ LL | type C = HashMap<'static>;
|
||||
| ^^^^^^^--------- help: remove these generics
|
||||
| |
|
||||
| expected 0 lifetime arguments
|
||||
|
|
||||
note: struct defined here, with 0 lifetime parameters
|
||||
--> $SRC_DIR/std/src/collections/hash/map.rs:LL:COL
|
||||
|
|
||||
LL | pub struct HashMap<K, V, S = RandomState> {
|
||||
| ^^^^^^^
|
||||
|
||||
error[E0107]: this struct takes at least 2 generic arguments but 0 generic arguments were supplied
|
||||
--> $DIR/wrong-number-of-args.rs:318:18
|
||||
@ -937,11 +921,6 @@ error[E0107]: this struct takes at least 2 generic arguments but 0 generic argum
|
||||
LL | type C = HashMap<'static>;
|
||||
| ^^^^^^^ expected at least 2 generic arguments
|
||||
|
|
||||
note: struct defined here, with at least 2 generic parameters: `K`, `V`
|
||||
--> $SRC_DIR/std/src/collections/hash/map.rs:LL:COL
|
||||
|
|
||||
LL | pub struct HashMap<K, V, S = RandomState> {
|
||||
| ^^^^^^^ - -
|
||||
help: add missing generic arguments
|
||||
|
|
||||
LL | type C = HashMap<'static, K, V>;
|
||||
@ -954,12 +933,6 @@ LL | type D = HashMap<usize, String, char, f64>;
|
||||
| ^^^^^^^ --- help: remove this generic argument
|
||||
| |
|
||||
| expected at most 3 generic arguments
|
||||
|
|
||||
note: struct defined here, with at most 3 generic parameters: `K`, `V`, `S`
|
||||
--> $SRC_DIR/std/src/collections/hash/map.rs:LL:COL
|
||||
|
|
||||
LL | pub struct HashMap<K, V, S = RandomState> {
|
||||
| ^^^^^^^ - - ---------------
|
||||
|
||||
error[E0107]: this struct takes at least 2 generic arguments but 0 generic arguments were supplied
|
||||
--> $DIR/wrong-number-of-args.rs:328:18
|
||||
@ -967,11 +940,6 @@ error[E0107]: this struct takes at least 2 generic arguments but 0 generic argum
|
||||
LL | type E = HashMap<>;
|
||||
| ^^^^^^^ expected at least 2 generic arguments
|
||||
|
|
||||
note: struct defined here, with at least 2 generic parameters: `K`, `V`
|
||||
--> $SRC_DIR/std/src/collections/hash/map.rs:LL:COL
|
||||
|
|
||||
LL | pub struct HashMap<K, V, S = RandomState> {
|
||||
| ^^^^^^^ - -
|
||||
help: add missing generic arguments
|
||||
|
|
||||
LL | type E = HashMap<K, V>;
|
||||
@ -983,11 +951,6 @@ error[E0107]: missing generics for enum `Result`
|
||||
LL | type A = Result;
|
||||
| ^^^^^^ expected 2 generic arguments
|
||||
|
|
||||
note: enum defined here, with 2 generic parameters: `T`, `E`
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Result<T, E> {
|
||||
| ^^^^^^ - -
|
||||
help: add missing generic arguments
|
||||
|
|
||||
LL | type A = Result<T, E>;
|
||||
@ -1001,11 +964,6 @@ LL | type B = Result<String>;
|
||||
| |
|
||||
| expected 2 generic arguments
|
||||
|
|
||||
note: enum defined here, with 2 generic parameters: `T`, `E`
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Result<T, E> {
|
||||
| ^^^^^^ - -
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | type B = Result<String, E>;
|
||||
@ -1018,12 +976,6 @@ LL | type C = Result<'static>;
|
||||
| ^^^^^^--------- help: remove these generics
|
||||
| |
|
||||
| expected 0 lifetime arguments
|
||||
|
|
||||
note: enum defined here, with 0 lifetime parameters
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Result<T, E> {
|
||||
| ^^^^^^
|
||||
|
||||
error[E0107]: this enum takes 2 generic arguments but 0 generic arguments were supplied
|
||||
--> $DIR/wrong-number-of-args.rs:342:18
|
||||
@ -1031,11 +983,6 @@ error[E0107]: this enum takes 2 generic arguments but 0 generic arguments were s
|
||||
LL | type C = Result<'static>;
|
||||
| ^^^^^^ expected 2 generic arguments
|
||||
|
|
||||
note: enum defined here, with 2 generic parameters: `T`, `E`
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Result<T, E> {
|
||||
| ^^^^^^ - -
|
||||
help: add missing generic arguments
|
||||
|
|
||||
LL | type C = Result<'static, T, E>;
|
||||
@ -1048,12 +995,6 @@ LL | type D = Result<usize, String, char>;
|
||||
| ^^^^^^ ---- help: remove this generic argument
|
||||
| |
|
||||
| expected 2 generic arguments
|
||||
|
|
||||
note: enum defined here, with 2 generic parameters: `T`, `E`
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Result<T, E> {
|
||||
| ^^^^^^ - -
|
||||
|
||||
error[E0107]: this enum takes 2 generic arguments but 0 generic arguments were supplied
|
||||
--> $DIR/wrong-number-of-args.rs:352:18
|
||||
@ -1061,11 +1002,6 @@ error[E0107]: this enum takes 2 generic arguments but 0 generic arguments were s
|
||||
LL | type E = Result<>;
|
||||
| ^^^^^^ expected 2 generic arguments
|
||||
|
|
||||
note: enum defined here, with 2 generic parameters: `T`, `E`
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Result<T, E> {
|
||||
| ^^^^^^ - -
|
||||
help: add missing generic arguments
|
||||
|
|
||||
LL | type E = Result<T, E>;
|
||||
|
@ -46,11 +46,9 @@ error[E0643]: method `hash` has incompatible signature for trait
|
||||
|
|
||||
LL | fn hash(&self, hasher: &mut impl Hasher) {}
|
||||
| ^^^^^^^^^^^ expected generic parameter, found `impl Trait`
|
||||
--> $SRC_DIR/core/src/hash/mod.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/core/src/hash/mod.rs:LL:COL
|
||||
|
|
||||
LL | fn hash<H: Hasher>(&self, state: &mut H);
|
||||
| - declaration in trait here
|
||||
= note: declaration in trait here
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
@ -7,9 +7,6 @@ LL | fn nya() -> impl Wf<Vec<[u8]>>;
|
||||
= help: the trait `Sized` is not implemented for `[u8]`
|
||||
note: required by a bound in `Vec`
|
||||
--> $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
|
||||
| ^ required by this bound in `Vec`
|
||||
|
||||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
|
||||
--> $DIR/wf-bounds.rs:12:23
|
||||
|
@ -25,7 +25,7 @@ LL | pub struct SafeImpl<T: ?Sized, A: Raw<T>>(PhantomData<(A, T)>);
|
||||
|
|
||||
= note: the following trait bounds were not satisfied:
|
||||
`RawImpl<()>: Raw<()>`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Raw` must be implemented
|
||||
--> $DIR/issue-62742.rs:12:1
|
||||
|
|
||||
LL | pub trait Raw<T: ?Sized> {
|
||||
|
@ -4,11 +4,6 @@ error[E0107]: missing generics for struct `Vec`
|
||||
LL | fn f<T>(data: &[T]) -> impl Iterator<Item = Vec> {
|
||||
| ^^^ expected at least 1 generic argument
|
||||
|
|
||||
note: struct defined here, with at least 1 generic parameter: `T`
|
||||
--> $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
|
||||
| ^^^ -
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | fn f<T>(data: &[T]) -> impl Iterator<Item = Vec<T>> {
|
||||
|
@ -24,11 +24,8 @@ LL | extern crate std as Vec;
|
||||
...
|
||||
LL | define_vec!();
|
||||
| ------------- in this macro invocation
|
||||
note: `Vec` could also refer to the struct defined here
|
||||
note: `Vec` could also refer to a struct from prelude
|
||||
--> $SRC_DIR/std/src/prelude/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub use super::v1::*;
|
||||
| ^^^^^^^^^^^^
|
||||
= note: this error originates in the macro `define_vec` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
@ -12,9 +12,6 @@ LL | .get(&"key".into())
|
||||
where T: ?Sized;
|
||||
note: required by a bound in `HashMap::<K, V, S>::get`
|
||||
--> $SRC_DIR/std/src/collections/hash/map.rs:LL:COL
|
||||
|
|
||||
LL | K: Borrow<Q>,
|
||||
| ^^^^^^^^^ required by this bound in `HashMap::<K, V, S>::get`
|
||||
help: consider specifying the generic argument
|
||||
|
|
||||
LL | .get::<Q>(&"key".into())
|
||||
|
@ -16,9 +16,6 @@ LL | catch_unwind(|| { x.set(23); });
|
||||
| ^^
|
||||
note: required by a bound in `catch_unwind`
|
||||
--> $SRC_DIR/std/src/panic.rs:LL:COL
|
||||
|
|
||||
LL | pub fn catch_unwind<F: FnOnce() -> R + UnwindSafe, R>(f: F) -> Result<R> {
|
||||
| ^^^^^^^^^^ required by this bound in `catch_unwind`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -37,9 +37,6 @@ LL | const_eval_select((), 42, 0xDEADBEEF);
|
||||
= note: wrap the `{integer}` in a closure with no arguments: `|| { /* code */ }`
|
||||
note: required by a bound in `const_eval_select`
|
||||
--> $SRC_DIR/core/src/intrinsics.rs:LL:COL
|
||||
|
|
||||
LL | F: FnOnce<ARG, Output = RET>;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
|
||||
|
||||
error: this argument must be a function item
|
||||
--> $DIR/const-eval-select-bad.rs:10:31
|
||||
@ -62,9 +59,6 @@ LL | const_eval_select((), 42, 0xDEADBEEF);
|
||||
= note: wrap the `{integer}` in a closure with no arguments: `|| { /* code */ }`
|
||||
note: required by a bound in `const_eval_select`
|
||||
--> $SRC_DIR/core/src/intrinsics.rs:LL:COL
|
||||
|
|
||||
LL | G: FnOnce<ARG, Output = RET>,
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
|
||||
|
||||
error[E0271]: expected `fn(i32) -> bool {bar}` to be a fn item that returns `i32`, but it returns `bool`
|
||||
--> $DIR/const-eval-select-bad.rs:32:34
|
||||
@ -76,9 +70,6 @@ LL | const_eval_select((1,), foo, bar);
|
||||
|
|
||||
note: required by a bound in `const_eval_select`
|
||||
--> $SRC_DIR/core/src/intrinsics.rs:LL:COL
|
||||
|
|
||||
LL | G: FnOnce<ARG, Output = RET>,
|
||||
| ^^^^^^^^^^^^ required by this bound in `const_eval_select`
|
||||
|
||||
error[E0631]: type mismatch in function arguments
|
||||
--> $DIR/const-eval-select-bad.rs:37:32
|
||||
@ -95,9 +86,6 @@ LL | const_eval_select((true,), foo, baz);
|
||||
found function signature `fn(i32) -> _`
|
||||
note: required by a bound in `const_eval_select`
|
||||
--> $SRC_DIR/core/src/intrinsics.rs:LL:COL
|
||||
|
|
||||
LL | F: FnOnce<ARG, Output = RET>;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
|
||||
|
||||
error: this argument must be a `const fn`
|
||||
--> $DIR/const-eval-select-bad.rs:42:29
|
||||
|
@ -9,11 +9,8 @@ note: an implementation of `Not` might be missing for `BytePos`
|
||||
|
|
||||
LL | pub struct BytePos(pub u32);
|
||||
| ^^^^^^^^^^^^^^^^^^ must implement `Not`
|
||||
note: the following trait must be implemented
|
||||
note: the trait `Not` must be implemented
|
||||
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Not {
|
||||
| ^^^^^^^^^^^^^
|
||||
= note: this error originates in the macro `assert` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
@ -4,13 +4,6 @@ error[E0107]: missing generics for struct `Box`
|
||||
LL | fn fn1(0: Box) {}
|
||||
| ^^^ expected at least 1 generic argument
|
||||
|
|
||||
note: struct defined here, with at least 1 generic parameter: `T`
|
||||
--> $SRC_DIR/alloc/src/boxed.rs:LL:COL
|
||||
|
|
||||
LL | pub struct Box<
|
||||
| ^^^
|
||||
LL | T: ?Sized,
|
||||
| -
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | fn fn1(0: Box<T>) {}
|
||||
|
@ -5,11 +5,6 @@ LL | panic!(std::default::Default::default());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type of the type parameter `M` declared on the function `begin_panic`
|
||||
|
|
||||
= note: this error originates in the macro `$crate::panic::panic_2015` which comes from the expansion of the macro `panic` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
help: consider specifying the generic argument
|
||||
--> $SRC_DIR/std/src/panic.rs:LL:COL
|
||||
|
|
||||
LL | $crate::rt::begin_panic::<M>($msg)
|
||||
| +++++
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -3,11 +3,9 @@ error[E0573]: expected type, found variant `NoResult`
|
||||
|
|
||||
LL | fn new() -> NoResult<MyEnum, String> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Result<T, E> {
|
||||
| --------------------- similarly named enum `Result` defined here
|
||||
= note: similarly named enum `Result` defined here
|
||||
|
|
||||
help: try using the variant's enum
|
||||
|
|
||||
@ -57,11 +55,9 @@ error[E0573]: expected type, found variant `NoResult`
|
||||
|
|
||||
LL | fn newer() -> NoResult<foo::MyEnum, String> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
--> $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/core/src/result.rs:LL:COL
|
||||
|
|
||||
LL | pub enum Result<T, E> {
|
||||
| --------------------- similarly named enum `Result` defined here
|
||||
= note: similarly named enum `Result` defined here
|
||||
|
|
||||
help: try using the variant's enum
|
||||
|
|
||||
|
@ -9,9 +9,6 @@ LL | (|| Box::new(*(&[0][..])))();
|
||||
= help: the trait `Sized` is not implemented for `[{integer}]`
|
||||
note: required by a bound in `Box::<T>::new`
|
||||
--> $SRC_DIR/alloc/src/boxed.rs:LL:COL
|
||||
|
|
||||
LL | impl<T> Box<T> {
|
||||
| ^ required by this bound in `Box::<T>::new`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -5,12 +5,6 @@ LL | x: Box<'a, isize>
|
||||
| ^^^ -- help: remove this lifetime argument
|
||||
| |
|
||||
| expected 0 lifetime arguments
|
||||
|
|
||||
note: struct defined here, with 0 lifetime parameters
|
||||
--> $SRC_DIR/alloc/src/boxed.rs:LL:COL
|
||||
|
|
||||
LL | pub struct Box<
|
||||
| ^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -6,9 +6,6 @@ LL | b.sort();
|
||||
|
|
||||
note: required by a bound in `slice::<impl [T]>::sort`
|
||||
--> $SRC_DIR/alloc/src/slice.rs:LL:COL
|
||||
|
|
||||
LL | T: Ord,
|
||||
| ^^^ required by this bound in `slice::<impl [T]>::sort`
|
||||
help: consider annotating `X` with `#[derive(Ord)]`
|
||||
|
|
||||
LL | #[derive(Ord)]
|
||||
|
@ -7,9 +7,6 @@ LL | fn iceman(c: Vec<[i32]>) {}
|
||||
= help: the trait `Sized` is not implemented for `[i32]`
|
||||
note: required by a bound in `Vec`
|
||||
--> $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
|
||||
| ^ required by this bound in `Vec`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -13,11 +13,6 @@ error[E0107]: missing generics for trait `Fn`
|
||||
LL | println!("{:?}",(vfnfer[0] as dyn Fn)(3));
|
||||
| ^^ expected 1 generic argument
|
||||
|
|
||||
note: trait defined here, with 1 generic parameter: `Args`
|
||||
--> $SRC_DIR/core/src/ops/function.rs:LL:COL
|
||||
|
|
||||
LL | pub trait Fn<Args: Tuple>: FnMut<Args> {
|
||||
| ^^ ----
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | println!("{:?}",(vfnfer[0] as dyn Fn<Args>)(3));
|
||||
|
@ -9,9 +9,6 @@ LL | "".chars().fold(|_, _| (), ());
|
||||
= help: the trait `FnMut<(_, char)>` is not implemented for `()`
|
||||
note: required by a bound in `fold`
|
||||
--> $SRC_DIR/core/src/iter/traits/iterator.rs:LL:COL
|
||||
|
|
||||
LL | F: FnMut(B, Self::Item) -> B,
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Iterator::fold`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -3,11 +3,9 @@ error[E0530]: match bindings cannot shadow unit variants
|
||||
|
|
||||
LL | None @ _ => {}
|
||||
| ^^^^ cannot be named the same as a unit variant
|
||||
--> $SRC_DIR/std/src/prelude/mod.rs:LL:COL
|
||||
|
|
||||
::: $SRC_DIR/std/src/prelude/mod.rs:LL:COL
|
||||
|
|
||||
LL | pub use super::v1::*;
|
||||
| ------------ the unit variant `None` is defined here
|
||||
= note: the unit variant `None` is defined here
|
||||
|
||||
error[E0530]: match bindings cannot shadow constants
|
||||
--> $DIR/issue-27033.rs:7:9
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user