<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Apr 19, 2017 at 4:27 PM, Emmanuel Bernard <span dir="ltr">&lt;<a href="mailto:emmanuel@hibernate.org" target="_blank">emmanuel@hibernate.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>But<div>    @Target(FIELD, TYPE_USE)</div><div>    @interface Size</div><div>    </div><div>    @Size(2) String[] arrayOfTwoStrings;</div><div><br></div><div>is ambiguous in Java 8</div></div><div><br></div><div>So the JLS is “backward compatible” in the language designer’s view I suppose. </div></div></blockquote><div><br></div><div>When you don&#39;t change, it&#39;s backward compatible indeed. When you do, the language design is flawed. So there is a hole in one combination that needs to be addressed. Joshua Bloch would write about that all the time, of how new features interact in unexpected ways and that&#39;s why you have to resist changes in the language.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>They did not anticipate people wanting to add TYPE_USE to an existing annotation and have a side effect on its usage on arrays.</div></div></blockquote><div><br></div><div>Exactly, so this is effectively broken and needs to be fixed in the language, not in BV. But I&#39;m still afraid we might have got something wrong here, so I would rather ask them.</div><div><br></div><div>Regards,</div><div>Michael</div></div><br></div></div>