value type hygiene

Dan Smith daniel.smith at oracle.com
Fri May 11 17:48:56 UTC 2018


> On May 10, 2018, at 7:36 PM, John Rose <john.r.rose at oracle.com> wrote:
> 
> There could be an interface default method, or some other method,
> which is simultaneously a member of two trees with two different
> decisions about scalarization vs. buffering.  This can be handled
> by having the JVM create multiple adapters.  I'd rather forbid the
> condition that requires multiple adapters as a CLC violation,
> because it is potentially complex and buggy, and it's not clear
> we need this level of service from the JVM.

Use case:


---

Library code

interface Event {
    LocalDateTime timestamp();
}

---

Client 1 code, compiled with reference class LocalDateTime

class Client1Event implements Event { ... }

---

Client 2 code, compiled with value class LocalDateTime

class Client2Event implements Event { ... }

---

Various circumstances can lead to two different clients running on a single JVM, including, say, dependencies between different libraries.

Am I understanding correctly that you would consider loading/invoking these methods to be a JVM error?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/valhalla-spec-experts/attachments/20180511/7ec77e2e/attachment-0001.html>


More information about the valhalla-spec-experts mailing list