Rollup merge of #116036 - Enselic:split-large_moves, r=oli-obk
tests/ui: Split large_moves.rs and move to lint/large_assignments To make failing tests easier to debug with `--emit=mir`, etc. Don't bother with `revisions: attribute option` for both tests though. Seems sufficient to just have that on one of the tests. `git show -M --find-renames=40%` makes the diff easier to review. Or note that before this change we had one test with 4 errors, now we have 2 tests with 2 errors each. r? `@oli-obk` Part of https://github.com/rust-lang/rust/issues/83518
This commit is contained in:
commit
06608c7860
@ -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
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
|||||||
#![deny(large_assignments)]
|
#![deny(large_assignments)]
|
||||||
#![feature(large_assignments)]
|
#![feature(large_assignments)]
|
||||||
#![cfg_attr(attribute, move_size_limit = "1000")]
|
#![move_size_limit = "1000"]
|
||||||
// build-fail
|
// build-fail
|
||||||
// only-x86_64
|
// only-x86_64
|
||||||
// revisions: attribute option
|
|
||||||
// [option]compile-flags: -Zmove-size-limit=1000
|
|
||||||
|
|
||||||
// edition:2018
|
// edition:2018
|
||||||
// compile-flags: -Zmir-opt-level=0
|
// compile-flags: -Zmir-opt-level=0
|
||||||
@ -12,25 +10,12 @@
|
|||||||
use std::{sync::Arc, rc::Rc};
|
use std::{sync::Arc, rc::Rc};
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let x = async {
|
|
||||||
let y = [0; 9999];
|
|
||||||
dbg!(y);
|
|
||||||
thing(&y).await;
|
|
||||||
dbg!(y);
|
|
||||||
};
|
|
||||||
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 _ = Arc::new([0; 9999]); // OK!
|
||||||
let _ = Box::new([0; 9999]); // OK!
|
let _ = Box::new([0; 9999]); // OK!
|
||||||
let _ = Rc::new([0; 9999]); // OK!
|
let _ = Rc::new([0; 9999]); // OK!
|
||||||
let _ = NotBox::new([0; 9999]); //~ ERROR large_assignments
|
let _ = NotBox::new([0; 9999]); //~ ERROR large_assignments
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn thing(y: &[u8]) {
|
|
||||||
dbg!(y);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct NotBox {
|
struct NotBox {
|
||||||
data: [u8; 9999],
|
data: [u8; 9999],
|
||||||
}
|
}
|
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
|
||||||
|
|
26
tests/ui/lint/large_assignments/large_future.rs
Normal file
26
tests/ui/lint/large_assignments/large_future.rs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#![deny(large_assignments)]
|
||||||
|
#![cfg_attr(attribute, feature(large_assignments))]
|
||||||
|
#![cfg_attr(attribute, move_size_limit = "1000")]
|
||||||
|
// build-fail
|
||||||
|
// only-x86_64
|
||||||
|
// revisions: attribute option
|
||||||
|
// [option]compile-flags: -Zmove-size-limit=1000
|
||||||
|
|
||||||
|
// edition:2018
|
||||||
|
// compile-flags: -Zmir-opt-level=0
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let x = async {
|
||||||
|
let y = [0; 9999];
|
||||||
|
dbg!(y);
|
||||||
|
thing(&y).await;
|
||||||
|
dbg!(y);
|
||||||
|
};
|
||||||
|
let z = (x, 42); //~ ERROR large_assignments
|
||||||
|
let a = z.0; //~ ERROR large_assignments
|
||||||
|
let b = z.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn thing(y: &[u8]) {
|
||||||
|
dbg!(y);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user