From @tephen@peder@on @end|ng |rom @de|@|de@edu@@u  Fri Jul 10 18:16:25 2020
From: @tephen@peder@on @end|ng |rom @de|@|de@edu@@u (Stephen Martin Pederson)
Date: Fri, 10 Jul 2020 16:16:25 +0000
Subject: [Rd] 
 Strange behaviour of methods::slot() when returning a tibble
In-Reply-To: <bd38e1d3-e965-21f0-28d3-769d26217872@gmail.com>
References: <ME2P282MB0116BCAB37495E9A8687290FD4650@ME2P282MB0116.AUSP282.PROD.OUTLOOK.COM>
 <ME2P282MB011640F08A60CA1274597A34D4650@ME2P282MB0116.AUSP282.PROD.OUTLOOK.COM>,
 <bd38e1d3-e965-21f0-28d3-769d26217872@gmail.com>
Message-ID: <ME2P282MB01162B5DAD92A6443870B71CD4650@ME2P282MB0116.AUSP282.PROD.OUTLOOK.COM>

Thanks Duncan. Much appreciated & I can now see it's ellipsis::check_dots_empty() causing the trouble. I'll take the question to the github issues page for that package.

All the best,

Steve
________________________________
From: Duncan Murdoch <murdoch.duncan at gmail.com>
Sent: Saturday, 11 July 2020 1:38 AM
To: Stephen Martin Pederson <stephen.pederson at adelaide.edu.au>; r-devel at r-project.org <r-devel at r-project.org>
Subject: Re: [Rd] Strange behaviour of methods::slot() when returning a tibble

I don't get any warning (but am using slightly different versions of
everything than you are).

You can find where that message is coming from by running
options(warn=2) first, which will convert it to an error.

Duncan Murdoch

On 10/07/2020 11:54 a.m., Stephen Martin Pederson wrote:
> I have an S4 object class defined in a Bioconductor package which contains multiple slots, some of which are tibbles, whilst others are vectors. If I call
>
> slot(object, name)
>
> where 'name' is an slot that contains a vector, everything works as expected. However, when I call slot(object, name) where 'name' is an slot that contains a tibble I get the following warning:
>
>
> Warning message:
> `...` is not empty.
>
> We detected these problematic arguments:
> * `needs_dots`
>
> These dots only exist to allow future extensions and should be empty.
> Did you misspecify an argument?
> Making 'packages.html' ... done
>
> Wrapping the call in suppressWarnings() doesn't stop this, and this warning is printed every time the resultant object is called, e.g. df <- slot(object, name); df, would not print the error on the first call, but would print the warning every time df is  printed.
>
> For an MWE
>
>
> setClass("track", slots = c(x="numeric", y="data.frame"))
> myTrack <- new("track", x = -4:4, y = tibble(y = 1))
>
> myTrack
>
> df <- slot(myTrack, "y")
> df
>
> The package passes R CMD check even though this warning is produced in most examples. Changing to a generic S3 data.frame also doesn't produce this error. I'm running the following configuration:
>
>
> R version 4.0.2 (2020-06-22)
> Platform: x86_64-pc-linux-gnu (64-bit)
> Running under: Ubuntu 18.04.4 LTS
>
> Matrix products: default
> BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1
>
> locale:
>   [1] LC_CTYPE=en_AU.UTF-8       LC_NUMERIC=C               LC_TIME=en_AU.UTF-8
>   [4] LC_COLLATE=en_AU.UTF-8     LC_MONETARY=en_AU.UTF-8    LC_MESSAGES=en_AU.UTF-8
>   [7] LC_PAPER=en_AU.UTF-8       LC_NAME=C                  LC_ADDRESS=C
> [10] LC_TELEPHONE=C             LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] parallel  stats     graphics  grDevices utils     datasets  methods   base
>
> other attached packages:
> [1] ngsReports_1.5.3    tibble_3.0.2        ggplot2_3.3.2       BiocGenerics_0.34.0
>
> Thanks in advance,
>
> Steve
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>


	[[alternative HTML version deleted]]



[Rd] Strange behaviour of methods::slot() when returning a tibble
Stephen Martin Pederson