Diagnostic and cause
LinkInvalid escape sequence
- Family
- topaz
- Phase
- lex
- Code
TPZ0004
Cause and conditions
A backslash in string text must introduce a supported escape. The escape \q produces TPZ0004 at the backslash.
Related rule: Trigger and repairResponse
Use the intended supported escape, or escape the backslash itself when it belongs in the string.
Source evidence
- compiler/crates/topaz_diag/src/explain.rs at
151141d7bb44· 170-178 - compiler/crates/topaz_self_frontend/topaz/raw.tpz at
151141d7bb44· 256-256 - compiler/crates/topaz_self_frontend/topaz/raw.tpz at
151141d7bb44· 164-173 - compiler/crates/topaz_self_frontend/topaz/raw.tpz at
151141d7bb44· 247-274 - TPZ0004 at
151141d7bb44
Compiler phase: lex.
Compiler explanation: A string or template literal contains an escape sequence Topaz does not define.
Message templates. The marker ⟨value⟩ stands for text computed for the reported program.
- invalid escape:
\before the end of the line Source - invalid escape
\⟨value⟩in a string literal Source
Observed for the candidate in Topaz 5.21.3. Execution
- error[TPZ0004]: invalid escape
\qin a string literal
The character following a backslash does not form a supported escape. A backslash at the end of a line also needs attention.
Trigger and repair
A backslash in string text must introduce a supported escape. The escape \q produces TPZ0004 at the backslash.
Source evidence
- compiler/crates/topaz_self_frontend/topaz/raw.tpz at
151141d7bb44· 164-173 - compiler/crates/topaz_self_frontend/topaz/raw.tpz at
151141d7bb44· 247-274 - TPZ0004 at
151141d7bb44
Response
LinkUse the intended supported escape, or escape the backslash itself when it belongs in the string.
Reproduction and verification
LinkRejected program
Linklet message = "\q"
No stdout.
Expected result
The expected diagnostic, cause, source location, and accompanying diagnostics are specified below. The verification status records whether this program has been run.
Source evidence
- compiler/crates/topaz_diag/src/explain.rs at
151141d7bb44· 170-178 - compiler/crates/topaz_self_frontend/topaz/raw.tpz at
151141d7bb44· 256-256 - compiler/crates/topaz_self_frontend/topaz/raw.tpz at
151141d7bb44· 164-173 - compiler/crates/topaz_self_frontend/topaz/raw.tpz at
151141d7bb44· 247-274 - TPZ0004 at
151141d7bb44
Corrected program
Linklet message = "\\q"
Expected result
Expected result
Checking accepts the program. Exit code 0.
This program applies the repair described above. The verification status records whether it has been run.
Source evidence
- compiler/crates/topaz_self_frontend/topaz/raw.tpz at
151141d7bb44· 164-173 - compiler/crates/topaz_self_frontend/topaz/raw.tpz at
151141d7bb44· 247-274 - TPZ0004 at
151141d7bb44