From ru@@e|| @end|ng |rom r@|mond@net  Tue May  2 22:42:47 2023
From: ru@@e|| @end|ng |rom r@|mond@net (Russell Almond)
Date: Tue, 2 May 2023 16:42:47 -0400
Subject: [Rd] is(x,"ANY") is FALSE
Message-ID: <7BAB2953-CF25-484C-925F-CD460AC90A23@ralmond.net>

I?m somewhat puzzled by the following bit of code on R 4.2.3 (also R 4.2.2)

> df <- data.frame(x=1:3)
> is (df,"ANY")
[1] FALSE

This seem to be false when the first argument is any S3 class, while I would think that ?ANY? would be true for S3, S4 and reference classes, as well as primitive types.

This also seems to be a regression, as code that was previously working no longer works.


A little more context on my use.

I?m defining a slot for a reference class using a type union, 
setClass(?MongoDB?,c(?NULL?,?ANY?))

[I should be using setOldClass(?mongo?) here, but I was having trouble promoting the S3 ?mongo? class I was getting from the library.]

Then when I try to set the corresopnding slot I?m getting an error, because ?mongo? is not of type MongoDB (even through that is a class union which contains ?ANY?).  

I can work around the problem by setting the slot to type ?ANY?, but then I loose the documentation that the intention is that it should a mongo database connection.

Did I miss something here?  Or is this an unintended consequence of some other change?

Thanks,
  ?Russell Almond




	[[alternative HTML version deleted]]



[Rd] is(x,"ANY") is FALSE
Russell Almond