Diagnostic and cause
링크Missing protocol conformance
- 계열
- topaz
- 단계
- check
- 코드
TPZ5522
원인과 조건
A concrete type argument must satisfy every declared protocol bound. Calling a Show-bounded function with a record lacking Show conformance is rejected with TPZ5522.
관련 규칙 · Missing protocol conformance →대응
Derive or implement the required protocol when supported. For a generic function, add the bound that its body or callers require.
Compiler phase: check.
Compiler explanation: A protocol call or generic protocol bound requires a conformance the receiver type does not have.
Message templates. The marker ⟨value⟩ stands for text computed for the reported program.
- protocol
⟨value⟩has no method⟨value⟩Source ⟨value⟩does not satisfy protocol bound⟨value⟩Source
Observed for the candidate in Topaz 5.21.3. Execution
- error[TPZ5522]:
Userdoes not satisfy protocol boundShow
A concrete type argument must satisfy every declared protocol bound. Calling a Show-bounded function with a record lacking Show conformance is rejected with TPZ5522.
Missing protocol conformance
A concrete type argument must satisfy every declared protocol bound. Calling a Show-bounded function with a record lacking Show conformance is rejected with TPZ5522.
Response
링크Derive or implement the required protocol when supported. For a generic function, add the bound that its body or callers require.
Reproduction and verification
링크Rejected program
링크record User { name: string }function render<T: Show>(value: T) -> string { Show.show(value) }let result = render(User { name: "Ada" })
표준 출력 없음.기대 결과
Repaired program
링크record User derives Show { name: string }function render<T: Show>(value: T) -> string { Show.show(value) }let result = render(User { name: "Ada" })
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.