diff --git a/docs/typesystem.md b/docs/typesystem.md index 7bf6f29e..5a96e409 100644 --- a/docs/typesystem.md +++ b/docs/typesystem.md @@ -292,10 +292,8 @@ Two custom checks are exposed by `pyanalyze.extensions`: Although pyanalyze aims to support the full Python type system, support for some features is still missing or incomplete, including: -- Overloaded functions -- Bounds, constraints, and variance of TypeVars +- Variance of TypeVars - `NewType` over non-trivial types -- `Protocol` (PEP 544) - `ParamSpec` (PEP 612) More generally, Python is sufficiently dynamic that almost any check like the ones run by pyanalyze will inevitably have false positives: cases where the script sees an error, but the code in fact runs fine. Attributes may be added at runtime in hard-to-detect ways, variables may be created by direct manipulation of the `globals()` dictionary, and the `unittest.mock` module can change anything into anything. Although pyanalyze has a number of configuration mechanisms to deal with these false positives, it is usually better to write code in a way that doesn't require use of these knobs: code that's easier for the script to understand is probably also easier for humans to understand.