Diagnostic and cause
СсылкаReserved binding name
- Семейство
- topaz
- Этап
- parse
- Код
TPZ2012
Причина и условия
A record declaration cannot use set or map as its name.
Действия
Give the record a different name, such as Item. Keep set and map for collection literals. Use None() to construct an empty Option.
Compiler phase: parse.
Compiler explanation: A binding position uses a name reserved for a constructor or language form.
Message templates. The marker ⟨value⟩ stands for text computed for the reported program.
Noneis the Option constructor (§22.1) and cannot be a binding name Source⟨value⟩is reserved for the⟨value⟩ { … }collection literal (§6) and cannot be a record name Source
Observed for the candidate in Topaz 5.21.3. Execution
- error[TPZ2012]:
setis reserved for theset { … }collection literal (§6) and cannot be a record name
The record is named set. Record names set and map are reserved for collection literals. This code also covers reserved None binding positions.
Trigger and repair
A record declaration cannot use set or map as its name.
Response
СсылкаGive the record a different name, such as Item. Keep set and map for collection literals. Use None() to construct an empty Option.
Reproduction and verification
СсылкаRejected program
Ссылкаrecord set {value: int}
Нет стандартного вывода.Ожидаемый результат
Ожидаемый результат
Этап отклонения parse. Ненулевой код завершения.
diagnostic-tpz2012 at
example.tpz:1:8
The expected diagnostic, cause, source location, and accompanying diagnostics are specified below. The verification status records whether this program has been run.
Corrected program
Ссылкаrecord Item {value: int}
Ожидаемый результат
Ожидаемый результат
Проверка принимает программу. Код завершения 0.
This program applies the repair described above. The verification status records whether it has been run.