Extend tests to cover runtime promotion cases, too
This commit is contained in:
parent
9ec72dfe72
commit
d779062758
@ -9,4 +9,8 @@ pub const C: () = {
|
||||
//~| ERROR: temporary value dropped while borrowed
|
||||
};
|
||||
|
||||
fn main() {}
|
||||
fn main() {
|
||||
let _: &'static _ = &id(&Panic);
|
||||
//~^ ERROR: temporary value dropped while borrowed
|
||||
//~| ERROR: temporary value dropped while borrowed
|
||||
}
|
||||
|
@ -18,6 +18,26 @@ LL | let _: &'static _ = &id(&Panic);
|
||||
| | creates a temporary value which is freed while still in use
|
||||
| type annotation requires that borrow lasts for `'static`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> $DIR/promoted_const_call.rs:13:26
|
||||
|
|
||||
LL | let _: &'static _ = &id(&Panic);
|
||||
| ---------- ^^^^^^^^^^ creates a temporary value which is freed while still in use
|
||||
| |
|
||||
| type annotation requires that borrow lasts for `'static`
|
||||
...
|
||||
LL | }
|
||||
| - temporary value is freed at the end of this statement
|
||||
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> $DIR/promoted_const_call.rs:13:30
|
||||
|
|
||||
LL | let _: &'static _ = &id(&Panic);
|
||||
| ---------- ^^^^^ - temporary value is freed at the end of this statement
|
||||
| | |
|
||||
| | creates a temporary value which is freed while still in use
|
||||
| type annotation requires that borrow lasts for `'static`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0716`.
|
||||
|
@ -7,4 +7,8 @@ pub const C: () = {
|
||||
//~| ERROR: destructor of `String` cannot be evaluated at compile-time
|
||||
};
|
||||
|
||||
fn main() {}
|
||||
fn main() {
|
||||
let _: &'static _ = &id(&String::new());
|
||||
//~^ ERROR: temporary value dropped while borrowed
|
||||
//~| ERROR: temporary value dropped while borrowed
|
||||
}
|
||||
|
@ -18,13 +18,33 @@ LL | let _: &'static _ = &id(&String::new());
|
||||
| | creates a temporary value which is freed while still in use
|
||||
| type annotation requires that borrow lasts for `'static`
|
||||
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> $DIR/promoted_const_call2.rs:11:26
|
||||
|
|
||||
LL | let _: &'static _ = &id(&String::new());
|
||||
| ---------- ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
|
||||
| |
|
||||
| type annotation requires that borrow lasts for `'static`
|
||||
...
|
||||
LL | }
|
||||
| - temporary value is freed at the end of this statement
|
||||
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> $DIR/promoted_const_call2.rs:11:30
|
||||
|
|
||||
LL | let _: &'static _ = &id(&String::new());
|
||||
| ---------- ^^^^^^^^^^^^^ - temporary value is freed at the end of this statement
|
||||
| | |
|
||||
| | creates a temporary value which is freed while still in use
|
||||
| type annotation requires that borrow lasts for `'static`
|
||||
|
||||
error[E0493]: destructor of `String` cannot be evaluated at compile-time
|
||||
--> $DIR/promoted_const_call2.rs:4:30
|
||||
|
|
||||
LL | let _: &'static _ = &id(&String::new());
|
||||
| ^^^^^^^^^^^^^ the destructor for this type cannot be evaluated in constants
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0493, E0716.
|
||||
For more information about an error, try `rustc --explain E0493`.
|
||||
|
@ -13,4 +13,14 @@ pub const C: () = {
|
||||
//~^ ERROR: temporary value dropped while borrowed
|
||||
};
|
||||
|
||||
fn main() {}
|
||||
fn main() {
|
||||
let _: &'static _ = &String::new();
|
||||
//~^ ERROR: temporary value dropped while borrowed
|
||||
|
||||
let _: &'static _ = &id(&String::new());
|
||||
//~^ ERROR: temporary value dropped while borrowed
|
||||
//~| ERROR: temporary value dropped while borrowed
|
||||
|
||||
let _: &'static _ = &std::mem::ManuallyDrop::new(String::new());
|
||||
//~^ ERROR: temporary value dropped while borrowed
|
||||
}
|
||||
|
@ -57,7 +57,49 @@ LL |
|
||||
LL | };
|
||||
| - temporary value is freed at the end of this statement
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> $DIR/promoted_const_call3.rs:17:26
|
||||
|
|
||||
LL | let _: &'static _ = &String::new();
|
||||
| ---------- ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
|
||||
| |
|
||||
| type annotation requires that borrow lasts for `'static`
|
||||
...
|
||||
LL | }
|
||||
| - temporary value is freed at the end of this statement
|
||||
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> $DIR/promoted_const_call3.rs:20:26
|
||||
|
|
||||
LL | let _: &'static _ = &id(&String::new());
|
||||
| ---------- ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
|
||||
| |
|
||||
| type annotation requires that borrow lasts for `'static`
|
||||
...
|
||||
LL | }
|
||||
| - temporary value is freed at the end of this statement
|
||||
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> $DIR/promoted_const_call3.rs:20:30
|
||||
|
|
||||
LL | let _: &'static _ = &id(&String::new());
|
||||
| ---------- ^^^^^^^^^^^^^ - temporary value is freed at the end of this statement
|
||||
| | |
|
||||
| | creates a temporary value which is freed while still in use
|
||||
| type annotation requires that borrow lasts for `'static`
|
||||
|
||||
error[E0716]: temporary value dropped while borrowed
|
||||
--> $DIR/promoted_const_call3.rs:24:26
|
||||
|
|
||||
LL | let _: &'static _ = &std::mem::ManuallyDrop::new(String::new());
|
||||
| ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
|
||||
| |
|
||||
| type annotation requires that borrow lasts for `'static`
|
||||
LL |
|
||||
LL | }
|
||||
| - temporary value is freed at the end of this statement
|
||||
|
||||
error: aborting due to 10 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0493, E0716.
|
||||
For more information about an error, try `rustc --explain E0493`.
|
||||
|
Loading…
x
Reference in New Issue
Block a user