Re: java.lang.Record vs InlineObject/IdentityObject

2020-03-25 Thread Brian Goetz





currently a record can only be an IdentityObject but at some point, we want to 
introduce an inline record ?

Indeed so.


Now the question: What the subtyping relation between java.lang.Record and 
InlineObject/IdentityObject ?

An identity record (resp. an inline record) should be a subtype of both 
java.lang.Record and IdentityObject (resp InlineObject).
Given that java.lang.Record has to be an abstract class because you can not 
re-abstract an interface method.
So both IdentityObject and InlineObject are interface and java.lang.Record 
inherits from Object.

Am i right ?
Or do we really care about re-abstracting the methods of j.l.Record ?



This is right.  j.l.Record will be one of those "inline-friendly 
abstract classes", which can be a superclass for either identity or 
inline records.  (Enum will not be, as it has fields.)


java.lang.Record vs InlineObject/IdentityObject

2020-03-25 Thread Remi Forax
Hi,
currently a record can only be an IdentityObject but at some point, we want to 
introduce an inline record ?

Now the question: What the subtyping relation between java.lang.Record and 
InlineObject/IdentityObject ?

An identity record (resp. an inline record) should be a subtype of both 
java.lang.Record and IdentityObject (resp InlineObject).
Given that java.lang.Record has to be an abstract class because you can not 
re-abstract an interface method.
So both IdentityObject and InlineObject are interface and java.lang.Record 
inherits from Object.

Am i right ?
Or do we really care about re-abstracting the methods of j.l.Record ?

regards,
Rémi