A couple of notes from the EG meeting discussion.

> On Jan 5, 2021, at 12:11 PM, Dan Smith <daniel.sm...@oracle.com> wrote:
> 
> We've wondered whether there are use cases to justify the second interface. 
> Having gained some experience in this system, I think it's safe to say there 
> will be. For example, an abstract class or interface extended by a family of 
> primitive classes may wish to explicitly implement PrimitiveObject as a way 
> to communicate a particular performance model, immutability, etc., to 
> clients. Or certain primitive-like features, like operator overloading, may 
> interact with libraries through type variables that extend PrimitiveObject. I 
> also like the symmetry, which avoids any biasing of one side over the other.

Consensus that these use cases/arguments aren't strong enough to justify any 
major costs, but also as a nice-to-have, the costs don't seem very large. So, 
worth doing.

> Revised JVM behavior:
> - Primitive classes either get PrimitiveObject as an injected superinterface 
> or reject classes without that superinterface. (Which one? TBD.)

Dan Heidinga expressed a preference for validation rather than injection, 
arguing that it's always simpler to validate. Fred Parain expressed a 
preference for injection, for uniformity with the treatment of IdentityObject. 
I guess that leaves us at TBD—maybe something we can check in on again when 
we've done some implementation.

Reply via email to