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.
관련 규칙 · Trigger and repair →대응
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⟩.) Source⟨value⟩ ⟨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]:
Countis an exported type alias oflib, 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.
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
링크import lib as nslet value = ns.Count
표준 출력 없음.export type Count = int
기대 결과
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 as nslet value: ns.Count = 1
export type Count = int
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
This program applies the repair described above. The verification status records whether it has been run.