`typing.cast` の呼び出しを報告します。ここではソース型の可能な値がターゲット型に割り当て可能ではない場合を指します。 これを "非重複型" と呼ぶことができます。

これは通常、誤りです。 変換が意図的である場合は、まず表現を共通の親型に変換して、その意図を明確にします。

例:


from typing import cast

# 非重複型 — おそらくミスです
cast(int, "a")          # 'str' -> 'int'
cast(list[int], ["a"])  # 'list[str]' -> 'list[int]'

# 推奨される明示的なエスケープ・ハッチは "ダブルキャスト" を使用することです
cast(int, cast(object, "a"))  # ok

# 正当な重複ケース
cast(int, object())    # 有効なダウンキャスト
cast(object, 1)        # 有効なアップキャスト

# 次のキャストは無効です。list は不変です。 このインスペクションでは現在サポートされていません。
int_list = [1, 2, 3]
cast(list[object], int_list)

このインスペクションは静的型情報に依存しています。型が不明な場合、警告は報告されません。 ジェネリック型の可変性はまだ考慮されていません。