E4064

E4064#

Invalid escape sequence in char/string literal.

Erroneous example#

Using an escape sequence with an invalid Unicode code point results in this error:

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

Another case is using an unsupported escape sequence in a Byte literal:

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

Only \x and \o escape sequences are supported in Byte literal.

Suggestion#

Use a valid Unicode code point for Char and String literals. For Byte literals, use byte escape sequences such as \x or \o:

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