[External] Foo / Foo.ref is a backward default; should be Foo.val / Foo

Dan Smith daniel.smith at oracle.com
Wed Apr 27 15:03:47 UTC 2022


On Apr 26, 2022, at 5:22 PM, Kevin Bourrillion <kevinb at google.com<mailto:kevinb at google.com>> wrote:

(Thought experiment: if we had an annotation meaning "using the .val type is not a great idea for this class and you should get a compile-time warning if you do" .... would we really and I mean *really* even need bucket 2 at all?)

Yes, because some (many?) class authors want strong guarantees that the initial (all-zeros) instance is never available in the wild. This is the most prominent encapsulation-breaking compromise that an author makes when moving from B2 to B3.


More information about the valhalla-spec-observers mailing list