diff --git a/vlib/builtin/string_test.v b/vlib/builtin/string_test.v index 6c7283838f..5ae69866e5 100644 --- a/vlib/builtin/string_test.v +++ b/vlib/builtin/string_test.v @@ -980,3 +980,7 @@ fn test_string_f32() { assert '-123'.f32() - (-123) < f32_epsilon assert '-123.456'.f32() - (-123.456) <= f32_epsilon } + +fn test_string_with_zero_byte_escape() { + assert '\x00'.bytes() == [byte(0)] +} diff --git a/vlib/v/checker/tests/string_char_null_err.out b/vlib/v/checker/tests/string_char_null_err.out deleted file mode 100644 index 60e1f7af1a..0000000000 --- a/vlib/v/checker/tests/string_char_null_err.out +++ /dev/null @@ -1,5 +0,0 @@ -vlib/v/checker/tests/string_char_null_err.vv:2:31: error: cannot use `\0` (NULL character) in the string literal - 1 | fn main() { - 2 | println('Null character: \0') - | ^ - 3 | } diff --git a/vlib/v/checker/tests/string_char_null_err.vv b/vlib/v/checker/tests/string_char_null_err.vv deleted file mode 100644 index d60854f829..0000000000 --- a/vlib/v/checker/tests/string_char_null_err.vv +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println('Null character: \0') -} diff --git a/vlib/v/scanner/scanner.v b/vlib/v/scanner/scanner.v index 13cb3a8eba..9b117613dc 100644 --- a/vlib/v/scanner/scanner.v +++ b/vlib/v/scanner/scanner.v @@ -1204,21 +1204,6 @@ fn (mut s Scanner) ident_string() string { if c == scanner.b_lf { s.inc_line_number() } - // Don't allow \0 - if c == `0` && s.pos > 2 && prevc == scanner.backslash { - if (s.pos < s.text.len - 1 && s.text[s.pos + 1].is_digit()) - || s.count_symbol_before(s.pos - 1, scanner.backslash) % 2 == 0 { - } else if !is_cstr && !is_raw { - s.error(r'cannot use `\0` (NULL character) in the string literal') - } - } - // Don't allow \x00 - if c == `0` && s.pos > 5 && s.expect('\\x0', s.pos - 3) { - if s.count_symbol_before(s.pos - 3, scanner.backslash) % 2 == 0 { - } else if !is_cstr && !is_raw { - s.error(r'cannot use `\x00` (NULL character) in the string literal') - } - } // Escape `\x` `\u` if backslash_count % 2 == 1 && !is_raw && !is_cstr { // Escape `\x`