mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-02 11:44:28 +00:00
Rollup merge of #98050 - JohnTitor:issue-67945, r=compiler-errors
Add some more regression tests for #67945 Closes #67945, added two tests from https://github.com/rust-lang/rust/issues/67945#issuecomment-572617285, other snippets were already added in #71952 and #77439 r? `@compiler-errors`
This commit is contained in:
commit
3f17cd7cbb
16
src/test/ui/const-generics/issues/issue-67945-3.full.stderr
Normal file
16
src/test/ui/const-generics/issues/issue-67945-3.full.stderr
Normal file
@ -0,0 +1,16 @@
|
||||
error: overly complex generic constant
|
||||
--> $DIR/issue-67945-3.rs:10:13
|
||||
|
|
||||
LL | A: [(); {
|
||||
| _____________^
|
||||
LL | | let x: Option<S> = None;
|
||||
LL | |
|
||||
LL | | 0
|
||||
LL | | }],
|
||||
| |_____^ blocks are not supported in generic constant
|
||||
|
|
||||
= help: consider moving this anonymous constant into a `const` function
|
||||
= note: this operation may be supported in the future
|
||||
|
||||
error: aborting due to previous error
|
||||
|
21
src/test/ui/const-generics/issues/issue-67945-3.min.stderr
Normal file
21
src/test/ui/const-generics/issues/issue-67945-3.min.stderr
Normal file
@ -0,0 +1,21 @@
|
||||
error: generic parameters may not be used in const operations
|
||||
--> $DIR/issue-67945-3.rs:11:23
|
||||
|
|
||||
LL | let x: Option<S> = None;
|
||||
| ^ cannot perform const operation using `S`
|
||||
|
|
||||
= note: type parameters may not be used in const expressions
|
||||
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
|
||||
|
||||
error[E0392]: parameter `S` is never used
|
||||
--> $DIR/issue-67945-3.rs:9:12
|
||||
|
|
||||
LL | struct Bug<S> {
|
||||
| ^ unused parameter
|
||||
|
|
||||
= help: consider removing `S`, referring to it in a field, or using a marker such as `PhantomData`
|
||||
= help: if you intended `S` to be a const parameter, use `const S: usize` instead
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0392`.
|
17
src/test/ui/const-generics/issues/issue-67945-3.rs
Normal file
17
src/test/ui/const-generics/issues/issue-67945-3.rs
Normal file
@ -0,0 +1,17 @@
|
||||
// Regression test for
|
||||
// https://github.com/rust-lang/rust/issues/67945#issuecomment-572617285
|
||||
// Make sure we don't emit an E0277 error.
|
||||
|
||||
// revisions: full min
|
||||
#![cfg_attr(full, feature(generic_const_exprs))]
|
||||
#![cfg_attr(full, allow(incomplete_features))]
|
||||
|
||||
struct Bug<S> { //[min]~ ERROR: parameter `S` is never used
|
||||
A: [(); { //[full]~ ERROR: overly complex generic constant
|
||||
let x: Option<S> = None;
|
||||
//[min]~^ ERROR: generic parameters may not be used in const operations
|
||||
0
|
||||
}],
|
||||
}
|
||||
|
||||
fn main() {}
|
16
src/test/ui/const-generics/issues/issue-67945-4.full.stderr
Normal file
16
src/test/ui/const-generics/issues/issue-67945-4.full.stderr
Normal file
@ -0,0 +1,16 @@
|
||||
error: overly complex generic constant
|
||||
--> $DIR/issue-67945-4.rs:9:13
|
||||
|
|
||||
LL | A: [(); {
|
||||
| _____________^
|
||||
LL | | let x: Option<Box<S>> = None;
|
||||
LL | |
|
||||
LL | | 0
|
||||
LL | | }],
|
||||
| |_____^ blocks are not supported in generic constant
|
||||
|
|
||||
= help: consider moving this anonymous constant into a `const` function
|
||||
= note: this operation may be supported in the future
|
||||
|
||||
error: aborting due to previous error
|
||||
|
21
src/test/ui/const-generics/issues/issue-67945-4.min.stderr
Normal file
21
src/test/ui/const-generics/issues/issue-67945-4.min.stderr
Normal file
@ -0,0 +1,21 @@
|
||||
error: generic parameters may not be used in const operations
|
||||
--> $DIR/issue-67945-4.rs:10:27
|
||||
|
|
||||
LL | let x: Option<Box<S>> = None;
|
||||
| ^ cannot perform const operation using `S`
|
||||
|
|
||||
= note: type parameters may not be used in const expressions
|
||||
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
|
||||
|
||||
error[E0392]: parameter `S` is never used
|
||||
--> $DIR/issue-67945-4.rs:8:12
|
||||
|
|
||||
LL | struct Bug<S> {
|
||||
| ^ unused parameter
|
||||
|
|
||||
= help: consider removing `S`, referring to it in a field, or using a marker such as `PhantomData`
|
||||
= help: if you intended `S` to be a const parameter, use `const S: usize` instead
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0392`.
|
16
src/test/ui/const-generics/issues/issue-67945-4.rs
Normal file
16
src/test/ui/const-generics/issues/issue-67945-4.rs
Normal file
@ -0,0 +1,16 @@
|
||||
// Regression test for
|
||||
// https://github.com/rust-lang/rust/issues/67945#issuecomment-572617285
|
||||
|
||||
// revisions: full min
|
||||
#![cfg_attr(full, feature(generic_const_exprs))]
|
||||
#![cfg_attr(full, allow(incomplete_features))]
|
||||
|
||||
struct Bug<S> { //[min]~ ERROR: parameter `S` is never used
|
||||
A: [(); { //[full]~ ERROR: overly complex generic constant
|
||||
let x: Option<Box<S>> = None;
|
||||
//[min]~^ ERROR: generic parameters may not be used in const operations
|
||||
0
|
||||
}],
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user