forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of rust-lang#107857 - GuillaumeGomez:ui-test-impl-projec…
…tions, r=oli-obk Add ui test for implementation on projection The error in full can be seen in rust-lang#107263 and is part of why the PR is blocked (it still requires the approval from the team for supporting it). r? `@oli-obk`
- Loading branch information
Showing
2 changed files
with
30 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
// This test ensures that if implementation on projections is supported, | ||
// it doesn't end in very weird cycle error. | ||
|
||
#![crate_type = "lib"] | ||
|
||
pub trait Identity { | ||
type Identity: ?Sized; | ||
} | ||
|
||
impl<T: ?Sized> Identity for T { | ||
type Identity = Self; | ||
} | ||
|
||
pub struct I8<const F: i8>; | ||
|
||
impl <I8<{i8::MIN}> as Identity>::Identity { | ||
//~^ ERROR no nominal type found for inherent implementation | ||
pub fn foo(&self) {} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
error[E0118]: no nominal type found for inherent implementation | ||
--> $DIR/wrong-normalization.rs:16:6 | ||
| | ||
LL | impl <I8<{i8::MIN}> as Identity>::Identity { | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl requires a nominal type | ||
| | ||
= note: either implement a trait on it or create a newtype to wrap it instead | ||
|
||
error: aborting due to previous error | ||
|
||
For more information about this error, try `rustc --explain E0118`. |