diff options
author | Thomas Schwinge <tschwinge@baylibre.com> | 2024-08-03 16:08:42 +0200 |
---|---|---|
committer | Thomas Schwinge <tschwinge@baylibre.com> | 2024-12-09 10:48:40 +0100 |
commit | 85f81ba60e37c6d6df8a0d263f9335dae18e8cae (patch) | |
tree | 38df2bf2ecbbbf21e3b7a7c76fbff500107c3e97 | |
parent | 5cdd78b39725fb1d82cb6bd68e8f56bf4f5d51cd (diff) | |
download | gcc-85f81ba60e37c6d6df8a0d263f9335dae18e8cae.zip gcc-85f81ba60e37c6d6df8a0d263f9335dae18e8cae.tar.gz gcc-85f81ba60e37c6d6df8a0d263f9335dae18e8cae.tar.bz2 |
Rust: Work around 'error[E0658]: `let...else` statements are unstable'
Compiling with Debian GNU/Linux 12 (bookworm) packages:
$ apt-cache madison cargo rustc
cargo | 0.66.0+ds1-1 | http://deb.debian.org/debian bookworm/main ppc64el Packages
cargo | 0.66.0+ds1-1 | http://deb.debian.org/debian bookworm/main Sources
rustc | 1.63.0+dfsg1-2 | http://deb.debian.org/debian bookworm/main ppc64el Packages
rustc | 1.63.0+dfsg1-2 | http://deb.debian.org/debian bookworm/main Sources
..., we run into:
Compiling generic_format_parser v0.1.0 ([...]/source-gcc/libgrust/libformat_parser/generic_format_parser)
error[E0658]: `let...else` statements are unstable
--> generic_format_parser/src/lib.rs:994:5
|
994 | / let Some(unescaped) = unescape_string(snippet) else {
995 | | return InputStringKind::NotALiteral;
996 | | };
| |______^
|
= note: see issue #87335 <https://github.com/rust-lang/rust/issues/87335> for more information
Rewrite backwards, per <https://rust-lang.github.io/rfcs/3137-let-else.html>.
libgrust/
* libformat_parser/generic_format_parser/src/lib.rs: Work around
'error[E0658]: `let...else` statements are unstable'.
-rw-r--r-- | libgrust/libformat_parser/generic_format_parser/src/lib.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libgrust/libformat_parser/generic_format_parser/src/lib.rs b/libgrust/libformat_parser/generic_format_parser/src/lib.rs index 8062bf9..ed3d857 100644 --- a/libgrust/libformat_parser/generic_format_parser/src/lib.rs +++ b/libgrust/libformat_parser/generic_format_parser/src/lib.rs @@ -991,8 +991,11 @@ fn find_width_map_from_snippet( // If we only trimmed it off the input, `format!("\n")` would cause a mismatch as here we they actually match up. // Alternatively, we could just count the trailing newlines and only trim one from the input if they don't match up. let input_no_nl = input.trim_end_matches('\n'); - let Some(unescaped) = unescape_string(snippet) else { - return InputStringKind::NotALiteral; + let unescaped = match unescape_string(snippet) { + Some(unescaped) => unescaped, + _ => { + return InputStringKind::NotALiteral; + } }; let unescaped_no_nl = unescaped.trim_end_matches('\n'); |