From suh@rto_@@ggo@o m@iii@g oii y@hoo@com  Fri Nov 29 19:05:34 2019
From: suh@rto_@@ggo@o m@iii@g oii y@hoo@com (suh@rto_@@ggo@o m@iii@g oii y@hoo@com)
Date: Fri, 29 Nov 2019 18:05:34 +0000 (UTC)
Subject: [Rd] 
 Inappropriate class(o)[!inherits(o,"AsIs")] in get_all_vars
In-Reply-To: <24018.39079.286099.958408@stat.math.ethz.ch>
References: <1709347581.898771.1573986871851@mail.yahoo.com>
 <24018.32090.951327.313003@stat.math.ethz.ch>
 <24018.39079.286099.958408@stat.math.ethz.ch>
Message-ID: <2095928073.968101.1575050734883@mail.yahoo.com>

 
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.     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]]



[Rd] Inappropriate class(o)[!inherits(o,"AsIs")] in get_all_vars
suh@rto_@@ggo@o m@iii@g oii y@hoo@com