[Rd] Bug: dput/deparse with named character vector inside list

Neal Richardson neal.p.richardson at gmail.com
Fri Sep 8 19:52:32 CEST 2017


Hi,
I noticed some R-devel failures on CRAN on a package I maintain:
https://cloud.r-project.org/web/checks/check_results_httptest.html

It appears that 'dput'/'deparse' is returning an invalid object when
there is a named character vector inside a list. Here is a minimal
example that reproduces the issue:

> z <- list(a=c(b="foo"))
> str(z)
List of 1
 $ a: Named chr "foo"
  ..- attr(*, "names")= chr "b"

> dput(z)
list(a = b = "foo")
> parse(text=deparse(z))
Error in parse(text = deparse(z)) : <text>:1:12: unexpected '='
1: list(a = b =
               ^

But it works fine if you just provide a named character vector:


> dput(z$a)
structure("foo", .Names = "b")


I know that there were some recent improvements to 'deparse' (c73120,
73144). Among the failures on my package on R-devel on CRAN, a test
run on version as old as r73150 does manifest this bug
(https://www.r-project.org/nosvn/R.check/r-devel-linux-x86_64-fedora-gcc/httptest-00check.html),
so the timing does suggest that those changes could be related.

Neal


> sessionInfo()
R Under development (unstable) (2017-09-07 r73219)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.6

Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] compiler_3.5.0



More information about the R-devel mailing list