E4064

E4064#

字符或字符串字面量中包含不合法的转义序列。

错误示例#

使用包含非法 Unicode 码位的转义序列会导致此错误:

///|
test {
  println('\uD800')
}

另一种情况是在 Byte 字面量中使用不支持的转义序列:

///|
test {
  let _ : Byte = b'\uD000'
}

Byte 字面量中,只能使用 \x\o 形式的转义序列。

修改建议#

CharString 字面量使用合法的 Unicode 码位。对 Byte 字面量,请使用 \x\o 这样的字节转义序列:

///|
test {
  let char : Char = '\u{1F600}'
  let byte : Byte = b'\x41'
  ignore(char)
  inspect(byte.to_int(), content="65")
}