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

문서 검색

명세 6.0

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

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

    진단 TPZ4001

    A runtime index operation addressed a position outside the collection/string bounds.

    Diagnostic and cause

    링크

    Index out of bounds

    계열
    topaz
    단계
    run
    코드
    TPZ4001

    원인과 조건

    Reading an Array at a computed int index less than zero or at least the array length faults during execution.

    대응

    Use an index from zero through length minus one, or test the index before the read. The repaired example reads index zero of a one-element Array.

    Compiler phase: runtime.

    Compiler explanation: A runtime index operation addressed a position outside the collection/string bounds.

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

    Observed for the candidate in Topaz 5.21.3. Execution

    • error[TPZ4001]: index 1 is out of bounds for an array of length 1

    The evaluated int index is not a valid position in the Array. Array indices start at zero and must be less than the current length; invalid reads fault instead of clamping or wrapping.

    규칙diagnostics.tpz4001.rule

    Trigger and repair

    Reading an Array at a computed int index less than zero or at least the array length faults during execution.

    Response

    링크

    Use an index from zero through length minus one, or test the index before the read. The repaired example reads index zero of a one-element Array.

    Reproduction and verification

    링크

    Product diagnostic test

    링크
    example.tpzProduct diagnostic test플레이그라운드 열기 →
    1. function readAt(index: int) -> int {
    2. let values = [10]
    3. values[index]
    4. }
    5. readAt(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 TPZ4001.

    The evaluated int index is not a valid position in the Array. Array indices start at zero and must be less than the current length; invalid reads fault instead of clamping or wrapping.

    The primary location is example.tpz:3: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 readAt(index: int) -> int {
    2. let values = [10]
    3. values[index]
    4. }
    5. readAt(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.

    메뉴

    다운로드 →