Check that value is explicitly none
This commit is contained in:
parent
78e22069d0
commit
fe39653116
@ -246,8 +246,7 @@ where
|
||||
};
|
||||
|
||||
// Check the qualifs of the value of `const` items.
|
||||
if let ty::ConstKind::Unevaluated(def, _, promoted) = constant.literal.val {
|
||||
assert!(promoted.is_none());
|
||||
if let ty::ConstKind::Unevaluated(def, _, None) = constant.literal.val {
|
||||
// Don't peek inside trait associated constants.
|
||||
if cx.tcx.trait_of_item(def.did).is_none() {
|
||||
let qualifs = if let Some((did, param_did)) = def.as_const_arg() {
|
||||
|
15
src/test/ui/issues/issue-80371.rs
Normal file
15
src/test/ui/issues/issue-80371.rs
Normal file
@ -0,0 +1,15 @@
|
||||
#![crate_type = "lib"]
|
||||
|
||||
pub struct Header<'a> {
|
||||
pub value: &'a [u8],
|
||||
}
|
||||
|
||||
pub fn test() {
|
||||
let headers = [Header{value: &[]}; 128];
|
||||
//~^ ERROR the trait bound
|
||||
}
|
||||
|
||||
pub fn test2() {
|
||||
let headers = [Header{value: &[0]}; 128];
|
||||
//~^ ERROR the trait bound
|
||||
}
|
23
src/test/ui/issues/issue-80371.stderr
Normal file
23
src/test/ui/issues/issue-80371.stderr
Normal file
@ -0,0 +1,23 @@
|
||||
error[E0277]: the trait bound `Header<'_>: Copy` is not satisfied
|
||||
--> $DIR/issue-80371.rs:8:19
|
||||
|
|
||||
LL | let headers = [Header{value: &[]}; 128];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `Header<'_>`
|
||||
|
|
||||
= note: the `Copy` trait is required because the repeated element will be copied
|
||||
= note: this array initializer can be evaluated at compile-time, see issue #49147 <https://github.com/rust-lang/rust/issues/49147> for more information
|
||||
= help: add `#![feature(const_in_array_repeat_expressions)]` to the crate attributes to enable
|
||||
|
||||
error[E0277]: the trait bound `Header<'_>: Copy` is not satisfied
|
||||
--> $DIR/issue-80371.rs:13:19
|
||||
|
|
||||
LL | let headers = [Header{value: &[0]}; 128];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `Header<'_>`
|
||||
|
|
||||
= note: the `Copy` trait is required because the repeated element will be copied
|
||||
= note: this array initializer can be evaluated at compile-time, see issue #49147 <https://github.com/rust-lang/rust/issues/49147> for more information
|
||||
= help: add `#![feature(const_in_array_repeat_expressions)]` to the crate attributes to enable
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
Loading…
x
Reference in New Issue
Block a user