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

문서 검색

명세 6.0

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

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

    진단 TPZ5530

    A derives clause asks for generated protocol behavior that this type's fields or payloads cannot support.

    Diagnostic and cause

    링크

    Protocol cannot be derived for this type

    계열
    topaz
    단계
    check
    코드
    TPZ5530

    원인과 조건

    Deriving Eq requires every contained field type to support equality. A function-valued field prevents Eq derivation and produces TPZ5530.

    대응

    Use a supported derives protocol and compatible stored types. Remove the clause or write an admitted manual implementation where that protocol permits one.

    Compiler phase: check.

    Compiler explanation: A derives clause asks for generated protocol behavior that this type's fields or payloads cannot support.

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

    • unknown protocol ⟨value⟩ in derives for ⟨value⟩; derivable protocols are Eq, Order, Show, JSON Source

    Observed for the candidate in Topaz 5.21.3. Execution

    • error[TPZ5530]: cannot derive Eq for Callback: field action has a non-comparable type

    Deriving Eq requires every contained field type to support equality. A function-valued field prevents Eq derivation and produces TPZ5530.

    규칙diagnostics.tpz5530.p5.rule

    Protocol cannot be derived for this type

    Deriving Eq requires every contained field type to support equality. A function-valued field prevents Eq derivation and produces TPZ5530.

    Response

    링크

    Use a supported derives protocol and compatible stored types. Remove the clause or write an admitted manual implementation where that protocol permits one.

    Reproduction and verification

    링크

    Rejected program

    링크
    example.tpzRejected program플레이그라운드 열기 →
    1. record Callback derives Eq { action: () -> int }
    기대 출력0이 아닌 종료 코드
    표준 출력 없음.
    $ topaz check example.tpz · 대상 제품 5.21.3
    기대 결과

    기대 결과

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

    Repaired program

    링크
    example.tpzRepaired program
    1. record Callback derives Eq { action: int }
    기대 출력종료 코드 0
    $ topaz check example.tpz · 대상 제품 5.21.3
    기대 결과

    기대 결과

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

    메뉴

    다운로드 →