Skip to content

Commit

Permalink
tests/ui: Split large_moves.rs and move to lint/large_assignments
Browse files Browse the repository at this point in the history
To make failing tests easier to debug with --emit=mir, etc.
  • Loading branch information
Enselic committed Sep 21, 2023
1 parent afdd468 commit d016e9a
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 96 deletions.
39 changes: 0 additions & 39 deletions tests/ui/async-await/large_moves.attribute.stderr

This file was deleted.

39 changes: 0 additions & 39 deletions tests/ui/async-await/large_moves.option.stderr

This file was deleted.

29 changes: 29 additions & 0 deletions tests/ui/lint/large_assignments/box_rc_arc_allowed.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 23 additions & 0 deletions tests/ui/lint/large_assignments/box_rc_arc_allowed.stderr
Original file line number Diff line number Diff line change
@@ -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

23 changes: 23 additions & 0 deletions tests/ui/lint/large_assignments/large_future.attribute.stderr
Original file line number Diff line number Diff line change
@@ -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 changes: 23 additions & 0 deletions tests/ui/lint/large_assignments/large_future.option.stderr
Original file line number Diff line number Diff line change
@@ -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

Original file line number Diff line number Diff line change
Expand Up @@ -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];
Expand All @@ -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
}
}
}

0 comments on commit d016e9a

Please sign in to comment.