Skip to content

Commit 30ba763

Browse files
authored
Merge pull request #2371 from topecongiro/issue-2370
Do not panic when special macros have less args than expected
2 parents c87bd9e + 298f29a commit 30ba763

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

src/expr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2163,7 +2163,7 @@ fn maybe_get_args_offset<T: ToExpr>(callee_str: &str, args: &[&T]) -> Option<(bo
21632163
.iter()
21642164
.find(|&&(s, _)| s == callee_str)
21652165
{
2166-
let all_simple = args.len() >= num_args_before && is_every_args_simple(args);
2166+
let all_simple = args.len() > num_args_before && is_every_args_simple(args);
21672167

21682168
Some((all_simple, num_args_before))
21692169
} else {

tests/source/macros.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ make_test!(str_searcher_ascii_haystack, "bb", "abbcbbd", [
218218
}
219219

220220
fn special_case_macros() {
221+
let p = eprint!();
221222
let q = eprint!("{}", 1);
222223
let r = eprint!("{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
223224
let s = eprint!("{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26);
@@ -266,10 +267,15 @@ fn special_case_macros() {
266267
warn!("{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
267268
warn!("{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26);
268269

270+
assert!();
271+
assert!(result == 42);
269272
assert!(result == 42, "Ahoy there, {}!", target);
270273
assert!(result == 42, "Arr! While plunderin' the hold, we got '{}' when given '{}' (we expected '{}')", result, input, expected);
271274
assert!(result == 42, "{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26);
272275

276+
assert_eq!();
277+
assert_eq!(left);
278+
assert_eq!(left, right);
273279
assert_eq!(left, right, "Ahoy there, {}!", target);
274280
assert_eq!(left, right, "Arr! While plunderin' the hold, we got '{}' when given '{}' (we expected '{}')", result, input, expected);
275281
assert_eq!(first_realllllllllllly_long_variable_that_doesnt_fit_one_one_line, second_reallllllllllly_long_variable_that_doesnt_fit_one_one_line, "Arr! While plunderin' the hold, we got '{}' when given '{}' (we expected '{}')", result, input, expected);

tests/target/macros.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ fn issue2214() {
271271
}
272272

273273
fn special_case_macros() {
274+
let p = eprint!();
274275
let q = eprint!("{}", 1);
275276
let r = eprint!(
276277
"{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}",
@@ -691,6 +692,8 @@ fn special_case_macros() {
691692
26
692693
);
693694

695+
assert!();
696+
assert!(result == 42);
694697
assert!(result == 42, "Ahoy there, {}!", target);
695698
assert!(
696699
result == 42,
@@ -730,6 +733,9 @@ fn special_case_macros() {
730733
26
731734
);
732735

736+
assert_eq!();
737+
assert_eq!(left);
738+
assert_eq!(left, right);
733739
assert_eq!(left, right, "Ahoy there, {}!", target);
734740
assert_eq!(
735741
left, right,

0 commit comments

Comments
 (0)