From henr|k@bengt@@on @end|ng |rom gm@||@com  Sun Nov 17 23:31:07 2019
From: henr|k@bengt@@on @end|ng |rom gm@||@com (Henrik Bengtsson)
Date: Sun, 17 Nov 2019 14:31:07 -0800
Subject: [Rd] BUG?: A copy of base::`+` (primitive) is not a clone but a
 "pointer"
Message-ID: <CAFDcVCRthz6=XjH8=RZm85+BKHKzrVsrz9ZTUSWvi7As2U=hdA@mail.gmail.com>

$ 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



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