未验证 提交 c4b43d89 编写于 作者: Y Yuki Okushi

Add some more regression tests for #67945

上级 083721a1
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
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`.
// 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() {}
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
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`.
// 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() {}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册