Skip to content

Commit 51af45a

Browse files
committed
Improve consistency of pipe call numbering in backtraces
1 parent c976aac commit 51af45a

10 files changed

+15
-17
lines changed

R/trace.R

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -641,13 +641,11 @@ branch_uncollapse_pipe <- function(trace) {
641641
# Assign the pipe frame as dummy ids for uncollapsed frames
642642
pipe_ids <- rep(trace$ids[idx], pointer)
643643

644-
pipe_indices <- idx
645-
n_pipe_calls <- length(pipe_calls)
646-
if (n_pipe_calls > 1L) {
647-
n_collapsed <- attr(pipe, "collapsed")
648-
rest_indices <- rep(idx + n_collapsed + 1L, n_pipe_calls - 1L)
649-
pipe_indices <- c(pipe_indices, rest_indices)
650-
}
644+
# This assigns the same frame number to all pipe calls that have
645+
# already returned
646+
n_collapsed <- attr(pipe, "collapsed")
647+
pipe_indices <- rep(idx, length(pipe_calls) - 1L)
648+
pipe_indices <- c(pipe_indices, idx + n_collapsed + 1L)
651649

652650
# Add the number of uncollapsed frames to children's
653651
# ancestry. This assumes a backtrace branch.

tests/testthat/test-trace-collapse-magrittr-before-after1.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ Collapsed:
1818
10. └─rlang:::T(.)
1919

2020
Branch:
21-
1. rlang:::F(NA %>% T())
22-
2. rlang:::T(.)
21+
1. rlang:::F(NA %>% T())
22+
10. rlang:::T(.)

tests/testthat/test-trace-collapse-magrittr-before-after2.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ Collapsed:
1818
10. └─rlang:::f()
1919

2020
Branch:
21-
1. rlang:::C(.)
21+
9. rlang:::C(.)
2222
10. rlang:::f()

tests/testthat/test-trace-collapse-magrittr-before-after3.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ Collapsed:
2121

2222
Branch:
2323
1. rlang:::F(NA %>% C())
24-
2. rlang:::C(.)
24+
10. rlang:::C(.)
2525
11. rlang:::f()

tests/testthat/test-trace-collapse-magrittr-children.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Collapsed:
2121

2222
Branch:
2323
1. rlang:::F(.)
24-
9. rlang:::G(.)
24+
1. rlang:::G(.)
2525
9. rlang:::H(.)
2626
10. rlang:::f()
2727
11. rlang:::h()

tests/testthat/test-trace-collapse-magrittr-complete-leading2.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ Collapsed:
1717

1818
Branch:
1919
1. rlang:::F(NA)
20-
9. rlang:::F(.)
20+
1. rlang:::F(.)
2121
9. rlang:::T(.)

tests/testthat/test-trace-collapse-magrittr-complete1.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ Collapsed:
1616
9. └─rlang:::T(.)
1717

1818
Branch:
19-
1. rlang:::T(.)
19+
9. rlang:::T(.)

tests/testthat/test-trace-collapse-magrittr-incomplete-leading2.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ Collapsed:
1616

1717
Branch:
1818
1. rlang:::F(NA)
19-
8. rlang:::F(.)
19+
1. rlang:::F(.)
2020
8. rlang:::T(.)

tests/testthat/test-trace-collapse-magrittr.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ Collapsed:
1717

1818
Branch:
1919
1. rlang:::f(.)
20-
9. rlang:::g(., 1, 2)
20+
1. rlang:::g(., 1, 2)
2121
9. rlang:::h(3, ., 4)

tests/testthat/test-trace-collapse-magrittr2.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ Collapsed:
1717

1818
Branch:
1919
1. rlang:::f(NULL)
20-
9. rlang:::g(., list(.))
20+
1. rlang:::g(., list(.))
2121
9. rlang:::h(3, ., list(.))

0 commit comments

Comments
 (0)