Diagnostic and cause
링크Source name is not NFC
- 계열
- topaz
- 단계
- lex
- 코드
TPZ0007
원인과 조건
The complete name must already be in Unicode 16.0.0 NFC form in the source. This applies to declarations, references, members, fields, label bodies, and template tag names. Check the whole sequence before keyword or tag classification.
Bindings and lookup compare the admitted scalar sequence exactly. They do not normalize a spelling silently or create a second alias. NFC uses canonical equivalence. It does not apply compatibility normalization or case folding.
A non-NFC name produces TPZ0007 during lex. Mark the complete name span, excluding a label's apostrophe and a tag's string delimiter, and suggest its NFC spelling. Review the replacement for collisions before changing the source.
대응
Replace the complete name with its Unicode 16.0.0 NFC spelling. Apply the reviewed spelling consistently to its declaration and references. Report the original name span and suggest the NFC replacement. Do not silently add a lookup alias.
Topaz 6.0.0 specifies this diagnostic during lex.
The target message is source name café is not NFC.
The pinned SELF source does not emit this diagnostic.
Source names must already use Unicode 16.0.0 NFC spelling. Reject a non-NFC name during lexing before keyword and tag classification. Report the complete original name span. Exclude a label prefix or string delimiter from that span. Suggest the NFC spelling without adding a lookup alias. Strings retain their exact scalars. The name rule defines accepted source spelling.
Source name is not NFC
Source names must already use Unicode 16.0.0 NFC spelling. Reject a non-NFC name during lexing before keyword and tag classification. Report the complete original name span. Exclude a label prefix or string delimiter from that span. Suggest the NFC spelling without adding a lookup alias. Strings retain their exact scalars. The name rule defines accepted source spelling.
이유
This applies the adopted identifier-normalization.1 decision. The language chapter owns the rejection condition and source span.
Response
링크Replace the complete name with its Unicode 16.0.0 NFC spelling. Apply the reviewed spelling consistently to its declaration and references. Report the original name span and suggest the NFC replacement. Do not silently add a lookup alias.
Reproduction and verification
링크Rejected program
링크let café = 1
표준 출력 없음.기대 결과
The matcher describes a Topaz 6.0 target message. Public Topaz 5.21.3 does not implement this diagnostic producer.
Repaired program
링크let café: int = 1let 가: int = 2let K: int = 3let value: int = café + 가 + K
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
The matcher describes a Topaz 6.0 target message. Public Topaz 5.21.3 does not implement this diagnostic producer.