<!DOCTYPE html><html><head><title></title></head><body><div>Names are (have always been) uniquified. IIRC, back in the day, interned strings were less efficient than now and never GC-ed. Now, an impediment is that `Name` has effectively leaked into the public API, via `javax.lang.model` and would be hard to replace.</div><div><br></div><div>Generally, this "version" of javac dates back to JDK 3/JDK 4 days, when standard collections were less pervasive, and software engineering was ever so much simpler, both in terms of impl design and tools (who remembers emacs?). That being said, it is a testament to that early design that it has endured so long with many pervasive incremental upgrades.</div><div><br></div><div>-- Jon</div><div><br></div><div>On Thu, Nov 27, 2025, at 5:45 AM, Maurizio Cimadamore wrote:</div><blockquote type="cite" id="qt" style=""><div>For names I'm less sure, </div><div>but maybe somebody else knows the answer there.</div></blockquote><div><br></div></body></html>