Patch base S3 dispatch table directly for R Notebook S3 overrides #2762
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
R 3.5 includes a breaking change which prevents tables and HTML widgets from appearing in R Notebook chunks. The change is this (from NEWS):
In order to capture printed tables and HTML widgets, we create S3 methods in the
tools:rstudio
environment, which are used in favor of the base methods since they precede them on thesearch()
path. However, starting in R 3.5, the namespace registry is searched first instead, so our S3 methods are never executed.There no longer appears to be an elegant way to create short-lived S3 overrides of the kind used in the notebook, so with this change we take a longer route: we patch the S3 dispatch table directly (and temporarily) to use our methods. This should work for any R version, but for caution's sake we're continuing to use the known-good lower-touch mechanism in releases of R older than 3.5.
Fixes #2748.