Skip to content

Commit 6239296

Browse files
committed
Auto merge of #74772 - JohnTitor:add-tests, r=lcnr
Add some regression tests cc #56445 Fixes #72911
2 parents 13f9aa1 + 8dcf868 commit 6239296

File tree

4 files changed

+88
-0
lines changed

4 files changed

+88
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Regression test for https://github.com/rust-lang/rust/issues/56445#issuecomment-518402995.
2+
3+
#![feature(const_generics)]
4+
//~^ WARN: the feature `const_generics` is incomplete
5+
#![crate_type = "lib"]
6+
7+
use std::marker::PhantomData;
8+
9+
struct Bug<'a, const S: &'a str>(PhantomData<&'a ()>);
10+
//~^ ERROR: use of non-static lifetime `'a` in const generic
11+
12+
impl Bug<'_, ""> {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes
2+
--> $DIR/issue-56445.rs:3:12
3+
|
4+
LL | #![feature(const_generics)]
5+
| ^^^^^^^^^^^^^^
6+
|
7+
= note: `#[warn(incomplete_features)]` on by default
8+
= note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information
9+
10+
error[E0771]: use of non-static lifetime `'a` in const generic
11+
--> $DIR/issue-56445.rs:9:26
12+
|
13+
LL | struct Bug<'a, const S: &'a str>(PhantomData<&'a ()>);
14+
| ^^
15+
|
16+
= note: for more information, see issue #74052 <https://github.com/rust-lang/rust/issues/74052>
17+
18+
error: aborting due to previous error; 1 warning emitted
19+
20+
For more information about this error, try `rustc --explain E0771`.

src/test/ui/impl-trait/issue-72911.rs

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Regression test for #72911.
2+
3+
pub struct Lint {}
4+
5+
impl Lint {}
6+
7+
pub fn gather_all() -> impl Iterator<Item = Lint> {
8+
//~^ ERROR: cannot resolve opaque type
9+
lint_files().flat_map(|f| gather_from_file(&f))
10+
}
11+
12+
fn gather_from_file(dir_entry: &foo::MissingItem) -> impl Iterator<Item = Lint> {
13+
//~^ ERROR: failed to resolve
14+
unimplemented!()
15+
}
16+
17+
fn lint_files() -> impl Iterator<Item = foo::MissingItem> {
18+
//~^ ERROR: failed to resolve
19+
unimplemented!()
20+
}
21+
22+
fn main() {}
+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
error[E0433]: failed to resolve: use of undeclared type or module `foo`
2+
--> $DIR/issue-72911.rs:12:33
3+
|
4+
LL | fn gather_from_file(dir_entry: &foo::MissingItem) -> impl Iterator<Item = Lint> {
5+
| ^^^ use of undeclared type or module `foo`
6+
7+
error[E0433]: failed to resolve: use of undeclared type or module `foo`
8+
--> $DIR/issue-72911.rs:17:41
9+
|
10+
LL | fn lint_files() -> impl Iterator<Item = foo::MissingItem> {
11+
| ^^^ use of undeclared type or module `foo`
12+
13+
error[E0720]: cannot resolve opaque type
14+
--> $DIR/issue-72911.rs:7:24
15+
|
16+
LL | pub fn gather_all() -> impl Iterator<Item = Lint> {
17+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ recursive opaque type
18+
LL |
19+
LL | lint_files().flat_map(|f| gather_from_file(&f))
20+
| -----------------------------------------------
21+
| |
22+
| returning here with type `std::iter::FlatMap<impl std::iter::Iterator, [type error], [closure@$DIR/issue-72911.rs:9:27: 9:51]>`
23+
| returning here with type `std::iter::FlatMap<impl std::iter::Iterator, [type error], [closure@$DIR/issue-72911.rs:9:27: 9:51]>`
24+
...
25+
LL | fn gather_from_file(dir_entry: &foo::MissingItem) -> impl Iterator<Item = Lint> {
26+
| -------------------------- returning this opaque type `std::iter::FlatMap<impl std::iter::Iterator, [type error], [closure@$DIR/issue-72911.rs:9:27: 9:51]>`
27+
...
28+
LL | fn lint_files() -> impl Iterator<Item = foo::MissingItem> {
29+
| -------------------------------------- returning this opaque type `std::iter::FlatMap<impl std::iter::Iterator, [type error], [closure@$DIR/issue-72911.rs:9:27: 9:51]>`
30+
31+
error: aborting due to 3 previous errors
32+
33+
Some errors have detailed explanations: E0433, E0720.
34+
For more information about an error, try `rustc --explain E0433`.

0 commit comments

Comments
 (0)