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

문서 검색

명세 6.0

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

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

    진단 TPZ3013

    A namespace member is used in a position that requires a different export kind.

    Diagnostic and cause

    링크

    Namespace member has wrong kind

    계열
    topaz
    단계
    resolve
    코드
    TPZ3013

    원인과 조건

    Using a namespace member that exports a type alias as a value produces TPZ3013. Use that alias in a type annotation.

    대응

    Use ns.Count in a type annotation or select a value export for the expression.

    Compiler phase: resolve.

    Compiler explanation: A namespace member is used in a position that requires a different export kind.

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

    • namespace members are exported declarations and cannot be keyword-named (⟨value⟩.⟨value⟩) Source
    • ⟨value⟩ is an exported type alias of ⟨value⟩, not a value; use it in type position Source
    • ⟨value⟩ is exported by ⟨value⟩ but is not a type alias Source
    • the head of a qualified type must be a namespace binding; ⟨value⟩ is not one here Source

    Observed for the candidate in Topaz 5.21.3. Execution

    • error[TPZ3013]: Count is an exported type alias of lib, not a value; use it in type position

    The selected member exports a type alias, but the expression requires a value. Nominal constructor names have a separate admitted path.

    규칙diagnostics.tpz3013.rule

    Trigger and repair

    Using a namespace member that exports a type alias as a value produces TPZ3013. Use that alias in a type annotation.

    Response

    링크

    Use ns.Count in a type annotation or select a value export for the expression.

    Reproduction and verification

    링크

    Rejected program

    링크
    example.tpzRejected program플레이그라운드 열기 →
    1. import lib as ns
    2. let value = ns.Count
    기대 출력0이 아닌 종료 코드
    표준 출력 없음.
    $ topaz check example.tpz · 대상 제품 5.21.3
    lib.tpzRejected program플레이그라운드 열기 →
    1. export type Count = int
    기대 결과

    기대 결과

    거절 단계 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 as ns
    2. let value: ns.Count = 1
    기대 출력종료 코드 0
    $ topaz check example.tpz · 대상 제품 5.21.3
    lib.tpzCorrected program플레이그라운드 열기 →
    1. export type Count = int
    기대 결과

    기대 결과

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

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

    메뉴

    다운로드 →