Test associated const default qualifs cross-crate
This also tests for the ICE in #71734
This commit is contained in:
parent
a91d64873f
commit
bcc44b8e02
@ -9,3 +9,8 @@ impl PartialEq for CustomEq {
|
||||
|
||||
pub const NONE: Option<CustomEq> = None;
|
||||
pub const SOME: Option<CustomEq> = Some(CustomEq);
|
||||
|
||||
pub trait AssocConst {
|
||||
const NONE: Option<CustomEq> = None;
|
||||
const SOME: Option<CustomEq> = Some(CustomEq);
|
||||
}
|
||||
|
@ -4,7 +4,11 @@
|
||||
|
||||
extern crate consts;
|
||||
|
||||
struct Defaulted;
|
||||
impl consts::AssocConst for Defaulted {}
|
||||
|
||||
fn main() {
|
||||
let _ = Defaulted;
|
||||
match None {
|
||||
consts::SOME => panic!(),
|
||||
//~^ must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
@ -12,4 +16,12 @@ fn main() {
|
||||
|
||||
_ => {}
|
||||
}
|
||||
|
||||
match None {
|
||||
<Defaulted as consts::AssocConst>::SOME => panic!(),
|
||||
//~^ must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
//~| must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
|
@ -1,14 +1,26 @@
|
||||
error: to use a constant of type `consts::CustomEq` in a pattern, `consts::CustomEq` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/cross-crate-fail.rs:9:9
|
||||
--> $DIR/cross-crate-fail.rs:13:9
|
||||
|
|
||||
LL | consts::SOME => panic!(),
|
||||
| ^^^^^^^^^^^^
|
||||
|
||||
error: to use a constant of type `consts::CustomEq` in a pattern, `consts::CustomEq` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/cross-crate-fail.rs:9:9
|
||||
--> $DIR/cross-crate-fail.rs:21:9
|
||||
|
|
||||
LL | <Defaulted as consts::AssocConst>::SOME => panic!(),
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: to use a constant of type `consts::CustomEq` in a pattern, `consts::CustomEq` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/cross-crate-fail.rs:13:9
|
||||
|
|
||||
LL | consts::SOME => panic!(),
|
||||
| ^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: to use a constant of type `consts::CustomEq` in a pattern, `consts::CustomEq` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/cross-crate-fail.rs:21:9
|
||||
|
|
||||
LL | <Defaulted as consts::AssocConst>::SOME => panic!(),
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
@ -6,9 +6,18 @@
|
||||
extern crate consts;
|
||||
use consts::CustomEq;
|
||||
|
||||
struct Defaulted;
|
||||
impl consts::AssocConst for Defaulted {}
|
||||
|
||||
fn main() {
|
||||
let _ = Defaulted;
|
||||
match Some(CustomEq) {
|
||||
consts::NONE => panic!(),
|
||||
_ => {}
|
||||
}
|
||||
|
||||
match Some(CustomEq) {
|
||||
<Defaulted as consts::AssocConst>::NONE => panic!(),
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user