Could someone take another look at my submitted bug regarding class names?
Jonathan Gibbons
jonathan.gibbons at oracle.com
Mon Feb 20 15:51:33 UTC 2023
On 2/19/23 8:45 PM, Archie Cobbs wrote:
> On Sun, Feb 19, 2023 at 9:04 PM David Alayachew
> <davidalayachew at gmail.com> wrote:
>
> Maybe I am naive, but why not add a signifier/suffix to the
> resulting .class file name to differentiate? Java already does
> this. Going back to my local classes example, if 2 local classes
> have the exact same name (where even the cases are the same),
> javac will call them Abc.java and Abc$1.java, or something like
> that. The point is, appending a signifier at the end is apparently
> good enough for the compiler to be able to tell which class to
> load when we run the compiled code. Would that not be an effective
> solution here too?
>
>
> That would work for synthetic inner classes. It still doesn't solve
> the larger problem though.
>
> > So fixing this is do-able but not trivial
>
> I see what you mean. One thing that may be helpful as an
> intermediate goal would be to emit a warning/error on compile when
> running into this. At least then, we can minimize the impact of
> developers unexpectedly running into this during runtime. In the
> meantime, a more complex and long term solution can be developed.
>
> Even a warning is non-trivial. It's normal to overwrite existing class
> files, so you couldn't rely on checking whether the file already
> existed. The file manager would have to keep track of every class file
> that it has written out so it could detect when a clash occurs, or
> something like that.
Even that is not enough; the files may be written by different
compilations. The file manager would potentially read the contents of
every file before overwriting it, to decide whether to generate a message.
-- Jon
>
> Also note that what exactly case-insensitive means depends on your
> choice of Locale (see also this link
> <https://stackoverflow.com/q/8899929/263801>). That may or may not
> matter depending on the approach.
>
> -Archie
>
> --
> Archie L. Cobbs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/compiler-dev/attachments/20230220/9a8c1131/attachment-0001.htm>
More information about the compiler-dev
mailing list