mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-03 02:40:40 +00:00
33 lines
693 B
Rust
33 lines
693 B
Rust
//! Check for correct initialization of `HashSet` with enums. This is a regression test for a
|
|
//! codegen bug that caused the `HashSet` to appear as if it contained one of each enum variant.
|
|
//!
|
|
//! Regression test for <https://github.com/rust-lang/rust/issues/42918>
|
|
|
|
//@ run-pass
|
|
//@ compile-flags: -O
|
|
|
|
#![allow(dead_code)]
|
|
|
|
use std::collections::HashSet;
|
|
|
|
#[derive(PartialEq, Debug, Hash, Eq, Clone, PartialOrd, Ord)]
|
|
enum MyEnum {
|
|
E0,
|
|
E1,
|
|
E2,
|
|
E3,
|
|
E4,
|
|
E5,
|
|
E6,
|
|
E7,
|
|
}
|
|
|
|
fn main() {
|
|
use MyEnum::*;
|
|
let s: HashSet<_> = [E4, E1].iter().cloned().collect();
|
|
let mut v: Vec<_> = s.into_iter().collect();
|
|
v.sort();
|
|
|
|
assert_eq!([E1, E4], &v[..]);
|
|
}
|