Open
Description
Code
I tried this code:
pub const fn concat(_x: &[u8], _y: &[u8]) -> [u8; 1024] {
[0u8; 1024]
}
const _: &[u8] = &concat(
if b"".len() > 0 {
&concat(b"", b"")
} else {
b""
},
b""
);
I expected to see this happen: compiles
Instead, this happened: fails to compile with the following error:
error[E0716]: temporary value dropped while borrowed
--> <source>:7:10
|
5 | const _: &[u8] = &concat(
| ------ borrow later used by call
6 | if b"".len() > 0 {
7 | &concat(b"", b"")
| ^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
8 | } else {
| - temporary value is freed at the end of this statement
|
= note: consider using a `let` binding to create a longer lived value
Version it worked on
It most recently worked on: 1.78.0
Version with regression
rustc --version --verbose
:
rustc 1.79.0 (129f3b996 2024-06-10)
@rustbot modify labels: +regression-from-stable-to-stable -regression-untriaged