add test for opaque type with non-universal region substs #101852
Fixes #101852
This commit is contained in:
parent
12e362989b
commit
2f9a240b91
2 changed files with 36 additions and 0 deletions
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…
Add table
Add a link
Reference in a new issue