error[E0716]: temporary value dropped while borrowed --> $DIR/promote-ref-mut-in-let-issue-46557.rs:5:21 | LL | let ref mut x = 1234543; | ^^^^^^^ creates a temporary which is freed while still in use LL | x | - borrow later used here LL | } | - temporary value is freed at the end of this statement | = note: consider using a `let` binding to create a longer lived value error[E0716]: temporary value dropped while borrowed --> $DIR/promote-ref-mut-in-let-issue-46557.rs:10:25 | LL | let (ref mut x, ) = (1234543, ); | ^^^^^^^^^^^ creates a temporary which is freed while still in use LL | x | - borrow later used here LL | } | - temporary value is freed at the end of this statement | = note: consider using a `let` binding to create a longer lived value error[E0515]: cannot return value referencing temporary value --> $DIR/promote-ref-mut-in-let-issue-46557.rs:15:5 | LL | match 1234543 { | ^ ------- temporary value created here | _____| | | LL | | ref mut x => x LL | | } | |_____^ returns a value referencing data owned by the current function error[E0515]: cannot return value referencing temporary value --> $DIR/promote-ref-mut-in-let-issue-46557.rs:21:5 | LL | match (123443,) { | ^ --------- temporary value created here | _____| | | LL | | (ref mut x,) => x, LL | | } | |_____^ returns a value referencing data owned by the current function error[E0515]: cannot return reference to temporary value --> $DIR/promote-ref-mut-in-let-issue-46557.rs:27:5 | LL | &mut 1234543 | ^^^^^------- | | | | | temporary value created here | returns a reference to data owned by the current function error: aborting due to 5 previous errors Some errors have detailed explanations: E0515, E0716. For more information about an error, try `rustc --explain E0515`.