diff options
-rw-r--r-- | Doc/library/typing.rst | 11 | ||||
-rw-r--r-- | Doc/tools/susp-ignored.csv | 4 |
2 files changed, 7 insertions, 8 deletions
diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index cb9ba45..8b1ce34 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -974,10 +974,10 @@ These can be used as types in annotations using ``[]``, each having a unique syn def func1(val: List[object]): if is_str_list(val): - # Type of ``val`` is narrowed to List[str] + # Type of ``val`` is narrowed to ``List[str]``. print(" ".join(val)) else: - # Type of ``val`` remains as List[object] + # Type of ``val`` remains as ``List[object]``. print("Not a list of strings!") If ``is_str_list`` is a class or instance method, then the type in @@ -994,12 +994,7 @@ These can be used as types in annotations using ``[]``, each having a unique syn wider form. The main reason is to allow for things like narrowing ``List[object]`` to ``List[str]`` even though the latter is not a subtype of the former, since ``List`` is invariant. - The responsibility of - writing type-safe type guards is left to the user. Even if - the type guard function passes type checks, it may still fail at runtime. - The type guard function may perform erroneous checks and return wrong - booleans. Consequently, the type it promises in ``TypeGuard[TypeB]`` may - not hold. + The responsibility of writing type-safe type guards is left to the user. ``TypeGuard`` also works with type variables. For more information, see :pep:`647` (User-Defined Type Guards). diff --git a/Doc/tools/susp-ignored.csv b/Doc/tools/susp-ignored.csv index b9e1067..5a2d85d 100644 --- a/Doc/tools/susp-ignored.csv +++ b/Doc/tools/susp-ignored.csv @@ -370,3 +370,7 @@ library/importlib.metadata,,:main,"EntryPoint(name='wheel', value='wheel.cli:mai library/importlib.metadata,,`,loading the metadata for packages for the indicated ``context``. library/re,,`,"`" using/configure,84,:db2,=db1:db2:... +library/typing,1004,`,# Type of ``val`` is narrowed to ``str`` +library/typing,1004,`,"# Else, type of ``val`` is narrowed to ``float``." +library/typing,1004,`,# Type of ``val`` is narrowed to ``List[str]``. +library/typing,1004,`,# Type of ``val`` remains as ``List[object]``. |