Kampfkarren / full-moon

A lossless Lua 5.1 parser
Mozilla Public License 2.0
379 stars 49 forks source link

Several crashes when checking mostly broken files #310

Open qarmin opened 2 months ago

qarmin commented 2 months ago

Code

fn check_file(path: &str) {
    let Ok(data) = fs::read_to_string(path) else {
        return;
    };

    let r = full_moon::parse_fallible(&data, full_moon::LuaVersion::new());
    if r.errors().len() > 0 {
        println!("Error: {:?}", r.errors());
    }
}

crashes

thread 'main' panicked at /home/runner/.cargo/git/checkouts/full-moon-00d3a4faa692bd3d/ef8564e/full-moon/src/ast/parsers.rs:2371:53:
called `Result::unwrap()` on an `Err` value: ()
thread 'main' panicked at /home/runner/.cargo/git/checkouts/full-moon-00d3a4faa692bd3d/ef8564e/full-moon/src/ast/parsers.rs:1701:26:
internal error: entered unreachable code: unexpected interpolated string kind: End
thread 'main' panicked at /home/runner/.cargo/git/checkouts/full-moon-00d3a4faa692bd3d/ef8564e/full-moon/src/ast/parsers.rs:2666:49:
called `Result::unwrap()` on an `Err` value: ()
thread 'main' panicked at /home/runner/.cargo/git/checkouts/full-moon-00d3a4faa692bd3d/ef8564e/full-moon/src/ast/parsers.rs:2646:41:
called `Result::unwrap()` on an `Err` value: ()
thread 'main' panicked at /home/runner/.cargo/git/checkouts/full-moon-00d3a4faa692bd3d/ef8564e/full-moon/src/ast/parsers.rs:2589:41:
called `Result::unwrap()` on an `Err` value: ()
thread 'main' panicked at /home/runner/.cargo/git/checkouts/full-moon-00d3a4faa692bd3d/ef8564e/full-moon/src/ast/parsers.rs:2611:41:
called `Result::unwrap()` on an `Err` value: ()
thread 'main' panicked at /home/runner/.cargo/git/checkouts/full-moon-00d3a4faa692bd3d/ef8564e/full-moon/src/ast/parsers.rs:2568:41:
called `Result::unwrap()` on an `Err` value: ()

REPORTS_FULLMOONSHORT_1.zip