use vm::compiler::TypeSchema;
use vm::{ReplLocalBinding, ReplLocalState, compile_source_for_repl_with_state};
#[test]
fn public_repl_state_api_preserves_moved_local_semantics() {
let binding = ReplLocalBinding {
name: "message".to_string(),
mutable: false,
schema: Some(TypeSchema::String),
optional: false,
};
let available = ReplLocalState {
binding: binding.clone(),
moved: false,
};
compile_source_for_repl_with_state("message;", &[available])
.expect("available local should compile");
let moved = ReplLocalState {
binding,
moved: true,
};
assert!(
compile_source_for_repl_with_state("message;", &[moved]).is_err(),
"moved local must be rejected"
);
}