Skip to content

Commit 1382453

Browse files
committed
Work around r-lib/vctrs#1419
1 parent 357f749 commit 1382453

File tree

5 files changed

+11
-3
lines changed

5 files changed

+11
-3
lines changed

R/as_tibble.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ as_tibble_row <- function(x,
293293
if (is_bare_list(x)) {
294294
slices <- x
295295
} else {
296-
x <- vec_set_names(x, NULL)
296+
x <- vectbl_set_names(x, NULL)
297297
slices <- lapply(seq_len(vec_size(x)), vec_slice, x = x)
298298
names(slices) <- names
299299
}

R/subsetting.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ NULL
131131
x
132132
} else {
133133
# Drop inner names with double subscript
134-
vec_set_names(vec_slice(x, i), NULL)
134+
vectbl_set_names(vec_slice(x, i), NULL)
135135
}
136136
}
137137
}

R/tbl_df.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ NULL
7272
as.data.frame.tbl_df <- function(x, row.names = NULL, optional = FALSE, ...) {
7373
class(x) <- "data.frame"
7474
unname <- which(!map_lgl(x, is_bare_list))
75-
x[unname] <- map(x[unname], vec_set_names, NULL)
75+
x[unname] <- map(x[unname], vectbl_set_names, NULL)
7676
x
7777
}
7878

tests/testthat/test-subsetting.R

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,9 @@ test_that("[[ drops inner names only with double subscript (#681)", {
373373
expect_identical(df[[1, "b"]], data.frame(bb = 1))
374374
expect_identical(df[["c"]], c)
375375
expect_null(rownames(df[[1, "c"]]))
376+
377+
df <- tibble(x = new_rcrd(list(a = 1:3)))
378+
expect_identical(df[[1, "x"]], new_rcrd(list(a = 1L)))
376379
})
377380

378381
test_that("can use two-dimensional indexing with [[", {

tests/testthat/test-tbl_df.R

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ test_that("as.data.frame() keeps inner names for lists (#837)", {
1313
expect_identical(as.data.frame(tbl)$a, list(b = 1:3))
1414
})
1515

16+
test_that("as.data.frame() keeps inner names for records", {
17+
tbl <- tibble(x = new_rcrd(list(a = 1:3)))
18+
expect_identical(as.data.frame(tbl)$x, new_rcrd(list(a = 1:3)))
19+
})
20+
1621
test_that("names<-()", {
1722
new_tbl <- function(...) {
1823
data <- list(1, "b")

0 commit comments

Comments
 (0)