use rune_testing::*;
#[test]
fn test_path_type_match() {
assert_eq! {
rune! {
bool => r#"
enum Custom { A, B(a) }
fn main() {
match Custom::A { Custom::A => true, _ => false }
}
"#
},
true,
};
assert_eq! {
rune! {
bool => r#"
enum Custom { A, B(a) }
fn main() {
match Custom::B(0) { Custom::A => true, _ => false }
}
"#
},
false,
};
assert_eq! {
rune! {
bool => r#"
enum Custom { A, B(a) }
fn main() {
match Custom::B(0) { Custom::B(0) => true, _ => false }
}
"#
},
true,
};
assert_eq! {
rune! {
bool => r#"
enum Custom { A, B { a } }
fn main() {
match (Custom::B { a: 0 }) { Custom::B { a: 0 } => true, _ => false }
}
"#
},
true,
};
assert_eq! {
rune! {
bool => r#"
enum Custom { A, B { a } }
fn test(a) { a == 0 }
fn main() {
match (Custom::B { a: 0 }) { Custom::B { a } if test(a) => true, _ => false }
}
"#
},
true,
};
}