Auto merge of #105348 - JohnTitor:rollup-q9bichr, r=JohnTitor
Rollup of 10 pull requests Successful merges: - #104967 (Fix UI issues with Rustdoc scrape-examples feature.) - #105207 (interpret: clobber return place when calling function) - #105246 (Fix --pass in compiletest) - #105256 (Add small comment explaining what `method-margins.goml` test is about) - #105289 (Fix dupe word typos) - #105309 (rustdoc: remove no-op mobile CSS `.sidebar { margin: 0; padding: 0 }`) - #105313 (Update books) - #105315 (Normalize inherent associated types after substitution) - #105324 (Point at GAT `where` clause when an obligation is unsatisfied) - #105338 (Tweak "the following other types implement trait") Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
c5351ad4dc
52 changed files with 285 additions and 426 deletions
|
@ -240,7 +240,7 @@ impl<'mir, 'tcx: 'mir> CompileTimeEvalContext<'mir, 'tcx> {
|
|||
let align = ImmTy::from_uint(target_align, args[1].layout).into();
|
||||
let fn_abi = self.fn_abi_of_instance(instance, ty::List::empty())?;
|
||||
|
||||
// We replace the entire entire function call with a "tail call".
|
||||
// We replace the entire function call with a "tail call".
|
||||
// Note that this happens before the frame of the original function
|
||||
// is pushed on the stack.
|
||||
self.eval_fn_call(
|
||||
|
|
|
@ -676,6 +676,10 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
return_to_block: StackPopCleanup,
|
||||
) -> InterpResult<'tcx> {
|
||||
trace!("body: {:#?}", body);
|
||||
// Clobber previous return place contents, nobody is supposed to be able to see them any more
|
||||
// This also checks dereferenceable, but not align. We rely on all constructed places being
|
||||
// sufficiently aligned (in particular we rely on `deref_operand` checking alignment).
|
||||
self.write_uninit(return_place)?;
|
||||
// first push a stack frame so we have access to the local substs
|
||||
let pre_frame = Frame {
|
||||
body,
|
||||
|
|
|
@ -1930,6 +1930,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
adt_substs,
|
||||
);
|
||||
let ty = tcx.bound_type_of(assoc_ty_did).subst(tcx, item_substs);
|
||||
let ty = self.normalize_ty(span, ty);
|
||||
return Ok((ty, DefKind::AssocTy, assoc_ty_did));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -406,7 +406,7 @@ impl<V: Clone> Clone for StateData<V> {
|
|||
/// The dataflow state for an instance of [`ValueAnalysis`].
|
||||
///
|
||||
/// Every instance specifies a lattice that represents the possible values of a single tracked
|
||||
/// place. If we call this lattice `V` and set set of tracked places `P`, then a [`State`] is an
|
||||
/// place. If we call this lattice `V` and set of tracked places `P`, then a [`State`] is an
|
||||
/// element of `{unreachable} ∪ (P -> V)`. This again forms a lattice, where the bottom element is
|
||||
/// `unreachable` and the top element is the mapping `p ↦ ⊤`. Note that the mapping `p ↦ ⊥` is not
|
||||
/// the bottom element (because joining an unreachable and any other reachable state yields a
|
||||
|
|
|
@ -1927,7 +1927,7 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
|
|||
// We have a single lifetime => success.
|
||||
elision_lifetime = Elision::Param(res)
|
||||
} else {
|
||||
// We have have multiple lifetimes => error.
|
||||
// We have multiple lifetimes => error.
|
||||
elision_lifetime = Elision::Err;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1810,7 +1810,8 @@ impl<'tcx> InferCtxtPrivExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
|||
&self,
|
||||
trait_pred: ty::PolyTraitPredicate<'tcx>,
|
||||
) -> Vec<ImplCandidate<'tcx>> {
|
||||
self.tcx
|
||||
let mut candidates: Vec<_> = self
|
||||
.tcx
|
||||
.all_impls(trait_pred.def_id())
|
||||
.filter_map(|def_id| {
|
||||
if self.tcx.impl_polarity(def_id) == ty::ImplPolarity::Negative
|
||||
|
@ -1826,7 +1827,14 @@ impl<'tcx> InferCtxtPrivExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
|||
self.fuzzy_match_tys(trait_pred.skip_binder().self_ty(), imp.self_ty(), false)
|
||||
.map(|similarity| ImplCandidate { trait_ref: imp, similarity })
|
||||
})
|
||||
.collect()
|
||||
.collect();
|
||||
if candidates.iter().any(|c| matches!(c.similarity, CandidateSimilarity::Exact { .. })) {
|
||||
// If any of the candidates is a perfect match, we don't want to show all of them.
|
||||
// This is particularly relevant for the case of numeric types (as they all have the
|
||||
// same cathegory).
|
||||
candidates.retain(|c| matches!(c.similarity, CandidateSimilarity::Exact { .. }));
|
||||
}
|
||||
candidates
|
||||
}
|
||||
|
||||
fn report_similar_impl_candidates(
|
||||
|
|
|
@ -2321,11 +2321,10 @@ fn assoc_ty_own_obligations<'cx, 'tcx>(
|
|||
nested: &mut Vec<PredicateObligation<'tcx>>,
|
||||
) {
|
||||
let tcx = selcx.tcx();
|
||||
for predicate in tcx
|
||||
let own = tcx
|
||||
.predicates_of(obligation.predicate.item_def_id)
|
||||
.instantiate_own(tcx, obligation.predicate.substs)
|
||||
.predicates
|
||||
{
|
||||
.instantiate_own(tcx, obligation.predicate.substs);
|
||||
for (predicate, span) in std::iter::zip(own.predicates, own.spans) {
|
||||
let normalized = normalize_with_depth_to(
|
||||
selcx,
|
||||
obligation.param_env,
|
||||
|
@ -2334,9 +2333,30 @@ fn assoc_ty_own_obligations<'cx, 'tcx>(
|
|||
predicate,
|
||||
nested,
|
||||
);
|
||||
|
||||
let nested_cause = if matches!(
|
||||
obligation.cause.code(),
|
||||
super::CompareImplItemObligation { .. }
|
||||
| super::CheckAssociatedTypeBounds { .. }
|
||||
| super::AscribeUserTypeProvePredicate(..)
|
||||
) {
|
||||
obligation.cause.clone()
|
||||
} else if span.is_dummy() {
|
||||
ObligationCause::new(
|
||||
obligation.cause.span,
|
||||
obligation.cause.body_id,
|
||||
super::ItemObligation(obligation.predicate.item_def_id),
|
||||
)
|
||||
} else {
|
||||
ObligationCause::new(
|
||||
obligation.cause.span,
|
||||
obligation.cause.body_id,
|
||||
super::BindingObligation(obligation.predicate.item_def_id, span),
|
||||
)
|
||||
};
|
||||
nested.push(Obligation::with_depth(
|
||||
tcx,
|
||||
obligation.cause.clone(),
|
||||
nested_cause,
|
||||
obligation.recursion_depth + 1,
|
||||
obligation.param_env,
|
||||
normalized,
|
||||
|
|
|
@ -20,7 +20,7 @@ use crate::mem::ManuallyDrop;
|
|||
/// #![feature(iter_repeat_n)]
|
||||
/// use std::iter;
|
||||
///
|
||||
/// // four of the the number four:
|
||||
/// // four of the number four:
|
||||
/// let mut four_fours = iter::repeat_n(4, 4);
|
||||
///
|
||||
/// assert_eq!(Some(4), four_fours.next());
|
||||
|
|
|
@ -1894,7 +1894,7 @@ unsafe fn small_slice_eq(x: &[u8], y: &[u8]) -> bool {
|
|||
// Thus, derefencing both `px` and `py` in the loop below is safe.
|
||||
//
|
||||
// Moreover, we set `pxend` and `pyend` to be 4 bytes before the actual
|
||||
// end of of `px` and `py`. Thus, the final dereference outside of the
|
||||
// end of `px` and `py`. Thus, the final dereference outside of the
|
||||
// loop is guaranteed to be valid. (The final comparison will overlap with
|
||||
// the last comparison done in the loop for lengths that aren't multiples
|
||||
// of four.)
|
||||
|
|
|
@ -225,7 +225,7 @@ impl<T> Channel<T> {
|
|||
let slot = unsafe { self.buffer.get_unchecked(index) };
|
||||
let stamp = slot.stamp.load(Ordering::Acquire);
|
||||
|
||||
// If the the stamp is ahead of the head by 1, we may attempt to pop.
|
||||
// If the stamp is ahead of the head by 1, we may attempt to pop.
|
||||
if head + 1 == stamp {
|
||||
let new = if index + 1 < self.cap {
|
||||
// Same lap, incremented index.
|
||||
|
|
|
@ -46,7 +46,7 @@ impl ScopeData {
|
|||
// We check for 'overflow' with usize::MAX / 2, to make sure there's no
|
||||
// chance it overflows to 0, which would result in unsoundness.
|
||||
if self.num_running_threads.fetch_add(1, Ordering::Relaxed) > usize::MAX / 2 {
|
||||
// This can only reasonably happen by mem::forget()'ing many many ScopedJoinHandles.
|
||||
// This can only reasonably happen by mem::forget()'ing a lot of ScopedJoinHandles.
|
||||
self.decrement_num_running_threads(false);
|
||||
panic!("too many running threads in thread scope");
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 3f64052c048c6def93b94a2b514ee88bba918744
|
||||
Subproject commit a60f4316ec923a5ac2ed6a2eba6960edb832d855
|
|
@ -1 +1 @@
|
|||
Subproject commit c533348edd69f11a8f4225d633a05d7093fddbf3
|
||||
Subproject commit 19f798d448835a4888e3b3eae7fe69f1d61d8681
|
|
@ -1 +1 @@
|
|||
Subproject commit 05532356e7a4dbea2330aabb77611f5179493bb8
|
||||
Subproject commit ae406aa5287a9e025abb72343aaceec98458c117
|
|
@ -1 +1 @@
|
|||
Subproject commit 9f0cc13ffcd27c1fbe1ab766a9491e15ddcf4d19
|
||||
Subproject commit 3ae62681ff236d5528ef7c8c28ba7c6b2ecc6731
|
|
@ -1 +1 @@
|
|||
Subproject commit 2b15c0abf2bada6e00553814336bc3e2d8399097
|
||||
Subproject commit a9869b4a3c4cac3bc6099b41f088679e268400b8
|
|
@ -1 +1 @@
|
|||
Subproject commit d0dc6c97a6486f68bac782fff135086eae6d77ec
|
||||
Subproject commit e269950a57fa6fcda356426545fb5aa3691a7ced
|
|
@ -1660,8 +1660,6 @@ in storage.js
|
|||
/* Hide the sidebar offscreen while not in use. Doing this instead of display: none means
|
||||
the sidebar stays visible for screen readers, which is useful for navigation. */
|
||||
left: -1000px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 11;
|
||||
/* Reduce height slightly to account for mobile topbar. */
|
||||
height: calc(100vh - 45px);
|
||||
|
@ -1978,7 +1976,9 @@ in storage.js
|
|||
}
|
||||
|
||||
.scraped-example .code-wrapper .example-wrap {
|
||||
flex: 1;
|
||||
display: grid;
|
||||
grid-template-columns: max-content auto;
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
margin-bottom: 0;
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
});
|
||||
});
|
||||
|
||||
example.querySelector("next")
|
||||
example.querySelector(".next")
|
||||
.addEventListener("click", () => {
|
||||
onChangeLoc(() => {
|
||||
locIndex = (locIndex + 1) % locs.length;
|
||||
|
|
|
@ -130,4 +130,4 @@ static_files! {
|
|||
nanum_barun_gothic_license => "static/fonts/NanumBarunGothic-LICENSE.txt",
|
||||
}
|
||||
|
||||
pub(crate) static SCRAPE_EXAMPLES_HELP_MD: &str = include_str!("static/js/scrape-examples.js");
|
||||
pub(crate) static SCRAPE_EXAMPLES_HELP_MD: &str = include_str!("static/scrape-examples-help.md");
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
// This test ensures that the margins on methods are coherent inside an impl block.
|
||||
goto: "file://" + |DOC_PATH| + "/test_docs/trait_members/struct.HasTrait.html#impl-TraitMembers-for-HasTrait"
|
||||
|
||||
assert-count: ("#trait-implementations-list > .rustdoc-toggle", 1)
|
||||
|
|
|
@ -1,4 +1,17 @@
|
|||
goto: "file://" + |DOC_PATH| + "/scrape_examples/fn.test.html"
|
||||
|
||||
store-property: (initialScrollTop, ".scraped-example-list > .scraped-example pre", "scrollTop")
|
||||
focus: ".scraped-example-list > .scraped-example .next"
|
||||
press-key: "Enter"
|
||||
assert-property-false: (".scraped-example-list > .scraped-example pre", {
|
||||
"scrollTop": |initialScrollTop|
|
||||
})
|
||||
focus: ".scraped-example-list > .scraped-example .prev"
|
||||
press-key: "Enter"
|
||||
assert-property: (".scraped-example-list > .scraped-example pre", {
|
||||
"scrollTop": |initialScrollTop|
|
||||
})
|
||||
|
||||
store-property: (smallOffsetHeight, ".scraped-example-list > .scraped-example pre", "offsetHeight")
|
||||
assert-property-false: (".scraped-example-list > .scraped-example pre", {
|
||||
"scrollHeight": |smallOffsetHeight|
|
||||
|
|
|
@ -22,4 +22,5 @@ fn main() {
|
|||
println!("hello world!");
|
||||
println!("hello world!");
|
||||
}
|
||||
scrape_examples::test();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
// check-pass
|
||||
|
||||
#![feature(inherent_associated_types)]
|
||||
#![allow(incomplete_features)]
|
||||
|
||||
struct S<T>(T);
|
||||
|
||||
impl<T: O> S<T> {
|
||||
type P = <T as O>::P;
|
||||
}
|
||||
|
||||
trait O {
|
||||
type P;
|
||||
}
|
||||
|
||||
impl O for i32 {
|
||||
type P = String;
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let _: S<i32>::P = String::new();
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
// check-pass
|
||||
|
||||
#![feature(inherent_associated_types)]
|
||||
#![allow(incomplete_features)]
|
||||
|
||||
struct S;
|
||||
|
||||
impl S {
|
||||
type P<T: O> = <T as O>::P;
|
||||
}
|
||||
|
||||
trait O {
|
||||
type P;
|
||||
}
|
||||
|
||||
impl O for i32 {
|
||||
type P = String;
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let _: S::P<i32> = String::new();
|
||||
}
|
|
@ -6,15 +6,10 @@ LL | x * y
|
|||
|
|
||||
= help: the trait `Mul<f32>` is not implemented for `i32`
|
||||
= help: the following other types implement trait `Mul<Rhs>`:
|
||||
<&'a f32 as Mul<f32>>
|
||||
<&'a f64 as Mul<f64>>
|
||||
<&'a i128 as Mul<i128>>
|
||||
<&'a i16 as Mul<i16>>
|
||||
<&'a i32 as Mul<i32>>
|
||||
<&'a i64 as Mul<i64>>
|
||||
<&'a i8 as Mul<i8>>
|
||||
<&'a isize as Mul<isize>>
|
||||
and 49 others
|
||||
<&i32 as Mul<&i32>>
|
||||
<i32 as Mul<&i32>>
|
||||
<i32 as Mul>
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -18,9 +18,7 @@ LL |
|
|||
LL | 1_u32
|
||||
| ----- return type was inferred to be `u32` here
|
||||
|
|
||||
= help: the following other types implement trait `Traitor<N, M>`:
|
||||
<u32 as Traitor<N, 2>>
|
||||
<u64 as Traitor<1, 2>>
|
||||
= help: the trait `Traitor<N, 2>` is implemented for `u32`
|
||||
|
||||
error[E0277]: the trait bound `u64: Traitor` is not satisfied
|
||||
--> $DIR/rp_impl_trait_fail.rs:21:13
|
||||
|
@ -31,9 +29,7 @@ LL |
|
|||
LL | 1_u64
|
||||
| ----- return type was inferred to be `u64` here
|
||||
|
|
||||
= help: the following other types implement trait `Traitor<N, M>`:
|
||||
<u32 as Traitor<N, 2>>
|
||||
<u64 as Traitor<1, 2>>
|
||||
= help: the trait `Traitor<1, 2>` is implemented for `u64`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
|
|
@ -12,15 +12,10 @@ LL | = [0; (i8::MAX + 1u8) as usize];
|
|||
|
|
||||
= help: the trait `~const Add<u8>` is not implemented for `i8`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&i8 as Add<&i8>>
|
||||
<i8 as Add<&i8>>
|
||||
<i8 as Add>
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
|
|
@ -12,15 +12,10 @@ LL | : [u32; (i8::MAX as i8 + 1u8) as usize]
|
|||
|
|
||||
= help: the trait `~const Add<u8>` is not implemented for `i8`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&i8 as Add<&i8>>
|
||||
<i8 as Add<&i8>>
|
||||
<i8 as Add>
|
||||
|
||||
error[E0604]: only `u8` can be cast as `char`, not `i8`
|
||||
--> $DIR/const-eval-overflow-4b.rs:22:13
|
||||
|
|
|
@ -12,10 +12,6 @@ LL | Foo::<i32>::bar(&1i8);
|
|||
<i8 as Foo<u32>>
|
||||
<i8 as Foo<u64>>
|
||||
<i8 as Foo<u8>>
|
||||
<u8 as Foo<bool>>
|
||||
<u8 as Foo<u16>>
|
||||
<u8 as Foo<u32>>
|
||||
<u8 as Foo<u64>>
|
||||
|
||||
error[E0277]: the trait bound `u8: Foo<i32>` is not satisfied
|
||||
--> $DIR/issue-39802-show-5-trait-impls.rs:25:21
|
||||
|
@ -26,11 +22,6 @@ LL | Foo::<i32>::bar(&1u8);
|
|||
| required by a bound introduced by this call
|
||||
|
|
||||
= help: the following other types implement trait `Foo<B>`:
|
||||
<i8 as Foo<bool>>
|
||||
<i8 as Foo<u16>>
|
||||
<i8 as Foo<u32>>
|
||||
<i8 as Foo<u64>>
|
||||
<i8 as Foo<u8>>
|
||||
<u8 as Foo<bool>>
|
||||
<u8 as Foo<u16>>
|
||||
<u8 as Foo<u32>>
|
||||
|
|
17
src/test/ui/generic-associated-types/own-bound-span.rs
Normal file
17
src/test/ui/generic-associated-types/own-bound-span.rs
Normal file
|
@ -0,0 +1,17 @@
|
|||
struct S;
|
||||
|
||||
trait D {
|
||||
type P<T: Copy>;
|
||||
//~^ NOTE required by this bound in `D::P`
|
||||
//~| NOTE required by a bound in `D::P`
|
||||
}
|
||||
|
||||
impl D for S {
|
||||
type P<T: Copy> = ();
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let _: <S as D>::P<String>;
|
||||
//~^ ERROR the trait bound `String: Copy` is not satisfied
|
||||
//~| NOTE the trait `Copy` is not implemented for `String`
|
||||
}
|
15
src/test/ui/generic-associated-types/own-bound-span.stderr
Normal file
15
src/test/ui/generic-associated-types/own-bound-span.stderr
Normal file
|
@ -0,0 +1,15 @@
|
|||
error[E0277]: the trait bound `String: Copy` is not satisfied
|
||||
--> $DIR/own-bound-span.rs:14:12
|
||||
|
|
||||
LL | let _: <S as D>::P<String>;
|
||||
| ^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `String`
|
||||
|
|
||||
note: required by a bound in `D::P`
|
||||
--> $DIR/own-bound-span.rs:4:15
|
||||
|
|
||||
LL | type P<T: Copy>;
|
||||
| ^^^^ required by this bound in `D::P`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
|
@ -30,15 +30,10 @@ LL | n + sum_to(n - 1)
|
|||
|
|
||||
= help: the trait `Add<impl Foo>` is not implemented for `u32`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&'a u32 as Add<u32>>
|
||||
<&u32 as Add<&u32>>
|
||||
<u32 as Add<&u32>>
|
||||
<u32 as Add>
|
||||
|
||||
error: aborting due to 2 previous errors; 1 warning emitted
|
||||
|
||||
|
|
|
@ -6,15 +6,10 @@ LL | 1.0f64 - 1
|
|||
|
|
||||
= help: the trait `Sub<{integer}>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Sub<Rhs>`:
|
||||
<&'a f32 as Sub<f32>>
|
||||
<&'a f64 as Sub<f64>>
|
||||
<&'a i128 as Sub<i128>>
|
||||
<&'a i16 as Sub<i16>>
|
||||
<&'a i32 as Sub<i32>>
|
||||
<&'a i64 as Sub<i64>>
|
||||
<&'a i8 as Sub<i8>>
|
||||
<&'a isize as Sub<isize>>
|
||||
and 48 others
|
||||
<&f64 as Sub<&f64>>
|
||||
<f64 as Sub<&f64>>
|
||||
<f64 as Sub>
|
||||
help: consider using a floating-point literal by writing it with `.0`
|
||||
|
|
||||
LL | 1.0f64 - 1.0
|
||||
|
|
|
@ -4,16 +4,7 @@ error[E0277]: the trait bound `&'static mut isize: Copy` is not satisfied
|
|||
LL | assert_copy::<&'static mut isize>();
|
||||
| ^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `&'static mut isize`
|
||||
|
|
||||
= help: the following other types implement trait `Copy`:
|
||||
f32
|
||||
f64
|
||||
i128
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i8
|
||||
isize
|
||||
and 6 others
|
||||
= help: the trait `Copy` is implemented for `isize`
|
||||
note: required by a bound in `assert_copy`
|
||||
--> $DIR/kindck-copy.rs:5:18
|
||||
|
|
||||
|
@ -26,16 +17,7 @@ error[E0277]: the trait bound `&'a mut isize: Copy` is not satisfied
|
|||
LL | assert_copy::<&'a mut isize>();
|
||||
| ^^^^^^^^^^^^^ the trait `Copy` is not implemented for `&'a mut isize`
|
||||
|
|
||||
= help: the following other types implement trait `Copy`:
|
||||
f32
|
||||
f64
|
||||
i128
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i8
|
||||
isize
|
||||
and 6 others
|
||||
= help: the trait `Copy` is implemented for `isize`
|
||||
note: required by a bound in `assert_copy`
|
||||
--> $DIR/kindck-copy.rs:5:18
|
||||
|
|
||||
|
|
|
@ -42,12 +42,11 @@ LL | if x == y {}
|
|||
<&'a str as PartialEq<OsString>>
|
||||
<&'a str as PartialEq<String>>
|
||||
<&'b str as PartialEq<Cow<'a, str>>>
|
||||
<String as PartialEq<&'a str>>
|
||||
<String as PartialEq<Cow<'a, str>>>
|
||||
<String as PartialEq<str>>
|
||||
<String as PartialEq>
|
||||
<str as PartialEq<Cow<'a, str>>>
|
||||
and 4 others
|
||||
<str as PartialEq<OsStr>>
|
||||
<str as PartialEq<OsString>>
|
||||
<str as PartialEq<String>>
|
||||
<str as PartialEq>
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/lex-bad-char-literals-6.rs:15:20
|
||||
|
@ -68,12 +67,11 @@ LL | if x == z {}
|
|||
<&'a str as PartialEq<OsString>>
|
||||
<&'a str as PartialEq<String>>
|
||||
<&'b str as PartialEq<Cow<'a, str>>>
|
||||
<String as PartialEq<&'a str>>
|
||||
<String as PartialEq<Cow<'a, str>>>
|
||||
<String as PartialEq<str>>
|
||||
<String as PartialEq>
|
||||
<str as PartialEq<Cow<'a, str>>>
|
||||
and 4 others
|
||||
<str as PartialEq<OsStr>>
|
||||
<str as PartialEq<OsString>>
|
||||
<str as PartialEq<String>>
|
||||
<str as PartialEq>
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
|
||||
|
|
|
@ -24,15 +24,10 @@ LL | 2 as usize - Some(1);
|
|||
|
|
||||
= help: the trait `Sub<Option<{integer}>>` is not implemented for `usize`
|
||||
= help: the following other types implement trait `Sub<Rhs>`:
|
||||
<&'a f32 as Sub<f32>>
|
||||
<&'a f64 as Sub<f64>>
|
||||
<&'a i128 as Sub<i128>>
|
||||
<&'a i16 as Sub<i16>>
|
||||
<&'a i32 as Sub<i32>>
|
||||
<&'a i64 as Sub<i64>>
|
||||
<&'a i8 as Sub<i8>>
|
||||
<&'a isize as Sub<isize>>
|
||||
and 48 others
|
||||
<&'a usize as Sub<usize>>
|
||||
<&usize as Sub<&usize>>
|
||||
<usize as Sub<&usize>>
|
||||
<usize as Sub>
|
||||
|
||||
error[E0277]: cannot multiply `{integer}` by `()`
|
||||
--> $DIR/binops.rs:4:7
|
||||
|
|
|
@ -6,15 +6,10 @@ LL | 2_usize + (loop {});
|
|||
|
|
||||
= help: the trait `Add<()>` is not implemented for `usize`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&'a usize as Add<usize>>
|
||||
<&usize as Add<&usize>>
|
||||
<usize as Add<&usize>>
|
||||
<usize as Add>
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -6,15 +6,10 @@ LL | x + 100.0
|
|||
|
|
||||
= help: the trait `Add<{float}>` is not implemented for `u8`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&'a u8 as Add<u8>>
|
||||
<&u8 as Add<&u8>>
|
||||
<u8 as Add<&u8>>
|
||||
<u8 as Add>
|
||||
|
||||
error[E0277]: cannot add `&str` to `f64`
|
||||
--> $DIR/not-suggest-float-literal.rs:6:7
|
||||
|
@ -24,15 +19,10 @@ LL | x + "foo"
|
|||
|
|
||||
= help: the trait `Add<&str>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&f64 as Add<&f64>>
|
||||
<f64 as Add<&f64>>
|
||||
<f64 as Add>
|
||||
|
||||
error[E0277]: cannot add `{integer}` to `f64`
|
||||
--> $DIR/not-suggest-float-literal.rs:11:7
|
||||
|
@ -42,15 +32,10 @@ LL | x + y
|
|||
|
|
||||
= help: the trait `Add<{integer}>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&f64 as Add<&f64>>
|
||||
<f64 as Add<&f64>>
|
||||
<f64 as Add>
|
||||
|
||||
error[E0277]: cannot subtract `{float}` from `u8`
|
||||
--> $DIR/not-suggest-float-literal.rs:15:7
|
||||
|
@ -60,15 +45,10 @@ LL | x - 100.0
|
|||
|
|
||||
= help: the trait `Sub<{float}>` is not implemented for `u8`
|
||||
= help: the following other types implement trait `Sub<Rhs>`:
|
||||
<&'a f32 as Sub<f32>>
|
||||
<&'a f64 as Sub<f64>>
|
||||
<&'a i128 as Sub<i128>>
|
||||
<&'a i16 as Sub<i16>>
|
||||
<&'a i32 as Sub<i32>>
|
||||
<&'a i64 as Sub<i64>>
|
||||
<&'a i8 as Sub<i8>>
|
||||
<&'a isize as Sub<isize>>
|
||||
and 48 others
|
||||
<&'a u8 as Sub<u8>>
|
||||
<&u8 as Sub<&u8>>
|
||||
<u8 as Sub<&u8>>
|
||||
<u8 as Sub>
|
||||
|
||||
error[E0277]: cannot subtract `&str` from `f64`
|
||||
--> $DIR/not-suggest-float-literal.rs:19:7
|
||||
|
@ -78,15 +58,10 @@ LL | x - "foo"
|
|||
|
|
||||
= help: the trait `Sub<&str>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Sub<Rhs>`:
|
||||
<&'a f32 as Sub<f32>>
|
||||
<&'a f64 as Sub<f64>>
|
||||
<&'a i128 as Sub<i128>>
|
||||
<&'a i16 as Sub<i16>>
|
||||
<&'a i32 as Sub<i32>>
|
||||
<&'a i64 as Sub<i64>>
|
||||
<&'a i8 as Sub<i8>>
|
||||
<&'a isize as Sub<isize>>
|
||||
and 48 others
|
||||
<&f64 as Sub<&f64>>
|
||||
<f64 as Sub<&f64>>
|
||||
<f64 as Sub>
|
||||
|
||||
error[E0277]: cannot subtract `{integer}` from `f64`
|
||||
--> $DIR/not-suggest-float-literal.rs:24:7
|
||||
|
@ -96,15 +71,10 @@ LL | x - y
|
|||
|
|
||||
= help: the trait `Sub<{integer}>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Sub<Rhs>`:
|
||||
<&'a f32 as Sub<f32>>
|
||||
<&'a f64 as Sub<f64>>
|
||||
<&'a i128 as Sub<i128>>
|
||||
<&'a i16 as Sub<i16>>
|
||||
<&'a i32 as Sub<i32>>
|
||||
<&'a i64 as Sub<i64>>
|
||||
<&'a i8 as Sub<i8>>
|
||||
<&'a isize as Sub<isize>>
|
||||
and 48 others
|
||||
<&f64 as Sub<&f64>>
|
||||
<f64 as Sub<&f64>>
|
||||
<f64 as Sub>
|
||||
|
||||
error[E0277]: cannot multiply `u8` by `{float}`
|
||||
--> $DIR/not-suggest-float-literal.rs:28:7
|
||||
|
@ -114,15 +84,10 @@ LL | x * 100.0
|
|||
|
|
||||
= help: the trait `Mul<{float}>` is not implemented for `u8`
|
||||
= help: the following other types implement trait `Mul<Rhs>`:
|
||||
<&'a f32 as Mul<f32>>
|
||||
<&'a f64 as Mul<f64>>
|
||||
<&'a i128 as Mul<i128>>
|
||||
<&'a i16 as Mul<i16>>
|
||||
<&'a i32 as Mul<i32>>
|
||||
<&'a i64 as Mul<i64>>
|
||||
<&'a i8 as Mul<i8>>
|
||||
<&'a isize as Mul<isize>>
|
||||
and 49 others
|
||||
<&'a u8 as Mul<u8>>
|
||||
<&u8 as Mul<&u8>>
|
||||
<u8 as Mul<&u8>>
|
||||
<u8 as Mul>
|
||||
|
||||
error[E0277]: cannot multiply `f64` by `&str`
|
||||
--> $DIR/not-suggest-float-literal.rs:32:7
|
||||
|
@ -132,15 +97,10 @@ LL | x * "foo"
|
|||
|
|
||||
= help: the trait `Mul<&str>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Mul<Rhs>`:
|
||||
<&'a f32 as Mul<f32>>
|
||||
<&'a f64 as Mul<f64>>
|
||||
<&'a i128 as Mul<i128>>
|
||||
<&'a i16 as Mul<i16>>
|
||||
<&'a i32 as Mul<i32>>
|
||||
<&'a i64 as Mul<i64>>
|
||||
<&'a i8 as Mul<i8>>
|
||||
<&'a isize as Mul<isize>>
|
||||
and 49 others
|
||||
<&f64 as Mul<&f64>>
|
||||
<f64 as Mul<&f64>>
|
||||
<f64 as Mul>
|
||||
|
||||
error[E0277]: cannot multiply `f64` by `{integer}`
|
||||
--> $DIR/not-suggest-float-literal.rs:37:7
|
||||
|
@ -150,15 +110,10 @@ LL | x * y
|
|||
|
|
||||
= help: the trait `Mul<{integer}>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Mul<Rhs>`:
|
||||
<&'a f32 as Mul<f32>>
|
||||
<&'a f64 as Mul<f64>>
|
||||
<&'a i128 as Mul<i128>>
|
||||
<&'a i16 as Mul<i16>>
|
||||
<&'a i32 as Mul<i32>>
|
||||
<&'a i64 as Mul<i64>>
|
||||
<&'a i8 as Mul<i8>>
|
||||
<&'a isize as Mul<isize>>
|
||||
and 49 others
|
||||
<&f64 as Mul<&f64>>
|
||||
<f64 as Mul<&f64>>
|
||||
<f64 as Mul>
|
||||
|
||||
error[E0277]: cannot divide `u8` by `{float}`
|
||||
--> $DIR/not-suggest-float-literal.rs:41:7
|
||||
|
@ -168,15 +123,11 @@ LL | x / 100.0
|
|||
|
|
||||
= help: the trait `Div<{float}>` is not implemented for `u8`
|
||||
= help: the following other types implement trait `Div<Rhs>`:
|
||||
<&'a f32 as Div<f32>>
|
||||
<&'a f64 as Div<f64>>
|
||||
<&'a i128 as Div<i128>>
|
||||
<&'a i16 as Div<i16>>
|
||||
<&'a i32 as Div<i32>>
|
||||
<&'a i64 as Div<i64>>
|
||||
<&'a i8 as Div<i8>>
|
||||
<&'a isize as Div<isize>>
|
||||
and 54 others
|
||||
<&'a u8 as Div<u8>>
|
||||
<&u8 as Div<&u8>>
|
||||
<u8 as Div<&u8>>
|
||||
<u8 as Div<NonZeroU8>>
|
||||
<u8 as Div>
|
||||
|
||||
error[E0277]: cannot divide `f64` by `&str`
|
||||
--> $DIR/not-suggest-float-literal.rs:45:7
|
||||
|
@ -186,15 +137,10 @@ LL | x / "foo"
|
|||
|
|
||||
= help: the trait `Div<&str>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Div<Rhs>`:
|
||||
<&'a f32 as Div<f32>>
|
||||
<&'a f64 as Div<f64>>
|
||||
<&'a i128 as Div<i128>>
|
||||
<&'a i16 as Div<i16>>
|
||||
<&'a i32 as Div<i32>>
|
||||
<&'a i64 as Div<i64>>
|
||||
<&'a i8 as Div<i8>>
|
||||
<&'a isize as Div<isize>>
|
||||
and 54 others
|
||||
<&f64 as Div<&f64>>
|
||||
<f64 as Div<&f64>>
|
||||
<f64 as Div>
|
||||
|
||||
error[E0277]: cannot divide `f64` by `{integer}`
|
||||
--> $DIR/not-suggest-float-literal.rs:50:7
|
||||
|
@ -204,15 +150,10 @@ LL | x / y
|
|||
|
|
||||
= help: the trait `Div<{integer}>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Div<Rhs>`:
|
||||
<&'a f32 as Div<f32>>
|
||||
<&'a f64 as Div<f64>>
|
||||
<&'a i128 as Div<i128>>
|
||||
<&'a i16 as Div<i16>>
|
||||
<&'a i32 as Div<i32>>
|
||||
<&'a i64 as Div<i64>>
|
||||
<&'a i8 as Div<i8>>
|
||||
<&'a isize as Div<isize>>
|
||||
and 54 others
|
||||
<&f64 as Div<&f64>>
|
||||
<f64 as Div<&f64>>
|
||||
<f64 as Div>
|
||||
|
||||
error: aborting due to 12 previous errors
|
||||
|
||||
|
|
|
@ -7,14 +7,9 @@ LL | x + 100
|
|||
= help: the trait `Add<{integer}>` is not implemented for `f32`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&f32 as Add<&f32>>
|
||||
<f32 as Add<&f32>>
|
||||
<f32 as Add>
|
||||
help: consider using a floating-point literal by writing it with `.0`
|
||||
|
|
||||
LL | x + 100.0
|
||||
|
@ -28,15 +23,10 @@ LL | x + 100
|
|||
|
|
||||
= help: the trait `Add<{integer}>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&f64 as Add<&f64>>
|
||||
<f64 as Add<&f64>>
|
||||
<f64 as Add>
|
||||
help: consider using a floating-point literal by writing it with `.0`
|
||||
|
|
||||
LL | x + 100.0
|
||||
|
@ -51,14 +41,9 @@ LL | x - 100
|
|||
= help: the trait `Sub<{integer}>` is not implemented for `f32`
|
||||
= help: the following other types implement trait `Sub<Rhs>`:
|
||||
<&'a f32 as Sub<f32>>
|
||||
<&'a f64 as Sub<f64>>
|
||||
<&'a i128 as Sub<i128>>
|
||||
<&'a i16 as Sub<i16>>
|
||||
<&'a i32 as Sub<i32>>
|
||||
<&'a i64 as Sub<i64>>
|
||||
<&'a i8 as Sub<i8>>
|
||||
<&'a isize as Sub<isize>>
|
||||
and 48 others
|
||||
<&f32 as Sub<&f32>>
|
||||
<f32 as Sub<&f32>>
|
||||
<f32 as Sub>
|
||||
help: consider using a floating-point literal by writing it with `.0`
|
||||
|
|
||||
LL | x - 100.0
|
||||
|
@ -72,15 +57,10 @@ LL | x - 100
|
|||
|
|
||||
= help: the trait `Sub<{integer}>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Sub<Rhs>`:
|
||||
<&'a f32 as Sub<f32>>
|
||||
<&'a f64 as Sub<f64>>
|
||||
<&'a i128 as Sub<i128>>
|
||||
<&'a i16 as Sub<i16>>
|
||||
<&'a i32 as Sub<i32>>
|
||||
<&'a i64 as Sub<i64>>
|
||||
<&'a i8 as Sub<i8>>
|
||||
<&'a isize as Sub<isize>>
|
||||
and 48 others
|
||||
<&f64 as Sub<&f64>>
|
||||
<f64 as Sub<&f64>>
|
||||
<f64 as Sub>
|
||||
help: consider using a floating-point literal by writing it with `.0`
|
||||
|
|
||||
LL | x - 100.0
|
||||
|
@ -95,14 +75,9 @@ LL | x * 100
|
|||
= help: the trait `Mul<{integer}>` is not implemented for `f32`
|
||||
= help: the following other types implement trait `Mul<Rhs>`:
|
||||
<&'a f32 as Mul<f32>>
|
||||
<&'a f64 as Mul<f64>>
|
||||
<&'a i128 as Mul<i128>>
|
||||
<&'a i16 as Mul<i16>>
|
||||
<&'a i32 as Mul<i32>>
|
||||
<&'a i64 as Mul<i64>>
|
||||
<&'a i8 as Mul<i8>>
|
||||
<&'a isize as Mul<isize>>
|
||||
and 49 others
|
||||
<&f32 as Mul<&f32>>
|
||||
<f32 as Mul<&f32>>
|
||||
<f32 as Mul>
|
||||
help: consider using a floating-point literal by writing it with `.0`
|
||||
|
|
||||
LL | x * 100.0
|
||||
|
@ -116,15 +91,10 @@ LL | x * 100
|
|||
|
|
||||
= help: the trait `Mul<{integer}>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Mul<Rhs>`:
|
||||
<&'a f32 as Mul<f32>>
|
||||
<&'a f64 as Mul<f64>>
|
||||
<&'a i128 as Mul<i128>>
|
||||
<&'a i16 as Mul<i16>>
|
||||
<&'a i32 as Mul<i32>>
|
||||
<&'a i64 as Mul<i64>>
|
||||
<&'a i8 as Mul<i8>>
|
||||
<&'a isize as Mul<isize>>
|
||||
and 49 others
|
||||
<&f64 as Mul<&f64>>
|
||||
<f64 as Mul<&f64>>
|
||||
<f64 as Mul>
|
||||
help: consider using a floating-point literal by writing it with `.0`
|
||||
|
|
||||
LL | x * 100.0
|
||||
|
@ -139,14 +109,9 @@ LL | x / 100
|
|||
= help: the trait `Div<{integer}>` is not implemented for `f32`
|
||||
= help: the following other types implement trait `Div<Rhs>`:
|
||||
<&'a f32 as Div<f32>>
|
||||
<&'a f64 as Div<f64>>
|
||||
<&'a i128 as Div<i128>>
|
||||
<&'a i16 as Div<i16>>
|
||||
<&'a i32 as Div<i32>>
|
||||
<&'a i64 as Div<i64>>
|
||||
<&'a i8 as Div<i8>>
|
||||
<&'a isize as Div<isize>>
|
||||
and 54 others
|
||||
<&f32 as Div<&f32>>
|
||||
<f32 as Div<&f32>>
|
||||
<f32 as Div>
|
||||
help: consider using a floating-point literal by writing it with `.0`
|
||||
|
|
||||
LL | x / 100.0
|
||||
|
@ -160,15 +125,10 @@ LL | x / 100
|
|||
|
|
||||
= help: the trait `Div<{integer}>` is not implemented for `f64`
|
||||
= help: the following other types implement trait `Div<Rhs>`:
|
||||
<&'a f32 as Div<f32>>
|
||||
<&'a f64 as Div<f64>>
|
||||
<&'a i128 as Div<i128>>
|
||||
<&'a i16 as Div<i16>>
|
||||
<&'a i32 as Div<i32>>
|
||||
<&'a i64 as Div<i64>>
|
||||
<&'a i8 as Div<i8>>
|
||||
<&'a isize as Div<isize>>
|
||||
and 54 others
|
||||
<&f64 as Div<&f64>>
|
||||
<f64 as Div<&f64>>
|
||||
<f64 as Div>
|
||||
help: consider using a floating-point literal by writing it with `.0`
|
||||
|
|
||||
LL | x / 100.0
|
||||
|
|
|
@ -3,10 +3,10 @@ error[E0311]: the parameter type `Self` may not live long enough
|
|||
= help: consider adding an explicit lifetime bound `Self: 'a`...
|
||||
= note: ...so that the type `Self` will meet its required lifetime bounds...
|
||||
note: ...that is required by this bound
|
||||
--> $DIR/object-safety-supertrait-mentions-GAT.rs:9:39
|
||||
--> $DIR/object-safety-supertrait-mentions-GAT.rs:6:15
|
||||
|
|
||||
LL | trait SuperTrait<T>: for<'a> GatTrait<Gat<'a> = T> {
|
||||
| ^^^^^^^^^^^
|
||||
LL | Self: 'a;
|
||||
| ^^
|
||||
|
||||
error: associated item referring to unboxed trait object for its own trait
|
||||
--> $DIR/object-safety-supertrait-mentions-GAT.rs:10:20
|
||||
|
|
|
@ -5,7 +5,7 @@ struct Foo {
|
|||
|
||||
impl PartialEq for Foo {
|
||||
fn eq(&self, _: &Foo) -> bool {
|
||||
false // ha ha sucker!
|
||||
false // ha ha!
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,15 +6,10 @@ LL | foo(1 as u32 +
|
|||
|
|
||||
= help: the trait `Add<()>` is not implemented for `u32`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&'a u32 as Add<u32>>
|
||||
<&u32 as Add<&u32>>
|
||||
<u32 as Add<&u32>>
|
||||
<u32 as Add>
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -7,10 +7,7 @@ LL | struct Foo<'a, T> {
|
|||
LL | bar: &'a mut T
|
||||
| ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `&mut T`
|
||||
|
|
||||
= help: the following other types implement trait `Clone`:
|
||||
&T
|
||||
*const T
|
||||
*mut T
|
||||
= help: the trait `Clone` is implemented for `&T`
|
||||
= note: `Clone` is implemented for `&T`, but not for `&mut T`
|
||||
= note: this error originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
|
|
|
@ -8,15 +8,8 @@ LL | Ok(Err(123_i32)?)
|
|||
|
|
||||
= note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
|
||||
= help: the following other types implement trait `From<T>`:
|
||||
<f32 as From<i16>>
|
||||
<f32 as From<i8>>
|
||||
<f32 as From<u16>>
|
||||
<f32 as From<u8>>
|
||||
<f64 as From<f32>>
|
||||
<f64 as From<i16>>
|
||||
<f64 as From<i32>>
|
||||
<f64 as From<i8>>
|
||||
and 68 others
|
||||
<u8 as From<NonZeroU8>>
|
||||
<u8 as From<bool>>
|
||||
= note: required for `Result<u64, u8>` to implement `FromResidual<Result<Infallible, i32>>`
|
||||
|
||||
error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
|
||||
|
|
|
@ -7,16 +7,7 @@ LL | 42_i32
|
|||
| ------ return type was inferred to be `i32` here
|
||||
|
|
||||
= help: the trait `PartialEq<Foo>` is not implemented for `i32`
|
||||
= help: the following other types implement trait `PartialEq<Rhs>`:
|
||||
f32
|
||||
f64
|
||||
i128
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i8
|
||||
isize
|
||||
and 6 others
|
||||
= help: the trait `PartialEq` is implemented for `i32`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
@ -7,16 +7,7 @@ LL | i
|
|||
| - return type was inferred to be `&i32` here
|
||||
|
|
||||
= help: the trait `PartialEq<Bar<'b, 'static>>` is not implemented for `&i32`
|
||||
= help: the following other types implement trait `PartialEq<Rhs>`:
|
||||
f32
|
||||
f64
|
||||
i128
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i8
|
||||
isize
|
||||
and 6 others
|
||||
= help: the trait `PartialEq` is implemented for `i32`
|
||||
|
||||
error[E0277]: can't compare `&i32` with `Foo<'static, 'b>`
|
||||
--> $DIR/self-referential-4.rs:11:31
|
||||
|
@ -27,16 +18,7 @@ LL | i
|
|||
| - return type was inferred to be `&i32` here
|
||||
|
|
||||
= help: the trait `PartialEq<Foo<'static, 'b>>` is not implemented for `&i32`
|
||||
= help: the following other types implement trait `PartialEq<Rhs>`:
|
||||
f32
|
||||
f64
|
||||
i128
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i8
|
||||
isize
|
||||
and 6 others
|
||||
= help: the trait `PartialEq` is implemented for `i32`
|
||||
|
||||
error[E0277]: can't compare `&i32` with `Moo<'static, 'a>`
|
||||
--> $DIR/self-referential-4.rs:17:31
|
||||
|
@ -47,16 +29,7 @@ LL | i
|
|||
| - return type was inferred to be `&i32` here
|
||||
|
|
||||
= help: the trait `PartialEq<Moo<'static, 'a>>` is not implemented for `&i32`
|
||||
= help: the following other types implement trait `PartialEq<Rhs>`:
|
||||
f32
|
||||
f64
|
||||
i128
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i8
|
||||
isize
|
||||
and 6 others
|
||||
= help: the trait `PartialEq` is implemented for `i32`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
|
|
@ -8,16 +8,7 @@ LL | i
|
|||
| - return type was inferred to be `&i32` here
|
||||
|
|
||||
= help: the trait `PartialEq<Bar<'b, 'a>>` is not implemented for `&i32`
|
||||
= help: the following other types implement trait `PartialEq<Rhs>`:
|
||||
f32
|
||||
f64
|
||||
i128
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i8
|
||||
isize
|
||||
and 6 others
|
||||
= help: the trait `PartialEq` is implemented for `i32`
|
||||
|
||||
error[E0277]: can't compare `&i32` with `(i32, &i32)`
|
||||
--> $DIR/self-referential.rs:12:31
|
||||
|
@ -29,16 +20,7 @@ LL | (42, i)
|
|||
| ------- return type was inferred to be `(i32, &i32)` here
|
||||
|
|
||||
= help: the trait `PartialEq<(i32, &i32)>` is not implemented for `&i32`
|
||||
= help: the following other types implement trait `PartialEq<Rhs>`:
|
||||
f32
|
||||
f64
|
||||
i128
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i8
|
||||
isize
|
||||
and 6 others
|
||||
= help: the trait `PartialEq` is implemented for `i32`
|
||||
|
||||
error[E0277]: can't compare `&i32` with `(i32, Moo<'b, 'a>::{opaque#0})`
|
||||
--> $DIR/self-referential.rs:19:31
|
||||
|
@ -50,16 +32,7 @@ LL | (42, i)
|
|||
| ------- return type was inferred to be `(i32, &i32)` here
|
||||
|
|
||||
= help: the trait `PartialEq<(i32, Moo<'b, 'a>::{opaque#0})>` is not implemented for `&i32`
|
||||
= help: the following other types implement trait `PartialEq<Rhs>`:
|
||||
f32
|
||||
f64
|
||||
i128
|
||||
i16
|
||||
i32
|
||||
i64
|
||||
i8
|
||||
isize
|
||||
and 6 others
|
||||
= help: the trait `PartialEq` is implemented for `i32`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
|
|
@ -66,15 +66,10 @@ LL | trait ProjectionPred<T:Iterator = IntoIter<i32>> where T::Item : Add<u8> {}
|
|||
|
|
||||
= help: the trait `Add<u8>` is not implemented for `i32`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&i32 as Add<&i32>>
|
||||
<i32 as Add<&i32>>
|
||||
<i32 as Add>
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
|
||||
|
|
|
@ -21,15 +21,10 @@ LL | a = c + b * 5;
|
|||
|
|
||||
= help: the trait `Add<u16>` is not implemented for `usize`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&'a usize as Add<usize>>
|
||||
<&usize as Add<&usize>>
|
||||
<usize as Add<&usize>>
|
||||
<usize as Add>
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
|
|
@ -8,15 +8,10 @@ LL | <i32 as Add<u32>>::add(1, 2);
|
|||
|
|
||||
= help: the trait `Add<u32>` is not implemented for `i32`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&i32 as Add<&i32>>
|
||||
<i32 as Add<&i32>>
|
||||
<i32 as Add>
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/ufcs-qpath-self-mismatch.rs:7:28
|
||||
|
@ -62,15 +57,10 @@ LL | <i32 as Add<u32>>::add(1, 2);
|
|||
|
|
||||
= help: the trait `Add<u32>` is not implemented for `i32`
|
||||
= help: the following other types implement trait `Add<Rhs>`:
|
||||
<&'a f32 as Add<f32>>
|
||||
<&'a f64 as Add<f64>>
|
||||
<&'a i128 as Add<i128>>
|
||||
<&'a i16 as Add<i16>>
|
||||
<&'a i32 as Add<i32>>
|
||||
<&'a i64 as Add<i64>>
|
||||
<&'a i8 as Add<i8>>
|
||||
<&'a isize as Add<isize>>
|
||||
and 48 others
|
||||
<&i32 as Add<&i32>>
|
||||
<i32 as Add<&i32>>
|
||||
<i32 as Add>
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
|
|
@ -260,9 +260,9 @@ impl TestProps {
|
|||
props.load_from(testfile, cfg, config);
|
||||
|
||||
match (props.pass_mode, props.fail_mode) {
|
||||
(None, None) => props.fail_mode = Some(FailMode::Check),
|
||||
(Some(_), None) | (None, Some(_)) => {}
|
||||
(None, None) if config.mode == Mode::Ui => props.fail_mode = Some(FailMode::Check),
|
||||
(Some(_), Some(_)) => panic!("cannot use a *-fail and *-pass mode together"),
|
||||
_ => {}
|
||||
}
|
||||
|
||||
props
|
||||
|
@ -522,8 +522,8 @@ impl TestProps {
|
|||
}
|
||||
|
||||
pub fn pass_mode(&self, config: &Config) -> Option<PassMode> {
|
||||
if !self.ignore_pass && self.fail_mode.is_none() && config.mode == Mode::Ui {
|
||||
if let (mode @ Some(_), Some(_)) = (config.force_pass_mode, self.pass_mode) {
|
||||
if !self.ignore_pass && self.fail_mode.is_none() {
|
||||
if let mode @ Some(_) = config.force_pass_mode {
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue