blob: 46af433f8916ebb1fb329c8c1fae7d427a69b7ab [file] [log] [blame] [edit]
-- 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 "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"