| -- Test cases for `--output=json`. |
| -- These cannot be run by the usual unit test runner because of the backslashes |
| -- in the output, which get normalized to forward slashes by the test suite on |
| -- Windows. |
| |
| [case testOutputJsonNoIssues] |
| # flags: --output=json |
| def foo() -> None: |
| pass |
| |
| foo() |
| [out] |
| |
| [case testOutputJsonSimple] |
| # flags: --output=json |
| def foo() -> None: |
| pass |
| |
| foo(1) |
| [out] |
| {"file": "main", "line": 5, "column": 0, "message": "Too many arguments for \"foo\"", "hint": null, "code": "call-arg", "severity": "error"} |
| |
| [case testOutputJsonWithHint] |
| # flags: --output=json |
| from typing import Optional, overload |
| |
| @overload |
| def foo() -> None: ... |
| @overload |
| def foo(x: int) -> None: ... |
| |
| def foo(x: Optional[int] = None) -> None: |
| ... |
| |
| reveal_type(foo) |
| |
| foo('42') |
| |
| def bar() -> None: ... |
| bar('42') |
| [out] |
| {"file": "main", "line": 12, "column": 12, "message": "Revealed type is \"Overload(def (), def (x: builtins.int))\"", "hint": null, "code": "misc", "severity": "note"} |
| {"file": "main", "line": 14, "column": 0, "message": "No overload variant of \"foo\" matches argument type \"str\"", "hint": "Possible overload variants:\n def foo() -> None\n def foo(x: int) -> None", "code": "call-overload", "severity": "error"} |
| {"file": "main", "line": 17, "column": 0, "message": "Too many arguments for \"bar\"", "hint": null, "code": "call-arg", "severity": "error"} |