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

문서 검색

명세 6.0

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

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

    진단 TPZ5534

    A typed JSON decode target is not a supported concrete Topaz data shape.

    Diagnostic and cause

    링크

    Type is not JSON decodable

    계열
    topaz
    단계
    check
    코드
    TPZ5534

    원인과 조건

    json.parseAs requires an explicit JSON-decodable result type. Calling json.parseAs("1") without a type argument is rejected with TPZ5534; json.parseAs<int>("1") is accepted.

    대응

    Supply the target type after json.parseAs, such as json.parseAs<int>("1"). Choose a JSON-decodable type for the result.

    Compiler phase: check.

    Compiler explanation: A typed JSON decode target is not a supported concrete Topaz data shape.

    Message templates. The marker ⟨value⟩ stands for text computed for the reported program.

    • ⟨value⟩ requires an explicit type argument, e.g. ⟨value⟩<User>(...) Source
    • ⟨value⟩ is not JSON-decodable, so ⟨value⟩ cannot decode into it Source

    json.parseAs requires an explicit decodable result type. A call without type arguments is rejected with TPZ5534 even when its text contains a valid JSON integer.

    규칙diagnostics.tpz5534.p5.rule

    Typed JSON decoding needs a type argument

    json.parseAs requires an explicit JSON-decodable result type. Calling json.parseAs("1") without a type argument is rejected with TPZ5534; json.parseAs<int>("1") is accepted.

    Response

    링크

    Supply the target type after json.parseAs, such as json.parseAs<int>("1"). Choose a JSON-decodable type for the result.

    Reproduction and verification

    링크

    Rejected program

    링크
    example.tpzRejected program플레이그라운드 열기 →
    1. import std.json
    2. let decoded = json.parseAs("1")
    기대 출력0이 아닌 종료 코드
    표준 출력 없음.
    $ topaz check example.tpz · 대상 제품 5.21.3
    기대 결과

    기대 결과

    거절 단계 check. 종료 코드가 0이 아닙니다.

    A bare call without type arguments can also report TPZ5020 for missing contextual type. The diagnostic assertion requires TPZ5534 and permits that accompanying diagnostic.

    Repaired program

    링크
    example.tpzRepaired program
    1. import std.json
    2. let decoded = json.parseAs<int>("1")
    기대 출력종료 코드 0
    $ topaz check example.tpz · 대상 제품 5.21.3
    기대 결과

    기대 결과

    검사가 프로그램을 받아들입니다. 종료 코드 0.

    A bare call without type arguments can also report TPZ5020 for missing contextual type. The diagnostic assertion requires TPZ5534 and permits that accompanying diagnostic.

    메뉴

    다운로드 →