tests/ui: Split large_moves.rs and move to lint/large_assignments
To make failing tests easier to debug with --emit=mir, etc.
This commit is contained in:
parent
afdd468ab8
commit
d016e9a686
@ -1,39 +0,0 @@
|
||||
error: moving 10024 bytes
|
||||
--> $DIR/large_moves.rs:21:14
|
||||
|
|
||||
LL | let z = (x, 42);
|
||||
| ^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
note: the lint level is defined here
|
||||
--> $DIR/large_moves.rs:1:9
|
||||
|
|
||||
LL | #![deny(large_assignments)]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: moving 10024 bytes
|
||||
--> $DIR/large_moves.rs:22:13
|
||||
|
|
||||
LL | let a = z.0;
|
||||
| ^^^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
|
||||
error: moving 9999 bytes
|
||||
--> $DIR/large_moves.rs:27:13
|
||||
|
|
||||
LL | let _ = NotBox::new([0; 9999]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
|
||||
error: moving 9999 bytes
|
||||
--> $DIR/large_moves.rs:41:13
|
||||
|
|
||||
LL | data,
|
||||
| ^^^^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
@ -1,39 +0,0 @@
|
||||
error: moving 10024 bytes
|
||||
--> $DIR/large_moves.rs:21:14
|
||||
|
|
||||
LL | let z = (x, 42);
|
||||
| ^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
note: the lint level is defined here
|
||||
--> $DIR/large_moves.rs:1:9
|
||||
|
|
||||
LL | #![deny(large_assignments)]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: moving 10024 bytes
|
||||
--> $DIR/large_moves.rs:22:13
|
||||
|
|
||||
LL | let a = z.0;
|
||||
| ^^^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
|
||||
error: moving 9999 bytes
|
||||
--> $DIR/large_moves.rs:27:13
|
||||
|
|
||||
LL | let _ = NotBox::new([0; 9999]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
|
||||
error: moving 9999 bytes
|
||||
--> $DIR/large_moves.rs:41:13
|
||||
|
|
||||
LL | data,
|
||||
| ^^^^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
29
tests/ui/lint/large_assignments/box_rc_arc_allowed.rs
Normal file
29
tests/ui/lint/large_assignments/box_rc_arc_allowed.rs
Normal file
@ -0,0 +1,29 @@
|
||||
#![deny(large_assignments)]
|
||||
#![feature(large_assignments)]
|
||||
#![move_size_limit = "1000"]
|
||||
// build-fail
|
||||
// only-x86_64
|
||||
|
||||
// edition:2018
|
||||
// compile-flags: -Zmir-opt-level=0
|
||||
|
||||
use std::{sync::Arc, rc::Rc};
|
||||
|
||||
fn main() {
|
||||
let _ = Arc::new([0; 9999]); // OK!
|
||||
let _ = Box::new([0; 9999]); // OK!
|
||||
let _ = Rc::new([0; 9999]); // OK!
|
||||
let _ = NotBox::new([0; 9999]); //~ ERROR large_assignments
|
||||
}
|
||||
|
||||
struct NotBox {
|
||||
data: [u8; 9999],
|
||||
}
|
||||
|
||||
impl NotBox {
|
||||
fn new(data: [u8; 9999]) -> Self {
|
||||
Self {
|
||||
data, //~ ERROR large_assignments
|
||||
}
|
||||
}
|
||||
}
|
23
tests/ui/lint/large_assignments/box_rc_arc_allowed.stderr
Normal file
23
tests/ui/lint/large_assignments/box_rc_arc_allowed.stderr
Normal file
@ -0,0 +1,23 @@
|
||||
error: moving 9999 bytes
|
||||
--> $DIR/box_rc_arc_allowed.rs:16:13
|
||||
|
|
||||
LL | let _ = NotBox::new([0; 9999]);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
note: the lint level is defined here
|
||||
--> $DIR/box_rc_arc_allowed.rs:1:9
|
||||
|
|
||||
LL | #![deny(large_assignments)]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: moving 9999 bytes
|
||||
--> $DIR/box_rc_arc_allowed.rs:26:13
|
||||
|
|
||||
LL | data,
|
||||
| ^^^^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
@ -0,0 +1,23 @@
|
||||
error: moving 10024 bytes
|
||||
--> $DIR/large_future.rs:19:14
|
||||
|
|
||||
LL | let z = (x, 42);
|
||||
| ^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
note: the lint level is defined here
|
||||
--> $DIR/large_future.rs:1:9
|
||||
|
|
||||
LL | #![deny(large_assignments)]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: moving 10024 bytes
|
||||
--> $DIR/large_future.rs:20:13
|
||||
|
|
||||
LL | let a = z.0;
|
||||
| ^^^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
23
tests/ui/lint/large_assignments/large_future.option.stderr
Normal file
23
tests/ui/lint/large_assignments/large_future.option.stderr
Normal file
@ -0,0 +1,23 @@
|
||||
error: moving 10024 bytes
|
||||
--> $DIR/large_future.rs:19:14
|
||||
|
|
||||
LL | let z = (x, 42);
|
||||
| ^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
note: the lint level is defined here
|
||||
--> $DIR/large_future.rs:1:9
|
||||
|
|
||||
LL | #![deny(large_assignments)]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: moving 10024 bytes
|
||||
--> $DIR/large_future.rs:20:13
|
||||
|
|
||||
LL | let a = z.0;
|
||||
| ^^^ value moved from here
|
||||
|
|
||||
= note: The current maximum size is 1000, but it can be customized with the move_size_limit attribute: `#![move_size_limit = "..."]`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
@ -9,8 +9,6 @@
|
||||
// edition:2018
|
||||
// compile-flags: -Zmir-opt-level=0
|
||||
|
||||
use std::{sync::Arc, rc::Rc};
|
||||
|
||||
fn main() {
|
||||
let x = async {
|
||||
let y = [0; 9999];
|
||||
@ -21,24 +19,8 @@ fn main() {
|
||||
let z = (x, 42); //~ ERROR large_assignments
|
||||
let a = z.0; //~ ERROR large_assignments
|
||||
let b = z.1;
|
||||
let _ = Arc::new([0; 9999]); // OK!
|
||||
let _ = Box::new([0; 9999]); // OK!
|
||||
let _ = Rc::new([0; 9999]); // OK!
|
||||
let _ = NotBox::new([0; 9999]); //~ ERROR large_assignments
|
||||
}
|
||||
|
||||
async fn thing(y: &[u8]) {
|
||||
dbg!(y);
|
||||
}
|
||||
|
||||
struct NotBox {
|
||||
data: [u8; 9999],
|
||||
}
|
||||
|
||||
impl NotBox {
|
||||
fn new(data: [u8; 9999]) -> Self {
|
||||
Self {
|
||||
data, //~ ERROR large_assignments
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user