luau-syntax 0.732.0

Luau lexer, parser, AST, CST, and source utilities
Documentation
use super::super::common::*;

// Parser.test.cpp: error_on_non_utf8_sequence
#[test]
fn error_on_non_utf8_sequence_outside_strings() {
    for source in [
        b"local pi = \xFF!".as_slice(),
        b"local pi = \xE2!".as_slice(),
    ] {
        with_parse_bytes(source, ParseOptions::default(), |result| {
            let errors = result.unwrap().metadata.errors;

            assert_eq!(
                errors[0].message,
                "Expected identifier when parsing expression, got invalid UTF-8 sequence"
            );
        });
    }
}

#[test]
fn error_on_non_utf8_sequence_inside_unexpected_string() {
    with_parse_bytes(b"value.\"\xFF\"", ParseOptions::default(), |result| {
        let errors = match result {
            Ok(result) => result.metadata.errors,
            Err(errors) => errors.into_errors(),
        };

        assert_eq!(errors[0].message, "Expected identifier, got \"\"");
    });
}