mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
Rollup merge of #135390 - ranger-ross:readd-test-122638, r=BoxyUwU
Re-added regression test for #122638 Re-adds the test for #122638 😄 fixes #122638 r? `@BoxyUwU` (please let me know if this can be improved. I am still fairly new to using compiletest)
This commit is contained in:
commit
f10513f22d
@ -0,0 +1,18 @@
|
||||
//! Regression test for <https://github.com/rust-lang/rust/issues/122638>.
|
||||
//@ check-fail
|
||||
#![feature(min_specialization)]
|
||||
impl<'a, T: std::fmt::Debug, const N: usize> Iterator for ConstChunksExact<'a, T, { N }> {
|
||||
//~^ ERROR not all trait items implemented, missing: `Item` [E0046]
|
||||
fn next(&mut self) -> Option<Self::Item> {}
|
||||
//~^ ERROR mismatched types [E0308]
|
||||
}
|
||||
struct ConstChunksExact<'a, T: '_, const assert: usize> {}
|
||||
//~^ ERROR `'_` cannot be used here [E0637]
|
||||
//~| ERROR lifetime parameter `'a` is never used [E0392]
|
||||
//~| ERROR type parameter `T` is never used [E0392]
|
||||
impl<'a, T: std::fmt::Debug, const N: usize> Iterator for ConstChunksExact<'a, T, {}> {
|
||||
//~^ ERROR mismatched types [E0308]
|
||||
//~| ERROR the const parameter `N` is not constrained by the impl trait, self type, or predicates [E0207]
|
||||
type Item = &'a [T; N]; }
|
||||
|
||||
fn main() {}
|
@ -0,0 +1,60 @@
|
||||
error[E0637]: `'_` cannot be used here
|
||||
--> $DIR/normalizing_with_unconstrained_impl_params.rs:9:32
|
||||
|
|
||||
LL | struct ConstChunksExact<'a, T: '_, const assert: usize> {}
|
||||
| ^^ `'_` is a reserved lifetime name
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/normalizing_with_unconstrained_impl_params.rs:13:83
|
||||
|
|
||||
LL | impl<'a, T: std::fmt::Debug, const N: usize> Iterator for ConstChunksExact<'a, T, {}> {
|
||||
| ^^ expected `usize`, found `()`
|
||||
|
||||
error[E0046]: not all trait items implemented, missing: `Item`
|
||||
--> $DIR/normalizing_with_unconstrained_impl_params.rs:4:1
|
||||
|
|
||||
LL | impl<'a, T: std::fmt::Debug, const N: usize> Iterator for ConstChunksExact<'a, T, { N }> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `Item` in implementation
|
||||
|
|
||||
= help: implement the missing item: `type Item = /* Type */;`
|
||||
|
||||
error[E0392]: lifetime parameter `'a` is never used
|
||||
--> $DIR/normalizing_with_unconstrained_impl_params.rs:9:25
|
||||
|
|
||||
LL | struct ConstChunksExact<'a, T: '_, const assert: usize> {}
|
||||
| ^^ unused lifetime parameter
|
||||
|
|
||||
= help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`
|
||||
|
||||
error[E0392]: type parameter `T` is never used
|
||||
--> $DIR/normalizing_with_unconstrained_impl_params.rs:9:29
|
||||
|
|
||||
LL | struct ConstChunksExact<'a, T: '_, const assert: usize> {}
|
||||
| ^ unused type parameter
|
||||
|
|
||||
= help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData`
|
||||
|
||||
error[E0207]: the const parameter `N` is not constrained by the impl trait, self type, or predicates
|
||||
--> $DIR/normalizing_with_unconstrained_impl_params.rs:13:30
|
||||
|
|
||||
LL | impl<'a, T: std::fmt::Debug, const N: usize> Iterator for ConstChunksExact<'a, T, {}> {
|
||||
| ^^^^^^^^^^^^^^ unconstrained const parameter
|
||||
|
|
||||
= note: expressions using a const parameter must map each value to a distinct output value
|
||||
= note: proving the result of expressions other than the parameter are unique is not supported
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/normalizing_with_unconstrained_impl_params.rs:6:27
|
||||
|
|
||||
LL | fn next(&mut self) -> Option<Self::Item> {}
|
||||
| ---- ^^^^^^^^^^^^^^^^^^ expected `Option<_>`, found `()`
|
||||
| |
|
||||
| implicitly returns `()` as its body has no tail or `return` expression
|
||||
|
|
||||
= note: expected enum `Option<_>`
|
||||
found unit type `()`
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0046, E0207, E0308, E0392, E0637.
|
||||
For more information about an error, try `rustc --explain E0046`.
|
Loading…
Reference in New Issue
Block a user