타깃 타입에 대입될 수 있는 소스 타입 값이 없는 `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)

검사는 정적 타입 정보를 기반으로 합니다. 타입이 알려지지 않은 경우 경고가 보고되지 않습니다. 제네릭 타입의 변형은 아직 고려되지 않았습니다.