about summary refs log tree commit diff
path: root/compiler/rustc_const_eval/src
diff options
context:
space:
mode:
author许杰友 Jieyou Xu (Joe) <jieyouxu@outlook.com>2024-08-09 05:48:52 +0000
committer许杰友 Jieyou Xu (Joe) <jieyouxu@outlook.com>2024-08-09 05:56:50 +0000
commitd65f1316bba2b3cdccce3f0d7d3e2eb27b5fbe49 (patch)
tree6b1ff88a73561197fb5fe5ecbb05dbf063ae6c16 /compiler/rustc_const_eval/src
parent92520a9d4d74d23b29bd65f3372f1d0e5a0ec9cb (diff)
downloadrust-d65f1316bba2b3cdccce3f0d7d3e2eb27b5fbe49.tar.gz
rust-d65f1316bba2b3cdccce3f0d7d3e2eb27b5fbe49.zip
parser: ensure let stmt compound assignment removal suggestion respect codepoint boundaries
Previously we would try to issue a suggestion for `let x <op>= 1`, i.e.
a compound assignment within a `let` binding, to remove the `<op>`. The
suggestion code unfortunately incorrectly assumed that the `<op>` is an
exactly-1-byte ASCII character, but this assumption is incorrect because
we also recover Unicode-confusables like `➖=` as `-=`. In this example,
the suggestion code used a `+ BytePos(1)` to calculate the span of the
`<op>` codepoint that looks like `-` but the mult-byte Unicode
look-alike would cause the suggested removal span to be inside a
multi-byte codepoint boundary, triggering a codepoint boundary
assertion.

Issue: <https://github.com/rust-lang/rust/issues/128845>
Diffstat (limited to 'compiler/rustc_const_eval/src')
0 files changed, 0 insertions, 0 deletions