use rhai::{Engine, EvalAltResult}; #[test] fn test_constant() -> Result<(), EvalAltResult> { let mut engine = Engine::new(); assert_eq!(engine.eval::("const x = 123; x")?, 123); match engine.eval::("const x = 123; x = 42;") { Err(EvalAltResult::ErrorAssignmentToConstant(var, _)) if var == "x" => (), Err(err) => return Err(err), Ok(_) => panic!("expecting compilation error"), } #[cfg(not(feature = "no_index"))] match engine.eval::("const x = [1, 2, 3, 4, 5]; x[2] = 42;") { Err(EvalAltResult::ErrorAssignmentToConstant(var, _)) if var == "x" => (), Err(err) => return Err(err), Ok(_) => panic!("expecting compilation error"), } Ok(()) }