Skip to content

AssertUninstantiable ParseError #51

Open
@bjfish

Description

@bjfish

I unexpectedly saw AssertUninstantiable while parsing wast files that do not contain assert_uninstantiable.

Expected:

$ cargo run
in AssertTrap

Actual:

$ cargo run
in AssertUninstantiable

Example:

use wabt::script::{Action, Command, CommandKind, Error, ScriptParser, Value};

fn main() -> Result<(), wabt::script::Error> {
    let wast = r#"
(assert_trap
  (module (func $main (unreachable)) (start $main))
  "unreachable"
)
"#;

    let mut parser: ScriptParser = ScriptParser::from_str(wast)?;
    while let Some(Command { kind, .. }) = parser.next()? {
        match kind {
            CommandKind::Module { module, name } => {
                println!("in Module");
            },
            CommandKind::AssertReturn { action, expected } => {
                println!("in AssertReturn");
            },
            CommandKind::AssertTrap { action, message: _ } => {
                println!("in AssertTrap");
            },
            CommandKind::AssertUninstantiable {module: _, message: _,} => {
                 println!("in AssertUninstantiable");
            },
            _ => panic!("there are no other commands apart from that defined above"),
        }
    }
    Ok(())
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions