| -- Test cases for incremental error streaming. | |
| -- Each time errors are reported, '==== Errors flushed ====' is printed. | |
| [case testErrorStream] | |
| import b | |
| [file a.py] | |
| 1 + '' | |
| [file b.py] | |
| import a | |
| '' / 2 | |
| [out] | |
| ==== Errors flushed ==== | |
| a.py:1: error: Unsupported operand types for + ("int" and "str") | |
| ==== Errors flushed ==== | |
| b.py:2: error: Unsupported operand types for / ("str" and "int") | |
| [case testBlockers] | |
| import b | |
| [file a.py] | |
| 1 + '' | |
| [file b.py] | |
| import a | |
| break | |
| 1 / '' # won't get reported, after a blocker | |
| [out] | |
| ==== Errors flushed ==== | |
| a.py:1: error: Unsupported operand types for + ("int" and "str") | |
| ==== Errors flushed ==== | |
| b.py:2: error: "break" outside loop | |
| [case testCycles] | |
| import a | |
| [file a.py] | |
| import b | |
| 1 + '' | |
| def f() -> int: | |
| reveal_type(b.x) | |
| return b.x | |
| y = 0 + int() | |
| [file b.py] | |
| import a | |
| def g() -> int: | |
| reveal_type(a.y) | |
| return a.y | |
| 1 / '' | |
| x = 1 + int() | |
| [out] | |
| ==== Errors flushed ==== | |
| b.py:3: note: Revealed type is "int" | |
| b.py:5: error: Unsupported operand types for / ("int" and "str") | |
| ==== Errors flushed ==== | |
| a.py:2: error: Unsupported operand types for + ("int" and "str") | |
| a.py:4: note: Revealed type is "int" |