Skip to content

Commit

Permalink
add expression tests
Browse files Browse the repository at this point in the history
  • Loading branch information
trevyn committed Jul 5, 2024
1 parent 73519c8 commit 0121bb6
Show file tree
Hide file tree
Showing 3 changed files with 386 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/expr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,8 @@ pub(crate) fn format_expr(

// +1 = ";"
let allow_extend =
extend_inline_attr(&expr.attrs, shape, &attrs_str, expr_str.len() + 1, context);
extend_inline_attr(&expr.attrs, shape, &attrs_str, expr_str.len() + 1, context)
&& expr_type == ExprType::Statement;

combine_strs_with_missing_comments(
context,
Expand Down
201 changes: 201 additions & 0 deletions tests/source/configs/inline_attribute_width/50.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// rustfmt-inline_attribute_width: 50
// rustfmt-edition: 2021

#[cfg(feature = "alloc")]
use core::slice;
Expand Down Expand Up @@ -129,3 +130,203 @@ use total_len_is_::_51______;
)
)))]
use core::slice;

fn foo() {
// Literal expression
#[cfg(feature = "len_is_50_____________")]
42;
#[cfg(feature = "len_is_51______________")]
42;

// Path expression
#[cfg(feature = "len_is_50__")]
some_variable;
#[cfg(feature = "len_is_51___")]
some_variable;

// Block expression
#[cfg(feature = "len_is_50_______________")]
{
let x = 2;
};
#[cfg(feature = "len_is_51________________")]
{
let x = 2;
};

// Operator expression
#[cfg(feature = "len_is_50__________")]
1 + 2;
#[cfg(feature = "len_is_51___________")]
1 + 2;

// Tuple expression
#[cfg(feature = "len_is_50")]
(1, "two", 3.0);
#[cfg(feature = "len_is_51_")]
(1, "two", 3.0);

// Array expression
#[cfg(feature = "len_is_50______")]
[1, 2, 3];
#[cfg(feature = "len_is_51_______")]
[1, 2, 3];

// Struct expression
#[cfg(feature = "len_is_50_____")]
S { f: 1 };
#[cfg(feature = "len_is_51______")]
S { f: 1 };

#[cfg(feature = "len_is_50______")]
MyStruct {
field1: 1,
field2: 1,
};
#[cfg(feature = "len_is_51_______")]
MyStruct {
field1: 1,
field2: 1,
};

// Enum variant expression
#[cfg(feature = "len_is_50")]
MyEnum::Variant;
#[cfg(feature = "len_is_51_")]
MyEnum::Variant;

// Call expression
#[cfg(feature = "len_is_50")]
some_function();
#[cfg(feature = "len_is_51_")]
some_function();

// Method call expression
#[cfg(feature = "len_is_50")]
object.method();
#[cfg(feature = "len_is_51_")]
object.method();

// Field access expression
#[cfg(feature = "len_is_50")]
my_struct.field;
#[cfg(feature = "len_is_51_")]
my_struct.field;

// Tuple indexing expression
#[cfg(feature = "len_is_50_____")]
my_tuple.0;
#[cfg(feature = "len_is_51______")]
my_tuple.0;

// Indexing expression
#[cfg(feature = "len_is_50____")]
my_array[0];
#[cfg(feature = "len_is_51_____")]
my_array[0];

// Range expression
#[cfg(feature = "len_is_50___________")]
1..5;
#[cfg(feature = "len_is_51____________")]
1..5;

// If expression
#[cfg(feature = "len_is_50__")]
if condition {
1
};
#[cfg(feature = "len_is_51___")]
if condition {
1
};

// Loop expression
#[cfg(feature = "len_is_50__________")]
loop {
break;
}
#[cfg(feature = "len_is_51___________")]
loop {
break;
}

// While expression
#[cfg(feature = "len_is_50____")]
while cond {
break;
}
#[cfg(feature = "len_is_51_____")]
while cond {
break;
}

// For expression
#[cfg(feature = "len_is_50")]
for i in 0..10 {
break;
}
#[cfg(feature = "len_is_51_")]
for i in 0..10 {
break;
}

// Match expression
#[cfg(feature = "len_is_50___")]
match value {
Pattern1 => 1,
_ => 2,
};
#[cfg(feature = "len_is_51____")]
match value {
Pattern1 => 1,
_ => 2,
};

// Return expression
#[cfg(feature = "len_is_50_________")]
return;
#[cfg(feature = "len_is_51__________")]
return;

// Break expression
#[cfg(feature = "len_is_50__________")]
break;
#[cfg(feature = "len_is_51___________")]
break;

// Continue expression
#[cfg(feature = "len_is_50_______")]
continue;
#[cfg(feature = "len_is_51________")]
continue;

// Closure expression
#[cfg(feature = "len_is_50______")]
|x| x + 1;
#[cfg(feature = "len_is_51_______")]
|x| x + 1;

// Async block expression
#[cfg(feature = "len_is_50_________")]
async {
#[cfg(feature = "len_50__")]
future.await;
#[cfg(feature = "len_51___")]
future.await;
};

#[cfg(feature = "len_is_51__________")]
async {
#[cfg(feature = "len_50__")]
future.await;
#[cfg(feature = "len_51___")]
future.await;
};

// Try expression
#[cfg(feature = "len_is_50___")]
some_result?;
#[cfg(feature = "len_is_51____")]
some_result?;
}
Loading

0 comments on commit 0121bb6

Please sign in to comment.