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.
관련 규칙 · Trigger and repair →대응
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.
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
링크import lib
표준 출력 없음.record Count { value: int }export function count() -> Count { Count { value: 1 } }
기대 결과
The expected diagnostic, cause, source location, and accompanying diagnostics are specified below. The verification status records whether this program has been run.
Corrected program
링크import lib
표준 출력 없음.export record Count { value: int }export function count() -> Count { Count { value: 1 } }
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
This program applies the repair described above. The verification status records whether it has been run.