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

문서 검색

명세 6.0

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

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

    진단 TPZ3014

    An exported declaration exposes a private nominal type after transparent aliases are expanded.

    Diagnostic and cause

    링크

    Private type in exported surface

    계열
    topaz
    단계
    resolve
    코드
    TPZ3014

    원인과 조건

    An exported declaration produces TPZ3014 when its resolved type exposes a private nominal type after transparent alias expansion. Annotated and inferred types follow the same rule.

    대응

    Export the nominal type when it belongs in the public API, or return a value with an accessible type.

    The compiler facts describe the earlier source visibility check. The resolved public type contract also covers inferred types and expands transparent aliases before checking nominal visibility.

    Compiler phase: resolve.

    Compiler explanation: An exported signature mentions a type alias that the module does not export.

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

    • ⟨value⟩ is a module-private type and may not appear in an exported public surface; export the type or use an inline structural type Source

    An exported declaration exposes a module-private nominal type in its resolved type. The same rule covers annotated and inferred types after transparent alias expansion. The example exposes the private Count record in a return annotation.

    규칙diagnostics.tpz3014.rule

    Trigger and repair

    An exported declaration produces TPZ3014 when its resolved type exposes a private nominal type after transparent alias expansion. Annotated and inferred types follow the same rule.

    Response

    링크

    Export the nominal type when it belongs in the public API, or return a value with an accessible type.

    Reproduction and verification

    링크

    Rejected program

    링크
    example.tpzRejected program플레이그라운드 열기 →
    1. import lib
    기대 출력0이 아닌 종료 코드
    표준 출력 없음.
    $ topaz check example.tpz --format json · 대상 제품 5.21.3
    lib.tpzRejected program플레이그라운드 열기 →
    1. record Count { value: int }
    2. export function count() -> Count { Count { value: 1 } }
    기대 결과

    기대 결과

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

    The expected diagnostic, cause, source location, and accompanying diagnostics are specified below. The verification status records whether this program has been run.

    Corrected program

    링크
    example.tpzCorrected program플레이그라운드 열기 →
    1. import lib
    기대 출력종료 코드 0
    표준 출력 없음.
    $ topaz check example.tpz --format json · 대상 제품 5.21.3
    lib.tpzCorrected program플레이그라운드 열기 →
    1. export record Count { value: int }
    2. export function count() -> Count { Count { value: 1 } }
    기대 결과

    기대 결과

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

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

    메뉴

    다운로드 →