diff --git a/src/protocol/tests/parser_validation.rs b/src/protocol/tests/parser_validation.rs index a6c63495b33f7bace49de11de94829744a70b7f1..f6cb386849c640aa79f36a3f3d96477e9161917b 100644 --- a/src/protocol/tests/parser_validation.rs +++ b/src/protocol/tests/parser_validation.rs @@ -651,14 +651,29 @@ fn test_incorrect_select_statement() { .assert_msg_has(0, "inside sync blocks"); }); - Tester::new_single_source_expect_ok( + Tester::new_single_source_expect_err( "variable in previous block", "primitive f() { channel tx -> rx; u32 a = 0; // this one will be shadowed sync select { auto a = get(rx) -> {} } }" - ); + ).error(|e| { e + .assert_num(2) + .assert_occurs_at(0, "a = get").assert_msg_has(0, "variable name conflicts") + .assert_occurs_at(1, "a = 0").assert_msg_has(1, "Previous variable"); + }); + + Tester::new_single_source_expect_err( + "put inside arm", + "primitive f() { + channel a -> b; + sync select { put(a) -> {} } + }" + ).error(|e| { e + .assert_occurs_at(0, "put") + .assert_msg_has(0, "may not occur"); + }); } #[test]