[Rd] BUG?: A copy of base::`+` (primitive) is not a clone but a "pointer"

Henrik Bengtsson henr|k@bengt@@on @end|ng |rom gm@||@com
Sun Nov 17 23:31:07 CET 2019


$ R --vanilla
R version 3.6.1 (2019-07-05) -- "Action of the Toes"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
...

> str(base::`+`)
function (e1, e2)

> plus <- structure(base::`+`, class = "plus")
> str(plus)
function (e1, e2)
 - attr(*, "class")= chr "plus"

## Hmm ...
> str(base::`+`)
function (e1, e2)
 - attr(*, "class")= chr "plus"

> class(base::`+`) <- NULL
> str(base::`+`)
function (e1, e2)

## Hmm ...
> str(plus)
function (e1, e2)

Even without assigning to `plus`, you get this behavior:

$ R --vanilla
> structure(base::`+`, class = "plus")
function (e1, e2)  .Primitive("+")
attr(,"class")
[1] "plus"

# Hmm...
> str(base::`+`)
function (e1, e2)
 - attr(*, "class")= chr "plus"

Looks to be the case for common (all?) .Primitive functions.  Is this
expected? Should I report this one to BugZilla?

/Henrik



More information about the R-devel mailing list