Direct call to S3 method from bit64
Here are some direct calls to an S3 method
https://github.com/eddelbuettel/nanotime/blob/5fe3414af25e099329e0cff564f03dcce74a994e/R/nanoduration.R#L650 https://github.com/eddelbuettel/nanotime/blob/5fe3414af25e099329e0cff564f03dcce74a994e/R/nanotime.R#L657
This will stop working in the future when this symbol is un-exported. Is there a reason not to let S3 dispatch "just work" in this case?
See https://github.com/r-lib/bit64/issues/76
Then things break as revealed by a two-minute investigation. Context matters. You should have shown the complete (symmetric) functions:
c.nanoduration <- function(...) {
as.nanoduration(c.integer64(...))
}
I tried both c(as.integer64(...)) and c(...); neither approach made it far under R CMD check. All this is tricky business as we have to mix S4 and S3 semantics. We like the status quo, it worked for eight+ years.
Thanks Dirk. Rest assured I have no interest in breaking working code :)
The timeline here is long -- I won't even touch this in the next release, and will only look at adding warnings in the subsequent release before finally removing the export after that. I will of course retain c.integer64 exported as long as we don't have a fix for you.
I've filed https://github.com/r-lib/bit64/issues/150 to track this specific issue.