#![cfg(any(
not(any(
feature = "parser_tests",
feature = "analyzer_tests",
feature = "codegen_tests",
feature = "interpreter_tests",
feature = "conformance_tests",
feature = "integration_tests",
)),
feature = "analyzer_tests",
))]
#[path = "common/test_utils.rs"]
mod test_utils;
#[test]
#[cfg_attr(tarpaulin, ignore)]
fn test_mut_ref_no_double_borrow() {
let rust_code = test_utils::compile_fixture("mut_ref_test").expect("Compilation failed");
assert!(
rust_code.contains("modify(&mut vec)"),
"Generated code should have single &mut, got: {}",
rust_code
);
assert!(
!rust_code.contains("&mut &mut"),
"Generated code should NOT have double &mut, got: {}",
rust_code
);
assert!(
rust_code.contains("read(&vec)"),
"Generated code should have single &, got: {}",
rust_code
);
assert!(
!rust_code.contains("&&vec") && !rust_code.contains("& &vec"),
"Generated code should NOT have double &, got: {}",
rust_code
);
}