rune 0.14.2

The Rune Language, an embeddable dynamic programming language for Rust.
Documentation
prelude!();

use ErrorKind::*;

#[test]
fn illegal_pattern_in_match() -> rune::support::Result<()> {
    assert_errors! {
        r#"
        struct Foo { bar, baz }
        match () { Foo {} => {} }
        "#,
        span!(52, 58), PatternMissingFields { fields, .. } => {
            assert_eq!(fields.len(), 2);
            assert_eq!(fields[0].as_ref(), "bar");
            assert_eq!(fields[1].as_ref(), "baz");
        }
    };

    assert_errors! {
        r#"
        struct Foo { bar, baz }
        match () { Foo { bar } => {} }
        "#,
        span!(52, 63), PatternMissingFields { fields, .. } => {
            assert_eq!(fields.len(), 1);
            assert_eq!(fields[0].as_ref(), "baz");
        }
    };

    Ok(())
}