Diagnostic and cause
링크Or-pattern alternatives bind different names
- 계열
- topaz
- 단계
- check
- 코드
TPZ5710
원인과 조건
During checking, TPZ5710 reports different name sets in alternatives of an or-pattern. The or-pattern binding rule defines the binding requirement.
대응
Use Some(_ when the arm does not need a binding. Otherwise bind the same names in every alternative or write separate arms.
Compiler phase: check.
Compiler explanation: Every alternative of a binding or-pattern must bind the same set of names.
Message templates. The marker ⟨value⟩ stands for text computed for the reported program.
- or-pattern alternatives must bind the same names —
⟨value⟩is bound in one alternative but not another Source
During checking, TPZ5710 reports different name sets in alternatives of an or-pattern. The or-pattern binding rule defines the binding requirement.
Different names in or-pattern alternatives
During checking, TPZ5710 reports different name sets in alternatives of an or-pattern. The or-pattern binding rule defines the binding requirement.
Response
링크Use Some(_ when the arm does not need a binding. Otherwise bind the same names in every alternative or write separate arms.
Reproduction and verification
링크Rejected program
링크function read(value: Option<int>) -> int {match (value) {case Some(item) | None() => 0}}
표준 출력 없음.기대 결과
기대 결과
거절 단계 check. 종료 코드가 0이 아닙니다.
or-pattern-alternatives-bind-different-name-sets at
example.tpz:3:10
Repaired program
링크function read(value: Option<int>) -> int {match (value) {case Some(_) | None() => 0}}
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.