add test for opaque type with non-universal region substs #101852
Fixes #101852
This commit is contained in:
parent
12e362989b
commit
2f9a240b91
12
tests/ui/impl-trait/recursive-ice-101862.rs
Normal file
12
tests/ui/impl-trait/recursive-ice-101862.rs
Normal file
@ -0,0 +1,12 @@
|
||||
// issue: rust-lang/rust#101852
|
||||
// ICE opaque type with non-universal region substs
|
||||
|
||||
pub fn ice(x: impl AsRef<str>) -> impl IntoIterator<Item = ()> {
|
||||
//~^ WARN function cannot return without recursing
|
||||
vec![].append(&mut ice(x.as_ref()));
|
||||
//~^ ERROR expected generic type parameter, found `&str`
|
||||
|
||||
Vec::new()
|
||||
}
|
||||
|
||||
fn main() {}
|
24
tests/ui/impl-trait/recursive-ice-101862.stderr
Normal file
24
tests/ui/impl-trait/recursive-ice-101862.stderr
Normal file
@ -0,0 +1,24 @@
|
||||
warning: function cannot return without recursing
|
||||
--> $DIR/recursive-ice-101862.rs:4:1
|
||||
|
|
||||
LL | pub fn ice(x: impl AsRef<str>) -> impl IntoIterator<Item = ()> {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
||||
LL |
|
||||
LL | vec![].append(&mut ice(x.as_ref()));
|
||||
| --------------- recursive call site
|
||||
|
|
||||
= help: a `loop` may express intention better if this is on purpose
|
||||
= note: `#[warn(unconditional_recursion)]` on by default
|
||||
|
||||
error[E0792]: expected generic type parameter, found `&str`
|
||||
--> $DIR/recursive-ice-101862.rs:6:5
|
||||
|
|
||||
LL | pub fn ice(x: impl AsRef<str>) -> impl IntoIterator<Item = ()> {
|
||||
| --------------- this generic parameter must be used with a generic type parameter
|
||||
LL |
|
||||
LL | vec![].append(&mut ice(x.as_ref()));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 1 previous error; 1 warning emitted
|
||||
|
||||
For more information about this error, try `rustc --explain E0792`.
|
Loading…
Reference in New Issue
Block a user