본문으로 건너뛰기
토파즈6.0 · 출시 전
다운로드 →

문서 검색

명세 6.0

방향키로 결과를 고르고 Enter를 눌러 여세요.

API 이름, 진단 번호, 규칙 또는 프로젝트 주제를 입력하세요.

    진단 TPZ4004

    A checked integer operation exceeded the int range.

    Diagnostic and cause

    링크

    Integer overflow

    계열
    topaz
    단계
    run
    코드
    TPZ4004

    원인과 조건

    An int addition whose mathematical result is outside the signed 64-bit int range faults at the addition expression. The range failures specified by Duration values use the same runtime diagnostic, TPZ4004.

    대응

    Check that the intended result fits in int, or change the arithmetic representation. The repair adds zero to the maximum int value and stays at the representable boundary.

    Compiler phase: runtime.

    Compiler explanation: A checked integer operation exceeded the int range.

    Message templates are Pending. The explanation above is not an observed CLI message.

    Observed for the candidate in Topaz 5.21.3. Execution

    • error[TPZ4004]: integer addition overflows

    An int operation produces a result outside the signed 64-bit range, or a Duration operation violates the range rules in Duration values.

    규칙diagnostics.tpz4004.rule

    Trigger and repair

    An int addition whose mathematical result is outside the signed 64-bit int range faults at the addition expression. The range failures specified by Duration values use the same runtime diagnostic, TPZ4004.

    이유

    Duration range failures use the existing integer overflow diagnostic. One code describes an arithmetic result that cannot be represented.

    Response

    링크

    Check that the intended result fits in int, or change the arithmetic representation. The repair adds zero to the maximum int value and stays at the representable boundary.

    Reproduction and verification

    링크

    Product diagnostic test

    링크
    example.tpzProduct diagnostic test플레이그라운드 열기 →
    1. function add(left: int, right: int) -> int {
    2. left + right
    3. }
    4. add(9223372036854775807, 1)
    대상 제품 5.21.3
    기대 결과

    기대 결과

    The separate diagnostic product test validates this command, runtime diagnostic, or filesystem setup. The shared example runner does not execute that assertion plan.

    Run topaz run example.tpz --language-version 5.21.

    Expect exit status 1, empty standard output, and TPZ4004.

    The evaluated operands of an int operation produce a result outside the representable signed 64-bit range. The reproduced case adds one to the maximum int value; the operation faults instead of wrapping.

    The primary location is example.tpz:2:5.

    Expect exactly one diagnostic.

    The diagnostic product test checks these expectations with the same files and command.

    Corrected program

    링크
    example.tpzCorrected program
    1. function add(left: int, right: int) -> int {
    2. left + right
    3. }
    4. add(9223372036854775807, 0)
    기대 출력종료 코드 0
    표준 출력 없음.
    $ topaz run example.tpz · 대상 제품 5.21.3
    기대 결과

    기대 결과

    실행을 마칩니다. 종료 코드 0.

    This program applies the repair described above. The verification status records whether it has been run.

    메뉴

    다운로드 →