blob: c2497ba17a921ca8e9af925ce6fd6eda74b6bd84 [file] [log] [blame]
-- 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 + 0
[file b.py]
import a
def g() -> int:
reveal_type(a.y)
return a.y
1 / ''
x = 1 + 1
[out]
==== Errors flushed ====
b.py:3: note: Revealed type is 'builtins.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 'builtins.int'