Add more information link to orphan impls

This commit is contained in:
Jonathan Birk 2024-08-11 10:13:50 +00:00
parent 86a9959466
commit ca94dd5bea
37 changed files with 121 additions and 59 deletions

View File

@ -351,7 +351,9 @@ hir_analysis_only_current_traits_arbitrary = only traits defined in the current
hir_analysis_only_current_traits_foreign = this is not defined in the current crate because this is a foreign trait
hir_analysis_only_current_traits_label = impl doesn't use any uncovered types from inside the current crate
hir_analysis_only_current_traits_label = impl doesn't have any local type before any uncovered type parameters
hir_analysis_only_current_traits_label_more_info = for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
hir_analysis_only_current_traits_name = this is not defined in the current crate because {$name} are always foreign

View File

@ -1441,6 +1441,7 @@ pub enum OnlyCurrentTraits {
Outside {
#[primary_span]
#[label(hir_analysis_only_current_traits_label)]
#[label(hir_analysis_only_current_traits_label_more_info)]
span: Span,
#[note(hir_analysis_only_current_traits_note)]
note: (),
@ -1449,6 +1450,7 @@ pub enum OnlyCurrentTraits {
Primitive {
#[primary_span]
#[label(hir_analysis_only_current_traits_label)]
#[label(hir_analysis_only_current_traits_label_more_info)]
span: Span,
#[note(hir_analysis_only_current_traits_note)]
note: (),
@ -1457,6 +1459,7 @@ pub enum OnlyCurrentTraits {
Arbitrary {
#[primary_span]
#[label(hir_analysis_only_current_traits_label)]
#[label(hir_analysis_only_current_traits_label_more_info)]
span: Span,
#[note(hir_analysis_only_current_traits_note)]
note: (),

View File

@ -5,7 +5,8 @@ LL | impl<T> Remote for Pair<T,Cover<T>> { }
| ^^^^^^^^^^^^^^^^^^^----------------
| | |
| | `Pair` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl<T> Remote for Pair<Cover<T>,T> { }
| ^^^^^^^^^^^^^^^^^^^----------------
| | |
| | `Pair` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl<T,U> Remote for Pair<Cover<T>,U> { }
| ^^^^^^^^^^^^^^^^^^^^^----------------
| | |
| | `Pair` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl Misc for dyn Fundamental<Local> {}
| ^^^^^^^^^^^^^^----------------------
| | |
| | `dyn Fundamental<Local>` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -41,7 +41,8 @@ LL | impl !Send for dyn Marker2 {}
| ^^^^^^^^^^^^^^^-----------
| | |
| | `dyn Marker2` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -41,7 +41,8 @@ LL | unsafe impl Send for dyn Marker2 {}
| ^^^^^^^^^^^^^^^^^^^^^-----------
| | |
| | `dyn Marker2` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -15,7 +15,8 @@ LL | impl Copy for &'static [NotSync] {}
| ^^^^^^^^^^^^^^------------------
| | |
| | this is not defined in the current crate because slices are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -26,7 +27,8 @@ LL | impl Copy for i32 {}
| ^^^^^^^^^^^^^^---
| | |
| | `i32` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -43,7 +45,8 @@ LL | impl Copy for (MyType, MyType) {}
| ^^^^^^^^^^^^^^----------------
| | |
| | this is not defined in the current crate because tuples are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -60,7 +63,8 @@ LL | impl Copy for [MyType] {}
| ^^^^^^^^^^^^^^--------
| | |
| | this is not defined in the current crate because slices are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | unsafe impl Send for &'static [NotSync] {}
| ^^^^^^^^^^^^^^^^^^^^^------------------
| | |
| | this is not defined in the current crate because slices are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -16,7 +17,8 @@ LL | unsafe impl Send for (MyType, MyType) {}
| ^^^^^^^^^^^^^^^^^^^^^----------------
| | |
| | this is not defined in the current crate because tuples are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -33,7 +35,8 @@ LL | unsafe impl Send for [MyType] {}
| ^^^^^^^^^^^^^^^^^^^^^--------
| | |
| | this is not defined in the current crate because slices are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -23,7 +23,8 @@ LL | impl Sized for (MyType, MyType) {}
| ^^^^^^^^^^^^^^^----------------
| | |
| | this is not defined in the current crate because tuples are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -46,7 +47,8 @@ LL | impl Sized for [MyType] {}
| ^^^^^^^^^^^^^^^--------
| | |
| | this is not defined in the current crate because slices are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -63,7 +65,8 @@ LL | impl Sized for &'static [NotSync] {}
| ^^^^^^^^^^^^^^^------------------
| | |
| | this is not defined in the current crate because slices are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl !Copy for str {}
| ^^^^^^^^^^^^^^^---
| | |
| | `str` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -16,7 +17,8 @@ LL | impl !Copy for fn() {}
| ^^^^^^^^^^^^^^^----
| | |
| | `fn()` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -27,7 +29,8 @@ LL | impl !Copy for () {}
| ^^^^^^^^^^^^^^^--
| | |
| | this is not defined in the current crate because tuples are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -6,7 +6,8 @@ LL | impl TheTrait<usize> for isize {}
| | | |
| | | `isize` is not defined in the current crate
| | `usize` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -17,7 +18,8 @@ LL | impl !Send for Vec<isize> {}
| ^^^^^^^^^^^^^^^----------
| | |
| | `Vec` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl<T> Remote for lib::Pair<T,Foo> { }
| ^^^^^^^^^^^^^^^^^^^----------------
| | |
| | `Pair` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -6,7 +6,8 @@ LL | impl<T, U> Remote1<Pair<T, Local<U>>> for i32 { }
| | | |
| | | `i32` is not defined in the current crate
| | `Pair` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl<T,U> Remote for Pair<T,Local<U>> { }
| ^^^^^^^^^^^^^^^^^^^^^----------------
| | |
| | `Pair` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl<T> Remote for Vec<Local<T>> { }
| ^^^^^^^^^^^^^^^^^^^-------------
| | |
| | `Vec` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl Remote for Vec<Local> { }
| ^^^^^^^^^^^^^^^^----------
| | |
| | `Vec` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl lib::MyCopy for lib::MyStruct<MyType> { }
| ^^^^^^^^^^^^^^^^^^^^^---------------------
| | |
| | `MyStruct` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl lib::MyCopy for (MyType,) { }
| ^^^^^^^^^^^^^^^^^^^^^---------
| | |
| | this is not defined in the current crate because tuples are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl Remote for i32 {
| ^^^^^^^^^^^^^^^^---
| | |
| | `i32` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -6,7 +6,8 @@ LL | impl Remote1<Rc<i32>> for i32 {
| | | |
| | | `i32` is not defined in the current crate
| | `Rc` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -18,7 +19,8 @@ LL | impl Remote1<Rc<Local>> for f64 {
| | | |
| | | `f64` is not defined in the current crate
| | `Rc` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -30,7 +32,8 @@ LL | impl<T> Remote1<Rc<T>> for f32 {
| | | |
| | | `f32` is not defined in the current crate
| | `Rc` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -6,7 +6,8 @@ LL | impl Remote for Box<i32> {
| | | |
| | | `i32` is not defined in the current crate
| | `std::alloc::Global` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -18,7 +19,8 @@ LL | impl<T> Remote for Box<Rc<T>> {
| | | |
| | | `Rc` is not defined in the current crate
| | `std::alloc::Global` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -6,7 +6,8 @@ LL | impl Remote1<u32> for f64 {
| | | |
| | | `f64` is not defined in the current crate
| | `u32` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -7,7 +7,8 @@ LL | impl Remote1<Box<String>> for i32 {
| | | `i32` is not defined in the current crate
| | `String` is not defined in the current crate
| | `std::alloc::Global` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -20,7 +21,8 @@ LL | impl Remote1<Box<Rc<i32>>> for f64 {
| | | `f64` is not defined in the current crate
| | `Rc` is not defined in the current crate
| | `std::alloc::Global` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -33,7 +35,8 @@ LL | impl<T> Remote1<Box<Rc<T>>> for f32 {
| | | `f32` is not defined in the current crate
| | `Rc` is not defined in the current crate
| | `std::alloc::Global` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl Remote for Rc<Local> {
| ^^^^^^^^^^^^^^^^---------
| | |
| | `Rc` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -16,7 +17,8 @@ LL | impl<T> Remote for Arc<T> {
| ^^^^^^^^^^^^^^^^^^^------
| | |
| | `Arc` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -11,7 +11,8 @@ LL | impl<'a> Drop for &'a mut isize {
| ^^^^^^^^^^^^^^^^^^-------------
| | |
| | `isize` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl Drop for u32 {}
| ^^^^^^^^^^^^^^---
| | |
| | `u32` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl<R> External for (Q, R) {}
| ^^^^^^^^^^^^^^^^^^^^^------
| | |
| | this is not defined in the current crate because tuples are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -6,7 +6,8 @@ struct LocalType;
impl fmt::Display for *mut LocalType {
//~^ ERROR only traits defined in the current crate can be implemented for arbitrary types
//~| NOTE impl doesn't use any uncovered types from inside the current crate
//~| NOTE impl doesn't have any local type before any uncovered type parameters
//~| NOTE for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
//~| NOTE `*mut LocalType` is not defined in the current crate because raw pointers are always foreign
//~| NOTE define and implement a trait or new type instead
//~| HELP consider introducing a new wrapper type
@ -17,7 +18,8 @@ impl fmt::Display for *mut LocalType {
impl<T> marker::Copy for *mut T {
//~^ ERROR only traits defined in the current crate can be implemented for arbitrary types
//~| NOTE impl doesn't use any uncovered types from inside the current crate
//~| NOTE impl doesn't have any local type before any uncovered type parameters
//~| NOTE for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
//~| NOTE `*mut T` is not defined in the current crate because raw pointers are always foreign
//~| NOTE define and implement a trait or new type instead
}

View File

@ -5,7 +5,8 @@ LL | impl fmt::Display for *mut LocalType {
| ^^^^^^^^^^^^^^^^^^^^^^--------------
| | |
| | `*mut LocalType` is not defined in the current crate because raw pointers are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
help: consider introducing a new wrapper type
@ -16,13 +17,14 @@ LL ~ impl fmt::Display for WrapperType {
|
error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
--> $DIR/issue-99572-impl-trait-on-pointer.rs:18:1
--> $DIR/issue-99572-impl-trait-on-pointer.rs:19:1
|
LL | impl<T> marker::Copy for *mut T {
| ^^^^^^^^^^^^^^^^^^^^^^^^^------
| | |
| | `*mut T` is not defined in the current crate because raw pointers are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -6,7 +6,8 @@ LL | impl std::ops::AddAssign for () {
| | | |
| | | this is not defined in the current crate because tuples are always foreign
| | this is not defined in the current crate because this is a foreign trait
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -18,7 +19,8 @@ LL | impl std::ops::AddAssign for [(); 1] {
| | | |
| | | this is not defined in the current crate because arrays are always foreign
| | this is not defined in the current crate because this is a foreign trait
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -30,7 +32,8 @@ LL | impl std::ops::AddAssign for &[u8] {
| | | |
| | | this is not defined in the current crate because slices are always foreign
| | this is not defined in the current crate because this is a foreign trait
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -33,7 +33,8 @@ LL | impl const std::ops::Add for i32 {
| | | |
| | | `i32` is not defined in the current crate
| | `i32` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl foreign_crate::ForeignTrait for AliasOfForeignType<()> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------
| | |
| | type alias impl trait is treated as if it were foreign, because its hidden type could be from a foreign crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl foreign_crate::ForeignTrait for AliasOfForeignType<()> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------
| | |
| | `AliasOfForeignType<()>` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl Eq for Y {}
| ^^^^^^^^^^^^-
| | |
| | `(u32) is 1..=` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead

View File

@ -5,7 +5,8 @@ LL | impl DefaultedTrait for (A,) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^----
| | |
| | this is not defined in the current crate because tuples are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -16,7 +17,8 @@ LL | impl !DefaultedTrait for (B,) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^----
| | |
| | this is not defined in the current crate because tuples are always foreign
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead
@ -33,7 +35,8 @@ LL | impl DefaultedTrait for lib::Something<C> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^-----------------
| | |
| | `Something` is not defined in the current crate
| impl doesn't use any uncovered types from inside the current crate
| impl doesn't have any local type before any uncovered type parameters
| for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
|
= note: define and implement a trait or new type instead