diff --git a/integration_tests/CMakeLists.txt b/integration_tests/CMakeLists.txt index d73d3520a3..93da87d7ef 100644 --- a/integration_tests/CMakeLists.txt +++ b/integration_tests/CMakeLists.txt @@ -469,6 +469,7 @@ RUN(NAME print_list_tuple_01 LABELS cpython llvm llvm_jit c NOFAST) RUN(NAME print_list_tuple_02 LABELS cpython llvm llvm_jit c NOFAST) RUN(NAME print_list_tuple_03 LABELS cpython llvm llvm_jit c NOFAST) RUN(NAME test_list_item_mixed_print LABELS cpython llvm llvm_jit c NOFAST) +RUN(NAME test_intrinsic_function_mixed_print LABELS cpython llvm llvm_jit NOFAST) # CPython and LLVM RUN(NAME const_01 LABELS cpython llvm llvm_jit c wasm) diff --git a/integration_tests/test_intrinsic_function_mixed_print.py b/integration_tests/test_intrinsic_function_mixed_print.py new file mode 100644 index 0000000000..8c5ee2f32d --- /dev/null +++ b/integration_tests/test_intrinsic_function_mixed_print.py @@ -0,0 +1,25 @@ +from lpython import i32 + +def test_intrinsic_function_mixed_print(): + # list and list methods + my_list: list[i32] = [1, 2, 3, 4, 5] + print("Popped element:", my_list.pop()) + assert my_list == [1, 2, 3, 4] + + print("1 is located at:", my_list.index(1)) + assert my_list.index(1) == 0 + + my_list.append(2) + print("2 is present", my_list.count(2), "times") + assert my_list.count(2) == 2 + + print(my_list.pop(), my_list) + assert my_list == [1, 2, 3, 4] + + # dict and dict methods + my_dict: dict[str, i32] = {"first": 1, "second": 2, "third": 3} + print("Keys:", my_dict.keys()) + print("Value of 'third':", my_dict.pop("third")) + assert len(my_dict.keys()) == 2 + +test_intrinsic_function_mixed_print() \ No newline at end of file diff --git a/src/libasr/pass/replace_symbolic.cpp b/src/libasr/pass/replace_symbolic.cpp index 6e4aa5a7d2..567b5a686f 100644 --- a/src/libasr/pass/replace_symbolic.cpp +++ b/src/libasr/pass/replace_symbolic.cpp @@ -816,6 +816,8 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor(*val)) { ASR::Cast_t* cast_t = ASR::down_cast(val); diff --git a/tests/reference/runtime-test_intrinsic_function_mixed_print-a862825.json b/tests/reference/runtime-test_intrinsic_function_mixed_print-a862825.json new file mode 100644 index 0000000000..4a4b853c8e --- /dev/null +++ b/tests/reference/runtime-test_intrinsic_function_mixed_print-a862825.json @@ -0,0 +1,13 @@ +{ + "basename": "runtime-test_intrinsic_function_mixed_print-a862825", + "cmd": "lpython {infile}", + "infile": "tests/../integration_tests/test_intrinsic_function_mixed_print.py", + "infile_hash": "b0f779598e5d9868d183f1032fb3f87c131fedacf7848aaed6c4d238", + "outfile": null, + "outfile_hash": null, + "stdout": "runtime-test_intrinsic_function_mixed_print-a862825.stdout", + "stdout_hash": "a8d2083be043accf4ebe8c6a3e8a2427d492323b12d0c041ba79f10e", + "stderr": null, + "stderr_hash": null, + "returncode": 0 +} \ No newline at end of file diff --git a/tests/reference/runtime-test_intrinsic_function_mixed_print-a862825.stdout b/tests/reference/runtime-test_intrinsic_function_mixed_print-a862825.stdout new file mode 100644 index 0000000000..f0a5fb0724 --- /dev/null +++ b/tests/reference/runtime-test_intrinsic_function_mixed_print-a862825.stdout @@ -0,0 +1,6 @@ +Popped element: 5 +1 is located at: 0 +2 is present 2 times +2 [1, 2, 3, 4] +Keys: ['second', 'third', 'first'] +Value of 'third': 3 diff --git a/tests/tests.toml b/tests/tests.toml index 1f4706fd79..3e6589aef1 100644 --- a/tests/tests.toml +++ b/tests/tests.toml @@ -465,6 +465,10 @@ llvm = true filename = "../integration_tests/test_list_item_mixed_print.py" run = true +[[test]] +filename = "../integration_tests/test_intrinsic_function_mixed_print.py" +run = true + [[test]] filename = "../integration_tests/generics_01.py" asr = true