MCPcopy Index your code
hub / github.com/endbasic/endbasic / test_if_errors

Function test_if_errors

core/src/parser.rs:3875–3921  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

3873
3874 #[test]
3875 fn test_if_errors() {
3876 do_error_test("IF\n", "1:3: No expression in IF statement");
3877 do_error_test("IF 3 + 1", "1:9: No THEN in IF statement");
3878 do_error_test("IF 3 + 1\n", "1:9: No THEN in IF statement");
3879 do_error_test("IF 3 + 1 PRINT foo\n", "1:10: Unexpected value in expression");
3880 do_error_test("IF 3 + 1\nPRINT foo\n", "1:9: No THEN in IF statement");
3881 do_error_test("IF 3 + 1 THEN", "1:1: IF without END IF");
3882
3883 do_error_test("IF 1 THEN\n", "1:1: IF without END IF");
3884 do_error_test("IF 1 THEN\nELSEIF 1 THEN\n", "1:1: IF without END IF");
3885 do_error_test("IF 1 THEN\nELSE\n", "1:1: IF without END IF");
3886 do_error_test("REM\n IF 1 THEN\n", "2:4: IF without END IF");
3887
3888 do_error_test("IF 1 THEN\nELSEIF\n", "2:7: No expression in ELSEIF statement");
3889 do_error_test("IF 1 THEN\nELSEIF 3 + 1", "2:13: No THEN in ELSEIF statement");
3890 do_error_test("IF 1 THEN\nELSEIF 3 + 1\n", "2:13: No THEN in ELSEIF statement");
3891 do_error_test(
3892 "IF 1 THEN\nELSEIF 3 + 1 PRINT foo\n",
3893 "2:14: Unexpected value in expression",
3894 );
3895 do_error_test("IF 1 THEN\nELSEIF 3 + 1\nPRINT foo\n", "2:13: No THEN in ELSEIF statement");
3896 do_error_test("IF 1 THEN\nELSEIF 3 + 1 THEN", "2:18: Expecting newline after THEN");
3897
3898 do_error_test("IF 1 THEN\nELSE", "2:5: Expecting newline after ELSE");
3899 do_error_test("IF 1 THEN\nELSE foo", "2:6: Expecting newline after ELSE");
3900
3901 do_error_test("IF 1 THEN\nEND", "1:1: IF without END IF");
3902 do_error_test("IF 1 THEN\nEND\n", "1:1: IF without END IF");
3903 do_error_test("IF 1 THEN\nEND IF foo", "2:8: Expected newline but found foo");
3904 do_error_test("IF 1 THEN\nEND SELECT\n", "2:1: END SELECT without SELECT");
3905 do_error_test("IF 1 THEN\nEND SELECT\nEND IF\n", "2:1: END SELECT without SELECT");
3906
3907 do_error_test(
3908 "IF 1 THEN\nELSE\nELSEIF 2 THEN\nEND IF",
3909 "3:1: Unexpected ELSEIF after ELSE",
3910 );
3911 do_error_test("IF 1 THEN\nELSE\nELSE\nEND IF", "3:1: Duplicate ELSE after ELSE");
3912
3913 do_error_test_no_reset("ELSEIF 1 THEN\nEND IF", "1:1: Unexpected ELSEIF in statement");
3914 do_error_test_no_reset("ELSE 1\nEND IF", "1:1: Unexpected ELSE in statement");
3915
3916 do_error_test("IF 1 THEN\nEND 3 IF", "2:7: Unexpected keyword in expression");
3917 do_error_test("END 3 IF", "1:7: Unexpected keyword in expression");
3918 do_error_test("END IF", "1:1: END IF without IF");
3919
3920 do_error_test("IF TRUE THEN PRINT ELSE ELSE", "1:25: Unexpected ELSE in uniline IF branch");
3921 }
3922
3923 #[test]
3924 fn test_if_uniline_then() {

Callers

nothing calls this directly

Calls 2

do_error_testFunction · 0.85
do_error_test_no_resetFunction · 0.85

Tested by

no test coverage detected