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_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 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 { Outside {
#[primary_span] #[primary_span]
#[label(hir_analysis_only_current_traits_label)] #[label(hir_analysis_only_current_traits_label)]
#[label(hir_analysis_only_current_traits_label_more_info)]
span: Span, span: Span,
#[note(hir_analysis_only_current_traits_note)] #[note(hir_analysis_only_current_traits_note)]
note: (), note: (),
@ -1449,6 +1450,7 @@ pub enum OnlyCurrentTraits {
Primitive { Primitive {
#[primary_span] #[primary_span]
#[label(hir_analysis_only_current_traits_label)] #[label(hir_analysis_only_current_traits_label)]
#[label(hir_analysis_only_current_traits_label_more_info)]
span: Span, span: Span,
#[note(hir_analysis_only_current_traits_note)] #[note(hir_analysis_only_current_traits_note)]
note: (), note: (),
@ -1457,6 +1459,7 @@ pub enum OnlyCurrentTraits {
Arbitrary { Arbitrary {
#[primary_span] #[primary_span]
#[label(hir_analysis_only_current_traits_label)] #[label(hir_analysis_only_current_traits_label)]
#[label(hir_analysis_only_current_traits_label_more_info)]
span: Span, span: Span,
#[note(hir_analysis_only_current_traits_note)] #[note(hir_analysis_only_current_traits_note)]
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 | | `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 = 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 | | `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 = 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 | | `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 = 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 | | `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 = 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 | | `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 = 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 | | `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 = 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 | | 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 = 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 | | `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 = 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 | | 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 = 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 | | 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 = 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 | | 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 = 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 | | 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 = 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 | | 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 = 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 | | 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 = 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 | | 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 = 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 | | 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 = 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 | | `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 = 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 | | `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 = 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 | | 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 = 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 | | | `isize` is not defined in the current crate
| | `usize` 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 = 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 | | `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 = 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 | | `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 = 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 | | | `i32` is not defined in the current crate
| | `Pair` 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 = 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 | | `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 = 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 | | `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 = 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 | | `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 = 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 | | `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 = 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 | | 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 = 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 | | `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 = 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 | | | `i32` is not defined in the current crate
| | `Rc` 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 = 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 | | | `f64` is not defined in the current crate
| | `Rc` 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 = 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 | | | `f32` is not defined in the current crate
| | `Rc` 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 = 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 | | | `i32` is not defined in the current crate
| | `std::alloc::Global` 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 = 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 | | | `Rc` is not defined in the current crate
| | `std::alloc::Global` 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 = 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 | | | `f64` is not defined in the current crate
| | `u32` 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 = 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 | | | `i32` is not defined in the current crate
| | `String` 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 | | `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 = 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 | | | `f64` is not defined in the current crate
| | `Rc` 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 | | `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 = 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 | | | `f32` is not defined in the current crate
| | `Rc` 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 | | `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 = 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 | | `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 = 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 | | `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 = 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 | | `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 = 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 | | `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 = 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 | | 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 = note: define and implement a trait or new type instead

View File

@ -6,7 +6,8 @@ struct LocalType;
impl fmt::Display for *mut LocalType { impl fmt::Display for *mut LocalType {
//~^ ERROR only traits defined in the current crate can be implemented for arbitrary types //~^ 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 `*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 //~| NOTE define and implement a trait or new type instead
//~| HELP consider introducing a new wrapper type //~| HELP consider introducing a new wrapper type
@ -17,7 +18,8 @@ impl fmt::Display for *mut LocalType {
impl<T> marker::Copy for *mut T { impl<T> marker::Copy for *mut T {
//~^ ERROR only traits defined in the current crate can be implemented for arbitrary types //~^ 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 `*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 //~| 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 | | `*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 = note: define and implement a trait or new type instead
help: consider introducing a new wrapper type 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 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 { LL | impl<T> marker::Copy for *mut T {
| ^^^^^^^^^^^^^^^^^^^^^^^^^------ | ^^^^^^^^^^^^^^^^^^^^^^^^^------
| | | | | |
| | `*mut T` is not defined in the current crate because raw pointers are always foreign | | `*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 = 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 tuples are always foreign
| | this is not defined in the current crate because this is a foreign trait | | 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 = 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 arrays are always foreign
| | this is not defined in the current crate because this is a foreign trait | | 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 = 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 slices are always foreign
| | this is not defined in the current crate because this is a foreign trait | | 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 = 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
| | `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 = 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 | | 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 = 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 | | `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 = 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 | | `(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 = 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 | | 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 = 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 | | 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 = 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 | | `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 = note: define and implement a trait or new type instead