From m@ech|er @end|ng |rom @t@t@m@th@ethz@ch  Mon Dec  2 15:10:31 2019
From: m@ech|er @end|ng |rom @t@t@m@th@ethz@ch (Martin Maechler)
Date: Mon, 2 Dec 2019 15:10:31 +0100
Subject: [Rd] 
 Inappropriate class(o)[!inherits(o,"AsIs")] in get_all_vars
In-Reply-To: <2095928073.968101.1575050734883@mail.yahoo.com>
References: <1709347581.898771.1573986871851@mail.yahoo.com>
 <24018.32090.951327.313003@stat.math.ethz.ch>
 <24018.39079.286099.958408@stat.math.ethz.ch>
 <2095928073.968101.1575050734883@mail.yahoo.com>
Message-ID: <24037.6999.144969.273038@stat.math.ethz.ch>

>>>>> suharto anggono--- via R-devel 
>>>>>     on Fri, 29 Nov 2019 18:05:34 +0000 writes:

    > class(o)[!inherits(o,"AsIs")] is still in function
    > 'get_all_vars' in R patched (in
    > https://svn.r-project.org/R/branches/R-3-6-branch/src/library/stats/R/models.R). It
    > was ported to R patched by r77402. 

You are right.... it's no longer now,  thank you very much,
Suharto!

Martin


    > On Monday, 18 November 2019, 8:12:10 PM GMT+7, Martin Maechler
    > <maechler at stat.math.ethz.ch> wrote:
 
    >>>>>> Martin Maechler ? ? on Mon, 18 Nov 2019 12:15:38
    >>>>>> +0100 writes:

>>>>> suharto anggono--- via R-devel 
    >>>>>> ? ? on Sun, 17 Nov 2019 10:34:31 +0000 writes:

    > ? ? >> SVN revision 77401 changes ? ? >> x[isM] <-
    > lapply(x[isM], function(o) `class<-`(o, class(o)[class(o)
    > != "AsIs"])) ? ? >> to ? ? >> x[isM] <- lapply(x[isM],
    > function(o) `class<-`(o, class(o)[!inherits(o,"AsIs")])) ?
    > ? >> in function 'get_all_vars' in
    > src/library/stats/R/models.R in R devel.

    > ? ? >> The change is inappropriate.

    > ? ? >> class(o)[class(o) != "AsIs"] removes "AsIs" from
    > class(o), giving class(o) without "AsIs".

    > ? ? >> On the other hand, inherits(o,"AsIs") is just a
    > single logical value. If "AsIs" is in class(o),
    > inherits(o,"AsIs") is TRUE. In that case, by recycling of
    > logical index, class(o)[!inherits(o,"AsIs")] removes all
    > elements of class(o), giving character(0).

    > ? ? > Thank you, Suharto !

    > ? ? > You are obviously right,? and I'm a bit embarrassed
    > by my ? ? > overzealousness to follow my own
    > recommendations in the? R Blog

    > ? ? > http://bit.ly/R_blog_class_think_2x

    > ? ? > {*wrongly*: The recommendation was to "think again"
    > ...}

    > ? ? > It's a "shame" that the wrong code did not trigger
    > any checks, ? ? > so if anybody has time... I'd be
    > grateful for such a regression ? ? > check.

    > Once I started thinking, it was easy to modify the
    > previous reg.check? to trigger in the case of the erronous
    > r77401.

    > Fixed now in 77435.  Martin
  
    > 	[[alternative HTML version deleted]]

    > ______________________________________________
    > R-devel at r-project.org mailing list
    > https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] Inappropriate class(o)[!inherits(o,"AsIs")] in get_all_vars
Martin Maechler